๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[Spring Boot] ์›น ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹ ์ •์ ์ฝ˜ํ…์ธ , MVC, API ๋ณธ๋ฌธ

๐Ÿ–Œ๏ธWeb/Spring Boot

[Spring Boot] ์›น ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹ ์ •์ ์ฝ˜ํ…์ธ , MVC, API

๋ฃจ๋ฆฌ์•ผใ…‘ 2024. 3. 11. 20:47
๋ฐ˜์‘ํ˜•

์›น ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
์—ฌ๊ธฐ์„œ ์ •์ ์ฝ˜ํ…์ธ , MVC์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„, API๋Š” ์›น ๊ฐœ๋ฐœ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•˜๊ณ  ๊ฐ๊ฐ์˜ ํŠน์ง•๊ณผ ์šฉ๋„๊ฐ€ ์žˆ๋‹ค.

1. ์ •์ ์ฝ˜ํ…์ธ 

์ •์ ์ฝ˜ํ…์ธ ๋Š” ์„œ๋ฒ„์— ๋ฏธ๋ฆฌ ์ €์žฅ๋œ ํŒŒ์ผ์ธ HTML, CSS, Javascript ๋“ฑ์„ ๊ทธ๋Œ€๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์„œ๋ฒ„๋Š” ๋ณ„๋กœ์˜ ์ฒ˜๋ฆฌ์—†์ด ํ•ด๋‹น ํŒŒ์ผ์„ ์ฐพ์•„ ๋ณด๋‚ธ๋‹ค.

์ด ์ •์ ์ฝ˜ํ…์ธ ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ์›น ํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ์Šคํƒ€์ผ ์‹œํŠธ, ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ์Šคํฌ๋ฆฝํŠธ(js ํŒŒ์ผ) ๋“ฑ์˜ ๋ฐฐํฌ์— ์‚ฌ์šฉํ•œ๋‹ค. ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ค„ ๋•Œ ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

2. MVC์™€ ํ…œํ”Œ๋ฆฟ ์—”์ง„

MVC(Model-View-Controller)๋Š” ์›น์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Model(๋ฐ์ดํ„ฐ), View(์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค), Controller(๋กœ์ง ์ฒ˜๋ฆฌ)์„ ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐœ๋ฐœํ•œ๋‹ค.

ํ…œํ”Œ๋ฆฟ ์—”์ง„์€ ๋™์ ์ธ HTML ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋กœ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ HTML์— ์‚ฝ์ž…ํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์— ์ „์†ก๋˜๋Š”  THML์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค. 

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋‚ด์šฉ์ด ๋ณ€ํ•˜๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์˜ˆ์‹œ๋กœ ์‚ฌ์šฉ์ž ์ •๋ณด, ์ƒํ’ˆ ๋ชฉ๋ก ๋“ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ ์œ ์šฉํ•˜๋‹ค.

3.API(Application Programming Interfacce)

API๋Š” ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์›น API๋Š” HTTP ์š”์ฒญ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ, ์ฃผ๋กœ JSON ๋˜๋Š”XML ํฌ๋งท์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋‹ค์–‘ํ•œ ํด๋ผ์ด์–ธํŠธ์ธ ์›น ๋ธŒ๋ผ์šฐ์ €, ๋ชจ๋ฐ”์ผ ์•ฑ ๋“ฑ์—์„œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ , ์„œ๋ฒ„๋Š” ์š”์ฒญ๋œ ๋ฐ์ดํ„ฐ๋ฅผ JSON ํ˜•ํƒœ๋กœ ํด๋ผ์ด์–ธํŠธ์— ์ „์†กํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์„œ ํ•˜๋‚˜์˜ ์„œ๋ฒ„๋กœ ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์˜ ์•ฑ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

๊ฐ๊ฐ์˜ ๋ฐฉ์‹์€ ์›น์˜ ๋‹ค์–‘ํ•œ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. 

  • ์ •์ ์ฝ˜ํ…์ธ  : ๋‹จ์ˆœํ•˜๊ณ  ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ์›น ํŽ˜์ด์ง€์— ์ ํ•ฉ
  • MVC์™€ ํ…œํ”Œ๋ฆฟ์—”์ง„ : ๋™์ ์ธ ์›น ์‚ฌ์ดํŠธ ๊ตฌ์„ฑ์— ์ ํ•ฉ
  • API : ๋‹ค์–‘ํ•œ ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์— ์ ํ•ฉ

 

๋ฐ˜์‘ํ˜•