Controller์์ ๊ฐ ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๋ฉ์๋๋ฅผ ๋ถ์ํ๋๋ฐ ๋ฉ์๋๋ก ๋ค์ด์ค๋ ํ๋ผ๋ฏธํฐ๋ค์ ๋๊ฐ ๋ฃ์ด์ฃผ๋ ๊ฒ์ธ๊ฐ์ ๋ํ ์๋ฌธ์ด ์๊ฒผ๋ค. Controller ๋ถ์์ ๋ง์ ํ๊ธฐ์ ์์ ์ ์ฒด์ ์ธ ํ๋ฆ์ ์๋ ๊ฒ ๋จผ์ ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋์ ์์ฒญ์ด ๋ค์ด์์ ๋ ์๋ฒ์์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ์ฐพ์๋ดค๋ค.
Dispatcher Servlet์ ๋ค์ด์จ ์์ฒญ์ ์ฒ๋ฆฌ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
์์ 3๋ฒ ํญ๋ชฉ์ ์กฐ๊ธ ๋ ์์ธํ๊ฒ ๋ณด์๋ฉด
6~9๋จ๊ณ๋ ์ ํํ์ง ์๋ค.. (ํด๋์ค๋ฅผ ํ๊ณ ์ถ์ ํ๋ค ๋ณด๋ ๊ธฐ๊ฐ ๋นจ๋ ค์ ๊ทธ๋ง..)
๊ธ๋ก ํ์ด ์ฐ๋ ์ดํดํ๊ธฐ ์ด๋ ค์ด ๊ฒ ๊ฐ์ ํ๋ก์ฐ ์ฐจํธ๋ฅผ ๊ทธ๋ ค๋ดค๋ค.

Dispatcher Servlet์ด Handler Adapter๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ @Controller(Handler)์ ๋ฉ์๋๋ฅผ ์ฐพ์์ ์คํํ๋ค๋ ๊ฒ๊น์ง๋ ์๊ณ ์์๋๋ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ถ์์ ์ผ๋ก๋ง ์๊ณ ์์๋ค. ์ฝ๋๋ฅผ ๋ฏ์ด๋ดค์์๋ ์์ง๋ ์ ํํ ์ด๋ป๊ฒ ๋์ํ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ทธ๋๋ ๋ฏ์ด๋ณด๊ธฐ ์ ๋ณด๋ค๋ ์ด๋ก ์ ์ผ๋ก ์๋ ๋ด์ฉ์ ๋ ์ ์ดํดํ ์ ์๊ฒ ๋๋ค. ๋จ์ํ '์ปจํธ๋กค๋ฌ์์ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ํด ์์ฑํ ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ๊ฐ์ ๋๊ฐ ์ด๋ป๊ฒ ์๊ณ ๋ฃ๋ ๊ฒ์ผ๊น?'์ ๋ํ ์๋ฌธ์ผ๋ก ์์ํ๋๋ฐ ํด๋์ค๋ฅผ ๊ณ์ํด์ ํ๊ณ ๋ค์ด๊ฐ๋ฉด์ ํ๋ฆ์ ํ์ ํ๋ค ๋ณด๋ ์๊ฐ๋ณด๋ค ์ฒ๋ฆฌ ๊ณผ์ ์ด ๋ณต์กํ๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก ํ๋ผ๋ฏธํฐ๊ฐ์ Argument Resolver๊ฐ ๋ฃ์ด์ฃผ๋ ๋ฏํ๋ค. (์๋ ์๋...)
์ฝ๋๋ฅผ ๋ฏ์ด๋ณด๋ฉฐ ๊ฐ์ฅ ์ ๊ธฐํ๋ ๋ถ๋ถ์ @Controller์ ๋ฉ์๋๋ฅผ ์์ฑํ๋ฉด ์ปจํธ๋กค๋ฌ ํด๋์ค๋ฅผ ์ฝ์ด์์ (์ ํํ ์ด๋ป๊ฒ ๋์ํ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง) ์ผ๋ จ์ ๊ณผ์ ์ ๊ฑฐ์ณ Dispatcher Servlet์ด ์ ๊ทผ ๊ฐ๋ฅํ ํ๋์ ๊ฐ์ฒด(?) ํํ๋ก ์ ์ฅ๋๋ค๋ ๋ถ๋ถ์ด์๋ค. (๊ทธ๋ฆฌ๊ณ ์ด ๋ถ๋ถ์ ์๋ฒ๊ฐ ๋ถํ ๋ ๋ ์คํ๋๋ค.) ์์ฒญ์ด ๋ค์ด์ค๋ฉด Dispatcher Servlet์ getHandler๋ฅผ ํตํด ๊ฐ์ฒด๋ก ์ ์ฅ๋ Handler๋ฅผ ๊ฐ์ ธ์จ๋ค. ๊ฐ์ ธ์จ Handler๋ ๊ฐ Controller ๋ณ @InitBinder, @ModelAttribute์ ๋๋ถ์ด ๊ฐ ์์ฒญ์ ๋งคํ๋ ๋ฉ์๋๋ค๊ณผ ์ด ๋ฉ์๋๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํ์ํ ์ ๋ณด๋ค์ด ์์๋ค. ์ด๋ฌํ ๋์ ๊ณผ์ ์ ๋ชฐ๋ผ๋ ์ปจํธ๋กค๋ฌ์ ๋ค๋ฅธ ๋ก์ง๋ค๋ง ์ ๊ตฌํํ๋ค๋ฉด ์๋ฒ๊ฐ ๋์ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋๋ก Spring Framework๋ฅผ ๋ง๋ ๊ฐ๋ฐ์ง๋ค์๊ฒ ๊ฐ์ฌํ ๋ง์์ด ๋๋ ์๊ฐ์ด์๋ค. ์ด๊ฑธ ์์์ ๊ตฌํํด์ ์จ์ผ ํ๋ค๋ฉด ์๋ง.. ํฌ๊ธฐํ์ง ์์์๊น...ใ ์๊ฐ์ ์ข ๊ฑธ๋ ธ์ง๋ง, ํ ๋ฒ์ ๋ฏ์ด๋ณด๋ฉด ์ข์๋ฒํ ๋ด์ฉ์ด์๋ค. ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์ฌ์ ๊ฐ ์๊ธด๋ค๋ฉด ์กฐ๊ธ ๋ ์์ธํ๊ฒ ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
Dispatcher Servlet ์ค๋ช
-
https://velog.io/@betterfuture4/Spring-Dispatcher-Servlet-%EC%A0%95%EB%A6%AC
https://tecoble.techcourse.co.kr/post/2021-06-25-dispatcherservlet-part-1/
https://tecoble.techcourse.co.kr/post/2021-07-15-dispatcherservlet-part-2/
https://terasolunaorg.github.io/guideline/5.0.1.RELEASE/en/Overview/SpringMVCOverview.html#overview-of-spring-mvc-processing-sequence
Handler Adapter ๋์ ์ค๋ช
-
https://velog.io/@jihoson94/Spring-MVC-HandlerAdapter-%EB%B6%84%EC%84%9D%ED%95%98%EA%B8%B0