MVC
Model + View + Controller의 구조로 이루어진 패턴(동작 방식)을 말한다.
- Model
- 데이터와 비즈니스 로직을 관리/처리한다.
- 즉, 사용자의 요청에 대한 업무를 처리한다.
- DAO(Data Access Object) 등의 Java class
- View
- 사용자가 보게될 결과 화면을 담당한다. (레이아웃, 화면 처리 등)
- HTML, JSP
- Controller
- 사용자의 입력 처리와 흐름을 제어하고, 사용자에게 받은 명령을 model이나 view로 라우팅한다.
- 사용자로부터의 입력에 대한 응답으로 모델/뷰를 업데이트하는 로직을 포함한다.
- Servlet
동작 방식
- 사용자의 action들은 controller가 감지한다.
- Controller는 사용자의 action을 확인하고 model을 업데이트한다.
- Controller는 model을 나타내줄 view를 선택한다.
- View는 model을 이용하여 화면은 나타낸다.
Servlet/JSP에서의 MVC 패턴
구성
아래와 같이 MVC 패턴을 구성할 수 있다.
- Model : Biz, DAO
- View : JSP
- Controller : Servlet
동작 방식
- JSP : 사용자에게 화면을 보여준다.
- JSP ↔ Controller : DTO로 데이터가 전달된다.
- Controller : 요청의 유효성을 검증하고, 전체 흐름을 제어한다.
- Contorller ↔ Biz : DTO로 데이터가 전달된다.
- Biz
- DB 관련 로직을 제외한 비즈니스 로직을 구현한다.
- Connection을 생성/반납하고 commit, rollback 등 transcation을 관리한다.
- 상황에 적합한 DAO을 호출함으로써 transaction 단위로 connection을 관리할 수 있다.
- Biz ↔ DAO : Entity로 데이터가 전달된다.
- DAO
- DB 관리 로직을 구현한다.
- 테이블의 CRUD 기능을 제공한다.
- 보통 1개의 테이블 당 1개의 DAO가 존재한다.
DTO, Entity
Entity는 DB 테이블과 동일한 요소를 가진다.
DTO는 Entity와 유사하지만 외부에 노출되면 안되는 값은 제외한다.
DTO와 Entity를 구분함으로써 아래와 같은 이점을 얻을 수 있다.
- Entity를 외부에 노출하지 않을 수 있다.
- Entity의 변경을 최소화한다.
- Entity에 presentation 로직을 구현하지 않는다.
참고
https://developer.mozilla.org/ko/docs/Glossary/MVC
'Coding > [Web] Backend' 카테고리의 다른 글
[SpringBoot] @Builder의 장점 (3) | 2024.01.14 |
---|---|
Singleton Pattern (1) | 2023.04.04 |
Entity, DTO, DAO, VO (0) | 2023.04.03 |
PRG 패턴 : Post → Redirect → Get (0) | 2023.04.03 |
Cookie, Session (0) | 2023.03.31 |
댓글