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

    • 요청을 검증
    • HTTP 응답
  • Service

    • 비즈니스 로직 처리
    • 예상 가능한 비즈니스 에러 발생
  • Repository

    • DB 접근

에러 처리

Service 레이어에선 외부 프로토콜의 영향을 받지 않기 위해 BaseError(erros/base.error.ts)를 상속받는 비즈니스 에러를 발생합니다.

해당 비즈니스 에러를 ErrorMiddleware(middlewares/error.middleware.ts)에서 분기하여 적절한 HTTP 오류를 응답합니다.

Clone this wiki locally