5-1 MVC 모텔 알아보기
스프링이 제공하는 웹 애플리케이션을 간단하게 작성할 수 있는 기능인 스프링 MVC를 사용해서 웹 애플리케이션을 작성합니다. 우선 스프링 MVC를 설명하기 전에 MVC 모델에 대해 설명하겠습니다.
5-1-1 MVC 모델이란?
프로그램의 처리 역할을 나누어서 프로그램을 작성하는 방법으로 웹시스템 개발에 자주사용되고 있습니다. 역할은 모델(Model M), 뷰(View V), 콘트롤러(Controller C)의 세 종류로 분류합니다.
모델(Model M)
모델은 시스템에서 비즈니스 로직을 담당합니다. 비즈니스로직이라는 단어의 뜻을 찾아보면 시스템의 코어 부분 혹은 시스템의 목적을 처리하는 부분등으로 그뜻이 쉽게 이해되지 않는 사람도 있을겁니다.
비즈니스로직을 회원 가입할때의 상황에 비유하면 사용자가 입력한 아이디의 중복 확인, 본인 인증, 비밀번호 규칙 확인 등이 필요할 것입니다. 이 중에서 아이디 중복 확인의 비즈니스 로직을 생각해 보면 우선 사용자가 입력한 아이디 값을 메모리에 저장하고 회원 데이터베이스에서 같은 아이디가 있는지 확인하고 중복 여부를 확면에 표시할수 있게 전달하는 것까지 비즈니스 로직이 됩니다.
뷰(View V)
한마디로 설명하면 '외형'입니다. 사용자 입력과 결과 출력등 시스템에서 표현 부분을 담당하며 웹 애플리케이션에서는 주로 화면을 담당합니다.
컨트롤러(Controller C)
서비스 처리를 담당하는 모델과 화면 표시를 담당하는 뷰를 제어하는 역할을 합니다. 사용자가 입력한 내용을 뷰에서 받고, 받은 데이터를 기준으로 모델에 내용을 전달합니다. 또 모델에서 받은 데이터를 뷰에 전달해서 화면에 표시하는 역할을 합니다.
5-1-2 MVC 모델의 개요와 이점
- 역할 분담을 통해 효율적인 개발 가능
- 개발하는 엔지니어의 분업화가 용이
- 설계 변경에 유연하게 대응 가능
5-2 스프링 MVC 알아보기
스프링이 제공하는 웹 애플리케이션을 간단하게 만들 수 있는 기능인 스프링 MVC를 설명하겠습니다.
5-2-1 스프링 MVC란?
웹 애플리케이션을 간단하게 만들 수 있는 기능을 제공하는 프레임워크입니다.
프런트 컨트롤러패턴이란 디자인 패턴이라고하는 이런 경우에는 이런식으로 작성하면 좋다라는 선인들의 지혜가 담긴 설계 패턴의 하나로 모든 요청을 프런트 컨트롤러가 받아 그후 담당하는 컨트롤러에 적절하게 할당하는 설계입니다.
스프링MVC의 주요 기능으로 화면 전환이나 사용자가 사용하는 브라우저가 서버 간의 입출력 데이터 전달을 단순화하는 등의 기능이 있습니다.
객체 | 기능 개요 |
DispathcherServlet | 모든 요청을 수신하는 프런트 컨트롤러입니다. |
Model | 컨트롤러에서 뷰에 넘겨주는 표시용 데이터 등을 저장하는 객체입니다. |
컨트롤러 | 요청에 대응해서 처리할 내용이 있는 곳입니다. |
서비스 처리 | 데이터베이스에 접속해서 데이터를 취득하거나 데이터를 가공하는 등 여러 가지 작업을 실행합니다. 개발자가 설계하고 구현합니다(스프링 MVC와 관계없음) |
뷰 | 화면 표시 처리를 구합니다(구체적으로는 JSP 등의 처리) |
- 모든요청을 수신하는 프런트 컨트롤러인 DispathcgerServlet이 클라이언트로부터 요청을 수신합니다.
- DispathcherServlet이 컨트롤러의 요청 핸들러 메서드를 호출합니다.
- 컨트롤러는 비즈니스 로직처리를 호출하고 처리 결과를 습니다.
- 처리결과를 모델로 설정하고 뷰 이름을 반환합니다.
- 반환된 뷰 이름을 받아 DispathcherServlet이 뷰 이름에 대응하는 뷰에 대해 화면 표시처리를 의뢰합니다.
- 마지막으로 클라이언트가 응답을 받고 브라우저에 화면이 표시됩니다.
5-3 스프링 MVC 사용해보기
지금부터 스프링 MVC를 사용해서 웹 애플리케이션을 만들어 보겠습니다.
※ 타임리프 : 데이터와 미리 정의한 템플릿에 바인딩해서 뷰에 표시할때 도움을 주는 템플릿 엔진의 한종류로, 스프링 부트에서 사용하기를 추천하고 있습니다
@RequestMapping의 속성
속성 | 기능 개요 |
value | - 매핑할 URL경로를 지정합니다. - Value는 처음의/를 생략 할수 있습니다. - URL 경로만 지정하는 경우에는 속성에서 value를 생략 할수 있습니다. - URL 경로를 여러 개 지정 할 수 있씁니다. |
method | GET과 POST 등의 HTTP 메서드를 지정합니다. GET을 지정하는 경우는 RequestMethod.GET을 지정합니다. POST을 지정하는 경우는 RequestMethod.POST을 지정합니다. HTTP 메서드를 여러 개 지정할 수 있습니다. 클래스에 @RequestMapping을 부여하는 경우에는 지정할 수 없습니다. |
'북스터디 > 스프링 프레임워크 첫걸음' 카테고리의 다른 글
8장 유효성 검사 기능 알아보기 (0) | 2023.04.12 |
---|---|
7장 요청 파라미터 취득하기 (0) | 2023.04.12 |
4장 데이터베이스 작업 (0) | 2023.04.02 |
3장 스프링 프레임워크의 핵심 기능 알아보기 (0) | 2023.03.26 |
2장 기초지식 배우기 (0) | 2023.03.19 |