10장에나오는 용어정리.

"뷰 리졸버는 컨트롤러가 리턴하는 ModelAndView의 뷰를 참고해서 뷰타입의 뷰를 결정한다. 뷰 내부에서는 컨트롤러에서 지정해준 뷰에 해당하는 JSP뷰를 사용해서 뷰를 생성한다" 는 문장이 해석이 잘 안된다면 읽어보자.

 

———————–

뷰라는 말은 여러가지 의미로 사용되고 있기 때문에 문맥에 따라 어떤 뜻으로 사용되는지 잘 파악해야 한다. 그렇지 않으면 스프링MVC의 복잡한 뷰 기술에 대한 설명을 들을 때 헷갈릴 수 있다.

기본적으로 뷰는 MVC의 한 축인 뷰 컴포넌트를 의미하는 것이다. 이 때는 모델을 이용해서 사용자에게 보여줄 내용을 만들어 내는 역할을 통틀어 말하는 것이라고 이해하면 된다. 

스프링MVC에서는 View 인터페이스를 구현해서 뷰 기능을 담당하는 다양한 클래스를 만들어 사용한다. InternalResourceView가 대표적인 View 구현 클래스이다. 그래서 뷰(View)는 DispatcherServlet이 직접 사용하는 오브젝트를 가리키는 말이기도 하다. AbstractExcelView와 같이 구현 클래스 이름으로 부르기도 하지만 때로는 JSTL뷰, RSS뷰, 엑셀 뷰라고 간단히 줄여 부르기도 한다. 스프링 MVC관점에서의 뷰는 바로 이 View타입의 오브젝트를 의미한다.

종종 JSP를 뷰라고 부르기도 한다. 그런데 JSP뷰는 DispatcherServlet이 직접 사용하는 View타입 오브젝트가 아니므로 스프링MVC입장에서는 뷰(View)가 아니다. JSP는 뷰의 한가지인 InternalResourceView가 활용하는 템플릿 파일일 뿐이다. 그럼에도 JSP뷰라고 부르는 이유는 JSP가 스프링MVC뿐 아니라 다른 MVC프레임워크에서도 광범위하게 사용되는 뷰 기술이기 때문에, 관례적으로 JSP뷰라는 표현을 사용하는 것뿐이다. 게다가 InternalResourceView는 실제로 JSP에 모든 뷰 작업을 위임하기 때문에 JSP가 사실상 모델로부터 최종 내용을 생성하는 뷰의 역할을 담당한다고 보기 때문이기도 하다. 아무튼, 이 책에서는 스프링 개발자들 사이에 자주 사용되는 표현인 JSP 뷰 템플릿 또는 JSP템플릿, JSP뷰라는 표현을 모두 사용하고 있으니 혼동하지 않도록 주의하자.

ModelAndView 오브젝트는 모델과 뷰를 리턴할 때 사용되는 오브젝트이지만, 실제로 뷰(View) 오브젝트 대신 뷰 이름을 사용하는 경우가 더 많다. 뷰 리졸버는 ‘/WEB-INF/view/hello.jsp’와 같은 뷰 이름을 참고해서 InternalResourceView를 선정해준다. 이 뷰 이름은 다시 InternalResourceView 내부에서 JSP템플릿의 위치로도 사용된다. 그런데 뷰 이름을 ModelAndView에 넣어서 리턴하는데다 JSP를 JSP뷰라고도 해서 그런지 뷰 이름을 그냥 뷰라고 부르는 경우도 있다. 특히 뷰 리졸버에서 prefix, suffix를 사용하는 경우에는 컨트롤러가 리턴하는 뷰 이름이 단순해져서 ‘hello’ 처럼 된다. 이럴 때 간단히 “hello뷰를 리턴”했다고 말하기도 한다. 스프링은 ‘논리적인(logical) 뷰 이름’이라는 표현도 자주 사용한다.

마지막으로 JSP나 일반 View오브젝트가 만들어내는 HTML이나 PDF 같은 최종 응답 결과물을 뷰라고 부르기도 한다. 이 때는 단순히 사용자가 보는 화면 또는 내용이라는 의미이다. 어떤 내용을 ‘뷰에 출력한다’라고 할 때는 이런 의미로 사용되는 것이다.

Related posts:

  1. DispatcherServlet의 디폴트 대체(fallback) 전략
  2. [토스3] 스프링 3.0.4 <mvc:default-servlet-handler/>를 이용해서 UrlRewriteFilter없이 깔끔한 URL을 만들기
  3. Spring 3.0 (3) R-543 Portlet Mocks, MVC 등등
  4. Spring 3.0 (22) Web.Servlet 모듈의 선택 라이브러리 분석
  5. InsideSpring (3) 스프링 밖에서 WebApplicationContext에 접근하기
  6. Inside Spring (6) 애노테이션 설정 지원 스프링 웹 테스트용 DispatcherServlet 만들기
  7. Spring 3.0 (21) Web 모듈의 선택 라이브러리 분석

Facebook comments:

to “뷰와 뷰(View), 뷰 이름, JSP뷰 (템플릿)”

  1. Amoxicillin Upper Respiratory Tract Infection http://buycialisuss.com – Buy Cialis Real Progesterone Express Delivery Buy Cialis Cialis Disfuncion Erectil

  2. foi full spectrum hemp oil

  3. Thanks, Numerous tips.
    Cialis Drug Screen

  4. Wow plenty of terrific material! buy celebrex online Glaxosmithkline Levitra Coupons

  5. Wow a lot of useful advice! london drugs canada

  6. Thanks for making the effort to go over this particular, Personally i think highly about this as well as adore understanding more on this topic. If at all possible, as you gain knowledge, would you mind updating your blog with more info? It is very helpful for me personally.

  7. With thanks, Quite a lot of content!
    amoxicillin bnf Propranolol Hcl Cost

  8. Appreciate it, A lot of advice!
    viagra 100mg

  9. Regards, Numerous advice!
    walgreens cbd products

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha