본문 바로가기
컴퓨터과학[3-2]/J.S.P

JSP - [제14강] 표준 태그 라이브러리(2) MVC 패턴 이해하기

by boolean 2016. 7. 22.
728x90

JSP - [제14강] 표준 태그 라이브러리(2) MVC 패턴 이해하기

코어 라이브러리(2)와 함수 라이브러리, 모델1, 2 구조와 MVC 패턴, MVC 패턴을 이용한 구현 예

JSP 용어정리

  • 모델 1 구조
    프리젠테이션 로직과 비즈니스 로직이 혼합되어 있는 형태이다. JSP 페이지(또는 서블릿)가 클라이언트의 요청을 받아 처리하고, 또 응답을 만드는 모든 작업을 수행한다. 간단한 형태의 웹 어플리케이션의 구조로 프로그램을 이해하기 어려우며 확장성이 떨어진다.
  • 모델 2 구조
    프리젠테이션 로직과 비즈니스 로직이 분리된 형태이다. 서블릿이 클라이언트의 요청을 받아 비즈니스 로직을 처리한다. 이것의 결과가 JSP 페이지에 전달되어 프리젠테이션 로직이 처리된다. 자바 프로그래머와 HTML 전문가의 작업이 분리되어 책임 소재가 명확해지며 유지보수성과 확장성이 좋아진다.
  • MVC 패턴
    객체지향 개념에 기초한 설계 패턴의 하나로 사용자와 상호작용하는 어플리케이션에서 널리 사용되는 설계 방법 또는 아키텍쳐라고 할 수 있다. 이것은 구성요소들을 역할에 따라 모델, 뷰 및 컨트롤러로 분리하여 구성요소들의 결합 정도를 최소화한다. 따라서 개발자들은 각자의 업무에 집중할 수 있고 유지보수시 수정에 의한 파급 효과가 줄어든다. MVC 패턴이 적용된 웹 어플리케이션은 모델 2 구조가 된다
  • 커맨드 패턴
    잘 알려진 설계 패턴의 하나로 클라이언트의 요청(또는 커맨드)을 객체로 캡슐화하여 처리하는 설계 방법이다. 커맨드 패턴을 적용할 때, 커맨드의 종류별로 처리를 위한 클래스를 작성하며, 이러한 커맨드 처리 클래스들은 공통의 인터페이스를 가지도록 한다. 즉 클라이언트의 요청이 있으면 요청에 맞는 커맨드 처리 객체가 만들어지고, 이 객체를 통해 동일한 이름의 처리 메소드가 실행된다.

요점정리

  1. 모델 1 구조에서는 프리젠테이션 로직과 비즈니스 로직이 JSP 페이지에서 혼합되어 있다. 요청은 JSP 페이지로 전송되고, JSP 페이지는 해당 요청을 처리하기 위해 자바 빈 객체나 내장 객체를 이용하여 작업을 처리하고 그 결과를 다시 웹 브라우저에게 전달한다.
  2. 모델 2 구조에서는 프리젠테이션 로직과 비즈니스 로직이 분리되어 있다. 클라이언트의 요청을 JSP 페이지가 아닌 서블릿이 받는다. 서블릿은 사용자의 요청에 따라 필요한 비즈니스 로직을 처리하고 그 결과를 해당 JSP 페이지에 전달한다. JSP 페이지는 전달받은 페이지를 클라이언트에게 보내주는 역할을 담당한다.
  3. MVC(Model-View-Controller) 패턴이란 객체지향언어로 프로그램을 개발할 때 사용되는 개발 방법의 하나로 프로그램의 각 구성요소들을 역할에 따라 모델, 뷰 및 컨트롤러로 분류한다.
  4. MVC 패턴을 적용하는 이유는 개발 과정과 유지보수 및 재사용을 효율적으로 할 수 있기 때문이다.
  5. 모델은 비즈니스 로직의 처리를 담당하고, 뷰는 프리젠테이션 로직의 처리를 담당한다. 컨트롤러는 사용자와의 인터페이스와 프로그램 전체의 흐름 제어를 담당한다.
  6. MVC 패턴이 적용된 모델 2 구조에서 서블릿은 컨트롤러의 역할을 담당하고, JSP 페이지는 뷰의 역할을 담당한다. 그리고 자바 빈 클래스 등이 모델의 역할을 담당한다.

연습문제

  • 연습문제1
    모델 1 구조에 관한 설명으로 잘못된 것은?
    답을 체크하세요
    정답 :
    해설 :
    모델 1 구조에서는 모든 것이 JSP 페이지에서 처리되므로 프리젠테이션 로직과 비즈니스 로직이 분리되어 있지 않다.
  • 연습문제2
    MVC 패턴을 적용한 웹 어플리케이션에서 모델 역할을 수행하는 요소는 무엇인가?
    답을 체크하세요
    정답 :
    해설 :
    모델 2 구조에서는 서블릿이 컨트롤러의 역할을 수행하고, 자바 빈 객체가 모델의 역할을 수행하며, JSP 페이지가 뷰의 역할을 수행한다.
  • 연습문제3
    MVC 패턴에서 모델의 역할은 무엇인가?
    답을 체크하세요
    정답 :
    해설 :
    보기 1은 뷰의 역할이며 보기 3은 컨트롤러의 역할이다.
  • 연습문제4
    서버의 리소스(서블릿이나 JSP 페이지)를 표현(또는 포장)하기 위한 객체의 유형으로, 서블릿 프로그래밍에서 요청을 해당 리소스로 포워딩시키거나 해당 리소스를 응답에 포함시킬 때 사용되는 유형은 무엇인가?
    답을 체크하세요
    정답 :
    해설 :
    RequestDispatcher는 인터페이스로 request.getRequestDispatcher(String path)의 리턴 타입이다. RequestDispatcher를 통해 forward() 또는 include()를 수행할 수 있다.
  • 연습문제5
    설정 파일을 이용해 커맨드 패턴을 적용할 때의 장점은 무엇인가?
    답을 체크하세요
    정답 :
    해설 :
    서블릿이 구동될 때 마다 설정 파일을 읽어 사용하므로 소스 코드를 수정할 필요가 없다. 즉 소스 코드를 다시 컴파일하지 않아도 된다.


댓글