๋ชฉ์ฐจ
โ 1. ์น ์๋ฒ & ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ
โ 2. ์คํ๋ง๋ถํธ ํ๊ฒฝ ๋ด์ฅ ์๋ฒ
โ 1. ์น ์๋ฒ๋?
1. ์น ์๋ฒ & ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ
์น ์๋ฒ๋?
1. HTTP ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์์ฃผ๊ณ ์ ์ ์ธ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํด์ฃผ๋ ์ญํ ์ ํ๋ค.
2. ์ ํํ๋, ์ ์ ๋ฆฌ์์ค๋ฅผ WAS์์ ๋ฐ์์ ํด์ํด์ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํด์ฃผ๋ ์ญํ ์ ํ๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋?
1. ์น ์๋ฒ๊ฐ ์กด์ฌํด์ผ์ง๋ง ์กด์ฌํ ์ ์๋ ์๋ฒ์ด๋ฉฐ, ๋์ ์ธ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํด์ฃผ๊ธฐ ์ํด ์กด์ฌํ๋ ์๋ฒ์ด๋ค.
2. ๋์ ์ธ ์ปจํ ์ธ ๋ก๋ DB์กฐํ๋ ๋ค์ํ ๋ก์ง ์ฒ๋ฆฌ ๋ฐ ๊ณ์ฐ ๋ฑ ์ฒ๋ฆฌ๋ฅผ ํด์ ์น ์๋ฒ๋ก ์ ๋ฌ์ ํด์ฃผ๋ ์ญํ ์ ํ๋ค.
2. ์คํ๋ง๋ถํธ ํ๊ฒฝ ๋ด์ฅ ์๋ฒ
์คํ๋ง๋ถํธ๋ ์น ์๋ฒ & ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ฅผ ํฉ์น ์๋ฒ๋ฅผ ๋ด์ฅ ์๋ฒ์ธ "์ํ์น ํฐ์บฃ"์ ๊ฐ์ง๊ณ ์๋ค.
์ํ์น ์ ๋จ์์ ๋ง๋ ์ํ์น ์น์๋ฒ์ ๊ธฐ์ ๊ณผ ํฐ์บฃ์ด๋ผ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ๊ธฐ์ ์ ํตํฉํด์ ๋ง๋ค์ด์ง ์๋ฒ์ด๋ค.
implementation 'org.springframework.boot:spring-boot-starter-web'
์คํ๋ง๋ถํธ ํ๊ฒฝ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์ฝ๋์ ๊ฐ์ด web ์์กด์ฑ์ ์ถ๊ฐํ๊ฒ๋๋ฉด ์๋์ ์ผ๋ก ์ํ์น ํฐ์บฃ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐ์์ฌ ์ ์๋ค. ์ฆ, ์ํ์น ํฐ์บฃ ๋ด์ฅ์๋ฒ๋ ์๋ฐ์ฝ๋์ธ ๊ฒ์ด๋ค.
Tomcat์ ๊ตฌ์ฑ ์์

