반응형

MVC 패턴이란

Model 의 M

View 의 V

Controller 의 C


즉 


홈페이지 제작을 하거나 웹개발을 할 때에


사용자에게 보여지는 View

모델과 뷰 사이의 흐름을 제어하는 Controller

들어온 요청을 처리하고 DB에 연결되어

필요한 데이터들을 DB와 주고 받는 Model


이 세가지의 기능을 나누어 코딩하는 방식이다.


MVC 패턴에 관해 검색하던 중

네이버 지식인에 

MVC 패턴에 잘 맞는 비유가 있어 가져와보았다.

https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=309877882&qb=TVZDIO2MqO2EtA==&enc=utf8§ion=kin&rank=4&search_sort=0&spq=0&pid=Uca8aspVuEdssu/pJSCssssstHh-447555&sid=Q5W8yTFb6U2WbJL72PizwAvF

이 분의 답변이 참 와닿는 표현인 것 같다.


이 비유를 풀어서 얘기를 해보면


손님이 식당에 들어오면 메뉴판이 보여진다. 

= ( 사용자가 네이버 혹은 다음같은 홈페이지에 접속하면 뉴스, 웹툰 등 다양한 메뉴들이 보여진다.)

손님이 먹고싶은 메뉴를 웨이터에게 주문한다.

= (홈페이지에서 보고싶은 메뉴를 클릭하면 컨트롤러에게 요청이 전달된다.)

웨이터는 주방장에게 들어온 메뉴를 요청한다.

= (컨트롤러는 모델에 들어온 메뉴를 요청한다.)

주방장은 메뉴를 요리한다.

= (모델은 들어온 요청에 관한 정보를 처리한다.)

주방장이 완성된 요리를 웨이터에게 전달한다.

= (모델이 컨트롤러에 처리된 정보를 전달한다.)

웨이터가 완성된 음식을 손님에게 가져다 준다.

=(컨트롤러가 뷰에 정보를 전달하면 뷰는 정보를 시각화하여 사용자에게 보여준다.)


이런 식으로 이해하면 좋을 것이다.


물론 개발은 그렇게 단순하지가 않아서

단순히 정보를 주고 받는것에 끝나는게 아니라

정보를 가공하고 처리하는 과정이 훨씬 복잡하겠지만

대략적인 역할을 이해하는데에는 좋은 비유인 것 같다.


대부분의 경우에서

View 는 .jsp 혹은 .html 파일


Controller 는 Controller 혹은 Servlet 이라는 

이름을 가지는 java 파일


Model은

Service(ServiceImpl).java → DAO.java → SQLMap.xml 을 거쳐

JDBC 라이브러리 드라이버를 이용하여 DB 에 연결된다.

DAO 에서 SQLMap으로 연결될때 iBatis 혹은 Mybatis 라는 프레임워크가 사용되고

DAO 에서 정보전달을 원활하게 하기 위해 VO(DTO) 라는 자바빈 객체를 사용한다.


MVC 패턴을 이용한 웹개발의 대략적인 개념은 이정도로 이해하면 좋을 것 같다.

반응형

+ Recent posts