Framework/Spring

[Spring] Spring MVC 패턴의 LifeCycle

검은 까마귀 2023. 10. 26. 10:21

# 목적

이번의 면접 질문중에 Spring MVC 패턴의 Process Flow에 대한 인터뷰 질문을 받았습니다.

 

 

워낙 급하게 주먹구구식으로 공부하는 편이라

이론?이라고 해야하나?

기본을 잘 모르기 때문에 면접에서 합격하던 떨어지던 관련 글을 남기겠습니다! 다음번에 실수하지 않기 위해!

 

 

 

 

# 구체적 내용

 

https://terasolunaorg.github.io/guideline/1.0.1.RELEASE/en/Overview/SpringMVCOverview.html#id2

 

Model, Veiw, Controller

DispathcherServlet, HadlerMappig, HandlerAdapter, ViewResolver

 

 

찾아보니 생각보다 어려운 구조는 아닌거 같습니다만.....
항상 저는쉽게 풀어나가는걸 좋아하기 때문에 "레스토랑"에 비유해서 설명드리겠습니다!

 

 

아래 처럼 가정을 하겠습니다.

레스토랑 스프링 MVC
손님 브라우저
리셉션(안내데스크) DispathcherServlet
테이블 배치도 HadlerMappig
웨이터 Controller
주문서 양식 HandlerAdapter
주방 Model
음식과 테이블 셋팅 View
메뉴카드 ViewResolver

 

순서대로 한번 작성해 비교하며 작성해볼게요!

 

순서 레스토랑 스프링 MVC 패턴
1 고객이 레스토랑에 들어옴 사용자가 웹 페이지에 요청을 보냄
2 리셉션에서 고객을 맞이하고 안내 'DispathcherServlet'이 웹 요청을 처음으로 받음
3 리셉션은 테이블 배치도를 참조하여 고객을 알맞은 테이블에 안내 'HadlerMappig'을 통해 해당 요청을 처리할 ' Controller '를 찾음
4 웨이터가 고객의 주문을 받음 Request 대해 어떤 로직으로 처리할 것인지 결정
5 웨이터는 주문서의 양식대로 주문 내용을 정리 'HandlerAdapter'를 통해 컨트롤러 메서드를 호출
6 주방에 주문서 전달 'Controller'는 비지니스 로직을 처리하고, 그 결과를 'Model'에 담아 'View'이름과 함께 반환
7 주방에서 요리가 완료되면 준비된 음식을 웨이터에게 전달 'ViewResolver'가 컨트롤러에서 반환된 뷰 이름을 기반으로 실제 뷰 파일을 찾음
8 웨이터가 고객에게 요리된 음식을 제공 뷰파일이 렌더링 되어 사용자에게 HTML페이지로 응답

 


# 정리

이렇게 레스토랑의 한 과정과 스프링 MVC 패턴에 일어나는 일련의 과정들을 작성해보았는데

적절한 예시가 될거 같습니다.

 

저는 이렇게 적절한 실생활 예시로 비교해서 공부하면 더 쉽게 이해가 되더라고요!

면접에서는 다른거 공부한다고 답변을 못한게 아쉽지만

배워간다는 과정으로 보았을때 면접은 다다익선인거 같습니다!

 

오늘도 저희 부족함을 알아갈 수 있었습니다 ㅎㅎ

 

긴 글 읽어주셔서 감사합니다!

반응형

'Framework > Spring' 카테고리의 다른 글

[Spring] Open API 활용하기  (0) 2023.12.15
[Spring] Rest Doc 활용하기  (0) 2023.12.13
[Spring] JPA의 Persistence  (0) 2022.04.11
[Spring] Gradle 1편  (0) 2022.04.04
[Spring] JPA-ORM  (0) 2022.03.10