본문 바로가기
Study/Angular

[정리] Angular Module 역할적 개념으로 모듈 분리

by JSIM_DEV 2020. 9. 21.

Angular를 사용한 프로젝트를 개발하기 전 구조를 잡고있을 때 발생한 의문에 대한 글

 

Q. NgModule(이하 모듈)은 어느 단위로 분리하여 관리하는 것이 맞는가?

 

 

모듈의 개념적 분리

약속되어 있는 것은 아니다. 내가 편하게 구분하기 위해 사용하는 개념 분리이다. 

 

루트 모듈

- Angular가 최초로 부트스트랩 되면서 실행되는 최초로 불러지는 모듈. 

 

 

핵심 모듈

- 애플리케이션 전역에 공통으로 사용되는 구성요소의 집합

- 루트 모듈에 선언하여 싱글턴으로 사용한다.

 

적용대상

- 애플리케이션 전역으로 자주 사용되고 생명주기가 애플리케이션 실행 내내 유지되어야 하는 서비스들

- ex) 소켓 통신 모듈, 인증 모듈, 데이터베이스 테이블 모듈

 

 

공유 모듈

- 애플리케이션 전역에서 공통적으로 자주 사용하는 구성요소로 구성

- ex) 자주 사용하는 UI 컴포넌트(사이드바, 헤더), 디렉티브, 파이프로 구성한다.

 

 

 

기능 모듈

- 하나 이상의 컴포넌트 및 서비스로 구성되어 공통된 속성의 역할을 처리하는 구성요소로 구성

- 페이지 단위로 구성 하거나 규모가 큰 하나의 기능의 묶음 단위 개념

 

 

 

 

모듈을 분리해야하는 이유

루트 모듈에 모든 기능이 몰려있으면 우선 관리적 측면에서 효율이 떨어진다.
그리고 비동기 모듈 로딩기능(lazy Loading)을 사용하지 못한다.

 

 

프로젝트 모듈 구성 맵

위에서 얘기한 내용들을 그림으로 정리했다. 위와 같은 개념으로 사용될 것이라 생각한다.

앞으로 문제가 없으면 Angular 프로젝트는 위와 같은 구조로 진행해야 겠다.

 

 

 

 

참조 :

freestrokes.tistory.com/97 

m.mkexdev.net/380

 

'Study > Angular' 카테고리의 다른 글

[개념] Angular Component  (0) 2020.09.09
[개념] Angular NgModule  (0) 2020.09.09
[개념] Angular 프레임 워크 컨셉  (0) 2020.09.08