MVC ํจํด์ ์ญ์ฌ
์น ๊ฐ๋ฐ์ ์ญ์ฌ๋ ๊ฒฐ๊ตญ **"์ด๋ป๊ฒ ํ๋ฉด ์ฌ์ฉ์์๊ฒ ๋ ๋น ๋ฅด๊ณ ํธํ๊ฒ ํ๋ฉด์ ๋ณด์ฌ์ค ๊ฒ์ธ๊ฐ?"**์ ๋ํ ๊ณ ๋ฏผ์ ๊ณผ์ ์ ๋๋ค.

1. ํ๋ฆ ํ๋์ ๋ณด๊ธฐ (์๋ ์์)
- ์ฌ์ฉ์ (์๋๋): React ํ๋ฉด์์ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ (React): "์ด์ด ๋ฐฑ์๋! ๋ถ์ฐ ๋ฐ์ดํฐ ์ข ์ค!"๋ผ๊ณ ์์ฒญ์ ๋ณด๋ ๋๋ค. ์ด๋ ๋ณด๋ด๋ ๋ฐฉ์์ด RESTful ๋ฐฉ์์ ๋๋ค. (๊ณผ๊ฑฐ์ SOAP๋ฅผ ์ผ์ง๋ง ๋๋ฌด ๋ฌด๊ฑฐ์์ ์ด์ ์ ์จ์!)
- ๋ฐฑ์๋ (Spring Boot): ์์ฒญ์ ๋ฐ๊ณ DB์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด ์์๊ฒ ๊ฐ๊ณตํฉ๋๋ค.
- ์๋ต: Spring Boot๊ฐ RESTful ๊ท์น์ ๋ง์ถฐ ๋ฐ์ดํฐ(JSON)๋ฅผ React์๊ฒ ๋์ ธ์ค๋๋ค.
- ํํ (React): ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ํ๋ฉด์ ํ์ํ ๋ถ๋ถ๋ง ์ฅ- ๋ฐ๊ฟ๋๋ค.
| ๊ธฐ์ | ๋น์ | ์ค์ ํ๋ ์ผ |
| React | ์ค๋งํธ ํค์ค์คํฌ | ์ฌ์ฉ์๊ฐ ๋ง์ง๋ ํ๋ฉด์ ๋๋ค. ๋ฒํผ์ ๋๋ฅด๋ฉด ์๋ฒ์ ์ ํธ๋ฅผ ๋ณด๋ด๊ณ , ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ์์๊ฒ ๋ฐฐ์นํฉ๋๋ค. |
| RESTful | ์นดํก ๋ฉ์์ง ํ์ | React์ Spring Boot๊ฐ ๋ํํ ๋ ์ฐ๋ ์ธ์ด ๊ท์น์ ๋๋ค. "๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ํต์ฌ๋ง ๋งํ์!"๋ ๊ท์น์ ๋๋ค. |
| SOAP | ๋ฑ๋ฑํ ๊ณต๋ฌธ์ | RESTful ์ด์ ์ ์ฐ๋ ๊ท์น์ ๋๋ค. ๋๋ฌด ๋ณต์กํ๊ณ ๋ฌด๊ฑฐ์์ ์์ฆ ์น/์ฑ ์๋น์ค์์๋ ๊ฑฐ์ ํด์ถ๋์์ต๋๋ค. |
| Spring Boot | ์ค๋งํธ ์ฃผ๋ฐฉ์ฅ | React์ ์์ฒญ์ ๋ฐ์์ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ณ ๊ณ์ฐํ๋ ๋ก์ง์ ์ํํฉ๋๋ค. ์๋ฒ๋ฅผ ๋๋ฆฌ๋ ์์ง์ ๋๋ค. |
์ SOAP ๋์ RESTful์ธ๊ฐ? (์ ํธ์ ์ฐจ์ด)
- SOAP ๋ฐฉ์ (๊ณผ๊ฑฐ): "์๋ ํ์ญ๋๊น, ๋ถ์ฐ ์ฌํ์ง ๋ชฉ๋ก์ ์ ์คํ ์์ฒญ๋๋ฆฌ๋ ๋ฐ์ ๋๋ค. (๋ดํฌ ํฌ๊ธฐ๋ง 10MB)" → ๋๋ฌด ๋๋ฆฌ๊ณ ๋ฌด๊ฑฐ์.
- RESTful ๋ฐฉ์ (ํ์ฌ): "GET /busan-trips" (๋) → ์์ฒญ ๊ฐ๋ณ๊ณ ๋น ๋ฆ.
๐ต๏ธโ๏ธ ๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ ํต์ฌ ํฌ์ธํธ ์ค๋ช
๊ทธ๋ฆผ์ ํ๋ฆ์ ๋ฐ๋ผ๊ฐ๋ฉฐ ๊ฐ ๊ธฐ์ ์ ์ญํ ์ ๋ค์ ํ๋ฒ ์ ๋ฆฌํด ๋๋ฆด๊ฒ์.
- React (ํด๋ผ์ด์ธํธ/ํ๋ฉด): ์ฌ์ฉ์๊ฐ ๋ง์ง๋ **'์ค๋งํธ ํค์ค์คํฌ'**์ ๋๋ค. "๋ถ์ฐ ๋ง์ง ๋ณด์ฌ์ค!"๋ผ๋ ๋ฒํผ์ ๋๋ฅด๋ฉด, ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ง ์๊ณ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ ๋๋ค.
- RESTful (๋ฌด์ ๊ธฐ/์นดํก ํต์ ): React์ Spring Boot๊ฐ ๋ํํ ๋ ์ฐ๋ ๊ท์น์
๋๋ค.
- ๊ทธ๋ฆผ์ฒ๋ผ GET /restaurants?city=busan ๊ฐ์ด ์ฃผ์์ฐฝ์ ํต์ฌ๋ง ์ ์ด์ ๋ณด๋ ๋๋ค. (์ด๊ฒ ๋ฐ๋ก ์นดํก์ฒ๋ผ ๊ฐํธํ ๋ฐฉ์!)
- ๊ณผ๊ฑฐ์ SOAP๋ ์ด ์์ฒญ ํ๋๋ฅผ ๋ณด๋ด๊ธฐ ์ํด ์์ฒญ๋๊ฒ ํฌ๊ณ ๋ณต์กํ XML ๋ฌธ์๋ฅผ ๋ดํฌ์ ๋ด์์ผ ํ์ต๋๋ค.
- Spring Boot (๋ฐฑ์๋/์๋ฐ ์๋ฒ): ์์ฒญ์ ๋ฐ๋ **'์ค๋งํธ ์ฃผ๋ฐฉ์ฅ'**์ ๋๋ค. Java ์ฝ๋๋ก ์์ฑ๋ ๋ก์ง์ ์คํํ์ฌ DB์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๊ณ ๊ฐ๊ณตํฉ๋๋ค.
- JSON (๋ฐ์ดํฐ ํ์): Spring Boot๊ฐ React์๊ฒ ๋ณด๋ด๋ **'๋ฐ์ดํฐ ์์'**์ ๋๋ค. {์ด๋ฆ: "ํด์ด๋ ๊ตญ๋ฐฅ", ๋ณ์ : 5} ์ฒ๋ผ ์์ฃผ ๊ฐ๋ณ๊ณ ์ฝ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ๋ก ๋์ด ์์ด, RESTful ํต์ ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
- ํ๋ฉด ํํ (React): Spring Boot๋ก๋ถํฐ JSON ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ React๋ ํ์ด์ง ์ ์ฒด๋ฅผ ๋ค์ ๊ทธ๋ฆฌ์ง ์๊ณ , ๋ง์ง ๋ชฉ๋ก ๋ถํ(Component)๋ง ์ฅ- ๊ฐ์๋ผ์๋๋ค. ๊ทธ๋์ ์ฌ์ฉ์๋ ํ๋ฉด์ด ๋๊น ์์ด ๋ถ๋๋ฝ๊ฒ ๋ฐ๋๋ค๊ณ ๋๋๋๋ค.
1. ์ ํ๋ฆฟ (Applet): "๋ด ์ปดํจํฐ๋ก ์ง์ ๋ค ๊ฐ์ ธ์์ ์กฐ๋ฆฝํ๊ธฐ"
์๋ ๋ฐฉ์์ ๋๋ค. ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ์ ์ํ๋ฉด, ์๋ฒ๊ฐ ์คํ ํ์ผ(ํ๋ก๊ทธ๋จ)์ ํต์งธ๋ก ์ฌ์ฉ์์ ์ปดํจํฐ๋ก ๋ณด๋ ๋๋ค.
- ํน์ง: ๋ด ์ปดํจํฐ(ํด๋ผ์ด์ธํธ) ์ฑ๋ฅ์ ๋น๋ ค ์ฐ๊ธฐ ๋๋ฌธ์ ํ๋ คํ ๊ทธ๋ํฝ ๊ตฌํ์ด ๊ฐ๋ฅํ์ง๋ง, ํ์ผ์ ๋ค ๋ด๋ ค๋ฐ์ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํด์ ์๋๊ฐ ๋งค์ฐ ๋๋ ธ์ต๋๋ค. * ํ์ฌ: ๋ณด์ ๋ฌธ์ ์ ์๋ ๋๋ฌธ์ ์ง๊ธ์ ๊ฑฐ์ ์ฐ์ด์ง ์๊ณ HTML5๋ JavaScript๊ฐ ๊ทธ ์๋ฆฌ๋ฅผ ๋์ ํ๊ณ ์์ต๋๋ค.
2. ์๋ธ๋ฆฟ (Servlet): "์ฃผ๋ฐฉ์์ ์๋ฆฌ ๋ค ํด์ ์ ์๋ง ๋ด์ฃผ๊ธฐ"
์ ํ๋ฆฟ์ ๋จ์ (๋๋ฆฐ ์๋)์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ์ต๋๋ค. ํ๋ก๊ทธ๋จ ์คํ์ ์ฌ์ฉ์ ์ปดํจํฐ๊ฐ ์๋ ์๋ฒ์์ ๋ค ํด๋ฒ๋ฆฌ๋ ๋ฐฉ์์ ๋๋ค.
- ํน์ง: ์ฌ์ฉ์๊ฐ "์ด๊ฑฐ ๋ณด์ฌ์ค!"๋ผ๊ณ ์์ฒญํ๋ฉด, ์๋ฒ๊ฐ ์๋ฐ(Java) ์ฝ๋๋ฅผ ๋ง ์คํํด์ ๊ฒฐ๊ณผ(๋ฐ์ดํฐ)๋ง ๋ฑ ๋ณด๋ด์ค๋๋ค.
- ๋ฌธ์ ์ : ์๋ฆฌ๋ ์ํ๋๋ฐ(๋ก์ง ๊ณ์ฐ), ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์์ ๊ทธ๋ฆ์ ๋ด๋ ๊ฒ(HTML ํ๋ฉด ๋ง๋ค๊ธฐ)์ด ๋๋ฌด ํ๋ค์์ต๋๋ค. ์๋ฐ ์ฝ๋ ์์ HTML ์ฝ๋๋ฅผ ์ผ์ผ์ด ํ์ดํํด์ผ ํ๊ฑฐ๋ ์.
3. JSP (JavaServer Page): "๋ฉ๋ดํ ์์์ ์์ ์ด๋ฆ๋ง ์ฑ์๋ฃ๊ธฐ"
์๋ธ๋ฆฟ์ ๋ถํธํจ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋์์ต๋๋ค. ๊ธฐ๋ณธ ํ์ HTML(์น ํ๋ฉด ์์)์ธ๋ฐ, ๊ทธ ์์ ํ์ํ ๋ฐ์ดํฐ๋ง ์๋ฐ ์ฝ๋๋ก ์ด์ง ๋ผ์ ๋ฃ๋ ๋ฐฉ์์ ๋๋ค.
- ํน์ง: ์๋ธ๋ฆฟ๊ณผ ํ๋ ์ผ์ ๋๊ฐ์ง๋ง, ํ๋ฉด(View)์ ๋ง๋ค๊ธฐ๊ฐ ํจ์ฌ ํธํฉ๋๋ค.
- ์๋ธ๋ฆฟ vs JSP: * ์๋ธ๋ฆฟ์ "์๋ฐ ํ์ผ ์์ HTML์ด ๋ค์ด์๋ ํํ" → ๊ณ์ฐ๊ธฐ, ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ๋ฆฌ.
- JSP๋ "HTML ํ์ผ ์์ ์๋ฐ ์ฝ๋๊ฐ ๋ค์ด์๋ ํํ" → ๊ฒฐ๊ณผ ํ๋ฉด ๋ณด์ฌ์ฃผ๊ธฐ์ ์ ๋ฆฌ.
๐ค ๋ฉด์ ๋ต๋ณ ๊ฐ์ด๋: "MVC ํจํด์ด๋ ๋ฌด์์ธ๊ฐ?"
"MVC ํจํด์ ์ํํธ์จ์ด ๊ณตํ์์ ์ฌ์ฉํ๋ **'์ญํ ๋ถ๋ด ๋์์ธ ํจํด'**์ ๋๋ค. ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ **Model(๋ฐ์ดํฐ), View(ํ๋ฉด), Controller(์ ์ด)**๋ผ๋ ์ธ ๊ฐ์ง ์ญํ ๋ก ๋๋์ด ๊ฐ๋ฐํ๋ ๋ฐฉ์์ ๋๋ค.
์ด๋ ๊ฒ ๋๋๋ ์ด์ ๋ '์ ์ง๋ณด์์ ํจ์จ์ฑ' ๋๋ฌธ์ ๋๋ค. ํ๋ฉด์ ์์ ํ ๋ ๋ฐ์ดํฐ ๋ก์ง์ ๊ฑด๋๋ฆด ํ์๊ฐ ์๊ณ , ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๋ฐ๋์ด๋ ํ๋ฉด ๋์์ธ์ ์ํฅ์ ์ฃผ์ง ์๋๋ก ์ค๊ณํ๋ ๊ฒ์ด ํต์ฌ์ ๋๋ค."
๐งฉ ํญ๋ชฉ๋ณ ํต์ฌ ์ญํ (์๋น ๋น์ )
์ดํด๋ฅผ ๋๊ธฐ ์ํด **'๋ ์คํ ๋ ์์คํ '**์ ๋น์ ํด ๋ณด๊ฒ ์ต๋๋ค.
| ๊ตฌ๋ถ | ์ญํ (Role) | ์๋น ๋น์ | ์ฌ์ด ์ค๋ช |
| Model | ๋ฐ์ดํฐ & ๋น์ฆ๋์ค ๋ก์ง | ๋์ฅ๊ณ & ์ฌ๋ฃ | ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ๊ฐ๊ณตํ๋ '์๋งน์ด'์ ๋๋ค. ํ๋ฉด์ด ์ด๋ป๊ฒ ์๊ฒผ๋์ง๋ ์ ํ ๊ด์ฌ์ด ์์ต๋๋ค. |
| View | ์ฌ์ฉ์ ์ธํฐํ์ด์ค (UI) | ์ ์ & ํ๋ ์ดํ | ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ํ๋ฉด(HTML, JSP ๋ฑ)์ ๋๋ค. ๋ชจ๋ธ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅ๋ง ํ ๋ฟ, ์ง์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ์ง๋ ์์ต๋๋ค. |
| Controller | ์ค๊ฐ ์ ์ด (Bridge) | ์ฃผ๋ฐฉ์ฅ (์ ฐํ) | ์ฌ์ฉ์์ ์์ฒญ(์ฃผ๋ฌธ)์ ๋ฐ์ ๋ชจ๋ธ์๊ฒ "์ฌ๋ฃ ์ค๋นํด"๋ผ๊ณ ์ํค๊ณ , ์ค๋น๋ ๋ฐ์ดํฐ๋ฅผ ๋ทฐ์๊ฒ "์ด ์ ์์ ๋ด์์ค"๋ผ๊ณ ์ ๋ฌํ๋ ๊ด๋ฆฌ์์ ๋๋ค. |
๐ ์ MVC๋ฅผ ์จ์ผ ํ๋์? (๋ฉด์ ์ฉ ์ถ๊ฐ ์ ์ ๋ต๋ณ)
- ๋์ ๊ฐ๋ฐ ๊ฐ๋ฅ: ๋์์ด๋๋ View๋ฅผ ์์ ํ๊ณ , ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ Model๊ณผ Controller๋ฅผ ์์ ํ์ฌ ๋ถ์ ํจ์จ์ด ๊ทน๋ํ๋ฉ๋๋ค.
- ์ ์ฐํ ํ์ฅ์ฑ: ์๋ฅผ ๋ค์ด, ์น ์๋น์ค์์ ๋ชจ๋ฐ์ผ ์ฑ์ผ๋ก ํ์ฅํ ๋ Model์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ทธ๋๋ก ๋๊ณ View๋ง ์๋ก ๋ง๋ค๋ฉด ๋ฉ๋๋ค.
- ๋๋ฒ๊น ์ฉ์ด์ฑ: ํ๋ฉด์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด View๋ฅผ, ๋ฐ์ดํฐ ๊ณ์ฐ์ด ํ๋ฆฌ๋ฉด Model์ ํ์ธํ๋ฉด ๋๋ฏ๋ก ๋ฌธ์ ํด๊ฒฐ์ด ๋น ๋ฆ ๋๋ค.
๐ก ํ ์ค ์์ฝ
"MVC๋ ๋ฐ์ดํฐ(Model)์ ํ๋ฉด(View) ์ฌ์ด์ ์์กด์ฑ์ ์์ ๊ธฐ ์ํด, ์ค๊ฐ ๊ด๋ฆฌ์(Controller)๋ฅผ ๋์ด ์ฝ๋๋ฅผ ๊น๋ํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ์ ๋ต์ ๋๋ค."
์์ ๋ฐฐ์ด MVC ํจํด์ด๋ผ๋ '์ค๊ณ ๋๋ฉด'์ ์ค์ ๋ก ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ **'๊ณต๊ตฌ ์ธํธ'**๋ค์ด ๋ฐ๋ก Spring๊ณผ Vue.js ๊ฐ์ ํ๋ ์์ํฌ์ ๋๋ค. ํ๋์ฉ ํต์ฌ๋ง ์ง์ด๋๋ฆด๊ฒ์.
1. Spring vs Spring Framework (๋ฐฑ์๋์ ์ค์ฌ)
์ฌ์ค ๊ฐ์ ๋ง์ด์ง๋ง, ๋ฉด์ ์์๋ **'๊ฑฐ๋ํ ์ํ๊ณ'**๋ผ๊ณ ์ดํดํ์๋ฉด ์๋ฒฝํฉ๋๋ค.
- Spring Framework: ์๋ฐ ๊ฐ๋ฐ์๋ค์ด MVC ํจํด์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ **'์ข ํฉ ์ ๋ฌผ ์ธํธ'**์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ๋ก๊ทธ์ธ ๋ณด์, ์๋ฒ ์ค์ ๋ฑ์ ์ผ์ผ์ด ์ฝ๋ฉํ์ง ์๊ณ ์ค์ ๋ง์ผ๋ก ํด๊ฒฐํด ์ค๋๋ค.
- Spring Boot: Spring Framework๊ฐ ๋๋ฌด ๋ฐฉ๋ํ๊ณ ์ค์ ์ด ๋ณต์กํด์, "ํด๋ฆญ ๋ช ๋ฒ์ผ๋ก ์๋ฒ๋ฅผ ๋ฐ๋ก ์คํํ์!" ํ๊ณ ๋์จ '๊ฐํธ ๋ฒ์ '์ ๋๋ค. ํ์ฌ ๋๋ถ๋ถ์ ๊ธฐ์ (Toss ํฌํจ)์ด ์ฌ์ฉํ๋ ํ์ค์ ๋๋ค.
2. Vue.js (ํ๋ก ํธ์๋์ ํ๋ฉด ๋ด๋น)
์์ JSP๊ฐ ํ๋ฉด(View)์ ๋ง๋ ๋ค๊ณ ํ์ฃ ? Vue๋ ๊ทธ JSP์ ํ๋ํ ์งํ ๋ฒ์ ์ ๋๋ค.
- ํน์ง: ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ๋๋ ์ ๋ ํ์ด์ง ์ ์ฒด๋ฅผ ์๋ก๊ณ ์นจํ์ง ์๊ณ , ๋ฐ๋ ๋ถ๋ถ๋ง ์ฅ- ๊ฐ์๋ผ์ ์ฃผ๋ ๊ธฐ์ (SPA, Single Page Application)์ ์ต์ ํ๋์ด ์์ต๋๋ค.
- ๋น์ : JSP๊ฐ "์ธ์๋ ์ ๋จ์ง"๋ผ๋ฉด, Vue๋ "๋์งํธ ์ ๊ดํ"์ ๋๋ค. ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ณํ๋ฉด ํ๋ฉด๋ ์ฆ๊ฐ ๋ฐ์ํ์ฃ .
1. Spring vs Spring Framework vs Spring Boot
์ด ์ ์ ๋ณ๊ฐ์ ๊ธฐ์ ์ด ์๋๋ผ, ์งํ ๋จ๊ณ๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
- Spring (๋๋ Spring Framework):
- ์ ์: ์๋ฐ ์๋ฒ ๊ฐ๋ฐ์ ์ํ ๊ฑฐ๋ํ ๊ณต๊ตฌํจ ๊ทธ ์์ฒด์ ๋๋ค.
- ํน์ง: ์์ฃผ ๊ฐ๋ ฅํ์ง๋ง, ์ฒ์ ์ฌ์ฉํ ๋ ์ค์ ์ ํ๋ํ๋ ์ง์ ํด์ผ ํฉ๋๋ค. (์: "๋ง์น ๊บผ๋ด๊ณ , ๋ชป ์ค๋นํ๊ณ , ์ค๊ณ๋ ํด๊ณ ..." ํ๋ ๊ณผ์ ์ ์ฝ๋๋ก ๋ค ์จ์ผ ํจ)
- ๋น์ : ๋ชจ๋ ๋ถํ์ ๋ด๊ฐ ์ง์ ์กฐ๋ฆฝํด์ผ ํ๋ ๋ ๊ณ ์ธํธ.
- Spring Boot:
- ์ ์: Spring Framework๋ฅผ ๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ธ ์ ์๊ฒ ํด์ฃผ๋ **'์๋ ์กฐ๋ฆฝ ํคํธ'**์ ๋๋ค.
- ํน์ง: "์์ฃผ ์ฐ๋ ์ค์ ์ ๋ด๊ฐ ๋ฏธ๋ฆฌ ๋ค ํด๋๊ฒ, ๋๋ ๋ก์ง๋ง ์ง!"๋ผ๋ ์ฒ ํ์ ๋๋ค. ์๋ฒ(Tomcat)๋ ๋ด์ฅ๋์ด ์์ด ๋ฒํผ ํ๋๋ฉด ์คํ๋ฉ๋๋ค. ํ์ฌ ์ค๋ฌด์์๋ 90% ์ด์ Spring Boot๋ฅผ ์๋๋ค.
- ๋น์ : ์ด๋ฏธ ํต์ฌ์ ๋ค ์กฐ๋ฆฝ๋์ด ์๊ณ , ๋ด๊ฐ ์ํ๋ ์์น ๋ง ํ๋ฉด ์์ฑ๋๋ ๋ฐ์กฐ๋ฆฝ ํคํธ.
์ ๋ฆฌ: Spring์ ์ ์ฒด ๊ธฐ์ ์ ์ด๋ฆ์ด๊ณ , Spring Framework๋ ๊ทธ ๋ชธ์ฒด์ด๋ฉฐ, Spring Boot๋ ๊ทธ๊ฑธ ํธํ๊ฒ ์ฐ๊ฒ ํด์ฃผ๋ ๋๊ตฌ์ ๋๋ค. ์๋ฐ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ์ง๊ธ ๋ฐ๋ก Spring Boot๋ฅผ ๊ณต๋ถํ์๋ฉด ๋ฉ๋๋ค.
2. Vue.js vs React (ํ๋ก ํธ์๋ ๋ผ์ด๋ฒ)
์๋ฐ๋ก ๋ง๋ ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ๋ฟ๋ ค์ค ๋ ์ฐ๋ ๋๊ตฌ๋ค์ ๋๋ค.
| ๊ตฌ๋ถ | Vue.js | React |
| ๋ง๋ ๊ณณ | ์๋ฐ ์ (๊ฐ์ธ/์ปค๋ฎค๋ํฐ) | Meta (ํ์ด์ค๋ถ) |
| ํ์ต ๋์ด๋ | ์ฌ์. HTML/CSS์ ๋น์ทํด์ ๊ธ๋ฐฉ ๋ฐฐ์. | ์กฐ๊ธ ์ด๋ ค์. ์๋ฐ์คํฌ๋ฆฝํธ ์ค๋ ฅ์ด ์ค์ํจ. |
| ํน์ง | ์ ํด์ง ๊ท์น์ด ์์ด ์ฝ๋๊ฐ ๊น๋ํจ. | ์์ ๋๊ฐ ๋งค์ฐ ๋๊ณ ์ํ๊ณ๊ฐ ์์ฒญ๋๊ฒ ํผ. |
| ์ฅ์ | ํ๊ตญ ์ค์/์ค๊ฒฌ๊ธฐ์ ๋ฐ ๊ณต๊ณต๊ธฐ๊ด ์ ํธ. | Toss, ๋ค์ด๋ฒ, ์นด์นด์ค ๋ฑ ๋ํ ํ ํฌ ๊ธฐ์ ์ ํธ. |
| ๋น์ | ๋ชจ๋ ์ฅ๋น๊ฐ ๊ฐ์ถฐ์ง ํ์ต์ ์คํผ์คํ . | ๋ด๊ฐ ๊ฐ๊ตฌ๋ฅผ ๋ค ์ฌ์ผ ํ๋ ์์ ๋ก์ด ๋น ์ง. |
๐ก IT์ง์ ๊ฐ๋ฐ์ ๋ง์ถค ์กฐ์ธ
ํ์ฌ ์๋ฐ ๋ฐฑ์๋๋ฅผ ๊ณต๋ถ ์ค์ด์๊ณ , Toss ๊ฐ์ ๊ธฐ์ ์ ์ฝ๋ฉ ํ ์คํธ๋ฅผ ์ค๋น ์ค์ด์๋ผ๋ฉด ์๋ ๋ก๋๋งต์ ์ถ์ฒ๋๋ ค์.
- ๋ฐฑ์๋: ์๋ฐ ๊ธฐ์ด → Spring Boot (MVC ํจํด ์ ์ฉํด๋ณด๊ธฐ)
- ํ๋ก ํธ์๋: * ๋น ๋ฅด๊ฒ ๊ฒฐ๊ณผ๋ฌผ Vue.js
- ํ ํฌ ๊ธฐ์ ์ทจ์ ์์ฅ์์ ๋ ๊ฐ๋ ฅํ ๋ฌด๊ธฐ๋ฅผ ๊ฐ๊ณ ์ถ๋ค๋ฉด React
- ๋ฐ์ดํฐ๋ฒ ์ด์ค: SQL ๊ณต๋ถ๋ ํ์์ ๋๋ค. (Toss ์ฝํ ์์๋ SQL ๋ฌธ์ ๊ฐ ์์ฃผ ๋์ต๋๋ค.)