Skip to content

백엔드 구조

최진우 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 오류를 응답합니다.

Clone this wiki locally