MVC 패턴
디자인 패턴 - SW 개발방법을 공식화 한것
- Model & View & Controller
모델 1
- JSP + javaBean(Service)
- 뷰와 로직이 섞인다. 분업이 용이하지 않다, 프론트와 백엔드가 혼재
모델 2
- jSP + javaBean(Service) + 서블릿
- 습득이 어렵고, 작업량이 많다. 덜 복잡하고 분업이 용이하며 유지보수가 쉽다
USER -> 어플리케이션 -> 컨트롤러 -> 뷰
-> 모델 -> 데이터베이스
Model
- 값과 기능을 가지고 있는 객체
View
- 모델에 포함된 데이터의 시각화
Controller
- 전체적인 흐름을 제어
- 모델 객체로의 데이터 흐름을 제어
장점
- 각 컴포넌트 코드 결합도를 낮춤
- 코드의 재사용성을 높이고
- 구현자들 간의 커뮤니케이션을 높인다
레이어 관점에선..
- 각 레이어간 추상화, 부품을 갈아끼우듯 변경
- 각 컴포넌트간의 의존관계를 깔끔하게 유지 가능
모델에서 뷰의 역활을 수행하면 안된다
뷰에서 값 검증과 예외 처리
뷰에서 모델을 컨트롤 하려고 하면 안된다
컨트롤러 내부에서는 로직은 최대한 배제하고 컨트롤러의 역활로 가능한 가볍게 구현해야 한다 - 연결 역활
Service - 비즈니스 로직을 수행하는 메서드를 가지고 있는 객체
- 비즈니스 메서드를 별도의 Service객체에서 구현하도록 하고 컨트롤러는 Service객체를 사용하도록 한다
- 하나의 트랜잭션을 가진다 - ACID
Repository (DAO) - 데이터 액세스 메서드를 별도의 Reposoitory 객체에서 구현
- Service는 Repository 객체를 사용
reference
'Back-end' 카테고리의 다른 글
RESTful (0) | 2021.05.31 |
---|---|
DTO, VO vs DAO (0) | 2021.05.25 |
댓글