////
Search
Duplicate
🎆

[B-001-PR] 프로젝트 구조 컨벤션

목차

폴더 구조

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