์ฐธ๊ณ
๐ก Youtube : [10๋ถ ํ
์ฝํก] ํ๋ฏธ์ Servlet vs Spring
์น์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋์๋ฐฉ์
- ์ฒ์์ ํด๋ผ์ด์ธํธ์์ ์จ ์์ฒญ์ ์น์๋ฒ(NginX ๋ฑ๋ฑ)์์ ์ ์ ๋ฐ์ดํฐ๋ก๋ง ์ฒ๋ฆฌํจ. โ ๋์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ํ๊ณ ์ถ์ด์ง!
- CGI : ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ธํฐํ์ด์ค(๊ท์ฝ / ๊ตฌํ์ฒด) โ ์์ฒญ์ด ์ค๋ฉด CGI ๊ตฌํ์ฒด(PHP ๋ฑ๋ฑ)์ ์ ์ฅ๋ ๋์ ๋ฐ์ดํฐ๊ฐ ๋ด๊ธด ๋ฉ์๋ ํธ์ถ
- ๋ฌธ์ ์
- ์์ฒญ์ด ๋ค์ด์ฌ ๋๋ง๋ค ํ๋ก์ธ์ค(๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ ํ๋ก๊ทธ๋จ ์ธ์คํด์ค)๋ฅผ ๋ง๋ค์ด์ ์ค๋ ๊ฑธ๋ฆผ โ ์ฐ๋ ๋(ํ ํ๋ก์ธ์ค ๋ด ๋์ ํ๋ฆ) ๋ฑ์ฅ!
- ๊ฐ์ ๊ตฌํ์ฒด๋ฅผ ์ฌ์ฉํด๋ ์ฐ๋ ๋์ ๋ฐ๋ผ ํ๋์ฉ ๊ตฌํ์ฒด๊ฐ ์๊น โ Singleton ๋ฐฉ์์ ํ๋์ ์ธ Servlet ๊ตฌํ์ฒด(์ธํฐํ์ด์ค) ๋ฑ์ฅ! (์ ์๋ ๋ฉ์๋ ํธ์ถ ์ญํ )
- Servlet ์ ์ ์๋ ๋ฉ์๋
init : Servlet ์ธ์คํด์ค ์์ฑ
service : ์น ์ปจํ
์ด๋(Tomcat)์ HTTP Method(GET, POST, PUT, DELETE) ํธ์ถ (๋ฐฑ์๋๋ ํด๋น ํธ์ถ์ ๋ํ ๋ก์ง์ ์์ฑํ๋ ๊ฒ!)
destroy : Servlet ์ธ์คํด์ค ์ฌ๋ผ์ง
์๋์ ๋ชจ๋ ๊ณผ์ ์ด Spring์ Dispatcher Servlet์ ์ค์ฌ์ผ๋ก ์ด๋ฃจ์ด์ง!

- ํด๋ผ์ด์ธํธ โ ์น์๋ฒ โ WAS(Tomcat) โ Servlet Container ์์ผ๋ก ์์ฒญ์ด ์ ๋ฌ๋จ!
- Servlet ์ปจํ
์ด๋์์ Dispatcher Servlet ์ผ๋ก ์์ฒญ ์ ๋ฌ
- Dispatcher Servlet์ ์ค์ ๋
Web.xml์ ๊ธฐ๋ฐ์ผ๋ก ์์ฒญ์ ๋ฐ๋ฅธ ์ ํฉํ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฐพ๋ Handler Mapping ์ ์ํ
BeanNameHandlerMapping : Bean ์ด๋ฆ๊ณผ Url ์ Mapping ํ๋ ๋ฐฉ์
DefaultAnnotationHandlerMapping : Annotation(@) ์ผ๋ก Url ๊ณผ Mapping ํ๋ ๋ฐฉ์
- Handler Adapter๋ HandlerMapping ์์ ์ฐพ์ Handler(Controller)์ ๋ฉ์๋๋ฅผ ํธ์ถ (๋ชจ๋ธ(data) ๊ณผ View(String) ๋ฅผ ๋ฐํ)
- View Resolver ๊ฐ View ์ด๋ฆ์ผ๋ก View ๊ฐ์ฒด๋ฅผ ์์ฑ
- View ์์๋, 4๋ฒ์์ ๋ง๋ View ๊ฐ์ฒด์ Handler Adapter์์ ๋ฐํํ ๋ชจ๋ธ(data)์ ์ฝ์
- Dispatcher Servlet ์์ Servlet container ๋ก ์๋ต!
- ๊ฒฐํฉ์ ๋ถํด์ ์ญ์!