-
MVC 패턴기술 이야기/Design 2020. 10. 20. 15:54반응형
MVC 패턴 간략하게 정리
- Model
- 비즈니스 로직을 구현하는 영역, 데이터를 처리하는 부분
- DB 연결 및 데이터 CRUD 작업을 수행
- 최근에는 domain 영역과 비즈니스 로직 영역을 나누어 service에서 비즈니스 로직을 분기 처리, domain에서 각 역할을 분기처리
- View
- 컨트롤러에게 받은 모델의 결과값을 가지고 사용자에게 출력할 화면을 만드는 역할
- 만들어진 화면을 웹 브라우저에 전송 ~> 웹브라우저가 출력
- Controller
- 클라이언트 요청에 따라 실제 업무를 수행하는 모델 컴포넌트를 호출해주는 역할
- 클라이언트가 보낸 데이터를 모델에 전달할 때, 데이터를 가공하기도 한다.
2020.12.04 추가
- 컨트롤러의 역할은 시스템을 사용하기 위한 인프라와 관련된다.(데이터 관련 X)
- 비즈니스 로직은 데이터를 어떻게 저장하고 사용할 건지에 관련된 내용들이다.
- 따라서, MVC 보다는 MVCS로 서비스단을 만들어서 비즈니스 로직을 분기해주는 것이좋다.
- 컨트롤러가 책임이 무거워졌다?? -> 가질 필요가 없는 책임을 가지고 있는 것
- 확장성을 고려했을 때, 같은 서비스 로직이 컨트롤러마다 구현되어있으면 다 수정해야함
2021.01.14 추가
MVCS
- Model에서 비즈니스 로직을 service 레이어로 분기한 패턴이다.
- Model은 DTO나 DB 연결, 엔티티 등을 관리하게 된다.
- Controller는 요청에 맞는 비즈니스 로직을 호출하고, 요청받은 데이터가 유효한지 Validation 하는 역할
- View는 Controller로 부터 받은 데이터를 가지고 클라이언트 화면에 출력할 페이지를 구성한다.
- Service는 데이터와 관련된 모든 작업을 진행한다. (비즈니스 로직 수행)
반응형'기술 이야기 > Design' 카테고리의 다른 글
Restful API (0) 2020.10.20 - Model