Spring

[스프링 프레임워크] 5. MVC 모델 알아보기

yes_truly 2023. 10. 17. 01:37
728x90

 

1. MVC 모델 알이보기

 

1) MVC 모델이란?

  • 프로그램의 처리 역할을 나눠 프로그램을 작성하는 방법
  • Model, 모델
    : 비즈니스 로직 즉, 시스템의 코어 부분, 시스템의 목적을 처리하는 부분을 담당
  • View, 뷰
    : 사용자 입력과 결과 출력 등 시스템에서 표현 부분을 담당
  • Controller, 컨트롤러
    서비스 처리를 담당하는 모델과 화면 표시를 담당하는 뷰를 제어하는 역할

 

2) MVC 모델의 개요와 이점

  • 서비스 처리 모델, 보기 뷰, 제어 컨트롤러로 분류함으로 인해 프로그램의 독립성이 높아짐
  • 이점 존재
    • 역할 분담을 통해 효율적인 개발 가능
    • 개발하는 엔지니어의 분업화 용이
    • 설계 변경에 유연하게 대응 가능

 


 

2. 스프링 MVC 알아보기

 

1) 스프링 MVC란?

  • 웹 애플리케이션을 간단하게 만들 수 있는 기능을 제공하는 프레임 워크
  • 주요 기능
    • 화면 전환
    • 사용자가 사용하는 브라우저와 서버 간 입풀력 데이터 전달 단순화
  • 주요 구성 요소
    • DispatcherServlet : 모든 요청을 수신하는 프런트 컨트롤러
    • Model : 컨트롤러에서 뷰에 넘겨주는 표시용 데이터 등을 저장하는 객체
    • 컨트롤러 : 요청에 대응해서 처리할 내용이 있는 곳
    • 서비스 처리 : 데이터베이스에 접속해 데이터를 취득하거나 데이터를 가공하는 등 여러 작업을 실행
    • 뷰 : 화면 표시 처리

2) 요청을 받고 응답을 보낼 때 까지의 흐름

  • 스프링 MVC에서 요청에서 응답까지의 흐름
    • 모든 요청을 수신하는 프론트 컨트롤러인 DispatcherServlet이 클라이언트로부터 요청 수신
    • DispatcherServlet이 컨트롤러의 요청 핸들러 메소드 호출
    • 컨트롤러는 비즈니스 로직 처리를 호출하고 처리 결과를 받음
    • 받은 처리 결과를 모델로 설정하고 뷰 이름 반환
    • 반환된 뷰 이름을 받아 DispatcherServlet이 뷰 이름에 대응하는 뷰에 대해 화면 표시 처리 의뢰
    • 클라이언트가 응답을 받고 브라우저에 화면 표시
  • 번거로운 처리는 스프링 MVC가 담당
  • 코드를 작성할 부분 : 컨트롤러, 비즈니스 로직 처리, 뷰

 


 

3. 스프링 MVC 사용해보기

 

1) 컨트롤러 관련 어노테이션

  • @Controller
    • 인스턴스 생성 어노테이션
    • 클라이언트와 데이터 입출력을 제어하는 애플리케이션의 레이어의 컨트롤러 부여
    • 요청 핸들러 메소드의 반환값을 뷰 이름으로 해 템플릿 엔진의 뷰가 응답 HTML을 생성
  • @RequestMapping
    • 컨트롤러의 요청 핸들러 메소드와 URL 매핑
    • 지정할 속성
      • Value
        매핑할 URL 경로 지정
        처음의 /를 생략할 수 있음
        URL 경로만 지정하는 경우에는 속성에서 value 생략 가능
        URL 경로를 여러 개 지정할 수 있음
      • method
        GET, POST등의 HTTP메소드 지정
        GET 지정하는 경우 RequestMethod.GET사용
        POST 지정하는 경우 RequestMethod.POST사용
        HTTP 메소드 여러 개 지정할 수 있음
        클래스에 @RequestMapping 부여하는 경우 지정할 수 없음
  • @GetMapping
    • GET 요청용 어노테이션
    • @RequestMapping과 value속성은 같지만 method속성은 없음
  • @PostMapping
    • POST 요청용 어노테이션
    • @RequestMapping과 value속성은 같지만 method속성은 없음

 

728x90