Angular는 구글이 만든 단일 페이지 웹 애플리케이션 개발을 위한 자바스크립트 프레임워크입니다. 다양한 플랫폼에서 동작할 수 있게 하는 개발 툴과 기능들을 제공합니다.
Module
컴포넌트, 파이프, 서비스 등과 같은 앵귤러 애플리케이션의 주요 부분을 기능단위로 그룹핑하게 해 줍니다.
- 모든 앵귤러 애플리케이션은 하나의 Root Module을 가집니다.
 - 여러 Feature Module을 가질 수 있습니다.
 - 재사용할 수 있는 기능을 외부에 배포하기 위해 사용되기도 합니다.
 
Component
- 빌딩 블록 형식
 - HTML 요소들의 그룹
 - 뷰와 로직으로 구성
 
1  | ng g component todo/todos --module todo/todo.module.ts --export  | 
컴포넌트 내부에서 html, css 코드를 작성하도록 생성할 수 있습니다.
1  | ng g component todos/todo --inline-template --inline-style  | 
Template
- HTML 코드로서 템플릿을 표현합니다.
 - Template 표현식(Expression)과 Template 문장(Statement)을 가집니다.
 - 바인딩
- 바인딩의 대상: 속성, 이벤트, ngModel, class, style
 
 
1  | <!-- {{ 템플릿 표현식 }} -->  | 
컴포넌트 간 커뮤니케이션
- 
부모 컴포넌트 -> 자식 컴포넌트
@input()사용- ES6 setter 사용 가능
 @ViewChild()사용
 - 
자식 컴포넌트 -> 부모 컴포넌트
@Output()사용EventEmitter사용하여 부모에게 이벤트 전달- 부모 컴포넌트는 
$event로 이벤트의 데이터를 전달받음 - 자식이 부모 컴포넌트를 직접 주입받을 수 있음
 
 
파이프(Pipe)
- 템플릿(HTML)에서 보이는 데이터를 변환해 줍니다.
 - AngularJs 1.x에서는 필터로 제공되었습니다.
 - 실제 값을 변경하는 것이 아니라 보여주는 값만 바꿔 보여주기 위해 사용합니다.
 
1  | // 사용법  |