๋ณดํต ๋ฌด์ธ๊ฐ๊ฐ ํ์ ์์ ๋ less๋ฅผ ์ฌ์ฉํ๋ค.
Containerless๋ ์ด๋ฆ ๊ทธ๋๋ก Container๊ฐ ํ์์๋ค๋ ๋ป์ ๊ฐ์ง๊ฒ ๋๋๋ฐ,
์ด๊ฒ์ด ์คํ๋ง ๋ถํธ๊ฐ ์์๋๋ ๋ฐฐ๊ฒฝ์ผ๋ก ๋ณผ ์ ์๋ค.
Container?
๋ชจ๋๊ณผ ์ปดํฌ๋ํธ, ์ปจํ ์ด๋์ ๋ํ ํฌ์คํธ๋ฅผ ์ฐธ๊ณ ํ์๊ณ ์ค๋ฉด ์ข๋ค.
์ ํฌ์คํธ์์ ๋ชจ๋๊ณผ ์ปดํฌ๋ํธ๋ ์ํํธ์จ์ด ๊ณตํ์์ ์ ์ํ ๋ด์ฉ์ด๋ค.
์ด ํฌ์คํธ์ ์ปดํฌ๋ํธ๋ FrontEnd์์ ์ค๋ช ํ๋ ์ปดํฌ๋ํธ์ BackEnd์์ ์ค๋ช ํ๋ ์ปดํฌ๋ํธ๊ฐ ํ์ ๋ ๊ฒ.
์ฐ๋ฆฌ๊ฐ ์น, ์ฑ์์ ํน์ ๊ธฐ๋ฅ๋ค(๊ธ์ฐ๊ธฐ, ๋ฉ์ผ ์์ฑ, ...)์ ์ฌ์ฉํ๋ ค๋ฉด FrontEnd์์ ๋ณด์ด๋ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋น ์ปดํฌ๋ํธ๊ฐ ๋ฐฑ์๋์ ์ปดํฌ๋ํธ์ ์ฐ๊ฒฐ๋์ด ์ฐ๋ฆฌ์๊ฒ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ฒ ๋๋ค.
SpringBoot๋ Java ๊ธฐ๋ฐ FrameWork์ด๋ค.
Java์์ Container๋ Servlet Container๋ผ๊ณ ๋ถ๋ฅด๊ณ Component๋ฅผ Servlet์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Spring์์๋ Container๋ฅผ Spring Container๋ผ๊ณ ๋ถ๋ฅด๊ณ Component๋ฅผ Bean์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ฆ, ์น์์ Resource๋ฅผ Requestํ๋ฉด Servlet Container์ Component๋ฅผ ํตํด Spring Container์์ ์์ ์ ์ํํ๋ค.
Servlet Container๋ฅผ ํตํด Spring Container์์ ์์ ์ ์ ํ๋๊ฐ?
Java์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ์น ๊ธฐ์ ์ Servlet Container๋ฅผ ํธ์ถํด์ผ ์ฌ์ฉํ ์ ์๋ค.
์ฆ, ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ํ๋ฉด Spring Container์์ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ Response ๋ฐ๋ ํํ์ด๋ค.
Spring ์ ์ฅ์์ Servlet์ด Bean์ด๋ผ๊ณ ํด์ Servlet = Bean์ด ์๋๋ค.
Servlet์ Servlet Container์ Component ์ด๊ณ Bean์ Spring Container์ Component์ ๊ฐ์ ๊ฒ์ด๋ค.
์ฆ, servlet์ bean๋ค๋ก ๊ตฌ์ฑ์ด ๋์ด client์๊ฒ response ํ๊ฒ ๋๋ค.
Containerless
๊ทธ๋ผ ์ฐ๋ฆฌ๋ Spring์์ Servlet์ ์ฒ๋ฆฌํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค.
๊ทธ๋ฌ๋ฉด Spring์ ์ฌ์ฉํ๋ ค๋ฉด Servlet Container์์ ํธ์ถํด์ผ ๋๋ค๋ ๊ฒ์ด๋ค.
์ฐ๋ฆฌ๋ ์ ๋ฐ Servlet Container๋ฅผ ํธ์ถํ๋ ๊ฒ์ Was(WebApplicationServer)๋ผ๊ณ ํ๋ค.
์ธํฐํ์ด์ค ํฌ์คํธ๋ฅผ ์ฐธ๊ณ ํด๋ณด์.
Servlet Container๋ ํด๋ผ์ด์ธํธ๊ฐ Spring์ ๊ธฐ์ ์ ์ฌ์ฉํ๊ธฐ ์ํ ํ๋์ Interface๋ก ๋ณผ ์ ์๋ค.
๋ง์ฝ, ์ธํฐํ์ด์ค์ ๊ฐ์ด ์ฌ์ฉํ์ง ์๋๋ค๋ฉด?
1. ์ฐ๋ฆฌ๋ Spring ์์ ์ ์์ํ ๋ ๋ง๋ค Web.xml๊ณผ ๊ฐ์ด ์ด๊ธฐ ์ค์ ์ ํด์ผํ๋ค.
2. ์ฐ๋ฆฌ๋ Spring ์์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด Servlet์ Buildํ๊ณ Deploy ํด์ผ ํ๋ค.
3. ๊ทธ ์ธ์๋ ๋ค์ํ ์์ ๋ค์ด ์์ง๋ง ์ ๊ณผ์ ๋ค์ ์ํํ๊ธฐ ์ํ ์ง์์ด ํ์ํ๋ค.
์ฆ, ์ง์ ์ฅ๋ฒฝ์ด ๋์์ง๋ค.
๊ทธ๋ฐ๋ฐ ์ค์ํ ์ ์ ์ด ์์ ์ ํ๋ก์ ํธ ๊ธฐ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ์์ ์ด ์๋๋ผ๋ ๊ฒ์ด๋ค.
์ ๊ณผ์ ๋ค์ ๊ณตํต๋ ์์ ์ธ๋ฐ ์ง์ ์ฅ๋ฒฝ์ด ๋์ผ๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊น?
ํ๋ก์ ํธ ๊ธฐ๊ฐ์ด ๊ธธ์ด์ง์๋ก ์ ๋ด์ฉ์ ์๊ณ ๋ค์ ์ฐพ์๋ด์ผํ๋ ๋ฐ๋ณต ์์ ์ด ๋ฐ์ํ๋ค.
ํจ์จ์ด ๋๋ฌด ๋จ์ด์ง๊ฒ ๋๋ ๋ฌธ์ ์ ์ด๋ค.
์ฐ๋ฆฌ๊ฐ Spring Frame Work๋ฅผ ์ฌ์ฉํ ์ค ์๋ค๊ณ ๊ฐ์ ํด๋ณด์.
๋ณดํต, Was๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด์ Tomcat์ ์ฌ์ฉํด์ ์ ์ ํ์ด์ง๋ฅผ ๊ด๋ฆฌํ๋ค.
๊ทธ๋ผ ์ฐ๋ฆฌ๋ Tomcat์ ์ฌ์ฉํด Servlet์ ํธ์ถํ๊ณ Spring ์ผ๋ก ์ฒ๋ฆฌ๋ฅผ ํ ๊ฒ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์ค๋ฌด์์ Tomcat์ด ์๋ Jetty, Undertow์ ๊ฐ์ Servlet Conatiner๋ฅผ ์ฌ์ฉํ๋ค๋ฉด?
์ฐ๋ฆฌ๋ ๋ ๋ค์ ๊ณต๋ถ๋ฅผ ํด์ผํ๋ ๊ฒ์ด๋ค.
์ด๋ฐ ์ด์ ๋๋ฌธ์ ์ฌ์ฉ์๋ค์ Spring ์ธก์ผ๋ก๋ถํฐ ๋ถํธํจ์ ํธ์ํ๋ ISSUE๋ฅผ ์์ฑํ๋ค.
์ด์ฐจํผ Container๋ ๊ณตํต์ ์ธ ์์ ์ด๋ฏ๋ก ๋ ์ด์ ๊ฐ๋ฐ์๊ฐ ์ด ๋ถ๋ถ์ ๋ํด ์ ๊ฒฝ์ฐ์ง ์๋๋ก ๋ง๋ ๊ฒ์ด Containerless๋ฅผ ์ฑํํ SpringBoot์ด๋ค.
์ผํ์ ํ ๋ฒ ์๊ฐํด๋ณด์.
1. ์ฐ๋ฆฌ๊ฐ ๋งํธ์์ ๋ฌผ๊ฑด์ ๊ตฌ๋งคํ๋ ค๊ณ ํ๋ค.
2. Container(์ฅ๋ฐ๊ตฌ๋)๊ฐ ํ์ํ๋ค. ๋จผ์ ๊ตฌ๋งคํ๋ ค๋ ๋ฌผํ๋ค์ ๊ณ ๋ คํด์ ์ฅ๋ฐ๊ตฌ๋๋ฅผ ์ ํํ๋ค.
3. ๋ฌผ๊ฑด๋ค์ ์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ณ ํ์ ์์ ๊ฒฝ์ฐ ๋บ๋ค. (๋ฌผ๋ฆฌ์ ์ผ๋ก)
4. ์ง์ ๋์ฐฉํ ๋๊น์ง ์ฅ๋ฐ๊ตฌ๋๋ฅผ ๋ค๊ณ ์์ผ ํ๋ค.
Containerless๋ผ๋ฉด?
1. ๋ฌผ๊ฑด๋ค์ ์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ณ ๋บ ๋ ๋ฌผ๊ฑด์ ์ง์ ์ฎ๊ธธ ํ์๊ฐ ์๋ค. (ํด๋ฆญ๋ง)
2. ๋ฌผ๋ฆฌ์ ์ธ ์ฅ๋ฐ๊ตฌ๋๊ฐ ํ์์๋ค. ํ๋ฐฐ๊ธฐ์ฌ๊ฐ ์์์ ์ฑ๊ฒจ์ค๋ค.
standalone application
๊ทธ๋ผ, Containerless๋ ์๊ฒ ๋๋ฐ ๋ ๋ฆฝ ์คํํ ํ๋ก๊ทธ๋จ์ ๋ฌด์์ธ๊ฐ?
SpringBoot์์ Containerless ์ฑ์ง์ด ์์ด๋ ์ด์จ๋ Spring์ bean๋ค์ด ๋์ํ๋ ค๋ฉด
Servlet Container๋ ์คํ์ด๋์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ผ Containerless๊ฐ ์๋์ง ์๋?
Containerless๋ container์ ๋ํ ํฌ์๊ฐ ํ์์๋ ๊ธฐ์ ์ด์ง container๊ฐ ์์ด๋ ๋๋ ๊ธฐ์ ์ด ์๋๋ค.
SpringBoot๋ ์์ฑํ ์ฝ๋๋ค์ ์คํํ๊ธฐ ์ํด tomcat๊ณผ ๊ฐ์ ServletContainer ๊ธฐ์ ์ด ์ฌ์ฉ๋๋ค.
container์ ๊ด๋ จ๋ ๋ด์ฉ์ ๋ฐ๋ก ์์ฑํ๊ณ buildํ์ง ์์๋(Containerless)
SpringBoot Project๋ฅผ ์คํํ๋ ์๊ฐ์ Container๋ฅผ ๊ฐ์ด ๋์ฐ๋ ์์ ์ ํ๋๋ฐ
์ด๋ฐ ๊ฒ์ ๋ ๋ฆฝ์คํํ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ํ๋ค.
์ฐธ๊ณ
์ธํ๋ฐ ํ ๋น์ ์คํ๋ง ๋ถํธ - ์ดํด์ ์๋ฆฌ
ํ ๋น์ ์คํ๋ง ๋ถํธ - ์ดํด์ ์๋ฆฌ ๊ฐ์ - ์ธํ๋ฐ
์คํ๋ง ๋ถํธ์ ํต์ฌ ๊ธฐ๋ฅ์ ์ง์ ๋ง๋ค์ด๋ณด๋ฉด์ ์คํ๋ง ๋ถํธ์ ๋์ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ์ด๋ฅผ ํตํด ์คํ๋ง ๋ถํธ๋ฅผ ์ ํ์ตํ๊ณ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฐ์์ ๋๋ค. ์คํ๋ง ๋ถํธ๊ฐ ์ฌ์ฉํ๋ ์คํ
www.inflearn.com
https://inpa.tistory.com/entry/TOMCAT
[TOMCAT] ๐ฑ ์ํ์น ํฐ์บฃ ๊ฐ๋ ๊ตฌ์ฑ & ์ค์ ๐ฏ ์ ๋ฆฌ
์ํ์น (Apache) ์ ํฐ์บฃ (Tomcat) ์ํ์น (Apache) ์ํ์น ์ํํธ์จ์ด ์ฌ๋จ์์ ๋ง๋ ์น์๋ฒ(web server)๋ฅผ ์ผ์ปซ๋๋ค. ๋ฆฌ๋ ์ค์์๋ httpd ๋ก ๋ช ๋ช ์ง์ด์ ธ ๋ฐฐํฌ๋๋ค. ์ ์ ์ธ ๋ฐ์ดํฐ๋ค (html, css ์ด๋ฏธ์ง, ํ์ผ
inpa.tistory.com
ServletContainer vs SpringContainer
ServletContainer์ SpringContainer๋ ๋ฌด์์ด ๋ค๋ฅธ๊ฐ?
Controller 1๊ฐ๋ ์ด๋ป๊ฒ ์์ญ ๋ง๊ฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋๊ฐ
sigridjin.medium.com
โป ์ธํ๋ฐ Toby์ SpringBoot ์ดํด์ ์๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํฉ๋๋ค.
'SpringBoot > ์ดํด์ ์๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Opinionated๊ณผ Out of the box (0) | 2024.03.04 |
---|