# 01. Angular의 소개와 특징

Assembled by GimunLee

# Angular 소개

Angular는 구글의 오픈소스 자바스크립트 프레임워크이다. Angular는 AngularJS와 다르다. Angular는 정적 타이핑과 ECMAScript 6 스펙을 충족시키기 위해 TypeScript로 재작성되었고 AngularJS와는 호환성이 없는 브레이킹 체인지를 다수 포함하고 있다.


# Angular의 장점

# 1. 컴포넌트 기반 개발(CBD, Component Based Development)

AngularJS는 Controller와 $scope가 개발의 중심이었지만, Angular에서는 컴포넌트가 개발의 중심이다. 이는 개발 생산성을 높이며 대규모 애플리케이션에 적합한 구조이다.

# 2. TypeScript의 도입

# 3. Angular CLI 도입으로 개발 도구의 통합 및 개발환경 구축 자동화

# 4. 성능의 향상

  • 다이제스트 루프(digest loop)로 인한 성능 저하 문제의 해결

    양방향 데이터 바인딩을 위해서는 와처가 추가되어야 하고 와처에 대해 다이제스트 루프가 실행되기 떄문에 와처가 늘수록 성능은 떨어지는데 Angular는 이를 개선했다.

  • AoT 컴파일

    AoT(Ahead of Time) 컴파일은 사전 컴파일 방식을 의미한다. 구조 디렉티브(structural directive)를 브라우저가 실행 가능한 코드로 변환해야 하는데, 이러한 과정을 런타임에 실시하지 않고 사전에 컴파일하여 실행 속도를 향상시키는 기법이다. 또 다른 이점은 JIT(Just-In-Time) 컴파일러가 필요 없어서 프레임워크 크기가 획기적으로 작아진다.

  • 지연 로딩

    지연 로딩(lazy loading)은 SPA의 태생적 단점을 극복하기 위한 하나의 대안으로 애플리케이션 실행 시점에 애플리케이션에서 사용되는 모든 모듈을 한꺼번에 로딩하지 않고 필요한 시점에 필요한 모듈만을 로딩하는 방식이다.

  • 코드 최적화

# 5. 대부분의 모던 브라우저 지원

Last Updated: 8/12/2020, 1:33:42 PM