목차
MVC 구조라 하면
- Model
- View
- Controller
로 구성된 구조를 뜻하고 최대한 간단하게 표현하면
아래와 같은 구조를 말한다
쉽게
이름 그대로의 기능을 가지고 있다고 보면 되고
스프링 MVC는 이러한 구조를 이용하기 더욱 쉽게 만들어 준다
그리고 좀 더 자세한 구조와 동작을 보면 다음과 같다
1️⃣ URL 요청
일반적으로 클라이언트는 url을 통해 서버에 요청을 보낸다
2️⃣ URL 매핑
보통 해당 서버로 오는 모든 url요청은
프론트 컨트롤러가 가장 먼저 받게 된다
디스패처 서블릿이 프론트 컨트롤러 역할을 수행하며
- 가장 앞단에서 url요청을 받아
해당 url에 맞는 컨트롤러의 메소드를 호출해준다
3️⃣ 데이터 조회
컨트롤러의 메소드에서는 요청한 서비스에 맞게
DB와 통신하며 데이터를 뽑아온다
서비스 계층으로 나눠
컨트롤러의 책임이 줄어들면
좋은 객체 지향 설계에 가까워진다 😎
4️⃣ 데이터 가공
가져온 데이터를 필요에 맞게 가공하여
이를 모델에 담고
또 사용자에게 보여줄 뷰(문서) 이름을
반환한다
5️⃣ 뷰 이름 전달
프론트 컨트롤러(디스패처 서블릿)은
받은 뷰 이름을 뷰리졸버에게 전달하고
뷰리졸버는 뷰 이름과
미리 설정된 경로 및 확장자를 가지고
그에 맞는 뷰를 찾아 호출(forward)한다
6️⃣ 클라이언트에 응답
뷰를 클라이언트에 응답으로
보내준다
서버 사이드 렌더링
위의 동작처럼
뷰까지 서버에서 관리하여 사용자에게 제공하는 기법을 말한다
이와 반대로는 클라이언트 사이트 렌더링이 있는데
이 경우에 뷰를 그리는 역할은 클라이언트(프론트엔드)가 해주므로
서버는 5️⃣ , 6️⃣ 의 과정 필요없이 json 데이터를 바로 반환해주면 된다
그리고, 이 또한 스프링 MVC을 사용하면
어노테이션을 통해 쉽게 반환할 수 있다
'자바 > 스프링 | 웹' 카테고리의 다른 글
스프링부트, 그래들 프로파일 (0) | 2021.02.10 |
---|---|
Autowired 의존관계 주입 (0) | 2021.01.29 |
UTF-8, CharacterEncoding (0) | 2021.01.15 |
댓글