-
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: 요청을 검증 및 응답
- Service: 비즈니스 로직 처리 밎 비즈니스 에러 발생
- Repository: DB 접근
Service
레이어에선 외부 프로토콜의 영향을 받지 않기 위해 BaseError(erros/base.error.ts)를 상속받는 비즈니스 에러를 발생합니다.
해당 비즈니스 에러를 ErrorMiddleware(middlewares/error.middleware.ts)에서 분기하여 적절한 HTTP 오류를 응답합니다.