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