(์ด์ ๊ธ ๊ทธ๋ฆผ์ผ๋ก ํ ๋ฐฉ ๋ณต์ต)

**ํฐ์บฃ(Tomcat)**์ ํ๋ง๋๋ก "์๋ฐ(Java) ์ฝ๋๋ฅผ ์ฝ์ด์ ์ค์ ๋ก ์๋ฆฌ(์คํ)๋ฅผ ํด์ฃผ๋ ์ฃผ๋ฐฉ์ฅ" ์ญํ ์ ํ๋ ์ํํธ์จ์ด์ ๋๋ค. ์ ๋ฌธ ์ฉ์ด๋ก๋ '์น ์ปจํ ์ด๋(Web Container)' ๋๋ **'์๋ธ๋ฆฟ ์ปจํ ์ด๋'**๋ผ๊ณ ๋ถ๋ฌ์.
๊ทธ๋ฆผ๊ณผ ๋งค์นญํด์ ํฐ์บฃ์ด ์ ํํ ๋ญ์ง 3๊ฐ์ง ํฌ์ธํธ๋ก ์ ๋ฆฌํด ๋๋ฆด๊ฒ์.
1. ์๋ฐ ์ ์ฉ ์๋ฆฌ์ฌ (์ปจํ ์ด๋)
์น ์๋ฒ(ํ ๋งค๋์ )๋ ์๋ฐ ์ฝ๋๋ฅผ ์ฝ์ ์ค ๋ชจ๋ฆ ๋๋ค. ๊ทธ๋์ ์ฌ์ฉ์๊ฐ "๋ก๊ทธ์ธํ๊ฒ ํด์ค"๋ "์ฌํ์ง ์ถ์ฒํด์ค" ๊ฐ์ ์์ฒญ์ ํ๋ฉด, ํฐ์บฃ์ด ๊ทธ ์์ฒญ์ ๋ฐ์์ ์๋ฐ ํ์ผ(.java)์ด๋ JSP ํ์ผ์ ์คํํด ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ ๋๋ค.
โ ์ฃผ๋ฐฉ์ฅ = ์ปจํ ์ด๋ (Container) ?
๋ค, ๋ง์ต๋๋ค! ํฐ์บฃ(Tomcat) ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ปจํ ์ด๋๋ผ๊ณ ๋ถ๋ฌ์.
- ์ ์ปจํ ์ด๋์ธ๊ฐ์? ์๋ธ๋ฆฟ์ด๋ผ๋ '์๋ฆฌ(์ฝ๋)'๋ฅผ ๊ทธ ์์ ๋ด์์(Contain) ์คํ์ํค๊ณ ๊ด๋ฆฌํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์ฃผ๋ฐฉ์ฅ์ด ์ฃผ๋ฐฉ์ ์ด๊ดํ๋ฏ, ์ปจํ ์ด๋๋ ์๋ธ๋ฆฟ์ด ์ธ์ ํ์ด๋๊ณ , ์ธ์ ์ผ์ ํ๊ณ , ์ธ์ ์ฃฝ์์ง(์๋ช ์ฃผ๊ธฐ)๋ฅผ ๋ชจ๋ ๊ด๋ฆฌํฉ๋๋ค.
โ๐ค์๋ธ๋ฆฟ (Servlet) = ์๋ฐ ์๋ฆฌ ๋ ์ํผ
์๋ธ๋ฆฟ์ "์น์ ์ํด ๋ง๋ค์ด์ง ์๋ฐ ํ๋ก๊ทธ๋จ" ๊ทธ ์์ฒด์ ๋๋ค.
- ๋น์ : ์ฃผ๋ฐฉ์ฅ(์ปจํ ์ด๋)์ด ์ค์ ๋ก ๋ง๋๋ **'์์ ๋ ์ํผ'**์ ๋๋ค.
- "์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ์ ํ๋ฉด ์์ด๋๋ฅผ ํ์ธํด๋ผ" ๊ฐ์ ๊ตฌ์ฒด์ ์ธ ์ฃผ๋ฌธ ์ฒ๋ฆฌ ๋ด์ฉ์ด ๋ด๊ธด ์๋ฐ ํ์ผ(.java)์ด ๋ฐ๋ก ์๋ธ๋ฆฟ์ ๋๋ค.
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฐ๊ฒฐ ๋ค๋ฆฌ
์๋ฃ์์ ๋ณด์ ๊ฒ์ฒ๋ผ, ํฐ์บฃ์ **๋ฐ์ดํฐ๋ฒ ์ด์ค(๋์ฅ๊ณ )**์ ์ฐ๊ฒฐ๋๋ ํต๋ก๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- ์ฌ์ฉ์๊ฐ ์์ฒญํ๋ฉด → ํฐ์บฃ์ด DB์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์์ → ์๋ฐ ๋ก์ง์ผ๋ก ๊ฐ๊ณตํ ๋ค → ๋ค์ ์น ์๋ฒ๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ๋ณด๋ด์ฃผ๋ ๊ฒ์ด์ฃ .
3. ์ ํฐ์บฃ์ ์ฐ๋์?
- ํ์ค: ์๋ฐ ์น ๊ฐ๋ฐ์ ๊ฐ์ฅ ํ์ค์ ์ธ ๋๊ตฌ์ ๋๋ค.
- ๊ฐ๋ฒผ์: WAS(์ฃผ๋ฐฉ ์ ์ฒด) ์ค์์๋ ๊ผญ ํ์ํ ๊ธฐ๋ฅ(์๋ธ๋ฆฟ/JSP ์คํ) ์์ฃผ๋ก ๋ด๊ฒจ ์์ด ๊ฐ๋ณ๊ณ ๋น ๋ฆ ๋๋ค.
- ๋ฌด๋ฃ: ์ํ์น ์ฌ๋จ์์ ๋ง๋ ์คํ์์ค๋ผ ๋๊ตฌ๋ ๋ฌด๋ฃ๋ก ์ธ ์ ์์ด ์ ์ธ๊ณ ์ ์ ์จ์ด ์๋์ ์ ๋๋ค.
๐ก ๋น์ ์ ๋ฆฌ
- ์น ์๋ฒ: "์ด์์ค์ธ์" ํ๊ณ ์ด๋ฏธ ๋ง๋ค์ด์ง ์ ๋จ์ง๋ฅผ ์ฃผ๋ ์ฌ๋ (Apache, Nginx ๋ฑ)
- ํฐ์บฃ(WAS/์ปจํ ์ด๋): ๋ค์์ ์ง์ ์๋ฐ ๋ ์ํผ๋ฅผ ๋ณด๊ณ ์๋ฆฌ๋ฅผ ๋ง๋๋ ์ฃผ๋ฐฉ์ฅ
- ์๋ฐ(Java): ์ฃผ๋ฐฉ์ฅ์ด ์ฌ์ฉํ๋ ์๋ฆฌ ๋๊ตฌ ๋ฐ ๋ ์ํผ
๐จ๐ณ ์๋น ๋น์ ์ต์ข ์ ๋ฆฌ (์ด๊ฒ๋ง ๊ธฐ์ตํ์ธ์!)
| ์ฉ์ด | ์๋น ๋น์ | ์ค์ IT ์๋ฏธ |
| WAS / ํฐ์บฃ | ์ฃผ๋ฐฉ์ฅ (Chef) | ์๋ธ๋ฆฟ์ ์คํํด์ฃผ๋ ํ๊ฒฝ (์ปจํ ์ด๋) |
| ์๋ธ๋ฆฟ (Servlet) | ์๋ฆฌ ๋ ์ํผ (Recipe) | ์น ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์๋ฐ ์ฝ๋ |
| HTTP ์์ฒญ | ์ฃผ๋ฌธ์ | ๋ธ๋ผ์ฐ์ ์์ ์๋ฒ๋ก ๋ณด๋ด๋ ์ ํธ |
| HTML / JSON | ์์ฑ๋ ์๋ฆฌ | ์ฃผ๋ฐฉ์ฅ์ด ๋ง๋ค์ด์ ์๋์๊ฒ ๋ด๋๋ ๊ฒฐ๊ณผ๋ฌผ |
๐ฆ ๋น์ ๋ก ์์ฑํ๋ RESTful์ ์ ์ฒด
- ๋ฐฐ๋ฌ ๋ฌผ๊ฑด (Data): HTML์ด๋ JSON (์์ฑ๋ ์๋ฆฌ)
- ๋ฐฐ๋ฌ ๊ธฐ์ฌ (Transport): HTTP๋ผ๋ ํ๋กํ ์ฝ (์ค์ ์ ํธ๋ฅผ ์ค์ด๋๋ฅด๋ ๋๋ก ์์ ํธ๋ญ)
- ์ก์ฅ ์์ฑ ๊ท์น (Language/Style): RESTful (์ด๋ค ์ฃผ์๋ก, ์ด๋ค ๋ฐฉ์์ผ๋ก ๋ณด๋ผ์ง ์ ํ๋ ์ฝ์)
์๋๋์ด ๋ง์ํ์ "JSON์ ๋ค๊ณ ๋ณด๋ด๋ ํ์" ์์ฒด๋ฅผ **'RESTfulํ ๋ฐฉ์์ผ๋ก ํต์ ํ๋ค'**๊ณ ํํํฉ๋๋ค.
โ๏ธ RESTfulํ๊ฒ ์ ํธ ์ฃผ๊ณ ๋ฐ๊ธฐ (์ค์ ์์)
์ฃผ๋ฐฉ์ฅ(Tomcat)์ด ์๋ฆฌ๋ฅผ ๋ค ๋ง๋ค๊ณ ์๋(React)์๊ฒ ๋ณด๋ผ ๋, RESTful ๊ท์น์ ๋ฐ๋ฅด๋ฉด ์ก์ฅ์ด ์ด๋ ๊ฒ ๊น๋ํด์ง๋๋ค.
- ์์ฒญ (์ฃผ๋ฌธ): GET /menu/1
- (์๋ฏธ: "1๋ฒ ๋ฉ๋ด ์ ๋ณด ์ข ๋ณด์ฌ์ค!")
- ์๋ต (๋ฐฐ๋ฌ): JSON ๋ฐ์ดํฐ๋ฅผ ๋ด์์ ์ ์ก
-
JSON
{ "name": "ํด์ด๋ ๊ตญ๋ฐฅ", "price": 10000, "status": "์กฐ๋ฆฌ ์๋ฃ" }
๐ก ์ '๊ฐ์ฒด'๊ฐ ์๋๋ผ '๊ท์น'์ธ๊ฐ์?
๋ง์ฝ RESTful์ด๋ผ๋ ๊ท์น์ด ์๋ค๋ฉด, ์ฌ๋๋ง๋ค ์ฃผ๋ฌธํ๋ ๋ฐฉ์์ด ๋ค ์ ๋ฉ๋๋ก์ผ ๊ฑฐ์์.
- A: "์ผ, 1๋ฒ ๋ฉ๋ด ์ข ๊ฐ์ ธ์๋ด"
- B: "๋ฉ๋ดํ์์ ์ฒซ ๋ฒ์งธ ๊ฑฐ ์ค๋?"
- C: "Menu_Show_Me_Number_1"
์ด๊ฑธ **GET /menu/1**๋ก ํต์ผํ์๊ณ ์ฝ์ํ ๊ฒ ๋ฐ๋ก RESTful์ ๋๋ค. ๊ทธ๋์ ๊ฐ๋ฐ์๋ค์ด ์๋ก ์ํตํ๊ธฐ๊ฐ ํจ์ฌ ํธํด์ง ๊ฑฐ์ฃ !
๐จ ํ ์ค ์ ๋ฆฌ
"RESTful์ JSON์ด๋ผ๋ ์๋ฆฌ๋ฅผ HTTP๋ผ๋ ํธ๋ญ์ ์ค์ด ๋ณด๋ผ ๋, ๋๊ตฌ๋ ์์๋ณด๊ธฐ ์ฝ๊ฒ ์ฃผ๋ฌธ์์ ์ก์ฅ์ ์ฐ๋ ์ธ๋ จ๋ ๊ท์น์ด๋ค!"
์กฐ๊ธ ๋ ๋ํ ์ผํ๊ฒ ์ ๋ฆฌํด ๋๋ฆด๊ฒ์.
๐ฃ๏ธ ๋๋ก์ ํธ๋ญ (HTTP ํ๋กํ ์ฝ)
- HTTP๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ด๋๋ฅด๋ **'์ค์ ๋ฌผ๋ฆฌ์ ์ธ ํต์ ๊ท์ฝ'**์ ๋๋ค.
- ์๋์ด ์ฃผ๋ฌธ์๋ฅผ ๋ณด๋ผ ๋๋ HTTP ํธ๋ญ์ ์ค์ด ๋ณด๋ด๊ณ , ์ฃผ๋ฐฉ์ฅ์ด ์์์ ์์ฑํด์ ๋ณด๋ผ ๋๋ HTTP ํธ๋ญ์ ์ค์ด์ ๋ณด๋ ๋๋ค.
- "์ธํฐ๋ท ์ธ์์ ๋ชจ๋ ๋ฐฐ๋ฌ์ ์ด ํธ๋ญ(HTTP)์ผ๋ก๋ง ๊ฐ๋ฅํ๋ค"๋ผ๊ณ ์ดํดํ์๋ฉด ๋ฉ๋๋ค.
๐ ์ฃผ๋ฌธ์์ ์ก์ฅ ์์ (RESTful)
- ์ด ํธ๋ญ์ ์ค๋ฆฌ๋ **'๋ฉ๋ชจ์ ์์ฑ ์คํ์ผ'**์ด ๋ฐ๋ก RESTful์ ๋๋ค.
- ์๋(React)์ด ์ฃผ๋ฌธํ ๋: "๊ทธ๋ฅ '์์'์ด๋ผ๊ณ ์ ํ๊ณ , GET /foods/1 ์ด๋ผ๊ณ ๋ฑ ๊ท์น์ ๋ง์ถฐ ์จ์ค๊ฒ!"
- ์ฃผ๋ฐฉ(Spring Boot)์ด ๋ณด๋ผ ๋: "๋๋ ๋ค๊ฐ ์์๋ณด๊ธฐ ์ฝ๊ฒ JSON์ด๋ผ๋ ๊น๋ํ ๊ทธ๋ฆ์ ๋ด์์ ๋ณด๋ผ๊ฒ!"
๐ ์ ์ฒด ํ๋ฆ ์๋๋ฆฌ์ค
| ๋จ๊ณ | ์ญํ | ๋น์ | ์ค์ ๊ธฐ์ |
| 1. ์ฃผ๋ฌธ | ์๋๋์ด ์ฑ์์ '๋ถ์ฐ ๋ง์ง' ํด๋ฆญ | ์๋์ด RESTful ์์์ผ๋ก ์ ์ ์ฃผ๋ฌธ์๋ฅผ HTTP ํธ๋ญ์ ์ค์ด ๋ณด๋ | React → GET /tour/busan (HTTP Request) |
| 2. ์ ์ | ํฐ์บฃ ์ฃผ๋ฐฉ์ฅ์ด ์ฃผ๋ฌธ ํ์ธ | ํ ๋งค๋์ ๊ฐ ์ฃผ๋ฐฉ์ฅ์๊ฒ ์ฃผ๋ฌธ์ ์ ๋ฌ | Web Server → WAS(Tomcat) |
| 3. ์๋ฆฌ | ์๋ฐ๊ฐ DB์์ ๋ฐ์ดํฐ ๊ฒ์ | ์ฃผ๋ฐฉ์ฅ์ด ๋์ฅ๊ณ ์์ ์ฌ๋ฃ ๊บผ๋ด ์๋ฆฌ | Servlet → Java → DB |
| 4. ๋ฐฐ๋ฌ | ์์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ก | ์ฃผ๋ฐฉ์ฅ์ด JSON ์๋ฆฌ๋ฅผ HTTP ํธ๋ญ์ ์ค์ด ๋ณด๋ | Spring Boot → (HTTP Response) |
| 5. ์์ฌ | ํ๋ฉด์ ๋ง์ง ๋ฆฌ์คํธ๊ฐ ๋ธ | ์๋์ด ์๋ฆฌ๋ฅผ ๋ง์๊ฒ ๋จน์ (ํ๋ฉด ์ถ๋ ฅ) | React๊ฐ ํ๋ฉด ์ ๋ฐ์ดํธ |
๐ก ํ๋ง๋ ๋ฌธ์ฅ ์ ๋ฆฌ
๋์ค์ ๋ฉด์ ์์ ์ด๋ ๊ฒ ๋ง์ํ์๋ฉด ์ ๋ง ์ ๋ฌธ๊ฐ์ฒ๋ผ ๋ณด์ผ ๊ฑฐ์์.
"์ ๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ HTTP ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋, ๊ฐ์ฅ ํจ์จ์ ์ด๊ณ ์ง๊ด์ ์ธ RESTful ์ํคํ ์ฒ๋ฅผ ํ์ฉํด ์ค๊ณํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ํนํ ๋ฐ์ดํฐ ํฌ๋งท์ ๊ฐ๋ฒผ์ด JSON์ ์ฌ์ฉํ์ฌ ํต์ ์ฑ๋ฅ์ ๋์ด๋ ๋ฐฉํฅ์ ๊ณต๋ถํ๊ณ ์์ต๋๋ค."
โ๐ค ํฐ์บฃ(Tomcat) vs ์คํ๋ง ๋ถํธ(Spring Boot)?
1. ํฐ์บฃ(Tomcat) vs ์คํ๋ง ๋ถํธ(Spring Boot)
- ํฐ์บฃ (Tomcat) = ์ค๋ฌด๋ฅผ ๋ฐ๋ '์ฃผ๋ฐฉ์ฅ'
- ์๋ฐ ๋ ์ํผ(์๋ธ๋ฆฟ)๋ฅผ ์ฝ๊ณ ์ค์ ๋ก ๋ถ ์์์ ์๋ฆฌ(์ฝ๋ ์คํ)๋ฅผ ํ๋ ์ฌ๋์ ๋๋ค.
- ํ์ง๋ง ์ด ์ฃผ๋ฐฉ์ฅ์ ์ํค๋ ์ผ๋ง ํ ์ค ์์ง, ์๋น ์์ฝ ๊ด๋ฆฌ๋ ์ฌ๋ฃ ๋๋ ์ฃผ๋ฌธ ๊ฐ์ ๋ณต์กํ ์์คํ ๊ด๋ฆฌ๋ ํ๋ค์ดํฉ๋๋ค.
- ์คํ๋ง ๋ถํธ (Spring Boot) = ์๋น์ ์ด์ํ๋ '์ค๋งํธ ๊ฒฝ์ ์์คํ
'
- ์ฃผ๋ฐฉ์ฅ(ํฐ์บฃ)์ ํฌํจํด ๋ณด์กฐ ์๋ฆฌ์ฌ, ์๋น ์๋ฐ, ์์ฌ๋ฃ ๊ด๋ฆฌ๊ธฐ๋ฅผ ํ๋๋ก ๋ฌถ์ ๊ฑฐ๋ํ ํจํค์ง์ ๋๋ค.
- ๊ฐ์ฅ ํฐ ํน์ง: ์์ ์๋ ์ฌ์ฅ๋(๊ฐ๋ฐ์)์ด ์ฃผ๋ฐฉ์ฅ(ํฐ์บฃ)์ ๋ฐ๋ก ์ฑ์ฉํด์ ์ฃผ๋ฐฉ ์ค๋น๋ฅผ ๋ค ํด์ค์ผ ํ๋๋ฐ, Spring Boot๋ ์์ ํฐ์บฃ ์ฃผ๋ฐฉ์ฅ์ ๋ด๋ถ์ ๊ณ ์ฉ(๋ด์ฅ)ํด์ ์ถ์๋์์ต๋๋ค.
- ๊ทธ๋์ ์๋๋์ด Spring Boot๋ฅผ ์คํํ๋ฉด, ๊ทธ ์์์ ํฐ์บฃ ์ฃผ๋ฐฉ์ฅ์ด ์๋์ผ๋ก ์ถ๊ทผํด์ ์๋ฆฌ๋ฅผ ์์ํ๋ ๊ฑฐ์์.
2. ์ "๋ ๋ค ์ฃผ๋ฐฉ์ฅ"์ฒ๋ผ ๋๊ปด์ง๊น์?
์ฌ์ค ์ฐ๋ฆฌ๊ฐ ์ฝ๋๋ฅผ ์งค ๋๋ Spring Boot๋ผ๋ ์์คํ ์ ๋ค๋ฃจ์ง๋ง, ์ค์ ๊ทธ ์์์ ๋ ํ๋ฆฌ๋ฉฐ ์๋ฐ ์ฝ๋๋ฅผ ๋๋ ค์ฃผ๋ ํต์ฌ ์์ง์ด ํฐ์บฃ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
| ๊ตฌ๋ถ | ํฐ์บฃ (Tomcat) | ์คํ๋ง ๋ถํธ (Spring Boot) |
| ์ ์ฒด | WAS / ์๋ธ๋ฆฟ ์ปจํ ์ด๋ | ์๋ฐ ๋ฐฑ์๋ ํ๋ ์์ํฌ |
| ๋น์ | ์ผ ์ํ๋ ๋ฒ ํ ๋ ์๋ฆฌ์ฌ | ์๋ฆฌ์ฌ + ๋ ์ํผ + ๊ด๋ฆฌ ์์คํ ์ด ํฉ์ณ์ง ์๋น |
| ๊ด๊ณ | ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌ ๊ฐ๋ฅ | ์์ ํฐ์บฃ์ ํ๊ณ ์์ (๋ด์ฅํ) |
3. ์ค์ Spring Boot๋ก ๊ณต๋ถํ ๋์ ๋๋
์๋๋์ด ๋์ค์ ์๋ฐ๋ก ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ์๋ฉด ์ด๋ฐ ๋๋์ ๋ฐ์ผ์ค ๊ฑฐ์์.
- Spring Boot๋ผ๋ ์ต์ ์ ์ฃผ๋ฐฉ ์์คํ ์ ๋์ ํฉ๋๋ค.
- ๊ฑฐ๊ธฐ์ ์๋๋์ด **์๋ฐ ๋ ์ํผ(Controller, Service ๋ฑ)**๋ฅผ ์ ์ด์ ๋ฃ์ต๋๋ค.
- ์์คํ ๊ฐ๋ ๋ฒํผ์ ๋๋ฅด๋ฉด, Spring Boot๊ฐ ๋ด๋ถ์ ์๋ ํฐ์บฃ ์ฃผ๋ฐฉ์ฅ์ ๊นจ์์ "์ด ๋ ์ํผ๋๋ก ์๋ฆฌํด!"๋ผ๊ณ ์ํต๋๋ค.
- ํฐ์บฃ ์ฃผ๋ฐฉ์ฅ์ ์ด์ฌํ ์๋ฆฌํด์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ณด๋ ๋๋ค.
๐ก ํ ์ค ์์ฝ
"Spring Boot๋ ํฐ์บฃ์ด๋ผ๋ ์ฃผ๋ฐฉ์ฅ์ ํฌํจํ๊ณ ์๋ ์์ฃผ ํธ๋ฆฌํ๊ณ ๋๋ํ '์๋น ์ด์ ์ธํธ'์ ๋๋ค!"
์ด์ ํฐ์บฃ๊ณผ Spring Boot์ ์์ด(?)์ด ์ข ์ ๋ฆฌ๊ฐ ๋์ จ๋์?
๐ต๏ธโ๏ธ๊ทธ๋ฆผ์ผ๋ก ๋ณด๋โญ ํต์ฌ ํฌ์ธํธ ์ด์ ๋ฆฌโญ
๊ทธ๋ฆผ์ ๋ฒํธ๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉฐ, ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ด ๊ฐ๋ ๋ค์ด ์ด๋ป๊ฒ ์ํธ์์ฉํ๋์ง ์ต์ข ์ ์ผ๋ก ํ์ธํด ๋ณด์ธ์.

