스프링 MVC는 무엇인가, DTO와 DAO의 차이는 무엇인가?
Web/note

스프링 MVC는 무엇인가, DTO와 DAO의 차이는 무엇인가?

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에게 전달하여 응답을 생성할 수 있도록 흐름을 제어한다

 

장점

기능별로 분리되어 분업에 용이하다

코드의 재사용성이 높다

 

 

 

 

 

 

 

 

 

 

참고

기술 면접 문제 정리

MVC 패턴에 대해 알아보자

728x90
728x90