백엔드 API를 구현할때 널리 쓰이는 패턴중 레이어드 아키텍처(Layered achitecture) 패턴이 있습니다.
레이어드 아키텍쳐로 API를 구현할때는 역할에 따라 독립된 모듈로 나누어서 코드를 구현합니다.
일반적으로 presentation layer
, business layer
, persistence layer
이렇게 3개의 레이어가 있으며, 3개의 레이어가 층층히 의존도에 따라 연결되어 전체 시스템을 구성합니다.
presentation layer
에서 API의 엔드포인트를 정의하고 전송된 HTTP요청들을 읽어 들이는 로직을 구현합니다.business layer
에서 구현하게 됩니다.예를들어서 1000자 이하의 글을 쓸 수 있는 게시판을 구현한다면 1000자가 넘는지 안넘는지 확인하고 1000자가 넘으면 게시글을 저장할 수 없게 합니다.
persistence layer
에서는 데이터베이스와 관련된 로직을 구현합니다.
business layer
에서 필요한 데이터의 생성, 수정, 읽기, 삭제를 처리하고 실제 데이터베이스에서 데이터를 저장, 수정 읽어 들이는 역할을 합니다.
presentation layer
는 business layer
에만 의존 합니다.
business layer
는 persistence layer
에만 의존 합니다.
같은 의미로
business layer
는 presentation layer
에 독립적입니다.
persistence layer
는 business layer
에 독립적입니다.
presentation layer
에는 비즈니스 로직이 전혀 구현 되어있지 않으며,
비즈니스 로직을 처리하기 위해서는 presentation layer
에서 business layer
를 호출해야 합니다.