์คํ๋ง MVC 1ํธ์ ๊ฐ์ ๋ด์ฉ์ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค.
์น ์๋ฒ, ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ
์น ์๋ฒ (Web Server)
HTTP ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ, ์ฃผ๋ก ์ ์ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๋ค.
Nginx๋ Apache๊ฐ ์น ์๋ฒ์ ์ํ๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ (WAS - Web Application Server)
HTTP ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ, ์น ์๋ฒ์ ๊ธฐ๋ฅ์ ํฌํจํจ๊ณผ ๋์์ ๋์ HTML, HTTP API, JSP์ ๊ฐ์ ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ์คํํด ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์ํํ ์ ์๋ค.
Tomcat์ด ๋ํ์ ์ผ๋ก WAS์ ์ํ๋ค.
์น ์๋ฒ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ
์น ์๋ฒ๋ ์ ์ ๋ฆฌ์์ค๋ฅผ, ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์ฃผ๋ก ๋ด๋นํ๋ค๊ณ ํ์ง๋ง, ์น ์๋ฒ๋ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ธฐ๋ฅ์ ํฌํจํ๊ธฐ๋ ํ๊ณ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ ์น ์๋ฒ์ ๊ธฐ๋ฅ์ ํฌํจํ๊ธฐ์ ๋ ๊ฐ๋ ๊ฐ ๊ฒฝ๊ณ๊ฐ ๋๋ ทํ์ง ์๋ค. ๋ค๋ง ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์คํํ๋๋ฐ ๋ ํนํ๋์ด ์๋ ํธ์ด๋ค.
์น ์์คํ ๊ตฌ์ฑ
WAS๋ ์ ์ ๋ฆฌ์์ค, ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋ชจ๋ ์ ๊ณตํ ์ ์์ง๋ง ๊ทธ๋ ๊ฒ ๋๋ฉด WAS๊ฐ ๋๋ฌด ๋ง์ ์ญํ ์ ๋ด๋นํ๊ฒ ๋๋ค.
๋ํ ์ ์ ๋ฆฌ์์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋นํด ์ ๋ ดํ ๋น์ฉ์ ๊ฐ์ง๋๋ฐ, ์ ์ ๋ฆฌ์์ค๋ก ์ธํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์ํ์ ์ํฅ์ด ๋ฏธ์น ์ฐ๋ ค๊ฐ ์กด์ฌํ๋ค.
๋ฐ๋ผ์ ์น ์๋ฒ๊ฐ ์ผ์ฐจ์ ์ผ๋ก ์์ฒญ์ ์ํํ๊ฒ ํ์ฌ ์ ์ ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง๊ณผ ๊ฐ์ด ๋์ ์ธ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ฉด WAS์ ์์ฒญ์ ์์ํ๋๋ก ์์คํ ์ ๊ตฌ์ฑํ ์ ์๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ฆฌ์์ค์ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ๊ฐ ์๋ฒ๊ฐ ์ญํ ์ ์ํํ ์ ์๊ณ , ์ฌ์ฉ๋์ ๋ฐ๋ผ ๊ฐ ์๋ฒ๋ฅผ ์ฆ์คํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ์ ์ธก๋ฉด์์๋ ํจ์จ์ ์ด๋ค.
์๋ธ๋ฆฟ
์๋ธ๋ฆฟ
์๋ธ๋ฆฟ์ ๊ฐ๋ฐ์๊ฐ HTTP ์์ฒญ/์๋ต์ ์ฒ๋ฆฌํ ๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ ์ธํ ํต์ ๊ณผ์ ์ ์๋ตํ ์ ์๋๋ก ํด์ฃผ๊ณ , ์์ฒญ ๋ฐ ์๋ต ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํ๋ค.
HTTP ์์ฒญ์ WAS๋ ์์ฒญ, ์๋ต ๊ฐ์ฒด๋ฅผ ์๋ก ๋ง๋ค์ด์ ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ํธ์ถํ๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์์ฒญ ๊ฐ์ฒด์์ HTTP ์์ฒญ ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ๊บผ๋ด ์ฌ์ฉํ ์ ์๊ณ , ์๋ต ๊ฐ์ฒด์ HTTP ์๋ต ์ ๋ณด๋ฅผ ์ ๋ ฅํ ์ ์๋ค. ๊ทธ๋ ๊ฒ ์๋ต ๊ฐ์ฒด์ ๋ด๊ธด ๋ด์ฉ์ผ๋ก WAS๋ HTTP ์๋ต ์ ๋ณด๋ฅผ ์์ฑํ๋ค.
์๋ธ๋ฆฟ ์ปจํ ์ด๋
์๋ธ๋ฆฟ์ ์ง์ํ๋ WAS๋ฅผ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ผ๊ณ ํ๋ค. ์ปจํ ์ด๋๋ ์๋ธ๋ฆฟ ๊ฐ์ฒด์ ์๋ช ์ฃผ๊ธฐ(์์ฑ, ์ด๊ธฐํ, ํธ์ถ, ์ข ๋ฃ)๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ๋์ ์์ฒญ์ ์ํ ๋ฉํฐ ์ฐ๋ ๋ ์ฒ๋ฆฌ๋ฅผ ์ง์ํ๋ค.
์๋ธ๋ฆฟ ๊ฐ์ฒด๋ ์ฑ๊ธํค์ผ๋ก ๊ด๋ฆฌ๋๋ฉฐ, ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋ ๋ ํจ๊ป ์ข ๋ฃ๋๋ค.
๋์์์ฒญ - ๋ฉํฐ ์ฐ๋ ๋
์์ฒญ๋ง๋ค ์ฐ๋ ๋ ์์ฑ
์์ฒญ 1์ด ์ฐ๋ ๋ 1์์ ์ํ ์ค์ธ ์ํฉ์์ ์์ฒญ 2๊ฐ ๋ค์ด์จ๋ค๋ฉด, WAS๋ ์ ๊ท ์ฐ๋ ๋๋ฅผ ์์ฑํ์ฌ ์์ฒญ 2์ ํ ๋นํ๋ ๋ฐฉ์์ด๋ค. ํด๋น ๋ฐฉ๋ฒ์ ํ๋์ ์ฐ๋ ๋๊ฐ ์ง์ฐ๋์ด๋ ๋๋จธ์ง ์ฐ๋ ๋๋ ์ ์์ ์ผ๋ก ๋์ํ๋ค๋ ์ฅ์ ์ด ์์ง๋ง, ์์ฑ ๋น์ฉ์ด ๋น๊ต์ ๋น์ธ๊ณ ์ฐ๋ ๋ ์์ฑ์ ์ ํ์ด ์์ด ์๋ฒ์ ๋ฌด๋ฆฌ๋ฅผ ์ค ์ ์๋ค๋ ๋ฌธ์ ์ ์ด ์กด์ฌํ๋ค.
์ฐ๋ ๋ ํ
์์ฒญ๋ง๋ค ์ฐ๋ ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ ๋ณด์ํ ๊ฒ์ผ๋ก, ์ผ์ ๊ฐฏ์์ ์ฐ๋ ๋๋ฅผ ๋ฏธ๋ฆฌ ์ฐ๋ ๋ ํ์ ๋ณด๊ดํ์ฌ ๊ด๋ฆฌํ๋ค๊ฐ ํ์ํ ๋ ๊บผ๋ด์ด ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค. ํด๋น ์ฐ๋ ๋์ ์ด์ฉ์ด ๋๋๋ฉด ๋ค์ ์ฐ๋ ๋ ํ์ ๋ฐ๋ฉํ๋ฉฐ ์ผ์ ๊ฐฏ์๋งํผ์ ์ฐ๋ ๋๊ฐ ๋ชจ๋ ์ด์ฉ ์ค์ด์ด์ ์ฐ๋ ๋ ํ์ ๋จ์์๋ ์ฐ๋ ๋๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ, ์์ฒญ์ ๊ฑฐ์ ํ๊ฑฐ๋ ๋๊ธฐํ๋๋ก ์ค์ ํ ์ ์๋ค.
ํด๋น ๋ฐฉ์์ ์ฐ๋ ๋๊ฐ ๋ฏธ๋ฆฌ ์์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์ ์์ฑํ๊ณ ์ข ๋ฃํ๋ ๋น์ฉ์ด ์ ์ฝ๋ ์ ์๊ณ , ์ต๋์น๊ฐ ์ ํด์ ธ ์๊ธฐ ๋๋ฌธ์ ๊ณผ๋ํ ๊ฐ์์ ์์ฒญ์ ์์ ํ๊ฒ ๋๋นํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
์ด๋ WAS๊ฐ ์ฐ๋ ๋์ ์ต๋ ๊ฐ์๋ฅผ ์กฐ์ ํ๋ ๊ฒ์ด ์ค์ํ๋ฐ, ๊ฐ์ด ๋๋ฌด ๋ฎ์ผ๋ฉด ๋ฆฌ์์ค๊ฐ ๊ณผ๋ํ๊ฒ ์ ํด ๋์ด ์๋ ์ํ๊ฐ ๋๊ณ ๊ฐ์ด ๋๋ฌด ํฌ๋ฉด ์๋ฒ์ ๋ฌด๋ฆฌ๊ฐ ๊ฐ ์ ์๋ค. ๋ฐ๋ผ์ nGrinder์ ๊ฐ์ ํด์ ์ด์ฉํด ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์๋ํ๋ฉฐ ์ ์ ์ซ์๋ฅผ ์ฐพ์ ์ ์๋๋ก ํด์ผ ํ๋ค.
WAS์ ๋ฉํฐ ์ฐ๋ ๋ ์ง์
๋ฉํฐ ์ฐ๋ ๋์ ๋ํ ๋ถ๋ถ์ WAS๊ฐ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๊ฐ๋ฐ์๋ ๋ฉํฐ ์ฐ๋ ๋ ๊ด๋ จ ์ฝ๋๋ฅผ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ค.
์ด๋ ์ฑ๊ธ ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฏ์ด ์์ค ์ฝ๋๋ฅผ ํธํ๊ฒ ๊ฐ๋ฐํ ์ ์๋ค๋ ์๋ฏธ์ด๊ธฐ๋ ํ์ง๋ง ๋ฉํฐ ์ฐ๋ ๋ ํ๊ฒฝ์์ ๋ณํ์ง ์์ผ๋ฏ๋ก ์๋ธ๋ฆฟ์ด๋ ์คํ๋ง ๋น๊ณผ ๊ฐ์ ์ฑ๊ธํค ๊ฐ์ฒด๋ ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํ๋ค.
์ ์ก ๋ฐ์ดํฐ ์ข ๋ฅ, CSR, SSR
์ ์ก ๋ฐ์ดํฐ ์ข ๋ฅ
1. ์ ์ ๋ฆฌ์์ค - ๊ณ ์ ๋ HTML ํ์ผ, ์ด๋ฏธ์ง ๋ฑ์ ์ ๊ณต
2. HTML ํ์ด์ง - ๋์ ์ผ๋ก ํ์ํ HTML ํ์ผ์ ์์ฑํ์ฌ ์ ๋ฌ
3. HTTP API - ์ฃผ๋ก JSON ํ์์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ง ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ์
CSR - ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง
HTML ๊ฒฐ๊ณผ๋ฅผ JS๋ฅผ ์ด์ฉํด ์น ๋ธ๋ผ์ฐ์ ์์ ๋์ ์ผ๋ก ์์ฑํ์ฌ ์ ์ฉํ๋ ๋ฐฉ์์ผ๋ก, ์ฃผ๋ก ๋์ ์ธ ํ๋ฉด์ ์ฌ์ฉํ๋ค.
๊ด๋ จ๋ ๊ธฐ์ ๋ก๋ React, Vue.js ๋ฑ์ด ์๋ค.
SSR - ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง
์๋ฒ์์ ์ต์ข HTML์ ์์ฑํด์ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ๋ ๋ฐฉ์์ผ๋ก, ์ฃผ๋ก ์ ์ ์ธ ํ๋ฉด์ ์ฌ์ฉํ๋ค.
๊ด๋ จ๋ ๊ธฐ์ ๋ก๋ JSP, ํ์๋ฆฌํ ๋ฑ์ด ์๋ค.
'Language & Framework > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์คํ๋ง MVC] ์๋ธ๋ฆฟ/JSP/MVC ํจํด (0) | 2023.01.23 |
---|---|
[์คํ๋ง MVC] ์๋ธ๋ฆฟ (0) | 2023.01.21 |
[์คํ๋ง ํต์ฌ ์๋ฆฌ] ๋น ์ค์ฝํ (0) | 2023.01.12 |
[์คํ๋ง ํต์ฌ ์๋ฆฌ] ๋น ์๋ช ์ฃผ๊ธฐ ์ฝ๋ฐฑ (0) | 2023.01.10 |
[์คํ๋ง ํต์ฌ ์๋ฆฌ] ์์กด๊ด๊ณ ์๋ ์ฃผ์ (2) (0) | 2022.12.21 |