Kim ByeungHyun
[CS지식] MVC패턴이란? 본문

mvc패턴은 디자인 패턴중 하나로, 디자인 패턴부터 설명하자면 프로그램이나 어떤 특정한 것을 정리하여 규약을 통해 쉽게 쓸 수 있는 형태로 만든것.
좀더 쉽고 편리하게 사용할 수 있게 만든 특정한 방법들을 디자인 패턴이라고 함. 스트래티지 패턴, 옵저버 패턴 등등 여러가지가 있고 그 중 하나가 MVC패턴.
MVC
- Model, Vie, Contoller의 약자. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴이다.
- Contoller를 조작하면 controller는 model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 view를 제어해서 사용자에게 전달하게 된다.
모델, Model
- 애플리케이션의 정보, 데이터를 나타낸다. 데이터베이스, 처음의 정의하는 상수, 초기화값, 변수 등을 뜻한다. 또한 이러한 Data, 정보들의 가공을 책임지는 컴포넌트를 말한다.
- 규칙 :
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
- 뷰나 컨토롤러에 대해서 어떤 정보도 알지 말아야 한다.
- 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.
뷰, View
- input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타냅니다. 데이터 및 객체의 입력, 보여주는 출력을 담당
- 규칙 :
- 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
- 모델이나 컨트롤러와 같이 다른 구성 요소들을 몰라야 한다.
- 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야만 한다.
컨트롤러, Controller
- 데이터와 사용자 인터페이스 요소들을 잇는 다리역할을 한다. 즉, 사용자가 데이터를 클릭하고, 수정하는 것에 대한 이벤트들을 처리하는 부분
- 규칙 :
- 모델이나 뷰에 대해서 알고 있어야 한다.
- 모델이나 뷰의 변경을 모니터링 해야 한다.
왜 사용해야 할까?
- 서로 분리되어 각자의 역할에 집중 할 수 있게끔하여 개발을 하고 그렇게 어플리케이션을 만든다면, 유지보수성, 애플리케이션의 확장성, 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지게 된다.
면접질문
- mvc패턴의 사용 이유?
- 서로 분리되어 각자의 역할에 집중할 수 있도록 개발을 하기 위해서 입니다. 이렇게 하면 유지보수와 확장성, 유연성이 증가합니다. 또한 중복코딩 문제도 사라지게됩니다.
- Spring MVC 란?
- Spring MVC는 Model, View, Controller의 개념을 따릅니다.
- Spring MVC의 프론트 컨트롤러 클래스를 설명하십시오
- 프론트 컨트롤러는 애플리케이션의 전체 수신 요청을 처리합니다. Spring MVC에서 디스패처 서블릿은 프론트 컨트롤러 역할을하며 들어오는 전체 요청을 처리합니다.