Angular(앵귤러)는 구글(Google)에서 개발하고 관리하는 오픈 소스 웹 애플리케이션 프레임워크입니다. 주로 복잡하고 규모가 큰 단일 페이지 애플리케이션(SPA, Single Page Application)을 개발할 때 사용됩니다.
핵심적인 특징과 개념을 정리해 드립니다.
1. 주요 특징
- 프레임워크 vs 라이브러리: 리액트(React)가 UI 구축을 위한 라이브러리라면, 앵귤러는 개발에 필요한 거의 모든 기능(라우팅, 폼 관리, HTTP 통신 등)이 포함된 ‘완성형 프레임워크’입니다.
- TypeScript 기반: 마이크로소프트의 TypeScript를 기본 언어로 사용합니다. 정적 타입을 지원하여 코드의 안정성을 높이고 대규모 프로젝트 유지보수에 유리합니다.
- 컴포넌트 기반 아키텍처: 화면을 독립적인 단위(컴포넌트)로 쪼개어 개발하며, 코드 재사용성이 매우 높습니다.
- 양방향 데이터 바인딩 (Two-way Data Binding): 모델(데이터)과 뷰(화면)가 서로 동기화되어, 데이터가 바뀌면 화면이 자동으로 업데이트되고 화면의 입력값이 데이터에 자동으로 반영됩니다.
- 의존성 주입 (Dependency Injection, DI): 코드 간의 결합도를 낮추어 테스트와 유지보수를 쉽게 만드는 강력한 DI 시스템을 갖추고 있습니다.
2. 왜 Angular를 사용하는가? (장점)
- 구조적 일관성: 프레임워크가 가이드를 제공하므로, 팀 프로젝트 시 개발자마다 코드 스타일이 달라지는 것을 방지하고 일관된 구조를 유지할 수 있습니다.
- 풀 스택 개발 도구: 별도의 외부 라이브러리 조합 없이도 개발에 필요한 모든 도구(Angular CLI, RxJS, Angular Router 등)가 내장되어 있습니다.
- 대규모 프로젝트에 적합: 코드의 복잡도가 높아져도 구조가 체계적이라 관리가 용이합니다.
3. 단점 (혹은 고려할 점)
- 높은 학습 곡선: 배울 내용(TypeScript, RxJS, DI, 모듈 시스템 등)이 많아 초보자가 바로 시작하기에는 다소 어렵습니다.
- 무거운 초기 설정: 단순한 페이지를 만들기에는 프레임워크 자체가 무겁고 복잡하게 느껴질 수 있습니다.
4. React, Vue와의 비교
- React: 자유도가 높고 생태계가 넓음 (라이브러리).
- Vue: 배우기 쉽고 가벼우며 직관적임 (프레임워크와 라이브러리의 중간 성격).
- Angular: 규칙이 엄격하고 체계적이며 대규모 기업형 프로젝트에 최적화됨 (완전한 프레임워크).
요약하자면
Angular는 “구글이 만든 꼼꼼하고 규칙적인 대규모 웹 개발 시스템”이라고 이해하시면 됩니다. 큰 규모의 기업용 시스템(Enterprise)을 구축하거나, 여러 개발자가 협업하여 견고한 애플리케이션을 만들어야 할 때 가장 강력한 힘을 발휘합니다.
더 자세히 알고 싶은 특정 기능(예: 컴포넌트, 서비스, CLI 등)이 있다면 말씀해 주세요!