Angular를 사용한 프로젝트를 개발하기 전 구조를 잡고있을 때 발생한 의문에 대한 글
Q. NgModule(이하 모듈)은 어느 단위로 분리하여 관리하는 것이 맞는가?
모듈의 개념적 분리
약속되어 있는 것은 아니다. 내가 편하게 구분하기 위해 사용하는 개념 분리이다.
루트 모듈
- Angular가 최초로 부트스트랩 되면서 실행되는 최초로 불러지는 모듈.
핵심 모듈
- 애플리케이션 전역에 공통으로 사용되는 구성요소의 집합
- 루트 모듈에 선언하여 싱글턴으로 사용한다.
적용대상
- 애플리케이션 전역으로 자주 사용되고 생명주기가 애플리케이션 실행 내내 유지되어야 하는 서비스들
- ex) 소켓 통신 모듈, 인증 모듈, 데이터베이스 테이블 모듈
공유 모듈
- 애플리케이션 전역에서 공통적으로 자주 사용하는 구성요소로 구성
- ex) 자주 사용하는 UI 컴포넌트(사이드바, 헤더), 디렉티브, 파이프로 구성한다.
기능 모듈
- 하나 이상의 컴포넌트 및 서비스로 구성되어 공통된 속성의 역할을 처리하는 구성요소로 구성
- 페이지 단위로 구성 하거나 규모가 큰 하나의 기능의 묶음 단위 개념
모듈을 분리해야하는 이유
루트 모듈에 모든 기능이 몰려있으면 우선 관리적 측면에서 효율이 떨어진다.
그리고 비동기 모듈 로딩기능(lazy Loading)을 사용하지 못한다.
위에서 얘기한 내용들을 그림으로 정리했다. 위와 같은 개념으로 사용될 것이라 생각한다.
앞으로 문제가 없으면 Angular 프로젝트는 위와 같은 구조로 진행해야 겠다.
참조 :
'Study > Angular' 카테고리의 다른 글
[개념] Angular Component (0) | 2020.09.09 |
---|---|
[개념] Angular NgModule (0) | 2020.09.09 |
[개념] Angular 프레임 워크 컨셉 (0) | 2020.09.08 |