관리 메뉴

나의 개발일지(김지헌)

항해 99 29일차 10/17일 본문

항해 99

항해 99 29일차 10/17일

코딩이좋아요 2022. 10. 18. 01:27

컨트롤러

더보기

컨트롤러(Controller)란 클라이언트의 요청을 처리 한 후 서버에서 처리된 결과를 반환해주는 역할을 합니다.

컨트롤러(Controller)는 추가적으로 아래의 역할을 가지고 있습니다.

클라이언트의 요청(Request)을 수신합니다.

요청(Request)에 들어온 데이터 및 내용을 검증합니다.

서버에서 수행된 결과를 클라이언트에게 반환(Response)합니다.

프레젠테이션 계층(Presentation Layer) 이란?

3계층 아키텍처 패턴에서는 프레젠테이션 계층(Presentation Layer)이라고 표현되며, 대표적으로는 컨트롤러(Controller)로 사용됩니다. 사용자(클라이언트)가 서버에 요청(Request)를 하게되면 가장 먼저 만나게 되는 계층입니다.

하위 계층(서비스 계층, 저장소 계층)에서 발생하는 예외(Exception)를 처리 합니다

.

클라이언트가 전달한 데이터에 대해 유효성을 검증하는 기능을 수행합니다.

클라이언트의 요청을 처리한 후 서버에서 처리된 결과를 반환합니다.

클라이언트의 요청을 받음

요청에 대한 처리는 서비스에게 전달

클라이언트에게 응답

서비스

더보기

서비스 계층(Service Layer)이란 비즈니스 로직 계층(Business logic layer)이라고도 불리는데요 아키텍처의 가장 핵심적인 비즈니스 로직을 수행하고 실제 사용자(클라이언트)가 원하는 요구사항을 구현하는 계층입니다.

 

프레젠테이션 계층(Presentation Layer)과 데이터 엑세스 계층(Data Access Layer)사이에서 중간 다리 역할을 하며 서로 다른 두 계층이 직접 통신하지 않게 만들어 줍니다.

서비스(Service)는 데이터가 필요할 때 저장소(Repository)에게 데이터를 요청합니다.

어플리케이션의 규모가 커지면 커질수록 서비스의 역할코드또한 점점 더 커지게 됩니다.

어플리케이션의 핵심적인 비즈니스 로직을 수행하여 클라이언트들의 요구사항을 반영하여 원하는 결과를 반환해주는 계층입니다.

서비스 계층의 장단점

서비스 계층의 장점

각각의 유스 케이스(Use Case)와 워크플로우(Workflow)를 명확히 정의할 때 도움이 됩니다.

저장소(Repository)에게 얻을 필요가 있는 데이터가 무엇인지 이해할 수 있습니다.

어떤 사전 검사와 현재 상태 검증을 필수적으로 해야하는 것인지 이해할 수 있습니다.

어떤 내용을 저장해야 하는지 이해할 수 있습니다.

 

비즈니스 로직을 API 뒤에 감췄기 때문에 서비스 계층의 코드를 자유롭게 리팩터링할 수 있습니다.

저장소 패턴(Repository Pattern)및 가짜 저장소(Fake Repository)와 조합하면 높은 수준의 테스트를 작성할 수 있습니다.

서비스 계층의 단점

서비스 계층또한 다른 추상화 계층에 불과합니다.

서비스 계층에 너무 많은 기능을 넣으면 빈약한 도메인 모델(Anemic Domain Model)과 같은 안티 패턴이 생길 수 있습니다.

--

사용자의 요구사항을 처리(비즈니스 로직)하는 실세 중에 실세!!!

현업에서는 서비스 코드가 계속 비대해짐

DB 정보가 필요할 때는 저장소(Repository)에게 요청

 

 

'항해 99' 카테고리의 다른 글

항해 99 31일차 10/19일  (0) 2022.10.19
항해 99 30일차 10/18일  (0) 2022.10.18
항해 99 28일차 10/16일  (0) 2022.10.16
항해 99 27일차 10/15일  (0) 2022.10.16
항해 99 26일차 10월 14일  (0) 2022.10.14