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
MVC - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN
MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고
developer.mozilla.org
Servlet과 JSP로 알아보는 MVC 패턴
MVC 디자인패턴은 장점이 많은 architecture다. 그러나 그만큼 알아야할 내용이 많고 구조또한 복잡해서 차근차근 알아갈 필요가있다. 이번 포스팅을 통해서 mvc 구조의 탄생비화(?)를 포함해 servlet과
velog.io
'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 |
댓글