-
Notifications
You must be signed in to change notification settings - Fork 0
백엔드 구조
최진우 edited this page Aug 6, 2021
·
3 revisions
📦 src
├─ config # 설정 파일 (환경변수)
├─ controllers
├─ database # DB Connect
├─ entities
├─ enums
├─ errors # 비즈니스 에러
├─ lib
├─ middlewares
├─ repositories
├─ request # DTO
├─ routers
├─ services
├─ third-party # 외부 API
├─ types
└─ utils
Controller, Service, Repository
구조로 각각의 역할은 다음과 같습니다
-
Controller
- 요청을 검증
- HTTP 응답
-
Service
- 비즈니스 로직 처리
- 예상 가능한 비즈니스 에러 발생
-
Repository
- DB 접근
Service
레이어에선 외부 프로토콜의 영향을 받지 않기 위해 BaseError(erros/base.error.ts)를 상속받는 비즈니스 에러를 발생합니다.
해당 비즈니스 에러를 ErrorMiddleware(middlewares/error.middleware.ts)에서 분기하여 적절한 HTTP 오류를 응답합니다.