백엔드 3계층 설계

.·2022년 2월 26일

설계란?

  • 프로그래밍에서의 코드 설계는 코드와 파일, 그리고 폴더 구조를 설계하는 것
  • 다양한 설계 구조들 중, 백엔드 API 구현에 자주 사용되는 설계 구조가 3계층 구조

3계층 구조란?

  • 3개 구조로 나누어 구현하는 것
  • Control layer(컨트롤러): 사용자의 요청(request)을 분석한 후, 알맞은 서비스로 해당 요청을 전달해 준 다음, 서비스의 결과를 다시 응답(response)하는 층
    즉, 라우팅(Routing)이 이루어지는 층
    express의 경우, req.params(), req.body(), res.status(), res.send()와 같은 코드가 작성됨

  • Service layer(서비스): 컨트롤러부터 전달된 요청에 로직을 적용하는 층(아래와 같은 것이 로직)

  • Model layer(데이터): 서비스 층에서 데이터베이스 접근이 필요한 경우가 있는데, 이 때 데이터 관련 코드가 작성되는 층
    Mongoose의 경우 Model.find({})와 같은 코드가 작성됨
    위의 로그인 서비스를 예시로 보면, 요청으로 온 ID가 데이터베이스에 존재하는지, 만약 존재한다면 그 때 데이터베이스 상에 저장된 비밀번호는 요청으로 온 (사용자가 입력한) 비밀번호와 일치하는지 확인해야 합니다.
    이 때 서비스 층은 데이터 층에 데이터베이스 확인 요청을 하게 되는 것입니다.


3계층 구조 사용시 폴더 구조

  • middleware, test 폴더를 제외하면 3개의 상위 폴더로 구성되어 있음



이미지 출처 - Elice

0개의 댓글