목차
1.
폴더 구조
src/
business | 비즈니스 로직들을 모아두는 디렉토리 ex) User, Post 등 |
common | 공통 로직들을 모아두는 디렉토리 ex) 응답 객체 관련 상수, 미들웨어 등 |
config | 설정 관련 로직들을 모아두는 디렉토리 ex) redis, 환경변수 등 |
util | 비즈니스 로직에서 필요한 공통 로직들을 모아두는 디렉토리 ex) getToday(), MySQLConnector() |
src/business/
•
프로젝트마다 디렉토리 구조는 차이가 발생
api | Controller 계층, Controller, Routes를 모아두는 곳, 요청, 응답에 관한 역할만 수행 |
application | Service 계층, 핵심 Business 로직들을 작성하는 곳 |
model | Payload, Domain 등, 서비스, 컨트롤러 계층에서 필요한 객체들을 모아두는 곳 |
repository | Data Access 계층, DB, redis 등 Data 접근 시에 사용하는 로직들 |
> Query | DataBase CRUD Query 모아두는 곳 |
response | API 응답 객체들을 모아두는 곳 |
> exception | Service 계층에서 발생하는 도메인 관련 예외처리 내용들을 모아두는 곳 |
•
관심사 분리 원칙을 적용하여 분리, 논리적 레이어 단위로 수평 계층으로 분리하였으며 이로인해 3계층 설계를 도입하였음
◦
일반적인 3계층 설계
▪
Controller - Service Layer - Data Access Layer
◦
node.js 환경을 고려하여 적용했을 때
▪
Express Route Controller - Service Class - Mongoose ODM
•