๐ ์น ์๋ฒ, ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ
๋ชจ๋ ๊ฒ์ด HTTP : HTTP ๋ฉ์์ง์ ๋ชจ๋ ๊ฒ์ ์ ์ก
์น ์๋ฒ(Web Server)
- HTTP ๊ธฐ๋ฐ์ผ๋ก ๋์
- ์ ์ ๋ฆฌ์์ค ์ ๊ณต, ๊ธฐํ ๋ถ๊ฐ๊ธฐ๋ฅ
- ์ ์ (ํ์ผ) HTML, CSS, JS, ์ด๋ฏธ์ง, ์์
์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(WAS)
- HTTP ๊ธฐ๋ฐ์ผ๋ก ๋์
- ์น ์๋ฒ ๊ธฐ๋ฅ ํฌํจ + ์ ์ ๋ฆฌ์์ค ์ ๊ณต ๊ธฐ๋ฅ
- ํ๋ก๊ทธ๋จ ์ฝ๋๋ฅผ ์คํํด์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ์ํ
์น ์๋ฒ, WAS ์ฐจ์ด
- ์น ์๋ฒ๋ ์ ์ ๋ฆฌ์์ค, WAS๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง
- ์ฌ์ค์ ๋์ ์ฉ์ด๋ ๊ฒฝ๊ณ๋ ๋ชจํธํจ
- ์๋ฐ๋ ์๋ธ๋ฆฟ ์ปจํ ์ด๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉด WAS
- WAS๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์คํํ๋๋ฐ ๋ ํนํ
์น ์์คํ ๊ตฌ์ฑ - WAS, DB
- WAS๊ฐ ๋๋ฌด ๋ง์ ์ญํ ์ ๋ด๋น, ์๋ฒ ๊ณผ๋ถํ ์ฐ๋ ค
- ๊ฐ์ฅ ๋น์ผ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ด ์ ์ ๋ฆฌ์์ค ๋๋ฌธ์ ์ํ์ด ์ด๋ ค์ธ ์ ์์
- WAS ์ฅ์ ์ ์ค๋ฅ ํ๋ฉด๋ ๋ ธ์ถ ๋ถ๊ฐ๋ฅ
์น ์์คํ ๊ตฌ์ฑ - WEB, WAS, DB
- ์ ์ ๋ฆฌ์์ค๋ ์น ์๋ฒ๊ฐ ์ฒ๋ฆฌ
- ์น ์๋ฒ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง๊ฐ์ ๋์ ์ธ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ฉด WAS์ ์์ฒญ์ ์์
- WAS๋ ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ์ฒ๋ฆฌ ์ ๋ด
- ํจ์จ์ ์ธ ๋ฆฌ์์ค ๊ด๋ฆฌ
- ์ ์ ๋ฆฌ์์ค๊ฐ ๋ง์ด ์ฌ์ฉ๋๋ฉด WEB ์๋ฒ ์ฆ์ค
- ์ ํ๋ฆฌ์ผ์ด์ ๋ฆฌ์์ค๊ฐ ๋ง์ด ์ฌ์ฉ๋๋ฉด WAS ์ฆ์ค
- ์ ์ ๋ฆฌ์์ค๋ง ์ ๊ณตํ๋ ์น ์๋ฒ๋ ์ ์ฃฝ์ง ์์
- ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ด ๋์ํ๋ WAS ์๋ฒ๋ ์ ์ฃฝ์
- WAS, DB ์ฅ์ ์ WEB ์๋ฒ๊ฐ ์ค๋ฅ ํ๋ฉด ์ ๊ณต ๊ฐ๋ฅ
๐ ์๋ธ๋ฆฟ
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response){
}
}
ํน์ง
- urlPatterns(/hello)์ url์ด ํธ์ถ๋๋ฉด ์๋ธ๋ฆฟ ์ฝ๋๊ฐ ์คํ
- HTTP ์์ฒญ ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ HttpServletRequest
- HTTP ์๋ต ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ์ ๊ณตํ ์ ์๋ HttpServletResponse
- ๊ฐ๋ฐ์๋ HTTP ์คํ์ ๋งค์ฐ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ
HTTP ์์ฒญ, ์๋ต ํ๋ฆ
- WAS๋ request, response ๊ฐ์ฒด๋ฅผ ์๋ก ๋ง๋ค์ด์ ์๋ธ๋ฆฟ ๊ฐ์ฒด ํธ์ถ
- ๊ฐ๋ฐ์๋ Request ๊ฐ์ฒด์์ http ์์ฒญ ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ๊บผ๋ด์ ์ฌ์ฉ
- ๊ฐ๋ฐ์๋ Response ๊ฐ์ฒด์์ http ์๋ต ์ ๋ณด๋ฅผ ํธ๋ฆฌํ๊ฒ ์ ๋ ฅ
- WAS๋ Response ๊ฐ์ฒด์ ๋ด๊ฒจ์๋ ๋ด์ฉ์ผ๋ก http ์๋ต ์ ๋ณด ์์ฑ
์๋ธ๋ฆฟ ์ปจํ ์ด๋
- ํฐ์บฃ์ฒ๋ผ ์๋ธ๋ฆฟ์ ์ง์ํ๋ WAS๋ฅผ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ผ๊ณ ํจ
- ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ์์ฑ, ์ด๊ธฐํ, ํธ์ถ, ์ข ๋ฃํ๋ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ
- ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ ์ฑ๊ธํค์ผ๋ก ๊ด๋ฆฌ
- ๊ณ ๊ฐ์ ์์ฒญ์ด ์ฌ ๋ ๋ง๋ค ๊ณ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋นํจ์จ
- ์ต์ด ๋ก๋ฉ ์์ ์ ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋๊ณ ์ฌํ์ฉ
- ๋ชจ๋ ๊ณ ๊ฐ ์์ฒญ์ ๋์ผํ ์๋ธ๋ฆฟ ๊ฐ์ฒด ์ธ์คํด์ค์ ์ ๊ทผ
- ๊ณต์ ๋ณ์ ์ฌ์ฉ ์ฃผ์
- ์๋ธ๋ฆฟ ์ปจํ ์ด๋ ์ข ๋ฃ์ ํจ๊ป ์ข ๋ฃ
- jsp๋ ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ ๋์ด์ ์ฌ์ฉ
- ๋์ ์์ฒญ์ ์ํ ๋ฉํฐ ์ค๋ ๋ ์ฒ๋ฆฌ ์ง์
๐ ๋์ ์์ฒญ - ๋ฉํฐ ์ฐ๋ ๋
์ฐ๋ ๋
- ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ํ๋ํ๋ ์์ฐจ์ ์ผ๋ก ์คํํ๋ ๊ฒ
- ์๋ฐ ๋ฉ์ธ ๋ฉ์๋๋ฅผ ์ฒ์ ์คํํ๋ฉด main์ด๋ผ๋ ์ด๋ฆ์ ์ฐ๋ ๋๊ฐ ์คํ
- ์ฐ๋ ๋๊ฐ ์๋ค๋ฉด ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ด ๋ถ๊ฐ๋ฅ
- ์ฐ๋ ๋๋ ํ๋ฒ์ ํ๋์ ์ฝ๋ ๋ผ์ธ๋ง ์ํ
- ๋์ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ฉด ์ฐ๋ ๋๋ฅผ ์ถ๊ฐ๋ก ์์ฑ
๋จ์ผ ์์ฒญ
๋ค์ค ์์ฒญ - ์ฐ๋ ๋ ํ๋ ์ฌ์ฉ
์์ฒญ ๋ง๋ค ์ฐ๋ ๋ ์์ฑ
์ฅ์
- ๋์ ์์ฒญ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ๋ฆฌ์์ค๊ฐ ํ์ฉํ ๋๊น์ง ์ฒ๋ฆฌ๊ฐ๋ฅ
- ํ๋์ ์ฐ๋ ๋๊ฐ ์ง์ฐ ๋์ด๋, ๋๋จธ์ง ์ฐ๋ ๋๋ ์ ์ ๋์
๋จ์
- ์ฐ๋ ๋ ์์ฑ ๋น์ฉ์ด ๋น์, ๊ณ ๊ฐ ์์ฒญ ์ฌ๋๋ง๋ค ์ฐ๋ ๋ ์์ฑํ๋ฉด ์๋ต ์๋ ๋๋ ค์ง
- ์ปจํ ์คํธ ์ค์์นญ ๋น์ฉ ๋ฐ์
- ์ฐ๋ ๋ ์์ฑ์ ์ ํ์ด ์์
์ฐ๋ ๋ ํ
์ฐ๋ ๋ ํ : ์์ฒญ ๋ง๋ค ์ฐ๋ ๋ ์์ฑ์ ๋จ์ ๋ณด์
ํน์ง
- ํ์ํ ์ฐ๋ ๋๋ฅผ ์ฐ๋ ๋ ํ์ ๋ณด๊ดํ๊ณ ๊ด๋ฆฌํจ
์ฌ์ฉ
- ์ฐ๋ ๋๊ฐ ํ์ํ๋ฉด, ์ด๋ฏธ ์์ฑ๋์ด ์๋ ์ฐ๋ ๋๋ฅผ ์ฐ๋ ๋ ํ์์ ๊บผ๋ด์ ์ฌ์ฉ
- ์ฌ์ฉ์ ์ข ๋ฃํ๋ฉด ์ฐ๋ ๋ ํ์ ํด๋น ์ฐ๋ ๋๋ฅผ ๋ฐ๋ฉํ๋ค.
- ์ต๋ ์ฐ๋ ๋๊ฐ ๋ชจ๋ ์ฌ์ฉ์ค์ด์ด์ ์ฐ๋ ๋ ํ์ ์ฐ๋ ๋๊ฐ ์์ผ๋ฉด ? ๊ธฐ๋ค๋ฆฌ๋ ์์ฒญ์ ๊ฑฐ์ ํ๊ฑฐ๋ ํน์ ์ซ์๋งํผ๋ง ๋๊ธฐํ๋๋ก ์ค์ ๊ฐ๋ฅ
์ฅ์
- ์ฐ๋ ๋๊ฐ ๋ฏธ๋ฆฌ ์์ฑ๋์ด ์์ผ๋ฏ๋ก, ์ฐ๋ ๋๋ฅผ ์์ฑํ๊ณ ์ข ๋ฃํ๋ ๋น์ฉ์ด ์ ์ฝ๋๊ณ , ์๋ต ์๊ฐ์ด ๋น ๋ฅด๋ค.
- ์์ฑ ๊ฐ๋ฅํ ์ฐ๋ ๋์ ์ต๋์น๊ฐ ์์ผ๋ฏ๋ก ๋๋ฌด ๋ง์ ์์ฒญ์ด ๋ค์ด์๋ ๊ธฐ์กด ์์ฒญ์ ์์ ํ๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅ
์ค๋ฌด ํ
WAS์ ์ฃผ์ ํ๋ ํฌ์ธํธ๋ ์ต๋ ์ฐ๋ ๋ ์ ์ด๋ค
์ด ๊ฐ์ ๋๋ฌด ๋ฎ๊ฒ ์ค์ ํ๋ฉด : ๋์ ์์ฒญ์ด ๋ง์ผ๋ฉด ์๋ฒ ๋ฆฌ์์ค๋ ์ฌ์ ๋กญ์ง๋ง, ํด๋ผ์ด์ธํธ๋ ์๋ต ์ง์ฐ
๋๋ฌด ๋๊ฒ ์ค์ ํ๋ฉด : ๋์ ์์ฒญ์ด ๋ง์ผ๋ฉด cpu, ๋ฉ๋ชจ๋ฆฌ ๋ฆฌ์์ค ์๊ณ์ ์ด๊ณผ๋ก ์๋ฒ ๋ค์ด
์ฅ์ ๋ฐ์์ : ํด๋ผ์ฐ๋๋ฉด ์ผ๋จ ์๋ฒ๋ถํฐ ๋๋ฆฌ๊ธฐ, ํด๋ผ์ฐ๋ ์๋๋ฉด ํ๋
์ฐ๋ ๋ ํ์ ์ ์ ์ซ์
์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋ณต์ก๋, CPU, ๋ฉ๋ชจ๋ฆฌ, io ๋ฆฌ์์ค ์ํฉ์ ๋ฐ๋ผ ๋ชจ๋ ๋ค๋ฆ
์ฑ๋ฅ ํ ์คํธ๋ฅผ ํด๋ด์ผํจ -> ํด : ์ํ์น ab, ์ ์ด๋ฏธํฐ, nGrinder
WAS์ ๋ฉํฐ ์ฐ๋ ๋ ์ง์
๋ฉํฐ ์ฐ๋ ๋์ ๋ํ ๋ถ๋ถ์ was๊ฐ ์ฒ๋ฆฌ
๊ฐ๋ฐ์๊ฐ ๋ฉํฐ ์ฐ๋ ๋ ๊ด๋ จ ์ฝ๋๋ฅผ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋จ
๊ฐ๋ฐ์๋ ๋ง์น ์ฑ๊ธ ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฏ์ด ํธ๋ฆฌํ๊ฒ ์์ค ์ฝ๋ ๊ฐ๋ฐ
๋ฉํฐ ์ฐ๋ ๋ ํ๊ฒฝ์ด๋ฏ๋ก ์ฑ๊ธํค ๊ฐ์ฒด(์๋ธ๋ฆฟ, ์คํ๋ง ๋น)๋ ์ฃผ์ํด์ ์ฌ์ฉ
'BackEnd : Spring > Spring MVC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring MVC] HttpServletResponse, Http ์๋ต ๋ฐ์ดํฐ (0) | 2024.03.23 |
---|---|
[Spring MVC] HTTP ์์ฒญ ๋ฐ์ดํฐ (0) | 2024.03.20 |
[Spring MVC] HelloServlet, HttpServletRequest (0) | 2024.03.20 |
[Spring MVC] ์๋ฐ ๋ฐฑ์๋ ์น ๊ธฐ์ ์ญ์ฌ (1) | 2024.03.16 |
[Spring MVC] HTML, HTTP API, CSR, SSR (0) | 2024.03.16 |