이 글은 ‘
앵귤러 첫걸음
(저자: 조우진)’ 책을 읽고, 초반 부분만 정리한 내용입니다. 개인적으로 앵귤러로 개발하면서 굉장히 도움을 많이 받은 책입니다. 하지만 앵귤러를 처음 시작하는 분들께서는 살짝 어렵게 느껴질 수 있을것 같습니다. 그래도 저는 이 책을 통해서 첫걸음보다는 두걸음 이상 걷게 되었다고 생각합니다. 직접은 아니지만 이렇게라도 저자께 감사하다는 말씀 드리고 싶습니다.
📖 일단 시작하기
타입스크립트
타입은 언제 선언하는가? (철학)
필요한 지점에 타입 정보를 기술하자
타입스크립트를 사용한다고 해서 자바스크립트 코드의 모든 부분에 타입 정보를 일일이 추가할 필요는 없다
타입 선언 정보
타입스크립트는 자바스크립트 언어 명세에 없는 타입 정보를 타입 선언 파일(Typescript Declaration file) 형식으로 타입 정보만 추가로 내포
확장자는 d.ts
타입스크립트의 타입 선언 정보는 기존의 자바스크립트 라이브러리를 사용하는데 반드시 필요한 파일
타입 선언 정보가 없는 라이브러리를 사용할 때는 가능하면 타입 선언 정보를 받아야 한다.
타입스크립트 2.0 에서는 NPM의 types 패키지에 주요 라이브러리의 타입 선언 정보를 모아서 등록하고 있다.
앵귤러 설치
$ npm install @angular/cli -g
프로젝트 시작
$ ng new hello-angular
📐 구조
🔩 모듈
앵귤러 안에서 관련된 요소를 하나로 묶어 어플리케이션을 구성하는 단위
모든 앵귤러 애플리케이션은 반드시 하나의 모듈을 가지며, 이 모듈을 root module 이라고 하며 관례상 AppModule 클래스로 정의한다.
root module 이 필요한 이유는 앵귤러는 모듈 단위로 애플리케이션의 코드를 인식하기 때문이며, 계층적으로 자식 모듈을 가질 수 있다.
모듈은 포함된 컴포넌트들에 대해 완전한 컨텍스트를 제공하며, 다른 모듈에 있는 컴포넌트를 import 해서 사용할 수 있다.
root 모듈에 포함된 root 컴포넌트는 bootstrap 하는 동안 로드 되지만, 자식 컴포넌트들은 router 와 template을 통해 로드 된다.
컴포넌트, 서비스, 지시자, 파이프를 모듈에 선언하지 않고는 애플리케이션을 사용할 수 없다.
🔩 컴포넌트와 템플릿
컴포넌트: 뷰에서 일어나는 모든 일을 관리
보통 컴포넌트 하나가 화면 전체를 담당하도록 만들지 않고, 기능이나 공통 관심사를 기준으로 화면 하나를 여러 컴포넌트로 나누어 구성
템플릿: 뷰를 구성할 마크업을 포함한 앵귤러에서 제공하는 문법으로 화면을 구성
@Component 데코레이터
클래스가 컴포넌트임을 알리는 표시이자 컴포넌트를 구성하는 정보(메타데이터)를 전달할 때 쓰는 통로