์น ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ๋คํธ์ํฌ, WAS ์๋ฒ, ์คํ๋ง ํ๋ ์์ํฌ ๋ฑ ๋ค์ํ ์์๋ค์ด ์ด๋ป๊ฒ ์ํธ์์ฉํ๋์ง ๊ถ๊ธํ ๋๊ฐ ์๋ค.
ํนํ ์ฌ์ฉ์์ "ํด๋ฆญ" ํ ๋ฒ์ด ์ด๋ป๊ฒ ์๋ฒ๋ฅผ ๊ฑฐ์ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊น์ง ๋๋ฌํ๊ณ ,
๋ค์ ์ฌ์ฉ์ ํ๋ฉด์ ๊ฒฐ๊ณผ๊ฐ ํ์๋๋์ง ์ ์ฒด ๊ณผ์ ์ ์ดํดํ๋ ๊ฒ์ ์น ๊ฐ๋ฐ์์๊ฒ ๋งค์ฐ ์ค์ํ๋ค.
์ด ๊ธ์์๋ OSI 7๊ณ์ธต๋ถํฐ WAS ์๋ฒ, ์คํ๋ง ํ๋ ์์ํฌ, ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊น์ง ๋ฐ์ดํฐ๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ด๋ป๊ฒ ํ๋ฌ๊ฐ๋์ง ์์ธํ ์์๋ณด๋ ค ํ๋ค.
OSI 7๊ณ์ธต๊ณผ WAS ์๋ฒ์ ์ ์ฒด ๊ตฌ์กฐ
๋จผ์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ์ดํด๋ณด์.

