
아키텍처 패턴은 소프트웨어의 구조를 구성하기 위한 가장 기본적인 토대를 제시한다.
이점과 비용에 대한 확실한 이유가 있어야 한다.어떤 장단점이 존재하는지 명확하게 인지해야 한다.어플리케이션과 도메인이 복잡한 경우에만 아키텍처 패턴을 도입해야 한다.
컨트롤러, 서비스, 저장소 계층으로 분리됨계층형 아키텍처 패턴은 각 계층을 명확하게 분리해서 유지하고, 각 계층이 자신의 바로 아래 계층에만 의존하게 만드는 것이 목표이다.
계층화
각 계층이 높은 응집도<----->다른 계층과는 결합도를 최소화
상위 ---> 하위계층 O
하위 ---> 상위계층 X
하위 계층은 독립적으로 동작
컨트롤러: 어플리케이션의 가장 바깥 부분, 요청/응답을 처리
서비스: 어플리케이션의 중간 부분, API의 핵심적인 동작이 많이 일어나는 부분
저장소: 어플리케이션의 가장 안쪽 부분, 데이터베이스와 맞닿아 있음.
컨트롤러
- 클라이언트의 요청(req)을 받는다.
- 요청에 대한 처리는 ->
서비스에게 위임- 클라이언트에게 응답(res)을 한다.
서비스
- 현업에서는 서비스 코드가 계속 확장되는 문제가 발생할 수 있다.
- DB정보가 필요할 때는
Repository에게 요청
저장소
- 데이터베이스 관리(연결, 해제, 자원 관리) 역할을 담당.
- 데이터베이스의 CRUD작업을 처리.
3계층 전체 모습
인지 가능코드 수정이 용이하다 단위 테스트를 작성할 수 있어 테스트 코드를 조금 더 용이하게 구성할 수 있다.
정리 깔쌈쓰~