MVC
- 소프트웨어 디자인 패턴 중 하나
VIEW ↔ CONTROLLER ↔ SERVICE ↔ DAO(maapper)
디자인 패턴은 자주 반복적으로 발생하는 문제와 해결핵심을 기술하여 동일한 일이 반복되지 않고 해결할 수 있도록 한다.
구조화된 패턴에 대한 사전지식으로 협업에 용이하다
설계 과정의 속도를 높일 수 있다
Model
domain(DTO) / DAO / SQL / Service
프로그램이 작업하는 요소들을 개념적으로 정의한 것
DAO(Data Access Object) : 데이터베이스의 데이터에 접근하기 위한 객체
데이터베이스에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용한다
DTO(Data Transfer Object) : 계층 간 데이터 교환을 위한 객체, 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)
클라이언트가 브라우저에 데이터를 입력하면 form에 있는 데이터를 DTO에 넣어서 전송한다.
해당 DTO를 받은 서버가 DAO를 이용하여 데이터베이스로 데이터를 집어넣는다
VO(Value Object) : 값 오브젝트, 사용도중에 변경 불가능하며 읽기만 가능
View
jsp / index
보여지는 페이지
Controller
클라이언트의 요청을 받아 그에 맞는 데이터를 view에 반영하여 클라이언트에게 보여주는 로직을 담당.
model과 view의 연결다리 역할과 도메인 객체들의 조합으로 프로그램 작동 순서나 방식을 제어한다
Model 1
모든 클라이언트 요청과 응답을 JSP가 담당하는 구조
Model 2
Model 1과는 다르게 view와 controller를 분리하여 구현하는 방식이다.
웹 브라우저의 요청을 하나의 서블릿이 받게 되고 그 결과를 jsp로 포워딩한다.
클라이언트의 요청, 응답, 비즈니스 로직 처리 부분을 모듈화한 구조
Spring MVC 모델 2
DispatcherServlet 이 mvc 에서의 컨트롤러 부분을 처리한다
DispatcherServlet
- 어플리케이션으로 들어오는 모든 request를 받아 실제로 처리할 controller에게 전달하고
- 그 결과값을 받아서 view에게 전달하여 응답을 생성할 수 있도록 흐름을 제어한다
장점
기능별로 분리되어 분업에 용이하다
코드의 재사용성이 높다
참고
728x90
728x90
'Web > note' 카테고리의 다른 글
동기 vs 비동기식의 차이점, Ajax란 무엇인가 (0) | 2022.11.24 |
---|---|
추상 클래스와 인터페이스의 차이 (0) | 2022.11.24 |
라이브러리와 프레임워크의 다른점은 무엇인가? (0) | 2022.11.24 |
면접을 위한 CS 전공지식 노트 정리 (0) | 2022.11.05 |
자바스크립트와 제이쿼리 차이점 (0) | 2022.10.27 |