1. ์๋ (React - ํด๋ผ์ด์ธํธ/ํ๋ฉด)
- ์ญํ : ์ฐ๋ฆฌ๊ฐ ๋ง์ง๋ '์ค๋งํธ ํค์ค์คํฌ' ํ๋ฉด์ ๋๋ค.
- ํ๋: ์๋๋์ด "๋ถ์ฐ ์ฌํ์ง ๋ณด์ฌ์ค!" ๋ฒํผ์ ๋๋ฅด๋ฉด, ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ง ์๊ณ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ ๋๋ค. ํ์ด์ง ์ ์ฒด๋ฅผ ์๋ก๊ณ ์นจํ์ง ์๊ณ , ํ์ํ ๋ถ๋ถ๋ง ๋ฐ๊พธ๋ ์ค๋งํธํ ํ๋ฉด์ด์ฃ .
2. RESTful ์ฃผ๋ฌธ์ (ํต์ ๊ท์น/์ก์ฅ ์์)
- ์ญํ : ์๋๊ณผ ์ฃผ๋ฐฉ์ด ๋ํํ๋ **'๊ฐํธํ ์นดํก ์ธ์ด ๊ท์น'**์ ๋๋ค.
- ํน์ง: ๊ณผ๊ฑฐ์ ๋ณต์กํ SOAP ๋์ , GET /tour/busan ์ฒ๋ผ ๋๊ตฌ๋ ์์๋ณด๊ธฐ ์ฌ์ด ์ฃผ์์ ํ๋(GET, POST ๋ฑ)์ผ๋ก ์ฃผ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค.
3. HTTP ํธ๋ญ (๋๋ก & ํ๋กํ ์ฝ)
- ์ญํ : ์ฃผ๋ฌธ์์ ์๋ฆฌ๋ฅผ ์ค์ด๋๋ฅด๋ **'์ค์ ๋ฌผ๋ฆฌ์ ์ธ ๋ฐฐ๋ฌ ํธ๋ญ'**์ ๋๋ค.
- ํน์ง: ์ธํฐ๋ท ์ธ์์ ๋ชจ๋ ์ ํธ๋ ์ด HTTP๋ผ๋ ๋๋ก ์์์๋ง ์์ง์ผ ์ ์์ต๋๋ค.
4. ์ค๋งํธ ๋ ์คํ ๋ ์์คํ (Spring Boot - ๋ฐฑ์๋ ํ๋ ์์ํฌ)
- ์ญํ : ์ฃผ๋ฐฉ์ฅ, ๋ ์ํผ, ์ฌ๋ฃ ๊ด๋ฆฌ๊ธฐ๋ฅผ ๋ชจ๋ ๊ฐ์ถ **'๋๋ํ ์๋น ์ด์ ํจํค์ง'**์ ๋๋ค.
- ํน์ง: ์ฐ๋ฆฌ๊ฐ ์ง๋ ์๋ฐ ๋ ์ํผ(Controller, Service ๋ฑ)๋ฅผ ๊ด๋ฆฌํ๊ณ , ๋ด๋ถ์ ํฐ์บฃ ์ฃผ๋ฐฉ์ฅ์ ํ๊ณ ์์ด ๊ฐ๋ ๋ฒํผ๋ง ๋๋ฅด๋ฉด ๋ฐ๋ก ์๋ฆฌ๊ฐ ์์๋ฉ๋๋ค.
5. ํฐ์บฃ ์ฃผ๋ฐฉ์ฅ (Tomcat - WAS/์ปจํ ์ด๋)
- ์ญํ : Spring Boot ์์คํ ์์์ ์ค๋ฌด๋ฅผ ๋ด๋นํ๋ **'๋ฒ ํ ๋ ์๋ฆฌ์ฌ'**์ ๋๋ค.
- ํน์ง: ์๋ฐ ๋ ์ํผ(์๋ธ๋ฆฟ)๋ฅผ ์ฝ๊ณ ์ค์ ๋ก ๋ถ ์์์ ์๋ฆฌ(์ฝ๋ ์คํ)๋ฅผ ํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ ๋๋ค.
6. ์๋ฐ ๋ ์ํผ (Servlet - ์๋ฐ ์ฝ๋)
- ์ญํ : ํฐ์บฃ ์ฃผ๋ฐฉ์ฅ์ด ๋ณด๊ณ ์๋ฆฌํ๋ ๊ตฌ์ฒด์ ์ธ **'์๋ฆฌ ๋ฐฉ๋ฒ'**์ ๋๋ค.
- ํน์ง: "DB๋ผ๋ ๋์ฅ๊ณ ์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์์, ์ด๋ฐ ํ์์ผ๋ก ๊ฐ๊ณตํด๋ผ" ๊ฐ์ ๋ก์ง์ด ๋ด๊ธด ์๋ฐ ํ์ผ(.java)์ ๋๋ค.
7. ๋ฐ์ดํฐ๋ฒ ์ด์ค (Database - ๋์ฅ๊ณ & ์์ฌ๋ฃ)
- ์ญํ : ๋ชจ๋ ๋ฐ์ดํฐ(์ฌํ์ง ์ ๋ณด, ํ์ ์ ๋ณด ๋ฑ)๊ฐ ์์ ํ๊ฒ ๋ณด๊ด๋์ด ์๋ **'๊ฑฐ๋ํ ๋์ฅ๊ณ '**์ ๋๋ค.
- ํ๋: ํฐ์บฃ ์ฃผ๋ฐฉ์ฅ์ด ์๋ฐ ๋ ์ํผ์ ๋ฐ๋ผ SQL์ด๋ผ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ์์ฌ๋ฃ(๋ฐ์ดํฐ)๋ฅผ ๊บผ๋ด๊ฐ๋๋ค.
8. JSON ์๋ฆฌ (๋ฐ์ดํฐ ํ์/๊ฒฐ๊ณผ๋ฌผ)
- ์ญํ : ์ฃผ๋ฐฉ์ฅ์ด ์์ฑํด์ ์๋์๊ฒ ๋ณด๋ด๋ **'๊ฐ๋ณ๊ณ ๊น๋ํ ์์'**์ ๋๋ค.
- ํน์ง: {์ด๋ฆ: "ํด์ด๋ ๊ตญ๋ฐฅ", ๋ณ์ : 5} ์ฒ๋ผ ์์ฃผ ์ฝ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ๋ก ๋์ด ์์ด, RESTful ํต์ ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
9. ํ๋ฉด ํํ (React - ํ๋ฉด ์ ๋ฐ์ดํธ)
- ์ญํ : JSON ์๋ฆฌ๋ฅผ ๋ฐ์ React ํค์ค์คํฌ๊ฐ **'์์์ ์์ ์ ์์ ๋ด์๋ด๋ ํ์'**์ ๋๋ค.
- ํน์ง: ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ํ๋ฉด์ ํ์ํ ๋ถ๋ถ๋ง ์ฅ- ๊ฐ์๋ผ์ ์ฌ์ฉ์์๊ฒ ๋ถ๋๋ฝ๊ฒ ๋ณด์ฌ์ค๋๋ค.
'๐ฉโ๐ปDeveloper ๐ก > ๐พBack-end๐๏ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์ฃผ๋ฐฉ์ฅ ํฐ์บฃ๊ณผ ์๋ฐ ๋ ์ํผ ์๋ธ๋ฆฟ: ์น ํต์ ํ ํ ์ ๋ฆฌ (1) | 2026.03.12 |
|---|---|
| Hello, jsp! ์ ๋ฌธ] ํฐ์บฃ(Tomcat) ์ค์น์ ํ๋ก์ ํธ ๊ตฌ์กฐ ์๋ฒฝ ์ดํดํ๊ธฐ (0) | 2026.03.12 |
| ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(WAS) (1) | 2026.03.12 |
| Java Stream(์คํธ๋ฆผ) ์์ ์ ๋ฆฌ (0) | 2026.02.12 |
| JAVA ์ค๋ ๋(Thread) ์์ ์ ๋ฆฌ (0) | 2026.02.12 |