개발자

앵귤러, Ng모듈 옵션화 검토…“개발자 경험에 부정적”

Paul Krill | InfoWorld 2021.11.01
타입스크립트 기반 웹 애플리케이션 프레임워크 앵귤러(Angular) 개발팀이 앵귤러의 기본 메커니즘인 Ng모듈(NgModules)을 옵션으로 전환하는 방안을 검토하고 있다. 앵귤러를 간편한 재사용 모델로 개선해 개발자 경험 품질을 높이기 위해서다.
 
ⓒ Getty Images Bank

이번 RFC 제안은 ‘독립형 컴포넌트, 디렉티브 및 파이프 - Ng모듈 옵션으로 만들기(Standalone components, directives and pipes - making Angular’s NGModules optional)’라는 제목으로 깃허브에 게재됐다. 현재 앵귤러는 사용자 커뮤니티와 함께 설계 타당성을 검토하고 의견을 취합하고 있으며, 비 프로덕션 레디 프로토타입(non-production-ready prototype)으로 테스트할 수 있다. 의견 취합은 오는 8일까지 진행된다.

Ng모듈은 기능을 하나로 묶어 프레임워크 종속성을 관리하는 앵귤러의 핵심 개념이다. 예컨대 하나의 컴포넌트가 다른 컴포넌트, 디렉티브, 파이프, 혹은 서비스를 활용해야 할 때, 종속성을 직접 참조하는 대신 필요한 요소가 포함된 Ng모듈을 불러온다. 때문에 개발자는 “Hello World”를 모니터에 띄우는 가장 간단한 프로그래밍을 할 때도 반드시 Ng모듈을 생성해야 한다.

RFC 제안자는 Ng모듈이 개념적으로 앵귤러의 중심이 되면 개발자 경험에 부정적인 영향을 미친다고 주장했다. 이유는 다음과 같다.
 
  • 컴포넌트 작성은 클래스나 템플릿 코딩보다 어렵다.
  • 로딩이나 렌더링과 관련된 API가 불필요하게 복잡하며 오용하기 쉽다.
  • 컴포넌트 코드 읽기로는 컴포넌트 행동을 충분히 이해하기 어렵다.
  • 앵귤러 도구는 Ng모듈 문맥에 ‘내재된’ 컴포넌트 종속성을 반드시 다뤄야 한다.

RFC가 제안하는 것은 컴포넌트, 디렉티브, 파이프가 앵귤러에서 핵심적인 역할을 하도록 독립성을 부여하고, 안전하게 직접 사용할 수 있는 방향으로 개선하는 방법이다. 앵귤러의 ‘멘털 모델(mental model)’을 간소화해 새로운 API가 정밀한 지연 로딩용 API와 같은 다른 컴포넌트와 디렉티브를 자유롭게 사용할 수 있고, 코드를 효율적으로 제작하는 도구로 개선하는 것이다. 앵귤러를 사용하기 간편하고, 추론하기 용이하며, 장황하지 않고, 컴파일이 빠른 플랫폼으로 만드는 것이 RFC 제안 목적이다.

RFC 제안이 적용된다고 해도 Ng모듈이 즉시 없어지는 것은 아니다. 전형적인 개발 작업에서는 Ng모듈을 선택적으로 사용할 수 있다. 앵귤러 개발팀이 어느 시점에 Ng모듈 제거를 고민할 수도 있지만, 그 전까지는 Ng모듈을 계속해서 생성하고, 사용할 수 있다. 

한편 앵귤러는 계속해서 업데이트되고 있다. 오는 3일에는 차세대 컴파일 및 렌더링 엔진 아이비(Ivy)를 전면 지원하는 앵귤러 13이 출시될 예정이다. 앵귤러 12도 기존 뷰 엔진을 지원하면서 아이비에 집중하고 있다. editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.