본문 바로가기

프로그래밍

내 입맛대로 간단하게 정리한 디자인 패턴 - MVC(Singletone Pattern)

참고
객체 = 인스턴스
class = public class로 만들어 진 class


 

정의 : 소스들을 화면을 다루는 부분과 데이터를 다루는 부분 그리고 이 둘을 다루는 부분으로 나눈 것

주로 웹에서 사용하는 디자인 패턴이지만 꼭 웹에서만 쓰라는 법은 없다.
학생 관리 프로그램을 만든다면, MVC 패턴의 역할은 아래와 같다.

Model (모델, 객체) : Student 클래스
DB를 이 범주에 두는 경우도 있고, DB는 따로 두는 경우도 있다.
둘 다 맞는 말이니 본인이 편하게 이해하면 된다.

View (뷰, 화면) : 학생 정보를 입력하거나 출력하는 곳

Controller(컨트롤러) : MVC의 핵심이라고 볼 수 있다. 
MVC에서 가장 중요한 점은 "모델"과 "뷰"가 서로를 직접 호출하지 않는다는 점이다. 무조건 Controller를 통해서 호출한다.
View는 Controller를 통하여 Model 파트에서 값을 읽어온 뒤, Controller를 통하여 값을 출력한다.
값을 입력하는 것 역시 View에서 입력하고, Controller에서 Model로 값을 보낸다.

Spring MVC 프로젝트의 경우 MVC 패턴을 구현하기 쉽게 되어 있다. (시작부터 안 되거나 이해 되지 않는 오류 메시지와 일관되지 않은 톰캣 놈)
class를 만들고 어노테이션을 이용하여 해당 class에 역할을 부여할 수 있다.(ex: @Controller 등)