주요 내용
- Angular 17은 이미 지원 종료(EOL) 상태이며, 더 이상 Angular 팀으로부터 보안 패치, 버그 수정 또는 유지보수 업데이트를 제공받지 않습니다.
- EOL(지원 종료) 관련 위험은 시간이 지남에 따라 점차 커지는데, 여기에는 패치되지 않은 취약점, 규정 준수 문제, 최신 종속성 및 도구와의 호환성 저하 등이 포함됩니다.
- TuxCare의 ‘무기한 라이프사이클 지원(ELS) ’은 지속적인 취약점 패치를 통해 Angular 17 애플리케이션의 보안과 규정 준수를 보장합니다.
아직도 프로덕션 환경에서 Angular 17을 운영 중인 엔지니어링 팀의 경우, 안전망은 이미 사라진 상태입니다. 구글은 2025년 5월 15일 지원을 종료하며 17.x 계열에 대한 보안 패치, 버그 수정 및 유지보수를 중단했고, 그 이후 공개된 모든 CVE에 대해서는 공식적인 수정 조치가 제공되지 않습니다.
중요한 점은 아무것도 하지 않는 것—정말 아무것도 하지 않는 것—이 안정적인 상태가 아니라는 것입니다. 지원이 중단된 버전이 계획 없이 운영 환경에 머무는 기간이 길어질수록, 그와 관련된 위험을 관리하기가 점점 더 어려워집니다.
이 글에서는 Angular 릴리스 라이프사이클이 어떻게 작동하는지, 계획보다 오래 17.x 버전을 사용할 경우 발생할 수 있는 위험 요소, 그리고 적절한 마이그레이션 계획 수립 및 자원 확보가 진행되는 동안 보안을 유지하는 방법을 포함하여 현실적으로 고려할 수 있는 대안들에 대해 다룹니다.
Angular 17의 EOL이란 무엇을 의미하나요?
Angular 17의 EOL(지원 종료)은 Angular 팀이 17.x 릴리스 라인에 대해 제공하는 모든 보안 패치, 버그 수정 및 유지보수 업데이트가 종료됨을 의미합니다. 이 버전은 2025년 5월 15일에 공식적으로 지원이 종료되었습니다. 만약 귀하의 애플리케이션이 여전히 이 버전으로 실행 중이라면, 더 이상 업스트림 보안 지원을 받을 수 없습니다.
그렇다고 해서 현재 해당 취약점이 적극적으로 악용되고 있다는 뜻은 아닙니다. 다만, Angular 17이나 그 관리 대상 종속성에 영향을 미치는 새로 발견된 CVE는 구글에서 해결해 주지 않을 것이라는 의미입니다. 이 위험은 기간에 제한이 없으며 시간이 지남에 따라 커질 것입니다.
아직 17.x 버전을 사용 중인 팀을 위한 간단한 답변은 이렇습니다. 마이그레이션 계획을 수립하거나, 그 동안 애플리케이션에 패치를 계속 적용할 방법을 마련해야 합니다.
Angular 릴리스 주기 및 지원 종료일
구글은 약 6개월마다 Angular 프레임워크의 새로운 주요 버전을 출시합니다. 보통 1년에 두 번, 5월과 11월에 각각 새로운 버전이 출시됩니다. 각 메이저 릴리스는 총 18개월 동안 지원을 받습니다. 이 지원 기간은 두 단계로 나뉩니다. 첫 6개월은 ‘활성 지원(active support)’ 기간으로, 이 기간 동안 프레임워크에 정기적인 업데이트, 버그 수정 및 새로운 기능이 제공됩니다. 그 후 12개월은 ‘장기 지원(LTS)’ 기간으로, 이 기간에는 중대한 버그와 보안 취약점만 패치됩니다. LTS가 종료되면 더 이상 어떠한 종류의 공식 지원도 제공되지 않습니다.
Angular 17의 EOL이 해당 일정에 있어 어떤 위치에 있는지 파악해 두는 것이 좋습니다. 2023년 11월에 출시된 이 버전은 2024년 5월에 활성 지원 기간이 종료되었으며, 2025년 5월 15일에 LTS 단계가 종료되었습니다.
아래 표는 최근 Angular 버전별 현재 지원 현황을 보여줍니다.
참고: Angular의 릴리스 주기는 매우 빠릅니다. 각 버전의 지원 기간은 18개월에 불과하며, 2026년 6월 기준으로 Angular 18과 Angular 19는 이미 지원 종료(EOL) 단계에 접어들었습니다. 현재 지원되는 버전은 v20, v21, v22뿐입니다. 아직 v19 이후 버전으로 현대화하지 않았다면, 귀하의 애플리케이션은 이미 지원 대상에서 제외된 상태입니다.
Angular 17의 지원 종료(EOL)가 귀사의 비즈니스에 미치는 위험
지원되지 않는 프레임워크를 계속 사용하는 것은 단순히 정적인 위험이 아닙니다. 시간이 지날수록 위험이 누적되며, 가장 원치 않는 순간에 문제가 드러나는 경향이 있습니다. Angular 17에 대한 패치 전략이 마련되지 않은 채로 운영 환경에서 사용되는 기간이 길어질수록, 애플리케이션이 직면한 문제와 공식 채널을 통해 실제로 취할 수 있는 조치 사이의 격차는 더욱 벌어지게 됩니다.
패치되지 않은 취약점에 대한 노출
이것이 가장 시급한 문제입니다. Angular 팀의 관점에서 Angular 17은 이제 개발이 동결된 상태입니다. 즉, 17.x 계열에는 더 이상 업스트림 수정 사항이 적용되지 않습니다. 반면, RxJS나 zone.js와 같은 직접적인 의존성을 비롯해 이에 수반되는 간접적인 패키지들을 포함한 관련 스택은 계속 발전하고 있어, 호환성 및 보안 격차가 점점 더 벌어지고 있습니다. 2025년 5월 이후 해당 패키지에 대해 공개되는 모든 CVE에 대해서는 17.x 버전에 대한 업스트림 수정 사항이 제공되지 않습니다.
이는 공격자들이 지원 이 종료된(EOL) 소프트웨어를 무시하지 않기 때문에 중요한 문제입니다. 오히려 지원이 종료된 버전의 취약점이 공개될 경우, 공급업체의 수정 패치가 절대 제공되지 않을 것이기 때문에 오히려 더 매력적인 표적이 됩니다. 타사 패치 솔루션을 갖추지 못한 팀들은 보안 취약점을 감수할 것인지, 내부적으로 수정 작업을 시도할 것인지, 아니면 최악의 상황에서 서둘러 업그레이드를 진행할 것인지 선택해야만 합니다.
2026년 초 현재, CVE-2026-32635, CVE-2026-27970, CVE-2026-22610과 같은 주요 XSS 취약점이 발견되었습니다. 최신 버전에 대해서는 패치가 배포되었으나, Angular 17은 여전히 공식적으로 패치가 적용되지 않은 상태라 공격자들에게 공격의 여지를 남기고 있습니다.
또한 Angular 보안 모범 사례에 대한 당사의 종합 가이드를 살펴보시면, 프레임워크의 일반적인 취약점을 완화하는 방법을 알아보실 수 있습니다.
규정 준수 및 감사 실패
PCI DSS, SOC 2, ISO 27001, HIPAA 등 어떠한 규제 프레임워크 하에서 운영되는 팀이든, 지원 종료(EOL) 소프트웨어를 사용하면 취약점이 악용되었는지 여부와 무관하게 규정 준수 문제가 발생합니다. 2026년부터 PCI DSS 4.0 요구사항은 전면적으로 의무화되며, 요구사항 6.3.3은 모든 시스템 구성 요소가 알려진 취약점으로부터 보호되어야 한다고 엄격히 규정하고 있습니다.
실질적인 결과로, 2025년 및 2026년 CVE에 대한 패치가 부족하다는 이유로 Angular 17이 규정 준수 감사에서 자동 위반 사항으로 지적될 수 있습니다. 이러한 지적 사항에는 CVE에 대한 시정 조치가 필요하며, “조만간 업그레이드할 계획입니다”라는 답변만으로는 감사관의 일정 요건을 충족시키기 어려운 경우가 많습니다.
의존성과 생태계 변화
npm 생태계는 개발팀이 따라잡을 때까지 기다려주지 않습니다. 라이브러리 유지보수자들은 다음 단계로 넘어가고, Angular 17과의 호환성은 조용히 중단됩니다. 게다가 대부분의 v17 프로덕션 앱이 의존하는 런타임인 Node.js 18 역시 2025년 4월에 지원 종료(EOL) 시점에 도달한다는 사실이 상황을 더욱 악화시킵니다. 현재 빌드 도구, 인증 라이브러리, 심지어 클라우드 네이티브 러너까지 대부분 Node 20이나 22 버전으로 전환되었기 때문에, Angular 17은 “이중 EOL”의 덫에 갇힌 상태입니다.
이는 보안 위험에 더해 또 다른 문제를 야기합니다. 핵심 애플리케이션이 안정적이라 하더라도, 주변 생태계는 다른 방향으로 흘러가기 시작합니다. 처음에는 사소한 호환성 보완책으로 시작된 것이, 결국에는 유지보수 부담이 되어 마이그레이션을 필요 이상으로 어렵게 만듭니다.
증가하는 내부 유지보수 비용
업스트림 패치가 없어도 해당 작업이 사라지는 것은 아닙니다. 단지 작업 부담이 귀사의 팀으로 넘어갈 뿐입니다. 결국 보안 엔지니어들은 CVE 피드를 수동으로 모니터링하고, Angular 17 코드베이스에 대한 취약점을 분류하며, 경우에 따라 직접 백포트를 시도해야 합니다. 이는 실제 제품 개발 업무에 투입되어야 할 시간과 전문성을 빼앗는 결과로 이어집니다.
또한 비용도 예측하기 어려운 경향이 있습니다. 널리 사용되는 종속성에서 치명적인 제로데이 취약점이 발견되면, 엔지니어링 인력이 수 주간을 소모하는 긴급 대응을 해야 할 수 있으며, 그 결과가 완벽하게 해결될 것이라는 보장도 없습니다. 계획된 마이그레이션은 사후 대응형 마이그레이션에 비해 시간, 비용, 업무 차질 측면에서 거의 항상 비용이 적게 듭니다.
Angular 17의 지원 종료(EOL) 이후에는 어떤 선택지가 있을까요?
Angular 버전이 EOL(지원 종료) 단계에 도달하면, 구체적인 계획 없이 계속 사용하는 것이 문제의 시작입니다. 최선의 대응 방안은 애플리케이션의 복잡성, 팀의 현재 역량, 그리고 보안이나 규정 준수 문제로 인해 결정을 내려야 할 시점까지 현실적으로 얼마나 시간이 남아 있는지에 따라 달라집니다.
그런 점에서 볼 때, 현실적인 세 가지 선택지는 다음과 같습니다.
보안 지원 기간 연장
즉시 업그레이드를 진행할 수 없는 팀을 위해 TuxCare는 지원이 종료된 Angular 버전의 보안 취약점을 보완할 수 있는 실용적이고 비용 효율적인 방법을 제공합니다. 애플리케이션은 기존대로 계속 실행되지만, 공급업체가 취약점 패치 제공을 중단한 후에도 패치가 지속적으로 제공됩니다.
TuxCare의 Angular용 ‘무한 라이프사이클 지원(ELS)’은 v4부터 v19까지의 버전을 지원하며, 귀사의 팀이 필요로 하는 기간 동안 지속적으로 CVE 패치를 제공합니다. 강제 마이그레이션 일정이 없으며, 코드 변경도 필요하지 않습니다.
ELS는 향후 업그레이드를 막지 않습니다. 대신 팀이 마이그레이션을 적절히 계획하고 실행할 수 있는 여지를 제공하며, 그 과정에서 애플리케이션의 보안과 규정 준수를 지속적으로 보장합니다. ELS는 마이그레이션을 적절히 계획하고 실행할 시간을 확보해 주며, 그 과정에서 애플리케이션의 보안과 규정 준수를 유지해 줍니다.
CVE 트래커를 방문하여 Angular 17 및 기타 지원 종료(EOL) 버전에 영향을 미치는 최근 취약점을 확인하고, TuxCare에서 해당 패치를 제공하는지 알아보세요.
지원되는 Angular 릴리스로 업그레이드하기
대부분의 팀에게 올바른 장기적 해결책이긴 하지만, 스프린트에 포함시키기 전에 신중하게 범위를 파악해야 할 사항입니다. Angular 17에서 최신 버전(v22)으로 업그레이드하는 것은 단순한 버전 업그레이드가 아닙니다. 이는 5개의 주요 버전을 한 번에 건너뛰는 것으로, 각 버전마다 호환성 문제, 사용 중단된 API, 의존성 요구 사항이 존재합니다. 이를 단순한 업데이트로 여기는 팀들은 작업 도중에야 실제 작업 범위를 깨닫게 되는 경우가 많은데, 이는 매우 곤란한 상황에 처하게 되는 것입니다.
현실적인 업그레이드 과정에는 현재 의존성 트리의 호환성을 점검하고, 더 이상 사용되지 않는 API에 의존하는 구성 요소를 파악하며, 회귀 테스트를 위한 전용 QA 주기를 할당하고, 일부 타사 라이브러리는 완전히 교체해야 할 수도 있다는 점을 수용하는 것이 포함됩니다. 이 중 어느 것도 극복할 수 없는 문제는 아니지만, 이를 깔끔하게 수행하려면 시간과 집중적인 엔지니어링 노력이 필요합니다.
지원 없이 계속하기
일부 팀은 이 글을 읽고도 여전히 출시를 미루기로 결정할 것입니다. 이는 우리가 주저 없이 인정해야 할 현실입니다. 하지만 그러한 결정이 실제로 어떤 의미를 지니는지 명확히 하는 것이 중요합니다. 패치 전략 없이 지원이 중단된 Angular 17을 계속 사용하는 한, 매월 CVE 취약점이 누적될 뿐 이를 해결할 방법은 없습니다. 생태계는 계속해서 표류하고 있습니다.
규정 준수 관련 문제점은 시간이 지나도 설명하기가 더 쉬워지지는 않습니다. 게다가 그 사이에 중대한 취약점이 발견된다면, 원래 계획대로라면 3개월이 걸렸을 업그레이드를 갑자기 며칠 안에 완료해야 하는 상황이 벌어지는데, 이런 압박 속에서 어쩔 수 없이 여러 절차를 생략하게 되기 마련입니다.
지연은 팀이 내리는 선택이지만, 대가가 적게 드는 경우는 거의 없다.
업그레이드 대 연장 지원: 어떤 것이 나에게 적합할까?
결정은 대개 두 가지 요소에 따라 결정됩니다. 바로 현재 보유하고 있는 엔지니어링 역량과, 이미 받고 있는 규정 준수 또는 보안 관련 압박의 정도입니다. 어느 한쪽이 절대적으로 더 낫다고 할 수는 없습니다. 두 가지 모두 서로 다른 시점에 서로 다른 문제를 해결하기 때문이며, 많은 팀의 경우 결국 두 가지를 병행하는 방식으로 해결하게 됩니다.
아래 표는 주요 차이점을 정리한 것입니다:
|
요인 |
지금 업그레이드하기 |
무제한 라이프사이클 지원(ELS) |
|
보안 |
진행 중인 공급업체 수정 사항 |
이전 버전으로 역이식된 보안 패치 |
|
노력 |
높음 (코드 변경, 테스트) |
낮음 (코드 변경 불필요) |
|
실행할 시간입니다 |
몇 주에서 몇 달 |
메이저 버전 업그레이드보다 빠릅니다 |
|
규정 준수 지원 |
예 |
예 |
|
전환 기간 중의 위험 |
더 높음 |
아래로 |
|
비용 현황 |
범위가 광범위하고 예측하기 어려움 |
예측 가능한 구독 모델 |
두 옵션 모두 위험 노출을 줄여주지만, 작동 방식은 다릅니다. 업그레이드는 지원되는 업스트림 릴리스로 전환하는 반면, ELS는 사용자가 자신의 일정에 맞춰 전환을 계획하는 동안 현재 실행 중인 버전에 패치를 적용하고 규정 준수를 유지해 줍니다. 2026년에 v17에서 v22로의 업그레이드는 더 이상 단순한 “유지보수 작업”이 아닙니다. 이는 수개월에 걸친 현대화 프로젝트로, 팀이 zoneless 및 OnPush 기본값, Signals 기반 반응성 모델을 포함한 최신 Angular 패턴과 API를 채택하도록 이끕니다.
현재 감사 압박을 받고 있는 팀의 경우, 대개 ‘일정’ 항목이 결정적인 요인이 됩니다. 6주 후에 규정 준수 심사가 예정되어 있다면, 3개월이 걸리는 마이그레이션은 당면한 문제를 해결해 주지 못하지만, 지원 기간 연장은 해결책이 됩니다. 마이그레이션은 그 후에도 진행할 수 있으며, 이 경우 생산 환경의 안정성을 위협할 수 있는 성급한 전환 대신, 적절한 계획 수립과 테스트가 가능한 일정에 따라 진행할 수 있습니다.
TuxCare를 통해 EOL 이후에도 Angular 17의 보안을 유지하세요
EOL(지원 종료) 상황에서 가장 답답한 점은 당장 문제가 발생하지 않는다는 것입니다. 애플리케이션은 계속 실행되므로, 이 문제를 백로그의 뒷순위로 미루기 쉽습니다. 하지만 바로 그 시점부터 보안 취약점이 서서히 쌓이기 시작합니다. 새로운 CVE에 대한 패치가 적용되지 않고, 규정 준수 감사에서 더 이상 지원되지 않는 종속성이 문제로 지적되기 시작하며, 결국 어쩔 수 없이 조치를 취해야 할 상황이 닥쳤을 때는 자신이 정한 일정에 따라 차분히 대처하기보다는 압박감 속에서 문제를 해결해야 하는 처지가 됩니다.
Angular 17의 지원 종료 이후에도 이를 계속 사용한다고 해서 보안이 노출되는 것은 아닙니다. TuxCare의 Endless Lifecycle Support(ELS) 는 Angular v4부터 v19까지 지속적인 취약점 패치를 제공합니다. 코드 변경이나 강제 마이그레이션 일정이 없이 기존 애플리케이션의 안정성을 유지하면서, 지원되는 릴리스와 동등한 수준의 보안을 누릴 수 있습니다.
더 이상 이러한 보안 위험을 감수하고 싶지 않다면, 앱을 보호하는 데는 마이그레이션이 아닌 단 몇 분이면 충분합니다. TuxCare의 ELS for Angular를 살펴보고, 코드 재작성이나 강압적인 일정 없이도 오늘 바로 지속적인 패치 지원을 확보하세요.




