본문 바로가기

Spring

MVC 패턴 : 모델, 뷰, 컨트롤러의 역할

반응형

MVC패턴

하나의 디자인 패턴으로 사람들이 써 보니까 유지보수하기 좋고 편리해서 계속 사용되고 있다. 백엔드 기반의 웹 애플리케이션 개발의 기본 모델이 되었다. 패턴의 목적은 화면과 데이터 처리를 분리하여 코드 간 종속성을 줄이는데 있다. 구성요소 간 역할을 명확하게 해서 코드를 쉽게 분리하여 협업이 용이하도록 만든다. 

MVC는 모델, 뷰, 컨트롤러의 약자다. 

Model

- 데이터를 처리하는 영역이다. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다. 일반적으로 DB와 연동을 위한 DAO클래스와 데이터 구조를 표현하는 DO, DTO, VO, 엔티티 클래스 등으로 구성된다. 

View

- 화면 구성을 담당하는 영역이다. 사용자가 보는 페이지다. 뷰는 데이터를 받아서 화면에 표시해준다. 직접 데이터를 처리하지 않고 데이터를 출력하는 용도로만 사용하는 것이 바람직하다. JSP는 뷰 템플릿 엔진 중 하나다. HTML, EL, JSTL 등을 사용하여 컨트롤러로 부터 전달받은 데이터를 출력하고 HTML, CSS 등을 통해 꾸며준다. 뷰는 컨트롤러와 모델과 종속성이 없도록 구현해야 한다. 

Controller

- 사용자와 뷰 사이 다리 역할로 MVC패턴의 핵심 역할이다. 사용자 요청은 특정 뷰에 바로 전달되지 않고 컨트롤러를 통해야 한다. 컨트롤러를 통해 DB에 접근하고 데이터를 처리하여 뷰에 전달한다. 뷰로 전달하기 위해 데이터가 들어 있는 DO, List<DO> 형태의 객체를 reuqest에 저장한 후 포워딩한다. 컨트롤러를 사용자 요청마다 구현할 수도 있고, 하나의 컨트롤러 안에 로그인 , 회원가입, 정보 수정 등을 모두 처리하도록 만들 수도 있다. 프런트 컨트롤러를 따로 둬서 모든 요청을 하나의 컨트롤러로 모은 다음 요청에따라 구현 컨트롤러를 호출하도록 구성할 수도 있다. 

 

반응형