견고한 node.js 프로젝트 설계하기 를 읽고 난 후, 3-layer Architecture 를 Express REST api 에 적용해보기
3-tier 아키텍처가 물리적인 구분이라면, 3-layer 아키텍처는 논리적인 구분이다.
- Presentation Layer(Route API Controller) : Route API 를 통해 HTTP 통신(req,res)을 담당한다.
- Service(Business Logic) Layer : 비즈니스 로직을 담당한다.
- Data Access Layer : DB 모델
각각의 레이어에서 다른 레이어를 호출함으로써 소프트웨어가 구성된다.
src
│ app.js # 엔트리 파일
└───api # Presentation Layer (Express app 의 모든 route controllers)
└───config # 환경변수
└───loaders # 시작 프로세스(Express, mongoose ..) loader
└───models # Data Access Layer (데이터베이스 모델)
└───services # Service Layer (비즈니스 로직 작성)
└───subscribers # 비동기 작업에 대한 이벤트 핸들러