| <colbgcolor=#ffffff,#1c1d1f><colcolor=#B52E31,#E23237> 앵귤러 Angular | |
| | |
| 종류 | 웹 프레임워크 |
| 라이선스 | MIT 라이선스 |
| 개발 | |
| 출시 | 2016년 9월 14일 |
| 언어 | JavaScript, TypeScript |
| 버전 | 21.0.8 |
| | |
1. 개요
하나의 프레임워크로 웹과 모바일을 동시에
2016년 9월에 구글에서 출시되어 운용, 유지 중인
2. 구버전 AngularJS
2010년 10월 20일에 공개된 후 2012년 6월 13일에 정식 출시된 웹 프레임워크로, 이름 뒤에 JS가 붙은 것을 기준으로 잘 구분해야 한다. 초창기 Angular 1.x (현재의 AngularJS)까지는 JavaScript를 위한 프레임워크였으며, 구글의 빽에 힘입어 jQuery 급으로 빠르게 성장하였다.2021년 12월 31일부로 AngularJS의 LTS 지원이 중단되었다. (관련기사, 블로그) 최종 업데이트는 2022년 4월 7일에 발표된 1.8.3 버전.
3. 신버전 Angular
신기술 동향을 잘 따라가며 앞서가는 구글답게, 버전 2에서 JavaScript 대신 TypeScript에 맞춰 기존의 프레임워크를 싹 다 갈아엎고 아예 새롭게 작성했다. 그렇게 이름에 있던 JS를 떼고 등장한[1] 오늘날의 Angular는 AngularJS와 달리 TypeScript 기반이다. React나 Vue.js에서도 TypeScript를 쓸 수 있지만 어디까지나 선택사항인 데 반해, Angular는 일단 TypeScript로 쓸 것을 전제로 하고 있다는 점이 차이점. 또한 RxJS를 기본으로 지원하며 16버전부터는 Signal이라는 반응형 원시 값이라는 개념을 도입하여 반응형 프로그래밍에 대한 지원이 매우 좋은 편이다.2025년 현재 버전 20까지 등장하였으며 Node.js 등의 npm 설치를 지원한다.
Angular로 만들어진 앱은 MVVM(Model-View-ViewModel) 패턴을 채택한다. 전통적인 MVC 구조에서 컨트롤러가 뷰 모델로 대체된 구조. 컨트롤러와 달리 각 뷰와 뷰 모델이 보다 밀접한 관계로 이루어져 있다.
3.1. 모던 앵귤러 (Angular Renaissance)
앵귤러는 v14부터 v17에 걸쳐 프레임워크의 개발 경험(DX)을 혁신적으로 개선하는 일명 '앵귤러 르네상스' 시기를 맞이했다. 기존의 "배우기 어렵고 설정이 복잡하다"는 단점을 해소하기 위해 다음과 같은 핵심 기능들이 도입되었다.- Standalone Components (독립형 컴포넌트)
- Signals (시그널)
- 새로운 제어 흐름 (Built-in Control Flow)
- Esbuild & Vite 기반 빌드 시스템
v14에서 도입되어 v15부터 표준이 된 기능. 앵귤러의 진입 장벽 1순위였던 `NgModule`을 더 이상 강제하지 않는다. React나 Vue처럼 컴포넌트를 독립적으로 선언하고 사용할 수 있어져 구조가 훨씬 가볍고 직관적으로 변했다.
v16부터 도입된 새로운 반응형 기초(Primitive)다. 기존 `Zone.js`에 의존하던 변경 감지(Change Detection) 방식의 성능 오버헤드를 줄이고, 데이터 흐름을 세밀하게 제어할 수 있게 해준다. (SolidJS의 시그널 개념을 수용했다.)
v17부터는 기존의 `*ngIf`, `*ngFor` 같은 구조적 디렉티브 대신, 템플릿 내에서 `@if`, `@for`, `@switch`와 같은 새로운 블록 문법을 사용할 수 있다. 가독성이 향상되었을 뿐만 아니라 렌더링 성능도 크게 개선되었다.
웹팩(Webpack) 대신 Esbuild와 Vite를 도입하여 빌드 속도와 개발 서버 구동 속도가 비약적으로 빨라졌다.