SOLID
Layered Architechure Pattern(계층형 아키텍처 패턴)
node.js 심화반 강의를 들으며 튜터님께 들었던 중요한 레이어 아키텍쳐 패턴도 공부했다.
레이어 아키텍처에서 구성되는 각가의 계층은 아래 3계층으로 나뉜다.
- 프레젠테이션 계층(Presentation Layer)
- 비즈니스 로직 계층(Business Logic Layer)
- 데이터 엑세스 계층(Data Access Layer)
이미지 출처
Persistence Layer가 데이터 엑세스 계층이라고 생각하면 된다.
3계층 아키텍처
3계층 아키텍처는 3가지의 처리과정을 이용해서 구현한다.
1 . Controller : 어플리케이션의 가장 바깥부분, 요청/응답을 처리.
- 클라이언트의 요청을 처리 한 후 서버에서 처리된 결과를 반환해주는 역할
2 . Service : 어플리케이션의 중간부분, 실제 중요한 작동이 많이 일어나는 부분
- 아키텍처의 가장 핵심적인 비즈니스 로직이 수행
3 . Repository : 어플리케이션의 가장 안쪽 부분, DB와 맞닿아 있음.
3-Layered Architecture에서는 아래의 플로우를 기반으로 로직이 수행됩니다.
- 클라이언트(Client)가 요청(Request)을 보냅니다.
- 요청(Request)을 URL에 알맞은 컨트롤러(Controller)가 수신 받습니다.
- 컨트롤러(Controller)는 넘어온 요청을 처리하기 위해 서비스(Service)를 호출합니다.
- 서비스(Service)는 필요한 데이터를 가져오기위해 저장소(Repository)에게 데이터를 요청합니다.
- 서비스(Service)는 저장소(Repository)에서 가져온 데이터를 가공하여 컨트롤러(Controller)에게 데이터를 넘깁니다.
- 컨트롤러(Controller)는 서비스(Service)의 결과물(Response)을 클라이언트(Client)에게 전달해줍니다.