본문 바로가기

Programming/과거포스팅

MVC패턴



MVC 패턴에 대한 정의를 위키에서 검색해보면 아래와 같다.

MVC 패턴  모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 아키텍처 패턴이다.  

이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의  시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.  

MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고,  컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다.  


정리하면 Model   애플리케이션의 비즈니스 로직과 사용되는 데이터를 다루는 영역 View  사용자에게 보여줄 프리젠테이션 로직을 담당하는 영역 controller  흐름을 관리하는 역할을 하며, 데이터와 비즈니스 로직 사이의 상호동작을 하며  수행한 비즈니스 동작을 뷰를 통해 보여준다. 


 위의 글을 보면 모델 뷰 컨트롤러는 각각의 역할을 수행하며 서로 상호동작한 다는 부분을 볼 수 있다. 


 패턴은 왜 생겼을까?  

순수 JSP를 개발해 본 사람이라면 알겠지만 JSP페이지만으로 개발이 가능하다 그럼 왜 MVC패턴으로 개발을 할까?  


만약 동일한 쿼리를 날려야 하는 경우가 있다.  대략 50페이지 정도에 동일한 쿼리를 날리는 경우가 있다면 예전방식이라면 페이지마다 쿼리를 작성해서 보내줘야하지만 MVC패턴을 이용하면 Model쪽에 쿼리를 작성한 후 컨트롤러에서는 뷰만 바꿔서 보여주면 되는 것이다. 

반대로 비슷한 화면이 많고 데이터만 바껴야 한다면 Contoller에서 하나의 뷰만 이용하고 Model만 다른 Model로 연결해서 보여주면 되는것이다.  

지금은 너무 보편화 되어있는 패턴이고 웬만한 프로젝트에선 모두 이 패턴을 사용하고 있을 것이다.


웹 서비스의 MVC패턴은 재사용보단 유지보수의 용이성 확장에 더 중점을 두고 있다고 보면 된다.


MVC패턴 기초는 이걸로 끝!