1. ServletContainer
Tomcat์ ํต์ฌ ๊ตฌ์ฑ ์์ ์ค ํ๋๋ก, ์๋ธ๋ฆฟ์ ๋ก๋ํ๊ณ ์คํํ๋ฉฐ, ์๋ธ๋ฆฟ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
์ด๋ HTTP ์์ฒญ์ ์๋ธ๋ฆฟ์ผ๋ก ๋ผ์ฐํ ํ๊ณ , ์๋ธ๋ฆฟ์ ์๋ต์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํํฉ๋๋ค.
2. Catalina ( ServletContainer ๊ตฌํ์ฒด => Coyote๋ฅผ ํฌํจํ๊ณ ์๋ ํต์ฌ ๊ตฌํ์ฒด )
Tomcat์ ServletContainer ๊ตฌํ์ฒด๋ก, ์ค์ ๋ก ์๋ธ๋ฆฟ API๋ฅผ ๊ตฌํํ๊ณ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์ญํ ์ ํด์ฃผ๋ฉฐ Coyote๋ฅผ ํฌํจํ๊ณ ์๋ค. Catalina๋ ์๋ธ๋ฆฟ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์๋ธ๋ฆฟ์ ๋ํ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ํ๋์ ๋ชจ๋์ด๋ค.
( ๊ตฌ์ฒด์ ์ผ๋ก๋ ์๋ธ๋ฆฟ์ ์ด๊ธฐํ, ํธ์ถ, ์๋ฉธ ๋ฑ์ ๊ด๋ฆฌํ๊ฒ ๋๋ค. )
2-1. Thread Pool ๊ด๋ฆฌ
Thread Pool์ ๊ด๋ฆฌ๋ฅผ ํ๊ณ ๊ฐ๊ฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ค๋ ๋๋ฅผ ํ ๋น์ ํด์ค๋ค.
2-2. HTTP ์์ฒญ ํ์ฑ
์ธ๋ถ์ ์ธ ์ญํ ๋ก๋ HTTP ์์ฒญ์ ๋ํ ์์ฒญ ๋ฉ์์ง๋ฅผ ํ์ฑํ์ฌ ์์ฒญ ๋ผ์ธ, ํค๋, ๋ณธ๋ฌธ ๋ฑ์ ์ ๋ณด๋ฅผ ์ถ์ถํ ๋ค ์์ฒญ ๊ฐ์ฒด์ธ Request๊ฐ์ฒด์ Response๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์์ฒญ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ฒ ๋๋ค. ์ด๋ ๋ค์ด๊ฐ๋ ๋ฐ์ดํฐ๋ก๋ HTTP ๋ฉ์๋์ ์ ๋ณด, ์์ฒญ URL, ํค๋ ์ ๋ณด, ๋ณธ๋ฌธ ๋ฐ์ดํฐ ๋ฑ์ ์ ๋ณด๊ฐ ์ ์ฅ์ด ๋๋ค.
๋ํ, ์๋ต์ ๋ํด์๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์์ฑ๋ HTTP ์๋ต ๊ฐ์ฒด์ธ Response๊ฐ์ฒด๋ฅผ ๋ฐ์ ์๋ต ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก HTTP ์๋ต ๋ฉ์์ง๋ฅผ ์์ฑํ ๋ค ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต ๋ฉ์์ง๋ฅผ ์ ์กํ๋ ๋ฐฉ์์ด๋ค.
๊ทธ ์ธ์๋ Servlet ๋งคํ, HTTP ์๋ต์ ๊ตฌ์ฑ์ ์ํํด์ค๋ค.
3. Coyote ( ServletContainer ๊ตฌํ์ฒด )
Coyote๋ ๋คํธ์ํฌ ์์ค์์์ ์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ๋ฉฐ, ์๋ธ๋ฆฟ ์ปจํ ์ด๋์๊ฒ ๋ค์ด์ค๋ ์์ฒญ์ ์ค๊ณํ์ฌ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
์ฝ๊ฒ ๋งํด, HTTP ํ๋กํ ์ฝ์ ์ฒ๋ฆฌํ๋ ์ปค๋ฅํฐ๋ก, ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์ ์์ฒญ์ ๋ฐ์๋ค์ด๊ณ , ์๋ต์ ๋ณด๋ด๋ ์ญํ ์ ํ๋ค.
4. Jasper ( ServletContainer ๊ตฌํ์ฒด )
JSP ํ์ผ์ ์ฒ๋ฆฌํ๋ ์ปดํฌ๋ํธ๋ก, JSP๋ฅผ ์๋ธ๋ฆฟ์ผ๋ก ๋ณํํ๊ณ ์คํํฉ๋๋ค.
5. Thread Pool
Tomcat์ ๋ด๋ถ์ ์ผ๋ก ์ฐ๋ ๋ ํ์ ์ฌ์ฉํ์ฌ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ํจ์จํํฉ๋๋ค. ๊ฐ HTTP ์์ฒญ์ ์ฐ๋ ๋ ํ์์ ์ฐ๋ ๋๋ฅผ ํ ๋น๋ฐ์ ์ฒ๋ฆฌ๋๋ฉฐ, ์ด๋ฅผ ํตํด ์์ ๊ด๋ฆฌ์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ๋๋ชจํฉ๋๋ค.
* ํด๋น ์ฐ๋ ๋ ํ์ ๊ด๋ฆฌํ๋๊ฑด Catalina์ด๋ค.
์๋ธ๋ฆฟ ํ๋ก์ ํธ ๋์ ๋ฐฉ์
1. ์๋ธ๋ฆฟ ํ๋ก์ ํธ ์๋ฒ ๊ตฌ๋ ์์
์ํ์น ํฐ์บฃ์ ์๋ฒ๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ๋ฅผ ๊ตฌ๋ ์ํค๊ฒ ๋๋ฉด ServletContainer๊ฐ ๋จ๊ฒ ๋๊ณ ํด๋น ์๋ธ๋ฆฟ ์ปจํ ์ด๋ ๋ด๋ถ์๋
๊ธฐ์กด์ ์ค์ ํ์ผ๋ก ์ ์๋ฅผ ํด๋ Servlet์ด๋ ์ ๋ํ ์ด์ ์ผ๋ก ์ ์ํด๋ Servlet์ด ์กด์ฌํ ๊ฒฝ์ฐ ํด๋น Servlet์ init() ๋ฉ์๋๋ฅผ ํตํด ServletContainer์ ์ฑ๊ธํค ์ธ์คํด์ค๋ก ๋ณด๊ด์ ํ๊ฒ๋๋ค.
์ด ๋ถ๋ถ์์๋ xml๋ฐฉ์๊ณผ ์ ๋ํ ์ด์ ์ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์กด์ฌํ๋ค.
* xml๋ฐฉ์
์๋ฒ์ ๊ตฌ๋ ์์ ์ xml ์ค์ ํ์ผ์ ์ ๋ณด๋ฅผ ์ฝ์ด ํด๋น api ์๋ํฌ์ธํธ์ Servlet์ ํด๋์ค๋ช ์ ๊ธฐ์ฌํจ์ผ๋ก์จ ์๋ฒ๊ฐ ๋ฐ ๋
๋ฐ๋ก ServletContainer์ ํด๋น Servlet์ ์ฑ๊ธํค ์ธ์คํด์ค๋ก ๋ณด๊ดํ๊ฒ ๋๋ค.
* ์ ๋ํ ์ด์ ๋ฐฉ์
์๋ฒ์ ๊ตฌ๋์ด ๋๋๊ณ ์์ฒญ์ด ๋ค์ด์ ํด๋น Servlet์ ์๋ํฌ์ธํธ๋ฅผ ์ ๋ํ ์ด์ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ์ฐพ๊ฒ ๋๋ค.
์ฐพ๊ฒ๋๋ฉด ํด๋น ์ ๋ํ ์ด์ ์ ๊ทธ๋ ํด๋น ์๋ธ๋ฆฟ์ init()๋ฉ์๋๋ฅผ ํตํด ServletContainer์ ์ฑ๊ธํค ์ธ์คํด์ค๋ก ๋ง๋ค์ด์ ธ
๋ณด๊ด์ด ๋๊ฒ ๋๋ค. ( ์ฆ, ๋ฐํ์ ์์ ์ ์์ฒญ์๋ํด ๋์ ์ผ๋ก ๋ง๋ค์ด์ ธ์ Container์ ๋ฑ๋ก์ด ๋๋ ๊ฒ์ด๋ค. )
์ด ์ฒ๋ผ ๊ธฐ์กด ์๋ธ๋ฆฟ ํ๋ก์ ํธ ๋ฐฉ์์ api์ ๋ํ ์์ฒญ์ ๊ฐ๊ฐ์ ์๋ธ๋ฆฟ์ด ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์ด Servlet์ ์ฝ๋์ ๋ํ ์ค๋ณต์ด ๋ง์ด ๋ฐ์ํ์๋ค. ( ํด๋น ๋ฌธ์ ์ ์ ๋ณด์ํ์ฌ ๋ง๋ค์ด์ง ๊ฒ์ด SpringWebMVC์ด๋ค. )
2. ์๋ธ๋ฆฟ ํ๋ก์ ํธ ์์ฒญ ์์
์์ฒญ์ด ๋ค์ด์ค๋ฉด ์ํ์น ํฐ์บฃ์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์ ์์ฒญ์ ๋ฐ์ ServletContainer์ ๋ด๋ถ์ Thread Pool์์ ์์ฒญ์ ์ฒ๋ฆฌํด ์ค Thread 1๊ฐ๋ฅผ ํ ๋น์ ๋ฐ์ ์์ฒญ์ ์๋ง๋ Servlet(Container ์ฑ๊ธํค ์ธ์คํด์ค)์ ์ฐพ์ request์ response ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด ์์ฒญ์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค.
์คํ๋ง ํ๋ก์ ํธ ๋์ ๋ฐฉ์ ( Spring Web MVC )
์คํ๋ง์ DispatcherServlet์ ํตํด ์์ ์๋ธ๋ฆฟ ํ๋ก์ ํธ์ ๊ณผ์ ์ ๋ณด์ํ๊ณ ์๋ค.
๊ธฐ์กด ์๋ธ๋ฆฟ ๋ฐฉ์์ ๋์ ๋ฐฉ์๊ณผ ๋น์ทํ๊ฒ ์ํ์น ํฐ์บฃ ์๋ฒ๊ฐ ๋ฐ ๋ ํด๋น DispatcherServlet์ ServletContainer์
init() ๋ฉ์๋๋ฅผ ํตํด ์ฑ๊ธํค ์ธ์คํด์ค๋ก ๋ณด๊ด์ ํ๊ฒ ๋๋ค.
์์ฒญ์ด ๋ค์ด์ฌ ๋ ํด๋น ์์ฒญ์ ๋จ์ํ๊ฒ DispatcherServlet์ ํตํด api ์๋ํฌ์ธํธ์ ๋ง๋ Controller๋ฅผ ์ฐพ์ ๋งคํ์ ํ๊ฒ ๋๋ค. Controller๋ฅผ ์ฐพ์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ต ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด ๋ฐํํ๋ ๋ฐฉ์์ด๋ค.
๊ธฐ์กด ์๋ธ๋ฆฟ ํ๋ก์ ํธ ๋ฐฉ์๊ณผ ๋ค๋ฅด๊ฒ ํ๋์ ์๋ธ๋ฆฟ์ ํตํด api ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ ๋ฐฉ์์ด๋ค.
1. ์คํ๋ง๋ถํธ ์๋ฒ๊ฐ ์ผ์ง ๋ ์์
์คํ๋ง๋ถํธ๋ฅผ ์ฒ์ ์คํํ๊ฒ ๋๋ฉด ๋ด๋ถ์๋ฒ์ ๋์์ผ๋ก ServletContainer๊ฐ ๋จ๊ฒ ๋๊ณ ServletContainer ๊ตฌํ์ฒด์ธ Coyote ์ปค๋ฅํฐ๋ฅผ ์ด์ฉํด ๋คํธ์ํฌ ์์ผ์ ์ด์ด ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์ HTTP ์์ฒญ์ ๋๊ธฐํ๊ฒ ๋๋ค.
// ๊ทธ ํ ServletContainer๋ ๋ด๋ถ์ ์ผ๋ก DispatcherServlet ๊ฐ์ฒด๋ฅผ ์ฑ๊ธํค์ผ๋ก ํ๋๋ฅผ ์์ฑํด์ ๊ฐ์ง๊ณ ์๊ฒ ๋๋ค.
( SpringContainer๊ฐ Bean์ ๋ฑ๋กํ์ฌ ์ฑ๊ธํค์ผ๋ก ํ๋๋ง ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ๊ณผ ๋๊ฐ ๋ค Container๋ผ๋ ์ ์ ๋ณผ ๋ ํด๋น ํ๋ก์ ํธ์์ ์ฐ์ด๋ Container๋ผ๋๊ฑด ๊ฐ์ฒด๋ฅผ ํ๊ฐ๋ง ๊ฐ์ง๋ ์ฑ๊ธํค ์ปจํ ์ด๋๋ผ๊ณ ๋ณผ ์ ์๋ค. )
2. ์คํ๋ง๋ถํธ ์๋ฒ์ ์์ฒญ์ด ๋ค์ด์ฌ ๋
1. ์น์ผ๋ก๋ถํฐ ์์ฒญ์ด ๋ค์ด์ค๊ฒ ๋๋ฉด ์คํ๋ง๋ถํธ ๋ด์ฅ ์๋ฒ์ธ ์ํ์นํฐ์บฃ์ด ์์ฒญ์ ์์ ํ๊ฒ ๋๋ค.
2. ๋ด๋ถ์ ๊ฐ์ง๊ณ ์๋ Thread Pool์์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ค๋ ๋๋ฅผ ํ ๋น์ ๋ฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ฒ ๋จ
3. ๋์ด์จ HTTP ์์ฒญ ๋ฉ์์ง๋ฅผ ServletContainer๊ฐ ํ์ฑํ์ฌ HTTP ๋ฉ์๋, URL, ํค๋, ๋ฐ๋ ๋ฑ์ ์ ๋ณด๋ฅผ ์ถ์ถํ์ฌ HttpServletRequest์ HttpServletResponse๊ฐ์ฒด์ ๋ด๊ฒ ๋๋ค.
4. ์ดํ service() ๋ฉ์๋์ request์ response๋ฅผ ๋ฃ์ด ํธ์ถ์ ํ๊ฒ๋๋ฉด DispatcherServlet์ด ํธ์ถ์ด ๋๋ค.
5. DispacherServlet์ ๋ฐ์์จ request์ response์ ๋ํด ์์ฒญ์ ์ฒ๋ฆฌ ํ ServletContainer์ ์ญ์์ผ๋ก ๋ณด๋ด์ฃผ๊ฒ ๋๋ค.
6. ์๋ต์ ๋ค์ ServletContainer๊ฐ ๋ฐ์ HTTP ๋ฉ์์ง๋ก ๋ง๋ค์ด ์๋ต์ ๋ค์ ๋ณด๋ด์ฃผ๊ฒ ๋๋ค.
* ์ ๋ํ ์ด์ ๋ฐฉ์
์์ ์๋ธ๋ฆฟ์ ์ ๋ํ ์ด์ ๋ฐฉ์๊ณผ ๋์ผํ๊ฒ Spring์ ์ ๋ํ ์ด์ ๋ฐฉ์์ ์ด์ฉํ์ฌ DispatcherServlet์ ์์ฒญ ์์ ์ ์์ฑ์ ํด์ ์ฑ๊ธํค์ผ๋ก ๊ฐ์ง๊ฒ๋๋ค. ( ์๋ฒ ๊ตฌ๋ ์์ ์ ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ด ์๋๋ค!! )
์์ ์์ฒญ๊ณผ์ ์์ 4๋ฒ์ ์ฒซ ์์ฒญ์ด๋ผ๋ฉด init() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ DispatcherServlet์ ์ฑ๊ธํค ๊ฐ์ฒด๋ก ๋ณด๊ด์
์คํ๋ง๋ถํธ์ ์๋ธ๋ฆฟ์ ์ ๋ํ ์ด์ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์ฌ๊ธฐ์ 4๋ฒ์ ๊ณผ์ ์์ ์๋ฒ๊ฐ ๋ฌ ํ ์ฒ์ ์์ฒญ์ด ์ค๋ ๊ฒ์ด๋ผ๋ฉด ์ ๋ํ ์ด์ ๋ฐฉ์์ ์ด์ฉํ์ฌ ์๋ธ๋ฆฟ์ ์์ฒญ์์ ์ DispathcerServlet์ ์ฑ๊ธํค ์ธ์คํด์ค๋ก ๋ฑ๋ก์ ํ๊ฒ ๋๋ค.
( ์ฌ๊ธฐ์ ์ฐ์ด๋ ์ ๋ํ ์ด์ ์ ๋ฐํ์์์ ์ ๋์ ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ฃผ๋ ์ญํ ์ ํ๋ ๊ฒ์ด๋ค. )

