본문 바로가기

내일배움캠프 노드 4기/Today I Learned

레이어드 아키텍처 패턴 layered architecture

레이어드 아키텍쳐 패턴은 웹 서버 구현 시 가장 보편적으로 사용되는 구현 패턴입니다.

레이어드 아키텍쳐

SOLID(객체 지향 설계) 원칙의 SRP(단일 책임 원칙)을 근거로 작성된 아키텍쳐로

하나의 모듈, 클래스 또는 함수가 하나의 기능만을 책임지는 패턴입니다.

 

일반적으로 다음 3개의 계층으로 나누어 집니다.

  • presentation layer(표현 계층) = Controller
  • business layer(비즈니스 계층) = Service
  • data layer(데이터 계층) = Repository

프레젠테이션 계층(표현 계층) = 컨트롤러

  • 클라이언트와 통신을 직접적으로 담당하며 클라이언트의 요청을 해석하고 응답하는 계층입니다.
  • 클라이언트와 통신하는 API를 제공하며 컨트롤러로 대변됩니다.
  • 비지니스 계층으로 요청을 위임하고 받은 결과를 응답하는 역할만 수행합니다.

비지니스 계층 = 서비스

  • 프리젠테이션 계층으로부터 요청을 받아 비지니스 로직을 수행하는 계층입니다.
  • 비지니스 로직을 수행하는 과정에서 데이터 계층과 통신하며 서비스로 대변됩니다.

데이터 계층 = 리포지터리

  • 실제 데이터베이스(RDBMS 혹은 NoSQL)에 접근하는 계층입니다.
  • 리포지터리로 대변됩니다.

Node.js 프레임워크인 Express로 레이어드 아키텍처 패턴을 나타내려면 디렉토리 구조를 명확하게 설계하고 

서비스 요구사항 변경 또는 추가함에 따라서 필요한 개념을 새로 추가해야 합니다.