레이어드 패턴

Taeha Kim·2020년 10월 3일
0
post-thumbnail

레이어드 패턴이란?

백엔드 API를 구현할때 널리 쓰이는 패턴중 레이어드 아키텍처(Layered achitecture) 패턴이 있습니다.
레이어드 아키텍쳐로 API를 구현할때는 역할에 따라 독립된 모듈로 나누어서 코드를 구현합니다.

일반적으로 presentation layer, business layer, persistence layer 이렇게 3개의 레이어가 있으며, 3개의 레이어가 층층히 의존도에 따라 연결되어 전체 시스템을 구성합니다.

Presentation layer

  • 클라이언트와 직접적으로 연결되는 부분으로 웹사이트에서는 UI에 해당하며, 백엔드 API에서는 엔드포인트에 해당합니다.
  • presentation layer에서 API의 엔드포인트를 정의하고 전송된 HTTP요청들을 읽어 들이는 로직을 구현합니다.

Business layer

  • 실제 시스템이 구현해야 하는 로직들은 business layer에서 구현하게 됩니다.

예를들어서 1000자 이하의 글을 쓸 수 있는 게시판을 구현한다면 1000자가 넘는지 안넘는지 확인하고 1000자가 넘으면 게시글을 저장할 수 없게 합니다.

  • 필요한 데이터의 생성, 수정, 읽기, 삭제를 처리합니다.

Persistence layer

  • persistence layer에서는 데이터베이스와 관련된 로직을 구현합니다.

  • business layer에서 필요한 데이터의 생성, 수정, 읽기, 삭제를 처리하고 실제 데이터베이스에서 데이터를 저장, 수정 읽어 들이는 역할을 합니다.

레이어드 아키텍처의 핵심 요소

단방향 의존성

  • 각각의 레이어는 하위에 있는 레이어에만 의존합니다.

presentation layerbusiness layer에만 의존 합니다.
business layerpersistence layer에만 의존 합니다.

같은 의미로
business layerpresentation layer에 독립적입니다.
persistence layerbusiness layer에 독립적입니다.

레이어드 역할의 분리

  • 각각의 레이어의 역할이 명확하게 분리됩니다.

presentation layer에는 비즈니스 로직이 전혀 구현 되어있지 않으며,
비즈니스 로직을 처리하기 위해서는 presentation layer에서 business layer를 호출해야 합니다.

profile
함께 성장하는 개발자가 되고 싶습니다.

0개의 댓글