[Spring] 1.์น ์ ํ๋ฆฌ์ผ์ด์ ์ดํด
1. ์น - HTTP ๊ธฐ๋ฐ
[HTTP]
- http๊ธฐ๋ฐ ํต์
- ์น๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)์์ url ์น๋ฉด ์ธํฐ๋ท์ ํตํด ์๋ฒ ์ ๊ทผ
- ์๋ฒ์์๋ html ๋ง๋ค์ด์ ํด๋ผ์ด์ธํธ์ ๋ด๋ ค์ค
- ์น๋ธ๋ผ์ฐ์ ๊ฐ html์ ๋ณด์ฌ์ค
* ํด๋ผ์ด์ธํธ -> ์๋ฒ / ์๋ฒ -> ํด๋ผ์ด์ธํธ ๋ฐ์ดํฐ ์ ์ก ๋ฐ ์๋ต => http ํ๋กํ ์ฝ ๊ธฐ๋ฐ์ผ๋ก ๋์
๋ชจ๋ ๊ฒ์ด HTTP (http ๋ฉ์ธ์ง์ ๋ชจ๋ ๊ฒ์ ์ ์ก)
- HTML, TEXT
- IMAGE, ์์ฑ, ์์, ํ์ผ
- JSON, XML (API)
- ๊ฑฐ์ ๋ชจ๋ ํํ์ ๋ฐ์ดํฐ ์ ์ก ๊ฐ๋ฅ
- ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋๋ ๋๋ถ๋ถ http ์ฌ์ฉ
[์น ์๋ฒ] (Web Server)
- HTTP ๊ธฐ๋ฐ์ผ๋ก ๋์
- ์ ์ ๋ฆฌ์์ค(ํ์ผ์ ํด๋์ ๋๋ฉด ์๋ฒ๋ค์ด ํ์ผ๋ค ์๋นํด์ค) ์ ๊ณต, ๊ธฐํ ๋ถ๊ฐ๊ธฐ๋ฅ
- ์ ์ (ํ์ผ), HTML, CSS, JS, ์ด๋ฏธ์ง, ์์
- ex) NGINX, APACHE
[์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ] (WAS - Web Application Server)
- HTTP ๊ธฐ๋ฐ์ผ๋ก ๋์
- ์น ์๋ฒ ๊ธฐ๋ฅ ํฌํจ(์ ์ ๋ฆฌ์์ค ์ ๊ณต ๊ฐ๋ฅ)
- ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ์คํํด์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ์ํ
> ๋์ : HTML, HTTP API (JSON)
> ์๋ธ๋ฆฟ, JSP, ์คํ๋ง MVC
- ex) ํฐ์บฃ(Tomcat) Jetty, Undertow
์น์๋ฒ VS ์น์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(WAS)
- ์น์๋ฒ๋ ์ ์ ๋ฆฌ์์ค(ํ์ผ) WAS๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง - ์ฌ์ค ๋ ์ฉ์ด ๊ฒฝ๊ณ ๋ชจํธ ์น์๋ฒ๋ ํ๋ก๊ทธ๋จ ์คํ ๊ธฐ๋ฅ ํฌํจ WAS๋ ์น์๋ฒ์ ๊ธฐ๋ฅ ์ ๊ณต - ์๋ฐ๋ ์๋ธ๋ฆฟ ์ปจํ ์ด๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉด WAS * ์๋ธ๋ฆฟ ์์ด ์๋ฐ์ฝ๋๋ฅผ ์คํํ๋ ์๋ฒ ํ๋ ์์ํฌ๋ ์์ - WAS๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์คํํ๋๋ฐ ๋ ํนํ |
[์น ์์คํ ๊ตฌ์ฑ] - WAS, DB
- WAS, DB๋ง์ผ๋ก ์์คํ ๊ตฌ์ฑ ๊ฐ๋ฅ
- WAS๋ ์ ์ ๋ฆฌ์์ค, ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ๋ชจ๋ ์ ๊ณต ๊ฐ๋ฅ
BUT
- WAS๊ฐ ๋๋ฌด ๋ง์ ์ญํ ์ ๋ด๋น, ์๋ฒ ๊ณผ๋ถํ ์ฐ๋ ค
- ๊ฐ์ฅ ๋น์ผ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ด ์ ์ ๋ฆฌ์์ค ๋๋ฌธ์ ์ํ์ด ์ด๋ ค์ธ ์ ์์
- WAS ์ฅ์ ์ ์ค๋ฅ ํ๋ฉด๋ ๋ ธ์ถ ๋ถ๊ฐ๋ฅ
[์น ์์คํ ๊ตฌ์ฑ] - WEB, WAS, DB
- ์ ์ ๋ฆฌ์์ค๋ ์น์๋ฒ๊ฐ ์ฒ๋ฆฌ
- ์น์๋ฒ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง๊ฐ์ ๋์ ์ธ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ฉด WAS์ ์์ฒญ์ ์์
- WAS๋ ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ์ฒ๋ฆฌ ์ ๋ด
- ํจ์จ์ ์ธ ๋ฆฌ์์ค ๊ด๋ฆฌ
> ์ ์ ๋ฆฌ์์ค๊ฐ ๋ง์ด ์ฌ์ฉ๋๋ฉด Web ์๋ฒ ์ฆ์ค
> ์ ํ๋ฆฌ์ผ์ด์
๋ฆฌ์์ค๊ฐ ๋ง์ด ์ฌ์ฉ๋๋ฉด WAS ์ฆ์ค
- ์ ์ ๋ฆฌ์์ค๋ง ์ ๊ณตํ๋ ์น์๋ฒ๋ ์ ์ฃฝ์ง ์์
- ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ด ๋์ํ๋ WAS ์๋ฒ๋ ์ ์ฃฝ์
- WAS, DB ์ฅ์ ์ WEB์๋ฒ๊ฐ ์ค๋ฅ ํ๋ฉด ์ ๊ณต ๊ฐ๋ฅ
2. ์๋ธ๋ฆฟ
HTML Form ๋ฐ์ดํฐ ์ ์ก
- POST ์ ์ก (์ ์ฅ)
- form ํ๊ทธ์ ๊ฐ ์ ๋ ฅ ํ ์ ์ก ๋๋ฅด๋ฉด ์น๋ธ๋ผ์ฐ์ ๊ฐ HTTP ๋ฉ์์ง ์์ฑ
- ์ปจํ ํธ ๋ฐ๋์๋ ์ฟผ๋ฆฌ๊ฐ ๋ง๋ค์ด์ง๊ณ ํด๋น ์ธ์ฝ๋ฉ ๋ฐฉ์์ผ๋ก ๋ณด๋ด์ง
์๋ฒ์์ ์ฒ๋ฆฌํด์ผํ๋ ์ ๋ฌด
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ์ง์ ๊ตฌํ -> ์๋ธ๋ฆฟ
- ์๋ฏธ์๋ ๋น์ฆ๋์ค ๋ก์ง ๋ถ๋ถ๋ง ํ ์ ์๋๋ก ์๋ธ๋ฆฟ ์ ๊ณต
[์๋ธ๋ฆฟ]
ํน์ง
- urlPatterns(/hello)์ URL์ด ํธ์ถ๋๋ฉด ์๋ธ๋ฆฟ ์ฝ๋๊ฐ ์คํ
- HTTP ์์ฒญ ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ HttpServletRequest
- HTTP ์๋ต ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ์ ๊ณตํ ์ ์๋ HttpServletResponse
- ๊ฐ๋ฐ์๋ HTTP ์คํ์ ๋งค์ฐ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ
HTTP ์์ฒญ/์๋ต ํ๋ฆ
- HTTP ์์ฒญ์
> WAS๋ Request, Resoponse ๊ฐ์ฒด๋ฅผ ์๋ก ๋ง๋ค์ด์ ์๋ธ๋ฆฟ ๊ฐ์ฒด ํธ์ถ
> ๊ฐ๋ฐ์๋ Request ๊ฐ์ฒด์์ HTTP ์์ฒญ ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ๊บผ๋ด์ ์ฌ์ฉ
> ๊ฐ๋ฐ์๋ Response ๊ฐ์ฒด์ HTTP ์๋ต ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ์
๋ ฅ
> WAS๋ Response ๊ฐ์ฒด์ ๋ด๊ฒจ์๋ ๋ด์ฉ์ผ๋ก HTTP ์๋ต ์ ๋ณด๋ฅผ ์์ฑ
- ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๊ฐ ์๋์ผ๋ก ์์ฑ / ํธ์ถ / ๊ด๋ฆฌ->์ข ๋ฃ(์๋ช ์ฃผ๊ธฐ)
[์๋ธ๋ฆฟ ์ปจํ ์ด๋]
- ํฐ์บฃ์ฒ๋ผ ์๋ธ๋ฆฟ์ ์ง์ํ๋ WAS๋ฅผ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ผ๊ณ ํจ
- ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ์์ฑ/์ด๊ธฐํ/ํธ์ถ/์ข ๋ฃํ๋ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ
- ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ ์ฑ๊ธํค์ผ๋ก ๊ด๋ฆฌ (๊ฐ์ฒด๋ฅผ ํ๋๋ง ์์ฑํ๊ณ ๊ณต์ , JVM์๋ ๊ฐ์ฒด ํ๋๋ง ์์ฑ)
> ๊ณ ๊ฐ์ ์์ฒญ์ด ์ฌ ๋๋ง๋ค ๊ณ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋นํจ์จ
> ์ต์ด ๋ก๋ฉ ์์ ์์ ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋๊ณ ์ฌํ์ฉ
> ๋ชจ๋ ๊ณ ๊ฐ http ์์ฒญ์ ๋์ผํ ์๋ธ๋ฆฟ ๊ฐ์ฒด ์ธ์คํด์ค์ ์ ๊ทผ
> ๊ณต์ ๋ณ์ ์ฌ์ฉ ์ฃผ์
> ์๋ธ๋ฆฟ ์ปจํ
์ด๋ ์ข
๋ฃ์ ํจ๊ป ์ข
๋ฃ
- JSP๋ ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ๋์ด์ ์ฌ์ฉ
- ๋์ ์์ฒญ์ ์ํ ๋ฉํฐ ์ฐ๋ ๋ ์ฒ๋ฆฌ ์ง์
3. ๋์ ์์ฒญ - ๋ฉํฐ ์ฐ๋ ๋
1) ์์ฒญ/์๋ต
2) ์ปค๋ฅ์ ์ฐ๊ฒฐ
์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ๋๊ฐ ํธ์ถํ๋๊ฐ?
[์ฐ๋ ๋]
- ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ํ๋ํ๋ ์์ฐจ์ ์ผ๋ก ์คํํ๋ ๊ฒ
- ์๋ฐ ๋ฉ์ธ ๋ฉ์๋๋ฅผ ์ฒ์ ์คํํ๋ฉด main์ด๋ผ๋ ์ด๋ฆ์ ์ฐ๋ ๋ ์คํ
- ์ฐ๋ ๋๊ฐ ์๋ค๋ฉด ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์คํ์ด ๋ถ๊ฐ๋ฅ
- ์ฐ๋ ๋๋ ํ๋ฒ์ ํ๋์ ์ฝ๋ ๋ผ์ธ๋ง ์ํ
- ๋์ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ฉด ์ฐ๋ ๋๋ฅผ ์ถ๊ฐ๋ก ์์ฑ
<< ๋จ์ผ ์์ฒญ >> - ์ฐ๋ ๋ ํ๋ ์ฌ์ฉ
1) ๋จ์ผ ์ฐ๋ ๋
2) ์์ฒญ
- ์์ฒญ์ด ์ค๋ฉด ์ฐ๋ ๋ ํ ๋น
- ํด๋น ์ฐ๋ ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ธ๋ฆฟ ๊ฐ์ฒด ํธ์ถ
3) ์๋ต
- ์๋ต ๋๊ณ ๋์ ์ฐ๋ ๋ ํด์
<< ๋ค์ค ์์ฒญ >> - ์ฐ๋ ๋ ํ๋ ์ฌ์ฉ
1) ์์ฒญ1
- ์ฐ๋ ๋ ์จ์ ์๋ธ๋ฆฟ ํธ์ถ
- but ์๋ธ๋ฆฟ ํธ์ถ ์ง์ฐ
2) ์์ฒญ2
- ์ฐ๋ ๋๊ฐ ํ๋์ด๊ธฐ ๋๋ฌธ์ ์์ฒญ2 ๋๊ธฐ
3) ๋ ๋ค ์ฃฝ์
ํด๊ฒฐ
- ์์ฒญ๋ง๋ค ์ฐ๋ ๋ ์์ฑ
- ์์ฒญ์ด ์ฌ๋๋ง๋ค ์ฐ๋ ๋ ์์ฑํ๊ณ , ์์ฒญ์ด ๋๋๋ฉด ์ฐ๋ ๋ ๋ ๋ฆฌ๊ธฐ
์์ฒญ๋ง๋ค ์ฐ๋ ๋ ์์ฑํ ์ ์ฅ๋จ์
์ฅ์ )
- ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์
- ๋ฆฌ์์ค(CPU, ๋ฉ๋ชจ๋ฆฌ)๊ฐ ํ์ฉํ ๋๊น์ง ์ฒ๋ฆฌ๊ธฐ๋ฅ
- ํ๋์ ์ฐ๋ ๋๊ฐ ์ง์ฐ๋์ด๋, ๋๋จธ์ง ์ฐ๋ ๋๋ ์ ์ ๋์
๋จ์ )
- ์ฐ๋ ๋๋ ์์ฑ ๋น์ฉ์ด ๋น์
๊ณ ๊ฐ์ ์์ฒญ์ด ์ฌ๋๋ง๋ค ์ฐ๋ ๋๋ฅผ ์์ฑํ๋ฉด ์๋ต์๋๊ฐ ๋ฆ์ด์ง
- ์ฐ๋ ๋๋ ์ปจํ ์คํธ ์ค์์นญ ๋น์ฉ ๋ฐ์ (CPU ์ฝ์ด์์)
- ์ฐ๋ ๋ ์์ฑ์ ์ ํ ์์
๊ณ ๊ฐ ์์ฒญ์ด ๋๋ฌด ๋ง์ด ์ค๋ฉด CPU, ๋ฉ๋ชจ๋ฆฌ ์๊ณ์ ์ ๋์ด ์๋ฒ๊ฐ ์ฃฝ์ ์ ์์ (์นํจ ํ ์ธ / ์๊ฐ์ ์ฒญ ๋ฑ)
[์ฐ๋ ๋ ํ]
1)
- ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ ์ฐ๋ ๋ ํ
- ์์ฒญ์ด ์ฌ๋๋ง๋ค ์ฐ๋ ๋ ํ์์ ์ฐ๋ ๋ ๊บผ๋ด์
- ๋ค ์ฐ๋ฉด ์ฐ๋ ๋ํ์ ๋ฐ๋ฉ
2) 200๊ฐ ๋์ ์์ฒญ
- ์ฐ๋ ๋ ํ์ ์ฐ๋ ๋๊ฐ ์์ผ๋ฉด ๋๊ธฐ/๊ฑฐ์ ๊ฐ๋ฅ
- ๋๊ธฐ๋ ์์ฒญ ๊ฐ์ ์ ํ ๊ฐ๋ฅ
์ฐ๋ ๋ ํ ์ ๋ฆฌ
ํน์ง)
- ํ์ํ ์ฐ๋ ๋๋ฅผ ์ฐ๋ ๋ ํ์ ๋ณด๊ดํ๊ณ ๊ด๋ฆฌ
- ์ฐ๋ ๋ ํ์ ์์ฑ ๊ฐ๋ฅํ ์ฐ๋ ๋์ ์ต๋์น๋ฅผ ๊ด๋ฆฌ (ํฐ์บฃ์ ์ต๋ 200๊ฐ ๊ธฐ๋ณธ ์ค์ - ๋ณ๊ฒฝ ๊ฐ๋ฅ)
๊ฒ์) spring boot tomcat max connection
์ฌ์ฉ)
- ์ฐ๋ ๋๊ฐ ํ์ํ๋ฉด, ์ด๋ฏธ ์์ฑ๋์ด์๋ ์ฐ๋ ๋๋ฅผ ์ฐ๋ ๋ ํ์์ ๊บผ๋ด ์ฌ์ฉ
- ์ฌ์ฉ์ ์ข ๋ฃํ๋ฉด ์ฐ๋ ๋ ํ์ ํด๋น ์ฐ๋ ๋ ๋ฐ๋ฉ
- ์ต๋ ์ฐ๋ ๋๊ฐ ๋ชจ๋ ์ฌ์ฉ์ค์ด์ด์ ํ์ ์ฐ๋ ๋๊ฐ ์๋ค๋ฉด ?
๊ธฐ๋ค๋ฆฌ๋ ์์ฒญ ๊ฑฐ์ /ํน์ ์ซ์๋งํผ ๋๊ธฐ ์ค์ ๊ฐ๋ฅ
์ฅ์ )
- ์ฐ๋ ๋๊ฐ ๋ฏธ๋ฆฌ ์์ฑ๋์ด ์์ผ๋ฏ๋ก, ์ฐ๋ ๋๋ฅผ ์์ฑํ๊ณ ์ข ๋ฃํ๋ ๋น์ฉ(CPU) ์ ๊ฐ ๋ฐ ์๋ต ์๊ฐ ๋น ๋ฆ
- ์์ฑ ๊ฐ๋ฅํ ์ฐ๋ ๋์ ์ต๋์น๊ฐ ์์ผ๋ฏ๋ก ๋๋ฌด ๋ง์ ์์ฒญ์ด ๋ค์ด์๋ ๊ธฐ์กด ์์ฒญ ์์ ํ๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅ
* ๋๋ฌด ๋ง์ผ๋ฉด ์๋ฒ ์ฆ์ค ํด์ผํจ
์ฐ๋ ๋ ํ - ์ค๋ฌด ํ
- WAS์ ์ฃผ์ ํ๋ ํฌ์ธํธ๋ ์ต๋ ์ฐ๋ ๋(max thread)์ด๋ค
- ์ด ๊ฐ์ ๋๋ฌด ๋ฎ๊ฒ ์ค์ ํ๋ฉด? -> ๋์ ์์ฒญ์ด ๋ง์ผ๋ฉด ์๋ฒ ๋ฆฌ์์ค๋ ์ฌ์ ๋กญ์ง๋ง, ํด๋ผ์ด์ธํธ๋ ๊ธ๋ฐฉ ์๋ต ์ง์ฐ
- ์ด ๊ฐ์ ๋๋ฌด ๋๊ฒ ์ค์ ํ๋ฉด? -> ๋์ ์์ฒญ์ด ๋ง์ผ๋ฉด CPU, ๋ฉ๋ชจ๋ฆฌ ๋ฆฌ์์ค ์๊ณ์ ์ด๊ณผ๋ก ์๋ฒ ๋ค์ด
- ์ฅ์ ๋ฐ์์? -> ํด๋ผ์ฐ๋๋ฉด ์ผ๋จ ์๋ฒ ๋๋ฆฌ๊ณ ์ดํ ํ๋ / ํด๋ผ์ฐ๋๊ฐ ์๋๋ฉด ์ด์ฌํ ํ๋
์ ์ ์ซ์ ์ด๋ป๊ฒ ์ฐพ๋๊ฐ?
- ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋ณต์ก๋, CPU, ๋ฉ๋ชจ๋ฆฌ, IO ๋ฆฌ์์ค ์ํฉ์ ๋ฐ๋ผ ๋ชจ๋ ๋ค๋ฆ
- ์ฑ๋ฅ ํ ์คํธ
> ์ต๋ํ ์ค์ ์๋น์ค์ ์ ์ฌํ๊ฒ ์ฑ๋ฅ ํ ์คํธ ์๋
> ํด : ์ํ์น ab, ์ ์ด๋ฏธํฐ, nGrinder
[ํต์ฌ]
WAS์ ๋ฉํฐ ์ฐ๋ ๋ ์ง์!!!
- ๋ฉํฐ ์ฐ๋ ๋์ ๋ํ ๋ถ๋ถ์ WAS๊ฐ ์ฒ๋ฆฌ
- ๊ฐ๋ฐ์๊ฐ ๋ฉํฐ ์ฐ๋ ๋ ๊ด๋ จ ์ฝ๋๋ฅผ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋จ
- ๊ฐ๋ฐ์๋ ๋ง์น ์ฑ๊ธ ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ ํ๋ฏ ํธ๋ฆฌํ๊ฒ ์์ค์ฝ๋ ๊ฐ๋ฐ
- ๋ฉํฐ ์ฐ๋ ๋ ํ๊ฒฝ์ด๋ฏ๋ก ์ฑ๊ธํค ๊ฐ์ฒด(์๋ธ๋ฆฟ, ์คํ๋ง ๋น) ์ฃผ์ํด์ ์ฌ์ฉ
4. HTML, HTTP API, CSR, SSR
[์ ์ ๋ฆฌ์์ค]
- ๊ณ ์ ๋ HTML ํ์ผ, CSS, JS, ์ด๋ฏธ์ง, ์์ ๋ฑ์ ์ ๊ณต
- ์น์๋ฒ์์ ์์ฑ๋ ํ์ผ์ ์ ๊ณต
- ์ฃผ๋ก ์น ๋ธ๋ผ์ฐ์ ์์ ์์ฒญ์ ๋ฐ์์ ์ฒ๋ฆฌ
[HTML ํ์ด์ง]
๊ทธ๋ฆผ ์ค๋ช ) ์ฃผ๋ฌธ๋ด์ญ ๋ณด์ฌ๋ฌ๋ผ๋ ์์ฒญ -> WAS(์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ์ํ)๊ฐ DBํตํด ์ฃผ๋ฌธ ์ ๋ณด ์กฐํ -> ๋์ ์ผ๋ก HTML ์์ฑ(JSP, ํ์๋ฆฌํ) -> ์น๋ธ๋ผ์ฐ์ ์ HTML ๋ฐํ
- ๋์ ์ผ๋ก ํ์ํ HTML ํ์ผ์ ์์ฑํด์ ์ ๋ฌ
- ์น ๋ธ๋ผ์ฐ์ : HTML ํด์
[HTTP API]
- HTML์ด ์๋๋ผ JSON๋ฐ์ดํฐ๋ฅผ ์น๋ธ๋ผ์ฐ์ ๋ฅผ ์ ๋ฌ
- ์ฃผ๋ก JSON ํ์ ์ฌ์ฉ
- HTML์ด ์๋๋ผ ๋ค์ํ ์์คํ ์์ ํธ์ถ
ex)
- ๋ฐ์ดํฐ๋ง ์ฃผ๊ณ ๋ฐ์
- UI ํ๋ฉด์ด ํ์ํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ๋ณ๋๋ก ์ฒ๋ฆฌ
(1) UI ํด๋ผ์ด์ธํธ ์ ์
- ์ฑ ํด๋ผ์ด์ธํธ (์์ดํฐ, ์๋๋ก์ด๋, PC์ฑ)
- ์น๋ธ๋ผ์ฐ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํ HTTP API ํธ์ถ)
- React, Vue.js ๊ฐ์ ์น ํด๋ผ์ด์ธํธ
(2) ์๋ฒ to ์๋ฒ
- ์ฃผ๋ฌธ ์๋ฒ -> ๊ฒฐ์ ์๋ฒ
- ๊ธฐ์ ๊ฐ ๋ฐ์ดํฐ ํต์
์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง (SSR) - ์๋ฒ์์ ์ต์ข HTML์ ์์ฑํด์ ํด๋ผ์ด์ธํธ์ ์ ๋ฌ
- HTML ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ์๋ฒ์์ ๋ง๋ค์ด์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ๋ฌ
- ์ฃผ๋ก ์ ์ ์ธ ํ๋ฉด์ ์ฌ์ฉ
- ๊ด๋ จ๊ธฐ์ : JSP, ํ์๋ฆฌํ (๋ฐฑ์๋ ๊ฐ๋ฐ์)
ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง (CSR)
- HTML ๊ฒฐ๊ณผ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด ์น ๋ธ๋ผ์ฐ์ ์์ ๋์ ์ผ๋ก ์์ฑํด์ ์ ์ฉ
- ์ฃผ๋ก ๋์ ์ธ ํ๋ฉด์ ์ฌ์ฉ, ์น ํ๊ฒฝ์ ๋ง์น ์ฑ์ฒ๋ผ ํ์ํ ๋ถ๋ถ๋ถ๋ถ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- ex) ๊ตฌ๊ธ ์ง๋, Gmail, ๊ตฌ๊ธ ์บ๋ฆฐ๋
- ๊ด๋ จ ๊ธฐ์ : React, Vue.js (ํ๋ก ํธ์ํธ ๊ฐ๋ฐ์)
์ฐธ๊ณ
- React, Vue.js๋ฅผ CSR + SSR ๋์์ ์ง์ํ๋ ์น ํ๋ ์์ํฌ๋ ์์
- SSR์ ์ฌ์ฉํ๋๋ผ๋, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด์ ํ๋ฉด ์ผ๋ถ๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ
์ด๋๊น์ง ์์์ผํ๋? - ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ ์ฅ์์ UI ๊ธฐ์
[๋ฐฑ์๋] - ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๊ธฐ์ (SSR) - JSP, ํ์๋ฆฌํ - ํ๋ฉด์ด ์ ์ ์ด๊ณ , ๋ณต์กํ์ง ์์ ๋ ์ฌ์ฉ - ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๊ธฐ์ ํ์ต ํ์ [์น ํ๋ก ํธ์๋] - ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง ๊ธฐ์ (CSR) - React, Vue.js - ๋ณต์กํ๊ณ ๋์ ์ธ UI ์ฌ์ฉ - ์น ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ์ ๋ฌธ ๋ถ์ผ |
<์ ํ๊ณผ ์ง์ค>
- ๋ฐฑ์๋ ๊ฐ๋ฐ์์ ์น ํ๋ก ํธ์๋ ๊ธฐ์ ํ์ต์ ์ต์
- ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ ์๋ฒ / DB / ์ธํ๋ผ ๋ฑ ์๋ง์ ๋ฐฑ์๋ ๊ธฐ์ ์ ๊ณต๋ถํด์ผํจ
- ์น ํ๋ก ํธ์๋๋ ๊น์ด์๊ฒ ์ํ๋ ค๋ฉด ์๋ จ ์ค๋์๊ฐ ํ์
5. ์๋ฐ ๋ฐฑ์๋ ์น ๊ธฐ์ ์ญ์ฌ
[๊ณผ๊ฑฐ๊ธฐ์ ]
[ํ์ฌ ์ฌ์ฉ ๊ธฐ์ ]
์คํ๋ง ์น ๊ธฐ์ ์ ๋ถํ
- Web Servlet - Spring MVC
- Web Reactive - Spring WebFlux
์คํ๋ง ์น ํ๋ญ์ค(WebFlux) - ๊ฐ์ฅ ์ต์
ํน์ง)
- ๋น๋๊ธฐ ๋ ๋ธ๋ฌํน ์ฒ๋ฆฌ
- ์ต์ ์ฐ๋ ๋๋ก ์ต๋ ์ฑ๋ฅ - ์ฐ๋ ๋ ์ปจํ ์คํธ ์ค์์นญ ๋น์ฉ ํจ์จํ
- ํจ์ํ ์คํ์ผ๋ก ๊ฐ๋ฐ - ๋์์ฒ๋ฆฌ ์ฝ๋ ํจ์จํ
- ์๋ธ๋ฆฟ ๊ธฐ์ ์ฌ์ฉ X
๊ทธ๋ฐ๋ฐ)
- ์นํ๋ญ์ค๋ ๊ธฐ์ ์ ๋์ด๋ ๋์
- ์์ง์ RDB ์ง์ ๋ถ์กฑ
- ์ผ๋ฐ MVC์ ์ฐ๋ ๋ ๋ชจ๋ธ๋ ์ถฉ๋ถํ ๋น ๋ฆ
- ์ค๋ฌด์์ ์์ง ๋ง์ด ์ฌ์ฉํ์ง ์์ (1% ์ดํ)
์๋ฐ ๋ทฐ ํ ํ๋ฆฟ ์ญ์ฌ
'๐จโ๐ป Web Development > Spirng - MVC ํจํด l' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] 6.์คํ๋ง MVC - ๊ธฐ๋ณธ ๊ธฐ๋ฅ (0) | 2023.03.15 |
---|---|
[Spring] 5.์คํ๋ง MVC - ๊ตฌ์กฐ ์ดํด (0) | 2023.03.14 |
[Spring] 4.MVC ํ๋ ์์ํฌ ๋ง๋ค๊ธฐ (0) | 2023.03.13 |
[Spring] 3.์๋ธ๋ฆฟ, JSP, MVC ํจํด (0) | 2023.03.13 |
[Spring] 2.์๋ธ๋ฆฟ (0) | 2023.03.12 |
์ต๊ทผ๋๊ธ