백엔들 api의 코들 전체 구조, 즉 코드의 아키텍처에 대해서 알아보자
presetation layer
해당 시스템을 사용하는 사용자 혹은 클라이언트 시스템과 직접적으로 연결되는 부분이며 웹사이트에서는 UI 부분에 해당하고 백엔드 API에서는 앤드포인트 부분에 해당한다. API의 앤드포인트들을 정의하고 전송된 HTTP 요청들을 읽어 들이는 로직을 구현한다.
business layer
실제 시스템이 구현해야 하는 로직들을 여기서 구현한다. 예를 들어, 미니터 api의 tweet 엔드포인트에서 만일 tweet이 300자가 넘는지 확인하여 300자가 넘으면 해당 tweet을 거부해야 하는 로직 등의 비지니스 로직이며, 그런것들을 여기서 구현한다.
persistence layer
데이터베이스와 관련된 로직을 구현하는 부분이다. business layer에서 필요한 데이터 생성, 수정, 읽기 등을 처리하여 실제로 데이터베이스에서 데이터를 저장, 수정, 읽어 들이기를 하는 역할을 한다.
presetation layer는 business layer에게 의존하고, business layer는 persistenece layer에게만 의존하게 된다. 그 뜻은 반대로 business layer는 presentation layer 에 대해 완전히 독립적이며, persistence layer나 presentation layer에 대해 완전히 독립적이라는 뜻이다.
따라서 레이어드 패턴으로 코드를 구성하게되면
확장성
, 가독성
: 레이어가 서로 독립적으고 역할이 분명하므로 서로에게 끼치는 영향을 최소화하여, 확장하거나 수정할 수 있다. 재사용성
, 보수 유시 가능성
: 코드의 구조를 파악하기가 쉽고, 각 레이어의 코드의 목적이 명확하고, 범위도 확실하기 때문이다.테스트 가능성
: 복잡한 로직이 아니라 명확하고 범위가 확실한 기능만 테스트하기 쉽다. 또한 레이어에서 사용하는 구조이므로 테스트에 호출해서 테스트해 보기가 쉽다.