스프링 MVC - 개요

이지윤·2022년 4월 10일
0

스프링 MVC 개요

스프링 MVC 설계

  • 프론트 컨트롤러 패턴에 기초한 MVC 프레임워크
  • 모델, 뷰, 컨트롤러 -> 각각의 인터페이스가 정의
  • 구현에 의존적이지 X -> 약한 결합도로 구성되어 유연하고 확장이 쉬움
  • 다양한 서드 파티 라이브러리 연계
  • 애노테이션 도입으로 스프링 MVC 보급이 확대

자바 웹 어플리케이션 방식

Model 1

  • JSP만 사용하여 개발하거나 Java bean을 포함하여 개발하는 방식
  • JSP 부와 비즈니스 로직이 혼재되어 복잡도 높음 -> 유지보수 어려움

Model 2

  • Model - View - Controller 로 분리
  • 뷰와 비즈니스 로직의 분리로 유지보수성 및 확장 용이

프론트 컨트롤러 패턴(스프링 MVC)

  • 클라이언트 요청을 별도의 프론트 컨트롤러에 집중

프론트 컨트롤러 패턴 실행 프로세스

  • 프론트 컨트롤러 = DispatcherServlet
  • 실행 프로세스
    1. DispatcherServlet이 HTTP 요청을 받음
    2. DispatcherServlet은 서브 Controller로 HTTP 요청 위임
    3. 서브 Controller는 클라이언트의 요청 처리를 위해 DAO 객체를 호출
    4. DAO 객체는 리소스를 액세스하여 Model 객체 생성 후 요청 결과 리턴
    5. DispatcherServlet은 처리 결과에 적합한 뷰에 화면 처리 요청
    6. 선택된 뷰는 화면에 모델 객체를 가져와 화면 처리
    7. HTTP 응답

스프링 MVC의 주요 구성 요소

  • 프론트 컨트롤러 패턴
  • DispatcherServlet -> 클라이언트 요청을 받아 Controller에게 클라이언트의 요청을 전달하고 리턴 결과값을 View에게 전달하여 알맞은 응답을 생성
구성 요소설명
DispatcherServlet프론트 컨트롤러 담당
HandelrMappingURL과 요청 정보를 기준으로 어떤 컨트롤러를 실행할지 결정하는객체
Controller클라이언트 요청을 처리한 뒤 결과를 DispatcherServlet에게 알려줌
Model컨트롤러 -> 뷰에 넘겨줄 데이터를 저장하기 위한 객체
ViewResolverController처리 결과를 생성할 뷰를 결정
ViewController의 처리 결과 화면을 생성

스프링 스테레오타입 애노테이션

  • @Component, @Service, @Controller, @Repository는 스프링이 관리하는 컴포넌트를 나타내는 일반적인 스테레오 타입
  • MVC 아키텍스 기반에서 Service,Presentation, Persistence계층의 컴포넌트 -> @Service, @Controller, @Repository 스테레오 타입을 사용해 구체화
  • @Service, @Controller, @Repository -> @Component의 전문화된 타입
annotation설명
@Component일반적인 컴포넌트
@RepositoryPersistence 계층 컴포넌트
@ServiceBusiness(Service) 계층 컴포넌트
@ControllerPresentation 계층 컴포넌트
@RestController@Controller + @ResponseBody
profile
초보자

0개의 댓글