์ด ๋์ถฉ ๊ทธ๋ฆฐ ์ํคํ
์ฒ๋ ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ )์์ WAS ์๋ฒ๋ฅผ ๊ฑฐ์ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊น์ง์ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ํ๋ธ๋ค. ํ๋์ ํ์ดํ๋ ์์ฒญ (Request)ํ๋ฆ, ๋นจ๊ฐ์ ํ์ดํ๋ ์๋ต(Response) ํ๋ฆ์ ์๋ฏธํ๋ค.
๊ฐ์ํ ํ๊ฒฝ(ํด๋ผ์ฐ๋ ํ๊ฒฝ)์์๋ ํ๋์จ์ด ์์์ด ์ถ์ํ๋์ด ์์ง๋ง,
๋คํธ์ํฌ ํต์ ์ ํ์ํ ๋ชจ๋ OSI ๊ณ์ธต์ ๊ธฐ๋ฅ์ ์ฌ์ ํ ์ํํธ์จ์ด์ ์ผ๋ก ๊ตฌํ๋์ด ์๋๋๋ฉฐ , ๋ฌผ๋ฆฌ์ MAC์ฃผ์๊ฐ ์๋ ๊ฐ์ MAC ์ฃผ์๊ฐ ํ ๋น๋์ด ํ์ ๊ณ์ธต์ ๊ธฐ๋ฅ์ ์ํ ํ ์ ์๋ค
ํด๋ผ์ด์ธํธ -> ์๋ฒ
-
์ฌ์ฉ์ ์ก์
(ํด๋ผ์ด์ธํธ)
๋ชจ๋ ๊ฒ์ ์ฌ์ฉ์์ ์ก์
์ผ๋ก๋ถํฐ ์์๋๋ค. ์น ๋ธ๋ผ์ฐ์ ์์ URL์ ์
๋ ฅํ๊ฑฐ๋, ๋ฒํผ์ ํด๋ฆญํ๊ฑฐ๋, ํผ์ ์ ์ถํ ๋ HTTP ์์ฒญ์ด ์์ฑ๋๋ค.
-
OSI 7๊ณ์ธต ํต๊ณผ (ํด๋ผ์ด์ธํธ ์ธก)
์์ฑ๋ HTTP ์์ฒญ์ OSI 7๊ณ์ธต์ ์์ฐจ์ ์ผ๋ก ํต๊ณผํ๋ฉฐ ๋คํธ์ํฌ๋ก ์ ์ก๋๋ค:
โ
์์ฉ ๊ณ์ธต (7๊ณ์ธต)
- HTTP ์์ฒญ ๋ฉ์์ง ์์ฑ (GET, POST ๋ฑ)
= URL, ํค๋, ์ฟ ํค, ์์ฒญ ๋ณธ๋ฌธ ๋ฑ ํฌํจ
- ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ด๋ฅผ ์์ฒญ์ ํฌํจ
โ
ํํ ๊ณ์ธต (6๊ณ์ธต)
- ๋ฐ์ดํฐ ํ์ ๋ณํ ๋ฐ ์์ถ
- HTTPS๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ SSL/TLS๋ก ๋ฐ์ดํฐ ์ํธํ
- ๋ฌธ์ ์ธ์ฝ๋ฉ ์ฒ๋ฆฌ (UTF-8 ๋ฑ)
โ
์ธ์
๊ณ์ธต (5๊ณ์ธต)
- ์๋ฒ์์ ํต์ ์ธ์
์ค์
- ์ธ์
ID ๋ฑ ์ธ์
์ ์ง ์ ๋ณด ๊ด๋ฆฌ
- ํต์ ๋๊ธฐํ
โ
์ ์ก ๊ณ์ธต (4๊ณ์ธต)
- TCP ์ฐ๊ฒฐ ์ค์ (3-way handshaking)
- ๋ฐ์ดํฐ๋ฅผ ์ธ๊ทธ๋จผํธ๋ก ๋ถํ
- ํฌํธ ๋ฒํธ ์ง์ (์ผ๋ฐ์ ์ผ๋ก HTTP๋ 80, HTTPS๋ 443)
- ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก ๋ณด์ฅ
โ
๋คํธ์ํฌ ๊ณ์ธต (3๊ณ์ธต)
- DNS ์กฐํ๋ก ๋๋ฉ์ธ ์ด๋ฆ์ IP ์ฃผ์๋ก ๋ณํ
- IP ์ฃผ์ ๊ธฐ๋ฐ ๋ผ์ฐํ
- IP ํจํท ์์ฑ ๋ฐ ์ ๋ฌ ๊ฒฝ๋ก ๊ฒฐ์ (์ถ๋ฐ์ง์ ๋ชฉ์ ์ง IP ์ฃผ์ ์ถ๊ฐ )
โ
๋ฐ์ดํฐ๋งํฌ ๊ณ์ธต (2๊ณ์ธต)
- ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์นด๋(NIC)๋ฅผ ํตํด ์ ์ก
- MAC ์ฃผ์ ํค๋ ๋ฐ ํธ๋ ์ผ๋ฌ ์ถ๊ฐ (ํ๋ ์ ์์ฑ)
- ์ค๋ฅ ๊ฒ์ถ ๋ฐ ํ๋ฆ ์ ์ด
โ
๋ฌผ๋ฆฌ ๊ณ์ธต (1๊ณ์ธต)
- ์ ๊ธฐ ์ ํธ, ๊ด ์ ํธ ๋ฑ์ผ๋ก ๋ณํ
- ์ค์ ๋ฌผ๋ฆฌ์ ๋งค์ฒด๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก
- WAS ์๋ฒ๋ก์ ์์ฒญ ๋์ฐฉ ๋ฐ ์ฒ๋ฆฌ (์๋ฒ ์ธก)
ํด๋ผ์ด์ธํธ์์ ์ ์ก๋ ์์ฒญ์ ์๋ฒ ์ธก์์ ๋ค์ OSI 7๊ณ์ธต์ ๊ฑฐ๊พธ๋ก ์ฌ๋ผ๊ฐ๋ฉฐ ์ฒ๋ฆฌ๋๋ค
:
โ
๋ฌผ๋ฆฌ ๊ณ์ธต โ ๋ฐ์ดํฐ๋งํฌ ๊ณ์ธต โ ๋คํธ์ํฌ ๊ณ์ธต โ ์ ์ก ๊ณ์ธต
- ๋ฌผ๋ฆฌ์ ์ ํธ์์ ๋ฐ์ดํฐ ๋ณต์
- ํ๋ ์์์ ํจํท ์ถ์ถ
- TCP ์ธ๊ทธ๋จผํธ ์ฌ์กฐ๋ฆฝ
- ์์ฒญ์ด ์ฌ๋ฐ๋ฅธ ํฌํธ์ ํ๋ก์ธ์ค๋ก ์ ๋ฌ
โ
์ธ์
๊ณ์ธต โ ํํ ๊ณ์ธต โ ์์ฉ ๊ณ์ธต
- ์ธ์
์ฐ๊ฒฐ ํ์ธ ๋ฐ ์ ์ง
- ์ํธํ๋ ๋ฐ์ดํฐ ๋ณตํธํ (HTTPS)
- HTTP ์์ฒญ ๋ฉ์์ง ํ์ฑ
- WAS ์์ง (Tomcat)
์์ฒญ์ ์ด์ WAS ์์ง(์: Tomcat)์ ๋๋ฌํ๋ค:
- HTTP ์์ฒญ์ ์์ ํ๊ณ ํ์ฑ
- ์ค๋ ๋ ํ์์ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ค๋ ๋ ํ ๋น
- TCP ์ฐ๊ฒฐ ๊ด๋ฆฌ
- ์์ฒญ์ ์๋ธ๋ฆฟ ์ปจํ
์ด๋๋ก ์ ๋ฌ
- ์๋ธ๋ฆฟ ์ปจํ
์ด๋
์๋ธ๋ฆฟ ์ปจํ
์ด๋๋ ๋ค์ ์์
์ ์ํํ๋ค:
- ์์ฒญ๋ URL ํจํด์ ๋ง๋ ์๋ธ๋ฆฟ/์ปจํธ๋กค๋ฌ ๋งคํ
- HttpServletRequest ๋ฐ HttpServletResponse ๊ฐ์ฒด ์์ฑ
- ํํฐ ์ฒด์ธ ์ ์ฉ (์ธ์ฆ, ๋ก๊น
, ์ธ์ฝ๋ฉ ๋ฑ)
- ์์ฒญ์ ์คํ๋ง์ DispatcherServlet์ผ๋ก ์ ๋ฌ
- ์คํ๋ง ์น ์ ํ๋ฆฌ์ผ์ด์
์คํ๋ง ํ๋ ์์ํฌ๋ MVC ์ํคํ
์ฒ๋ฅผ ๋ฐ๋ผ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค:
โ
Controller
URL ๋งคํ์ ๋ฐ๋ผ ์ ์ ํ ์ปจํธ๋กค๋ฌ ๋ฉ์๋ ์คํ
์์ฒญ ํ๋ผ๋ฏธํฐ ๊ฒ์ฆ ๋ฐ ๋ณํ
๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ๋ฅผ ์ํด Service ๋ ์ด์ด ํธ์ถ
โ
Service
์ค์ ๋น์ฆ๋์ค ๋ก์ง ๊ตฌํ
ํธ๋์ญ์
๊ด๋ฆฌ
Repository ๋ ์ด์ด๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ๊ทผ
โ
Repository
๋ฐ์ดํฐ ์ก์ธ์ค ๋ก์ง ๊ตฌํ
JPA/Hibernate๋ฅผ ํตํ ๊ฐ์ฒด-๊ด๊ณ ๋งคํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ํ (CRUD)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋
Repository ๋ ์ด์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์ด ์ํ๋๋ค:
โ
JPA/Hibernate๊ฐ ๊ฐ์ฒด๋ฅผ SQL ์ฟผ๋ฆฌ๋ก ๋ณํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๊ด๋ฆฌ (์ปค๋ฅ์
ํ)
์ฟผ๋ฆฌ ์คํ ๋ฐ ๊ฒฐ๊ณผ ๋ฐํ
ORM์ ํตํ ๊ฒฐ๊ณผ๋ฅผ ์๋ฐ ๊ฐ์ฒด๋ก ๋งคํ
์๋ฒ -> ํด๋ผ์ด์ธํธ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ต ์ฒ๋ฆฌ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ์คํ ํ:
- ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ Repository๋ก ๋ฐํ
- ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๊ฐ Entity ๊ฐ์ฒด๋ก ๋ณํ
- Service ๋ ์ด์ด๋ก ๋ฐ์ดํฐ ์ ๋ฌ
- ์คํ๋ง ์น ์ ํ๋ฆฌ์ผ์ด์
์์์ ์๋ต ์์ฑ
โ
Repository โ Service โ Controller
- Repository์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ Service๊ฐ ๊ฐ๊ณต(DTO ์บก์ํ)
- Controller๊ฐ ์ต์ข
์๋ต ๋ฐ์ดํฐ ๊ตฌ์ฑ
- JSON/XML ํ์ ๋ณํ ๋๋ View ํ
ํ๋ฆฟ ๋ ๋๋ง
- ์๋ธ๋ฆฟ ์ปจํ
์ด๋
- HttpServletResponse ๊ฐ์ฒด์ ์๋ต ๋ฐ์ดํฐ ๊ธฐ๋ก
- ์๋ต ์ํ ์ฝ๋ ์ค์ (200 OK, 404 Not Found ๋ฑ)
- ์๋ต ํค๋ ์ค์ (Content-Type, ์ฟ ํค ๋ฑ)
- ํํฐ ์ฒด์ธ ์ญ์ ์ฒ๋ฆฌ
- WAS ์์ง (Tomcat)
- ์๋ต ๋ฐ์ดํฐ ๋ฒํผ๋ง
- HTTP ์๋ต ๋ฉ์์ง ๊ตฌ์ฑ
- TCP ์ฐ๊ฒฐ์ ํตํด ์๋ต ์ ์ก ์ค๋น
- OSI 7๊ณ์ธต ํต๊ณผ (์๋ฒ ์ธก)
์์ฑ๋ HTTP ์๋ต์ ๋ค์ OSI 7๊ณ์ธต์ ํตํด ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋๋ค:
โ
์์ฉ ๊ณ์ธต โ ํํ ๊ณ์ธต โ ์ธ์
๊ณ์ธต โ ์ ์ก ๊ณ์ธต โ ๋คํธ์ํฌ ๊ณ์ธต โ ๋ฐ์ดํฐ๋งํฌ ๊ณ์ธต โ ๋ฌผ๋ฆฌ ๊ณ์ธต
- HTTP ์๋ต ๋ฉ์์ง ์์ฑ
- ํ์์ ๋ฐ์ดํฐ ์์ถ ๋ฐ ์ํธํ
- TCP ์ธ๊ทธ๋จผํธ๋ก ๋ถํ
- IP ํจํท์ผ๋ก ์บก์ํ
- ํ๋ ์ ์์ฑ ๋ฐ ๋ฌผ๋ฆฌ์ ์ ํธ๋ก ๋ณํ
- ํด๋ผ์ด์ธํธ์์์ ์๋ต ์ฒ๋ฆฌ
ํด๋ผ์ด์ธํธ์์๋ ์๋ต์ ๋ค์ OSI 7๊ณ์ธต์ ๊ฑฐ๊พธ๋ก ์ฌ๋ผ๊ฐ๋ฉฐ ์ฒ๋ฆฌํ๋ค:
โ
๋ฌผ๋ฆฌ ๊ณ์ธต โ ๋ฐ์ดํฐ๋งํฌ ๊ณ์ธต โ ๋คํธ์ํฌ ๊ณ์ธต โ ์ ์ก ๊ณ์ธต โ ์ธ์
๊ณ์ธต โ ํํ ๊ณ์ธต โ ์์ฉ ๊ณ์ธต
- ๋ฌผ๋ฆฌ์ ์ ํธ์์ ๋ฐ์ดํฐ ๋ณต์
- ํ๋ ์์์ ํจํท ์ถ์ถ
- TCP ์ธ๊ทธ๋จผํธ ์ฌ์กฐ๋ฆฝ
- ์ํธํ๋ ๋ฐ์ดํฐ ๋ณตํธํ (HTTPS)
- HTTP ์๋ต ๋ฉ์์ง ํ์ฑ
- ์น ๋ธ๋ผ์ฐ์ ์์์ ์ต์ข
์ฒ๋ฆฌ
- HTTP ์๋ต ์ํ ์ฝ๋ ํ์ธ
- ์๋ต ํค๋ ์ฒ๋ฆฌ (์ฟ ํค ์ ์ฅ ๋ฑ)
- HTML/CSS/JavaScript ํ์ฑ ๋ฐ ๋ ๋๋ง
- DOM ๊ตฌ์ฑ ๋ฐ ํ๋ฉด ํ์
- ์ฌ์ฉ์์๊ฒ ์ต์ข
๊ฒฐ๊ณผ ์ ๊ณต
1. โถ๏ธOSI 7๊ณ์ธต๊ณผ WAS ์๋ฒ์ ๊ด๊ณ
WAS ์๋ฒ๋ OSI 7๊ณ์ธต์ ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๋ฉฐ, ๊ทธ ์์ ์๋ธ๋ฆฟ ์ปจํ
์ด๋, ์คํ๋ง ํ๋ ์์ํฌ ๋ฑ์ด ๊ตฌ์ถ๋๋ค.
๋ชจ๋ ๋คํธ์ํฌ ํต์ ์ OSI 7๊ณ์ธต์ ํตํด ์ด๋ฃจ์ด์ง๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง์ ์์ฉ ๊ณ์ธต ์์์ ์คํ๋๋ค.
2. โถ๏ธ์์ฒญ๊ณผ ์๋ต์ ๋น๋์นญ์ฑ
์์ฒญ์ ํด๋ผ์ด์ธํธ์์ ์์ํ์ฌ ๊ณ์ธต์ ๋ด๋ ค๊ฐ๊ณ , ์๋ฒ์์๋ ๊ณ์ธต์ ์ฌ๋ผ๊ฐ๋ค.
์๋ต์ ์๋ฒ์์ ์์ํ์ฌ ๊ณ์ธต์ ๋ด๋ ค๊ฐ๊ณ , ํด๋ผ์ด์ธํธ์์๋ ๊ณ์ธต์ ์ฌ๋ผ๊ฐ๋ค.
3. โถ๏ธ์คํ๋ง MVC ์ํคํ
์ฒ
Controller, Service, Repository ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ํตํด ๊ด์ฌ์ฌ ๋ถ๋ฆฌ
๊ฐ ๊ณ์ธต์ ๋ช
ํํ ์ฑ
์์ ๊ฐ์ง๋ฉฐ, ๋์จํ ๊ฒฐํฉ์ ํตํด ์ ์ง๋ณด์์ฑ ํฅ์
4. โถ๏ธ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋
ORM(JPA/Hibernate)์ ํตํด ๊ฐ์ฒด ์งํฅ ์ฝ๋์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ ๋งคํ
ํธ๋์ญ์
๊ด๋ฆฌ๋ฅผ ํตํ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ๋ณด์ฅ