์ ๋ฆฌ
์ํ์น ํฐ์บฃ ๋ด๋ถ์๋ Thread Pool์ด ์กด์ฌํ๋ฉฐ Thread Pool์ ๋ฏธ๋ฆฌ ์ ์ํด๋ Thread ๊ฐฏ์๋งํผ ๊ฐ์ง๊ณ ์๋๋ค. ์์ฒญ์ด ํ๋ ๋ค์ด์ค๊ฒ ๋๋ฉด Thread Pool์์ Threadํ๋๋ฅผ Pool์์ ๊ฐ์ง๊ณ ์ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์์ํ๊ฒ ๋๋ค. ๊ทธ ํ, ์์ฒญ์ ๋ํ HTTP ๋ฉ์์ง๋ฅผ ServletContainer๊ฐ ํ์ฑ์ ํ์ฌ HttpServletRequest, HttpServletResponse ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ํ์ฑ ๋
์์ฒญ์๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ DispatcherServlet๊ฐ์ฒด๊ฐ ์ปจํ ์ด๋ ๋ด๋ถ์ ์์ฑ์ด ๋์ด์๋ค๋ฉด service() ๋ฉ์๋์ ์์ฒญ๊ณผ ์๋ต ์ ๋ณด๋ฅผ ๋ฃ์ด DispatcherServlet์ ์ ๋ฌ์ ํด์ฃผ๊ณ , ๋ง์ฝ ์์ฑ์ด ์๋์ด์๋ค๋ฉด ์์ฑ์ ํ์ฌ ์ฑ๊ธํค ์ธ์คํด์ค๋ก ๋ง๋ค์ด ์์ฒญ์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค.


