-
[Spring] ์คํ๋ง MVC : ์ค๋ ๋๋? ์๋ฒ์์์ ์ค๋ ๋ ์ฌ์ฉ๋ฐฉ์, ์ค๋ ๋ ํ(Thread pool)
2023. 12. 3.
[3] ๋์ ์์ฒญ - ๋ฉํฐ ์ฐ๋ ๋
ํด๋ผ์ด์ธํธ์ ์์ฒญ→ WAS๊ฐ ์๋ต → TCP/IP ์ฐ๊ฒฐ → ์๋ธ๋ฆฟ์ ํธ์ถ.
์ด ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ๋๊ฐ ํธ์ถํ๋๊ฐ? ์ฐ๋ ๋
์ฐ๋ ๋
- ์ฐ๋ ๋=์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ํ๋ํ๋ ์์ฐจ์ ์ผ๋ก ์คํํ๋ ๊ฒ
- ์๋ฐ ๋ฉ์ธ ๋ฉ์๋๋ฅผ ์ฒ์ ์คํํ๋ฉด main์ด๋ผ๋ ์ด๋ฆ์ ์ฐ๋ ๋๊ฐ ์คํ
- ์ฐ๋ ๋๊ฐ ์๋ค๋ฉด ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ด ๋ถ๊ฐ๋ฅ
- ์ฐ๋ ๋๋ ํ๋ฒ์ ํ๋์ ์ฝ๋ ๋ผ์ธ๋ง ์ํ
- ๋์ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ฉด ์ฐ๋ ๋๋ฅผ ์ถ๊ฐ๋ก ์์ฑ
๋จ์ผ ์์ฒญ - ์ฐ๋ ๋ ํ๋ ์ฌ์ฉ
- WAS๋ด์ ์ฐ๋ ๋๊ฐ 1๊ฐ๋ง ์๋ค๊ณ ๊ฐ์
- ์์ฒญ์ด ์ค๋ฉด ์ฐ๋ ๋ ์ฐ๊ฒฐ ๋ฐ ์๋ธ๋ฆฟ ํธ์ถ
- ์๋ธ๋ฆฟ ์๋ต
- ์๋ต์ ์ํํ ๋ค ์ฐ๋ ๋๋ ํด์
๋ค์ค ์์ฒญ - ์ฐ๋ ๋ ํ๋ ์ฌ์ฉ
- ์ฐ๋ ๋๋ ํ๋์ธ๋ฐ ์์ฒญ์ด ์ฌ๋ฌ๊ฐ ๋ค์ด์ค๋ ๊ฒฝ์ฐ, ๋จผ์ ๋ค์ด์จ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํ๋ ์๋ ์ฐ๋ ๋๊ฐ ํ ๋น๋์ด ์๋ธ๋ฆฟ ์ฝ๋๋ฅผ ์คํ
- 1๋ฒ ์์ฒญ ์ฒ๋ฆฌ๊ฐ ์ ์ํ๋๋ฉด, ์์ฐจ์ ์ผ๋ก 2๋ฒ ์์ฒญ์ ๋ํ ์๋ต์ด ์ํํ๋ฉด ๋จ
- BUT, 1๋ฒ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์์ ์๋ธ๋ฆฟ ์ฝ๋ ๋ด๋ถ์ ์ด์ ๋ก ์ง์ฐ ๋ฐ์
- ์ง์ฐ ๋ฐ์ ์ค์ 2๋ฒ ์์ฒญ์ด ๋ค์ด์ค๋ฉด, ์ฐ๋ ๋๊ฐ 1๊ฐ๋ฟ์ด๋ฏ๋ก ์์ฒญ2๋ ๋๊ธฐ
- ๋ฌธ์ ๋ฐ์) ์ง์ฐ์ด ๊ธธ์ด์ง๋ฉด 1๋ฒ์ ๋ํ ์ฐ๊ฒฐ๊ณผ 2๋ฒ ์์ฒญ์ ๋ํ ์ฐ๊ฒฐ ๋ชจ๋ ์ฃฝ์ด๋ฒ๋ฆผ
- 2๋ฒ ์์ฒญ์ ๋ํ ์ํ ์์ฒด๊ฐ ๋ถ๊ฐ
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ๋ฒ ⇒ ์์ฒญ๋ง๋ค ์ฐ๋ ๋ ํ๋๋ฅผ ์์ฑํด์ ์ฒ๋ฆฌ
์์ฒญ๋ง๋ค ์ฐ๋ ๋ ์์ฑ
- ์ฐ๋ ๋๋ฅผ ํ๋ ๋ ์์ฑํ๊ณ ๋์ผํ ์๋ธ๋ฆฟ์ ํธ์ถํด 2๋ฒ ์์ฒญ์ ์ฒ๋ฆฌ
- ๋ค๋ฅธ ์ฐ๋ ๋๋ ์ง์ฐ ์ค์ธ ์ฐ๋ ๋์ ๋ณ๊ฐ๋ก ์ฝ๋๋ฅผ ์คํํ ๋ค ์๋ต์ ์ํ
- ์ฐ๋ ๋๋ฅผ ์์ฑํด์ ์์ฒญ์ ์ํํ๊ณ ์คํ์ด ์ข ๋ฃ๋๋ฉด, ์ค๋ ๋๋ ํด์ ํ๋ ๋ฐฉ์
์ฅ๋จ์
- ์ฅ์
- ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์
- ๋ฆฌ์์ค(CPU, ๋ฉ๋ชจ๋ฆฌ)๊ฐ ํ์ฉํ ๋ ๊น์ง ์ฒ๋ฆฌ๊ฐ๋ฅ
- ํ๋์ ์ฐ๋ ๋๊ฐ ์ง์ฐ ๋์ด๋, ๋๋จธ์ง ์ฐ๋ ๋๋ ์ ์ ๋์ํจ
- ๋จ์
- ์ฐ๋ ๋๋ ์์ฑ ๋น์ฉ์ ๋งค์ฐ ๋น์
- ๊ณ ๊ฐ์ ์์ฒญ์ด ์ฌ ๋ ๋ง๋ค ์ฐ๋ ๋๋ฅผ ์์ฑํ๋ฉด, ์๋ต ์๋๊ฐ ๋ฆ์ด์ง
- ์ฐ๋ ๋๋ ์ปจํ
์คํธ ์ค์์นญ ๋น์ฉ์ด ๋ฐ์
- ์ฝ์ด ํ๋๊ฐ ์ค์ ๋ก ์ค๋ ๋๋ฅผ ๋์์ ์ํํ๋ ๊ฒ์ด ์๋. ์ค๋ ๋๋ผ๋ฆฌ ์ ํํ ๋ ๋ฐ์ํ๋ ๋น์ฉ ⇒ context swtich
- ์ฐ๋ ๋ ์์ฑ์ ์ ํ X
- ๊ณ ๊ฐ ์์ฒญ์ด ๋๋ฌด ๋ง์ด ์ค๋ฉด(์นํจ ๋๋์ค ๊ฐ์), CPU, ๋ฉ๋ชจ๋ฆฌ ์๊ณ์ ์ ๋์ด์ ์๋ฒ๊ฐ ์ฃฝ์ ์ ์์
- ์ฐ๋ ๋๋ ์์ฑ ๋น์ฉ์ ๋งค์ฐ ๋น์
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ด๋ถ์ Thread Pool์ด ์กด์ฌ
์ฐ๋ ๋ ํ
- ์ฐ๋ ๋๊ฐ ํ์ํ ๋๋ง๋ค ์ฐ๋ ๋ ํ์ ์์ฒญํ์ฌ, ์ด๋ฏธ ์์ฑ๋์ด ์๋ ์ฐ๋ ๋๋ฅผ ๋ฐ์ ์ฌ์ฉ
- ์ฐ๋ ๋ ์ฌ์ฉ์ ์ข ๋ฃํ๋ฉด ์ฐ๋ ๋ ํด์ ๊ฐ ์๋ ์ฐ๋ ๋ ํ์ ์ฌ์ฉํ ์ฐ๋ ๋๋ฅผ ๋ฐ๋ฉ
- ๊ธฐ์กด ์ฐ๋ ๋๊ฐ ๋ชจ๋ ์ฌ์ฉ ์ค์ด๋ผ ์ฐ๋ ๋ ํ์ ์ฐ๋ ๋๊ฐ ์๋ค๋ฉด, ์์ฒญ์ ๊ฑฐ์ ํ๊ฑฐ๋ ํน์ ์ซ์๋งํผ ๋๊ธฐํ๋๋ก ์ค์ ํ ์ ์์
์์ฒญ๋ง๋ค ์ฐ๋ ๋ ์์ฑ์ ๋จ์ ๋ณด์
- ํน์ง
- ํ์ํ ์ฐ๋ ๋๋ฅผ ์ฐ๋ ๋ ํ์ ๋ณด๊ดํ๊ณ ๊ด๋ฆฌํจ
- ์ฐ๋ ๋ ํ์ ์์ฑ ๊ฐ๋ฅํ ์ฐ๋ ๋์ ์ต๋์น๋ฅผ ๊ด๋ฆฌํจ
- ํฐ์บฃ์ ์ต๋ 200๊ฐ ๊ธฐ๋ณธ ์ค์ (๋ณ๊ฒฝ ๊ฐ๋ฅ)
- ์ฌ์ฉ
- ์ฐ๋ ๋๊ฐ ํ์ํ๋ฉด, ์ด๋ฏธ ์์ฑ๋์ด ์๋ ์ฐ๋ ๋๋ฅผ ์ฐ๋ ๋ ํ์์ ๊บผ๋ด์ ์ฌ์ฉํจ
- ์ฌ์ฉ์ ์ข ๋ฃํ๋ฉด ์ฐ๋ ๋ ํ์ ํด๋น ์ฐ๋ ๋๋ฅผ ๋ฐ๋ฉํจ
- ์ต๋ ์ฐ๋ ๋๊ฐ ๋ชจ๋ ์ฌ์ฉ์ค์ด์ด์ ์ฐ๋ ๋ ํ์ ์ฐ๋ ๋๊ฐ ์์ผ๋ฉด?
- ๊ธฐ๋ค๋ฆฌ๋ ์์ฒญ์ ๊ฑฐ์ ํ๊ฑฐ๋ ํน์ ์ซ์๋งํผ๋ง ๋๊ธฐํ๋๋ก ์ค์ ํ ์ ์์
- ์ฅ์
- ์ฐ๋ ๋๊ฐ ๋ฏธ๋ฆฌ ์์ฑ๋์ด ์์ผ๋ฏ๋ก, ์ฐ๋ ๋๋ฅผ ์์ฑํ๊ณ ์ข ๋ฃํ๋ ๋น์ฉ(CPU)์ด ์ ์ฝ๋๊ณ , ์๋ต ์๊ฐ์ด ๋น ๋ฅด๋ค
- ์์ฑ ๊ฐ๋ฅํ ์ฐ๋ ๋์ ์ต๋์น๊ฐ ์์ผ๋ฏ๋ก ๋๋ฌด ๋ง์ ์์ฒญ์ด ๋ค์ด์๋ ๊ธฐ์กด ์์ฒญ์ ์์ ํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค
์ค๋ฌด ํ
- WAS์ ์ฃผ์ ํ๋ ํฌ์ธํธ๋ ์ต๋ ์ฐ๋ ๋(max thread) ์์ด๋ค
- ์ด ๊ฐ์ ๋๋ฌด ๋ฎ๊ฒ ์ค์ ํ๋ฉด?
- ๋์ ์์ฒญ์ด ๋ง์ผ๋ฉด, ์๋ฒ ๋ฆฌ์์ค๋ ์ฌ์ ๋กญ์ง๋ง, ํด๋ผ์ด์ธํธ๋ ๊ธ๋ฐฉ ์๋ต ์ง์ฐ
- ์ต๋ ์ฐ๋ ๋ ์๋ฅผ 10์ผ๋ก ์ค์ ํ๋ค๋ฉด, ๋์์ 100๊ฐ์ ์์ฒญ์ด ์ค๋ ๊ฒฝ์ฐ 10๊ฐ ์์ฒญ๋ง ์ฒ๋ฆฌํ๊ณ 90๊ฐ ์์ฒญ์ ๋๊ธฐ or ๊ฑฐ์
- ๋์ ์์ฒญ์ด ๋ง์ผ๋ฉด, ์๋ฒ ๋ฆฌ์์ค๋ ์ฌ์ ๋กญ์ง๋ง, ํด๋ผ์ด์ธํธ๋ ๊ธ๋ฐฉ ์๋ต ์ง์ฐ
- WAS๋ ์ด์์์์ง ๋ชฐ๋ผ๋ ์์ฒญ์ด ๋ฐ๋ฆฌ๋ฉด์ ์๋น์ค์๋ ์ฅ์ ๋ฐ์
- CPU์ 5%๋ง ์ฌ์ฉํ๋ค๋ฉด ๋งค์ฐ ๋นํจ์จ
- ๋ชปํด๋ CPU ์ฌ์ฉ์จ์ 50%๋ฅผ ๋๊ฒจ์ผ ๊ฐ๋ฐ์๊ฐ ์ด๋์ ๋ ์ ๋๋ก ์ธํ ํ๋ค๊ณ ๋ณผ ์ ์์
- ์ด ๊ฐ์ ๋๋ฌด ๋๊ฒ ์ค์ ํ๋ฉด?
- ๋์ ์์ฒญ์ด ๋ง์ผ๋ฉด, CPU, ๋ฉ๋ชจ๋ฆฌ ๋ฆฌ์์ค ์๊ณ์ ์ด๊ณผ๋ก ์๋ฒ ๋ค์ด
- ์ฅ์ ๋ฐ์์?
- ํด๋ผ์ฐ๋๋ฉด ์ผ๋จ ์๋ฒ๋ถํฐ ๋๋ฆฌ๊ณ , ์ดํ์ ํ๋
- ํด๋ผ์ฐ๋๊ฐ ์๋๋ฉด ์ด์ฌํ ํ๋
์ฐ๋ ๋ ํ์ ์ ์ ์ซ์
- ์ด๋ป๊ฒ ์ฐพ๋๊ฐ?
- ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋ณต์ก๋, CPU, ๋ฉ๋ชจ๋ฆฌ, IO ๋ฆฌ์์ค ์ํฉ์ ๋ฐ๋ผ ๋ชจ๋ ๋ค๋ฆ
- ์ค์ํ ๊ฒ์ ์ฑ๋ฅ ํ
์คํธ
- ์ต๋ํ ์ค์ ์๋น์ค์ ์ ์ฌํ ํ๊ฒฝ์์ ์ฑ๋ฅ ํ ์คํธ ์๋
- ํด: ์ํ์น ab, ์ ์ด๋ฏธํฐ, nGrinder(์คํ์์ค) ๋ฑ์ ์ด์ฉ
WAS์ ๋ฉํฐ ์ฐ๋ ๋ ์ง์
- ๊ฐ๋ฐ์๊ฐ ๋ฉํฐ ์ฐ๋ ๋ ๊ด๋ จ ์ฝ๋๋ฅผ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋จ (๋น์ฆ๋์ค ๋ก์ง๋ง) ⇒ ์ค๋ ๋ ๊ด๋ จ์ WAS๊ฐ ์ฒ๋ฆฌ!
- ๊ฐ๋ฐ์๋ ๋ง์น ์ฑ๊ธ ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฏ์ด ํธ๋ฆฌํ๊ฒ ์์ค ์ฝ๋๋ฅผ ๊ฐ๋ฐ
- ๋ฉํฐ ์ฐ๋ ๋ ํ๊ฒฝ์ด๋ฏ๋ก **์ฑ๊ธํค ๊ฐ์ฒด(์๋ธ๋ฆฟ, ์คํ๋ง ๋น)**๋ ์ฃผ์ํด์ ์ฌ์ฉ
์ด ํฌ์คํธ๋ ์ธํ๋ฐ ๊น์ํ ๊ฐ์ฌ๋์ ๊ฐ์ข <์คํ๋ง mvc> ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
'๐ญ Study > : Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] JAR vs WAR (๋ฐฐํฌ ๋ฐฉ๋ฒ ๋น๊ต) (0) 2024.01.07 [Spring] ์๋ฐ ๋ฐฑ์๋ ์น ๊ธฐ์ ์ ์ญ์ฌ (1) 2023.12.08 [Spring] ์คํ๋ง MVC : ์๋ฒ-์น๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ์/ CSR, SSR์ ๊ฐ๋ (1) 2023.12.03 [Spring] ์คํ๋ง MVC : ์น ์ ํ๋ฆฌ์ผ์ด์ ์ดํด, ์๋ธ๋ฆฟ (2) 2023.12.03 [Spring] Spring Bean ์คํ๋ง ๋น์ด๋? (0) 2023.11.10 ๋๊ธ