이 도구를 사용해 보셨나요? 평점을 남겨 주세요
Angular는 구글의 전담 팀이 관리하는 오픈소스 웹 애플리케이션 프레임워크로, MIT 라이선스로 배포되며 구매가 아니라 npm에서 설치합니다. angular.dev가 공식 문서 거점입니다.
Angular 프레임워크는 라이브러리가 아니라 견해가 뚜렷한 쪽입니다. 라우팅, 폼, 의존성 주입, HTTP, 국제화, 테스트, 빌드 툴체인이 모두 1차 구성요소로 함께 버전 관리되어 제공됩니다. 프레임워크가 요구하는 거래가 바로 여기에 있습니다. 각 자리를 어떤 라이브러리로 채울지에 대한 선택권을 덜 갖는 대신, 그 자리들이 일관되게 채워지고 발맞춰 올라갑니다.
개발은 공개적으로 이뤄집니다. 모든 풀 리퀘스트와 커밋이 깃허브에 공개되고, 팀은 그곳에서 이슈를 분류하며, 규모가 큰 변경은 공개 RFC를 거쳐 반영됩니다. 현재 라인은 2026년 6월에 나온 v22입니다.
Angular 시그널이 반응성의 기본 단위이며, 컴포넌트 트리 전체를 훑는 변경 감지 대신 컴파일 타임 최적화와 결합된 세밀한 모델입니다. 프레임워크가 몇 개 릴리스에 걸쳐 밀고 온 축이 이것이며, v22는 Signal Forms와 Angular Aria, 비동기 반응성 API를 프로덕션 준비 상태로 올리며 그 전환을 마무리했습니다.
서버 사이드 렌더링과 정적 사이트 생성이 모두 지원되고 완전한 DOM 하이드레이션이 따라붙습니다. 그래서 애플리케이션을 미리 렌더링한 마크업으로 내보낸 뒤, DOM을 버리고 다시 만들지 않은 채 클라이언트가 이어받을 수 있습니다.
Angular CLI는 npm에 @angular/cli 패키지로 배포되며 ng라는 실행 파일을 제공합니다. 스캐폴딩, 개발, 테스트, 배포, 유지보수가 한곳에서 이뤄집니다. 그 아래에서 빌드 파이프라인은 Vite와 esbuild 위에 세워져 있습니다.
프로젝트의 수명 전체를 놓고 보면 CLI 기능 중 두 가지가 나머지보다 중요합니다.
Angular DevTools는 브라우저 자체 개발자 도구와 나란히 놓이며 컴포넌트 트리 인스펙터, 의존성 주입 트리 뷰, 맞춤 성능 프로파일링 플레임 차트를 더합니다. 테스트 쪽에서는 안정 릴리스 이후 Vitest가 주 테스트 러너가 되었고, Karma에서 넘어오는 마이그레이션 도구가 안정 단계로 향하고 있습니다.
HTML 새니타이제이션과 trusted type 지원이 기본 탑재되어 크로스 사이트 스크립팅과 요청 위조를 겨냥합니다. 국제화는 메시지 번역과 형식화를 다루며 유니코드 ICU 문법을 포함합니다. 둘 다 프레임워크가 흡수한 관심사로, 그러지 않았다면 프로젝트마다 라이브러리를 고르는 결정이 되었을 항목들입니다.
문서가 안내하는 진입로는 로컬 툴체인에서 시작하지 않습니다. 대화형 StackBlitz 환경 덕분에 원할 때까지는 로컬 설정이 필요하지 않습니다. 프레임워크의 관습이 팀에 맞는지 가늠하는 단계에서, 이는 Node 버전 문제를 판단의 첫 한 시간에서 치워줍니다.
Angular 버전 지원은 무기한이 아니라 시한부이므로, 업그레이드는 선택이 아니라 일정에 넣는 작업입니다. 실무 순서는 CLI와 코어 패키지에 함께 ng update를 돌리고, 통상적인 파괴적 변경을 처리하는 자동화된 코드 변환에 기계적인 부분을 맡긴 뒤, 마이그레이션 스크립트가 없는 변경에 검토 시간을 배정하는 것입니다. v22 라인의 마이그레이션 명령은 ng update @angular/cli@^22 @angular/core@^22입니다.
특정 업그레이드가 얼마나 아플지는 두 가지가 정합니다. 첫째, 프로젝트가 애초에 지원되는 버전 위에 있는지 여부입니다. 지원이 끊긴 메이저를 여러 개 건너뛰면 한 번에 넘어가는 대신 마이그레이션을 순서대로 돌려야 합니다. 둘째, 폐기 예정 창에 들어간 API에 의존하는지 여부입니다. 그런 API는 메이저 경계에서 제거되기 때문입니다.
문서화된 경로는 셋이며, 선호가 아니라 모델 호출이 어디에 속하는지로 고릅니다. 서버 쪽 로직은 Genkit, 클라이언트 쪽 호출은 Firebase AI Logic, 그리고 Gemini API 직접 호출입니다. Genkit은 Node 기반 서버 같은 지원되는 서버 환경을 요구하므로, 실제로는 클라이언트 전용 빌드가 아니라 SSR을 갖춘 풀스택 Angular 애플리케이션을 뜻합니다.
세 경로 모두에 붙는 보안 규칙은 명확합니다. environments.ts처럼 클라이언트로 배포되는 파일에 API 키를 절대 두지 마십시오. 클라이언트 전용 애플리케이션은 모델 호출을 Firebase AI Logic이나 직접 통제하는 프록시로 우회시켜야 하고, 서버 쪽 연결은 비밀 관리자나 환경 변수에서 자격 증명을 읽어야 합니다.
Angular는 결정을 직접 내리기보다 물려받기를 택하는 팀에 맞습니다. 프레임워크가 라우팅 모델, 폼 모델, DI 컨테이너, 빌드 파이프라인을 제공하고 그것을 쓰기를 기대합니다. 규모가 크거나 인원이 도는 팀에게는 그 일관성이 곧 요점이고, 두 사람짜리 프로젝트에게는 격식처럼 읽힐 수 있습니다.
다음 조건에서는 잘 맞습니다.
다음 조건에서는 잘 맞지 않습니다.
Angular가 겨냥하는 것은 웹 플랫폼이며, 그 범위는 두루뭉술한 호환성 주장이 아니라 공개된 두 개의 표로 정의됩니다.
브라우저 지원은 손으로 관리하는 버전 목록이 아니라 Baseline의 "widely available" 집합을 기준으로 정의됩니다. 메이저마다 팀이 릴리스에 가까운 Baseline 날짜를 고르고, Chrome, Edge, Firefox, Safari에서 선택한 날짜로부터 30개월 이내에 나온 브라우저를 지원하며 웹 사용자의 약 95%를 목표로 삼습니다. v22의 Baseline 날짜는 2026-05-07입니다.
툴체인 표는 더 엄격해서 업그레이드 도중이 아니라 그 전에 확인할 값어치가 있습니다. v22는 TypeScript를 6.0 라인으로 고정하고 Node 22.22.3, 24.15.0 또는 26.0.0을 허용하며, v21은 TypeScript 5.9 라인에 있습니다. 한 프로젝트 안에서 @angular/core와 CLI의 버전은 일치해야 합니다. v7 이후 둘이 메이저 번호를 공유하기 때문입니다.
사전 릴리스 라인의 문서는 next.angular.dev에서 따로 제공되므로, 미출시 기능을 살펴보려고 안정판 문서를 읽으며 무엇이 달라졌는지 추측할 필요가 없습니다.
가격표도, 좌석 수도, 유료 등급도 없습니다. 프레임워크는 MIT 라이선스로 배포되고 모든 패키지는 공개 npm 레지스트리에서 설치됩니다. 저장소 라이선스의 저작권 표기는 2010-2026 Google LLC이고, @angular/core의 npm 메타데이터도 같은 MIT 선언을 담고 있으며 현재 공개 릴리스는 22.1.5입니다.
이 라이선스가 허용하는 범위는 넓습니다. MIT는 상업적 사용, 수정, 배포, 사적 사용을 허용하며 조건은 저작권과 라이선스 고지를 유지하는 것으로 한정되고, 소프트웨어는 보증 없이 제공됩니다. 실무적으로는 개발자당 비용도, 사용량 계측도 없으며, 이를 기반으로 만든 제품을 출시하기 전에 협상할 상업 라이선스도 없습니다.
남는 비용은 라이선스가 아니라 유지보수입니다. 메이저 버전이 공개된 일정에 따라 지원을 벗어나므로, 실제 예산 항목은 연간 업그레이드에 드는 엔지니어링 시간과 빌드·테스트 스위트가 소모하는 CI 용량입니다. 총소유비용을 따지는 팀이라면 라이선스가 공짜라고 해서 의존성도 공짜라고 가정할 것이 아니라 그 주기에 값을 매겨야 합니다.
각 메이저 릴리스는 일반적으로 24개월 동안 지원되며, 12개월의 활성 업데이트와 오직 치명적·보안 수정만 담는 12개월의 장기 지원으로 나뉩니다. 이는 지침이 아니라 단단한 경계입니다. 이 글을 쓰는 시점에 v2부터 v19까지는 전부 지원이 끝났고, 활성 지원에는 v22만 남아 있으며 v21과 v20이 LTS에 있습니다.
LTS 단계는 "아직 지원됨"이라는 표현이 시사하는 것보다 좁습니다. 새로 확인된 보안 취약점이거나, LTS 시작 이후 새 브라우저 버전 같은 제3자 변경으로 생긴 회귀일 때에만 수정이 검토됩니다. LTS 기간에 발견된 일반 버그는 범위 밖입니다.
폐기는 자체 시계로 움직입니다. 폐기된 API는 최소한 다음 메이저 릴리스까지, 즉 최소 12개월은 살아남고 그 뒤에야 메이저 경계에서 제거 후보가 됩니다. 그리고 그 기간 동안에는 LTS 규칙으로 관리되므로, 릴리스 전체가 활성 지원 중이더라도 치명적·보안 수정만 받습니다.
v22가 그 작업의 형태를 보여줍니다. 이 릴리스에 대한 독립 보도는 예전 build-angular와 ngtools 패키지를 포함한 Webpack 지원이 폐기되었고, 이 릴리스가 TypeScript 6을 요구하며 Node 20을 버렸고, 마이그레이션이 제공되지 않아 수동 처리가 필요한 항목이 둘 있다고 전합니다. 파급이 가장 넓은 변경은 구조가 아니라 동작 쪽입니다. OnPush가 컴포넌트의 기본 변경 감지 전략이 되었고 이전 기본값은 Eager로 이름이 바뀌었으며, 스키매틱이 기존 컴포넌트에 명시 표기를 붙여 보완합니다.
하위 호환성은 검증되지만 절대적이지는 않습니다. 변경은 단위·통합 테스트, 공개 API 타입 정의 비교, 구글 자체 의존 애플리케이션의 테스트 스위트를 거칩니다. 그럼에도 정책은 치명적 보안 패치 같은 예외적인 경우 수정이 하위 호환을 깨는 변경을 동반할 수 있다고 유보를 남겨둡니다.
작지만 분명히 밝힐 경계가 둘 더 있습니다. 폴리필에는 문서화된 천장이 있습니다. 오래되고 느린 브라우저를 현대적이고 빠른 브라우저로 바꿔주지 못하며, 권장 집합은 완전한 Angular 애플리케이션을 돌리는 데 필요한 만큼만 덮으므로 그 밖의 기능은 추가로 채워야 할 수 있습니다. 공식 정책 페이지는 전체 주기를 12개월마다 메이저 릴리스 하나, 메이저마다 마이너 릴리스 4~6개, 패치와 사전 릴리스 빌드는 거의 매주로 규정합니다. 다만 메이저 간격 자체를 두고 공개된 자료들이 서로 다르게 말합니다. 한쪽은 12개월 주기를, 다른 쪽은 여전히 6개월 주기를 서술하며, 공식 정책 페이지는 더 긴 주기가 v22부터 시작되었다고 덧붙입니다. 여러 해에 걸친 업그레이드 예산을 세우는 쪽이라면 2차 보도가 아니라 정책 페이지로 현재 주기를 확인해야 합니다.
가능합니다. 프레임워크는 MIT 라이선스로 배포되고 모든 패키지는 공개 npm 레지스트리에서 설치되며, 이 라이선스는 저작권과 라이선스 고지를 유지하는 조건으로 상업적 사용, 수정, 배포를 허용합니다. 소프트웨어는 보증 없이 제공됩니다.
일반적인 메이저 기준 총 24개월입니다. 12개월의 활성 업데이트와 오직 치명적·보안 수정만 담는 12개월의 장기 지원으로 나뉘며, 그 뒤에는 지원에서 완전히 빠집니다.
v22가 활성 지원이고 v21과 v20이 LTS입니다. v2부터 v19까지는 전부 지원이 끝났습니다.
v22는 TypeScript를 6.0 라인으로 고정하고 Node 22.22.3, 24.15.0 또는 26.0.0을 허용합니다. 버전 표는 릴리스마다 공개되며 업그레이드 도중이 아니라 시작 전에 확인하는 편이 낫습니다.
상당 부분을 CLI가 짊어집니다. ng update는 통상적인 파괴적 변경을 처리하는 자동화된 코드 변환을 실행합니다. 다만 마이그레이션 스크립트가 없는 동작 변경은 덮지 못합니다. v22에서는 마이그레이션이 제공되지 않은 라우팅 기본값과 Webpack 지원 폐기가 여기 해당했습니다.
지원은 Baseline의 "widely available" 정의를 따릅니다. Chrome, Edge, Firefox, Safari에서 선택한 날짜로부터 30개월 이내에 나온 브라우저를 대상으로 하며 웹 사용자의 약 95%를 겨냥합니다. 메이저마다 릴리스에 가까운 Baseline 날짜를 각자 고릅니다.
평가 단계라면 가능합니다. 대화형 StackBlitz 환경 덕분에 원할 때까지는 로컬 설정이 필요하지 않으며, 이것이 브라우저 내 튜토리얼의 공식 출발점입니다.
호출이 어디에 속하는지로 경로를 고르십시오. 서버 쪽 로직은 Genkit, 클라이언트 쪽 호출은 Firebase AI Logic, 그리고 Gemini API 직접 호출입니다. 그리고 자격 증명 규칙을 지키십시오. environments.ts처럼 클라이언트로 배포되는 파일에 API 키를 절대 두지 마십시오.