# 목적
이번의 면접 질문중에 Spring MVC 패턴의 Process Flow에 대한 인터뷰 질문을 받았습니다.
워낙 급하게 주먹구구식으로 공부하는 편이라
이론?이라고 해야하나?
기본을 잘 모르기 때문에 면접에서 합격하던 떨어지던 관련 글을 남기겠습니다! 다음번에 실수하지 않기 위해!
# 구체적 내용
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 |