티스토리 뷰

스프링프레임워크

MVC 모델이란

잔잔한 물결처럼 2025. 2. 28. 03:28

MVC 모델은 프로그램의 처리 역할을 나누어서 프로그램을 작성하는 방법으로 웹 시스템 개발에 자주 사용되고 있다.

역할은 모델, 뷰, 컨트롤러의 세종류로 나뉘며 앞글자를 따서 MVC 모델이라고 한다.

 

모델(Model:M)

모델은 시스템에서 비즈니스 로직을 담당한다. 비즈니스 로직이란 시스템의 코어 부분 혹은 시스템의 목적을 처리하는 부분을 뜻한다.

 

뷰(View:V)

뷰는 외명을 뜻한다. 사용자 입출력 이나 표현 부분을 담당하며 애플리케이션에서는 주로 화면을 담당한다.

 

컨트롤러(Controller:C)

컨트롤러는 서비스 처리를 담당하는 부분이다. 모델과 표시를 담당하는 뷰를 제어(Control)하는 역할을 한다. 

 

   
모델(Model:M) 비즈니스 로직
뷰(View:V) 화면
컨트롤러(Controller:C) 모델과 뷰를 제어

 

MVC 모델을 사용하면 다음과 같은 이점이 있다.

  • 역할 분담을 통해 효율적인 개발
  • 개발하는 엔지니어의 분업화가 용이
  • 설계 변경에 유연하게 대처

스프링 MVC 란 웹 애플리케이션을 간단하게 만들 수 있는 기능을 제공하는 프레임워크이다.

객체 기능 개요
DispatcherServlet 모든 요청을 수신하는 프런트 컨트롤러이다.
Model 컨트롤러에서 뷰에 넘겨주는 표시용 데이터 등을 저장하는 객체이다
(HttpServletRequest 나  HttpSession 과 같은 기능을 제공한다)
컨트롤러 요청에 대응해서 처리할 내용이 있는 곳이다.
서비스 처리 데이터베이스에 접속해서 데이터를 취득하거나 데이터를 가공하는 등 여러가지 작업을 실행한다. 개발자가 설계하고 구현한다.
화면 표시 처리를 한다.

 

관련어노테이션

@Contoller

인스턴스 생성 어노테이션이다.

 

@RequestMapping

해당 어노테이션을 클래스나 메서드에 부여하는 것으로 컨트롤러의 요청 핸들러 메서드와 URL 을 매핑하게 된다.

@RequestMapping 의 속성

속성 기능 개요
value 매핑할 URL 경로를 지정한다.
value 는 처음의 /를 생략할 수 있다.
URL 경로만 지정하는 경우에는 속성에서 value 를 생략할 수 있다
URL 경로를 여러 개 지정할 수 있다
method GET 과 POST 등의 HTTP 메서드를 지정한다.
GET 을 지정하는 경우에는 RequestMethod.GET 을 사용한다
POST 를 사용하는 경우에는 RequestMethod.POST 를 사용한다
클래스에 @RequestMapping 을 부여하는 경우에는 사용할 수 없다.

 

// value 속성에 처리 대상의 URL 경로를 매핑
@RequestMapping(value = "hello")

// value 속성만 지정하는 경우 생략 가능
@RequestMapping("hello")

// URL 경로를 여러 개 지정 가능
@RequestMapping(value = { "hello", "hellospring" })

 

@GetMapping

@GetMapping은 @RequestMapping 의 GET 요청용 어노테이션이다. 

// value 속성만이라면 생략 가능합니다.
@GetMapping("hello")

// URL을 여러 개 지정할 수 있습니다.
@GetMapping(value = { "hello", "hellospring" })

 

@PostMapping

@PostMapping 은 @RequestMapping 의 POST 요청용 어노테이션이다. 

// value 속성만이라면 생략 가능합니다.
@PostMapping("hello")

// URL을 여러 개 지정할 수 있습니다.
@PostMapping(value = { "hello", "hellospring" })

 

 

뷰 생성 규칙

  • resources/templates 폴더 밑에 뷰를 생성한다.
  • 뷰가 많이 필요한 경우에는 기능별로 폴더를 만들어서 보관한다.
  • 폴더를 나눈 경우는 templates 폴더 이하의 폴더명을 요청 핸들러 메서드의 반환값에 지정해야 한다.
  • CSS 나 자바스크립트 등은 resources/static 폴더에 배치한다.

'스프링프레임워크' 카테고리의 다른 글

bean 과 DI 컨테이너  (1) 2025.03.10
템플릿 엔진  (0) 2025.03.01
PostgreSQL 설명  (0) 2025.02.28
Spring Initializr  (0) 2025.02.27
메타 어노테이션  (0) 2025.02.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함