[spring] 프레젠테이션층(PL)

sesame·2021년 8월 4일

Spring

목록 보기
4/12

프레젠테이션층

프레젠테이션층은 말 그대로 사용자 인터페이스에 불과하다.
사용자 인터페이스. 컨트롤러
컨트롤러: UI를 통해 사용자 입력을 받아 해당하는 비즈니스 로직 호출 및 결과 반환, 웹 앱 상태 저장

리소스 : 웹상의 정보

도메인: foo.bar.baz

URI : 리소스의 식별자 //http://foo.bar.baz/user/{userid}

리소스 접근 방법: HTTP 메서드(GET, POST)

MVC(model-view-controller)

model

애플리케이션의 기능표현, 변경을 view에 통지

view

모델을 화면에 시각적으로 표현, 모델에게 업데이트 요청, 사용자의 입력을 컨트롤러에 전달

controller

애플리케이션의 행위 정의, 사용자 액션을 모델 업데이트와 mapping, 응답에 대한 view 선택

⇒ 서로의 구현에 독립적, 약한 결합성

spring MVC

  • spring은 DI나 AOP 같은 기능 뿐만 아니라, Servlet 기반의 WEB 개발을 위한 MVC Framework 제공

  • spring MVC는 Model2 Architecture와 Front Controller Pattern을 Framework 차원에서 제공

  • 모든 리소스의 요청을 처리하는 하나의 대표 컨트롤러를 두는 패턴

  • spring MVC Framework는 spring을 기반으로 하고 있기 때문에 spring이 제공하는 Transaction처리나 DI 및 AOP등을 손쉽게 사용

spring Framework가 제공하는 Class

DispatcherServlet

  • spring Framework가 제공하는 Servlet 클래스

  • 클라이언트의 요청을 받아서 HandlerMapping으로 넘어간다.

HandlerMapping

  • 클라이언트의 요청을 처리할 Controller를 찾는다. (Controller URL Mapping)

  • 요청 url에 해당하는 Controller 정보를 저장하는 table을 가진다.

  • 즉, 클래스에 @RequestMapping(“/url”) annotaion을 명시하면 해당 URL에 대한 요청이 들어왔을 때 table에 저장된 정보에 따라 해당 클래스 또는 메서드에 Mapping한다.

ViewResolver

  • Controller가 반환한 View Name에 prefix, suffix를 적용하여 View Object를 반환한다.

  • 예를 들어 view name: home, prefix: /WEB-INF/views/, suffix: .jsp는 “/WEB-INF/views/home.jsp”라는 위치의 View(JSP)에 Controller에게 받은 Model을 전달한다.

  • 이 후에 해당 View에서 이 Model data를 이용하여 적절한 페이지를 만들어 사용자에게 보여준다.

MVC1

모든 클라이언트 요청과 응답을 JSP가 담당하는 구조

  • 장점: 단순한 페이지 작성으로 쉽게 구현 가능, 중소형 프로젝트에 적합

  • 단점: 웹 애플리케이션이 복잡해지면 유지보수 문제 발생

MVC2

클라이언트의 요청처리와 응답처리, 비즈니스 로직 처리하는 부분을 모듈화시킨 구조

  • 장점: 처리작업의 분리로 인해 유지보수와 확장이 용이

  • 단점: 구조 설계를 위한 시간이 많이 소요되므로 개발기간이 증가

0개의 댓글