# ์ค๋์ ํ๊ณ
ํฐ์บฃ๊ณผ ์๋ธ๋ฆฟ์ ๊น๊ฒ ๋ค์ด๊ฐ์ ๊ณต๋ถ๋ฅผ ํ๊ฒ ๋์๊ณ ๋ง์ ๊ฒ์ ์ดํดํ ์ ์์๋ค.
ํนํ ์น ์๋ฒ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ๊ฐ๋ ์ ๋ช ํํ๊ฒ ์ดํดํ ์ ์์๋ค.
์คํ๋ง์ ์๋ธ๋ฆฟ๊ณผ ๋ ๊ฑฐ์ํ ์๋ธ๋ฆฟ ํ๋ก์ ํธ๋ฅผ ๋น๊ตํ๋ฉฐ ๋๊ฐ์ ์ฐจ์ด๋ ์ ์ ์์๋ค.
XML ๋ฐฉ์๊ณผ ์ ๋ํ ์ด์ ์ ๋ฐฉ์ ๋ ๊ฐ์ง์ ์ค์ ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ ์์๋ค.
'๐ ๏ธBackend > ๐ณSpring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Data JPA] JPA Entity ํด๋์ค์ ๊ธฐ๋ณธ ์์ฑ์๊ฐ ํ์ํ ์ด์ (0) | 2024.12.30 |
---|---|
[Spring Framework] IoC ์ปจํ ์ด๋ ๋์ ์๋ฆฌ (0) | 2024.11.14 |
[Spring Framework] IoC ์ปจํ ์ด๋ & Bean ๊ฐ๋ ์ดํด ํ๊ธฐ (1) | 2024.10.21 |
[Spring Framework] IoC & DI ๊ฐ๋ ์ดํด ํ๊ธฐ (0) | 2024.10.20 |
[Spring Framework] Spring & Spring Framework ์ฐจ์ด (0) | 2024.10.19 |