본문 바로가기

Web Programming

Chapter 3. 초 간단 미니 MVC 튜토리얼 ①

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

실제 서블릿을 생성하여 간단한 요청에 의한 웹페이지를 돌려주는 튜토리얼 페이지를 만들 예정입니다. 맥주를 골라주는 BeerSelection 이라는 프로그램이 있었는데 별로 맥주를 안좋아하는 관계로.. 여름이기도 하니 여름 해수욕장을 골라주는 웹 프로그램을 하나 만들어 보겠습니다.

먼저 화면을 설계합니다.


요런식으로 매우 간단합니다.. 동, 서, 남해중 하나를 고르면 해당되는 지역에 있는 제가 추천하는 해수욕장을 보여주는게 전부지요.. 아주 간단합니다. 간단해요.. 그럼 잠깐 얘기가 나왔던 MVC 패턴에 대해서 살펴보도록 하겠습니다.

Model View Controller 패턴의 약어입니다. 핵심 내용은 비즈니스 로직과 프리젠테이션 로직을 분리하였다는데에 있습니다. 분리한다는 개념의 어떤 단위로 구분 지었다는 것이 아니라 비즈니스 로직과 프리젠테이션 로직은 아예 별개로 존재 할 수 있다는 데 더 무게를 실어야 한다는군요.. 넘 어렵게 말하는군여.. 제가 만든 간단 프로그램을 보시면서 MVC 를 깨달아 볼까요?
(제발 깨닫기를 ㅠㅠ)


이런 구조로 되어있습니다. 먼저 클라이언트로의 요청이 시작되고 최종적으로 결과를 보여주기까지의 흐름을 정리할게요.
1. form.html 에서 post 방식으로 동해, 서해, 남해 중 바닷가를 선택하여 서버로 보낸다. (이때 요청을 받은 서블릿의 이름은 SelectBeach.do) 라고 정의가 되어있다.
2. Web Container 인 톰캣이 요청을 받는다.
3. web.xml 을 통해서 SelectBeach.do 라고 매핑되어있는 서블릿을 찾아서 생성한다.
4. 생성된 서블릿은 doPost() 메소드를 호출시킨다.

여기까지가 끝입니다.

여기서 보시면 넘기고 넘기고 넘기고 하는 게 전부다 입니다. 좀 더 자세히 살펴보면요.. form.html 내용이 수정이 되어도 실제적으로 html 페이지의 파라미터 값을 받는 서블릿 클래스의 컴파일에는 지장을 주지 않습니다... 보여주는 html 페이지 (프리젠테이션 로직) 와 파라미터 값을 가공 하여 처리하는 서블릿 (비즈니스로직) 이 전혀 의존적이지 않다는 걸 보여주고 있죠. 앞서 말한 핵심 내용에 대한 이해가 이정도면 되지 않을까 싶네요.

그럼 Model 에 해당되는 부분은 BeachList 라고 해서 바닷가의 해수욕장 리스트를 보관하고 있는 자바 클래스가 되고, View 부분은 form.html 정도가 되겠네요. 마지막으로 Controller 부분은 웹컨테이너인 톰캣, 더 정확히 말하면 BeachServlet 이 되겠지요 ^^