여씨의 개발이야기

[입문] Java, Jsp Workflow 정리 본문

🐾 Programming Lang/☕ Java

[입문] Java, Jsp Workflow 정리

yeossi 2022. 2. 27. 11:11

최근에 면접을 보러다니면서 가장 현타오고 자괴감 들던 것이 내가 사용하는 주력 언어에 대한 워크 플로우를 완벽하게 정리하여 타인에게 설명하는 것에 대한 실력이 부족하다는 것이었다. 하지만 자괴감이라는 감정에 굴복하지 않고 앞으로 나아가는 사람이 되기로 했으니까, 면접을 보고 난 뒤에는 꼭 복기를 하리라 다짐을 했다.

나의 주력 언어는 java 그리고 jsp이다. 요즘에는 프론트엔드에 관심이 생겨 react나 vue.js 스터디를 하고 있지만, 그래도 당신이 자신 있는 언어가 뭡니까? 라는 질문을 면접 중에 받게 된다면 주저없이 java와 jsp를 답 할 것이다. 그렇게 익숙한 언어였지만 놀랍게도 workflow를 설명하라는 문제에 답을 하지 못 했다. 이후 '시키는 대로 구현하면 되지'라는 안일한 생각으로 개발을 해왔던 n년이란 경력에 대해 회의감을 느꼈고, 반성의 의미로 정리를 다시 해보고자 한다.

※Spring Framework를 기반으로 정리를 해봅니다.

1. java, jsp 구조체 정리

1) DispatcherServlet : 어플리케이션으로 들어오는 모든 Request를 받는 관문
2) HandlerMapping : RequestURL 각각을 어떤 Controller가 실제로 처리할 것인지 매핑
3) Controller : Request를 직접 처리하고 그 결과를 다시 DispatcherServlet에게 돌려줌
4) ModelAndView : Controller가 처리한 결과와 그 결과를 보여줄 View에 관한 정보를 담고 있는 객체
5) ViewResolver : View관련 정보를 갖고 실제 View를 찾아주는 역할
6) View : Controller가 처리한 결과값을 보여줄 View를 생성

2. jsp request / response 순서 정리

사용자가 특정 URL로 HTTP Request를 함
> DispatcherServlet이 Request를 받음
> 받은 Request의 짝꿍 Controller를 HandlerMapping가 매핑해줌
> Controller로 Request를 보내줌
> Controller에서 Request를 받아 Response할 값을 처리
> ModelAndView가 Response를 담고, 보여줄 View에 관한 정보를 이용해 ViewResolver로 보냄
> ViewResolver가 Response를 보여줄 View로 보냄
> View에서 결과를 화면으로 보여줌 

Comments