์ฃผ์š” ์ž‘์—…

๐Ÿ“š Learning

  • MVC ํŒจํ„ด โœ… 2024-09-09
  • ์ปค์Šคํ…€ ์—๋Ÿฌ โœ… 2024-09-09

๐Ÿ› ๏ธ Refactor & Fix

  • ์ปค์Šคํ…€ ์—๋Ÿฌ๋กœ ์„œ๋ฒ„ ์—๋Ÿฌ ์ฒ˜๋ฆฌ
  • SQL๋ฌธ ์ˆ˜์ • โœ… 2024-09-09
  • MVC ํŒจํ„ด์„ ๋ณด๋‹ค ์„ธ๋ถ€์ ์œผ๋กœ ์„ค๊ณ„ํ•ด์„œ model ๊ณ ์น˜๊ธฐ โœ… 2024-09-09

ํ•™์Šต ํ‚ค์›Œ๋“œ

๊ณ ๋ฏผ ๋ฐ ํ•ด๊ฒฐ๊ณผ์ •

MVC ํŒจํ„ด์˜ ์ ์šฉ

MVC ํŒจํ„ด์˜ ๊ฒฝ์šฐ Model, VIew, Controller๊ฐ€ ์ฃผ๊ฐ€ ๋˜์–ด ์ด ์„ธ๊ฐ€์ง€ ์š”์†Œ๋ฅผ ํ†ตํ•ด์„œ ๋А์Šจํ•œ ๊ฒฐํ•ฉ์„ ์ด๋ฃจ๊ฒŒ ๋œ๋‹ค.(service, repository ๋“ฑ์€ ๊ทธ๋•Œ๋งˆ๋‹ค ์ทจ์‚ฌ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค) ์ด ๋А์Šจํ•œ ๊ฒฐํ•ฉ์€ Contoller๊ฐ€ ์ค‘๊ฐ„์ž๋กœ์„œ์˜ ์—ญํ• ์„ ์ œ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ๋งŒ ๊ฒฐํ•ฉ ๊ด€๊ณ„๊ฐ€ ๋А์Šจํ•ด์ง€๊ฒŒ ๋˜๋Š”๋ฐ, ๋‚˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ Model๊ณผ Controller์˜ ๊ด€๊ณ„๊ฐ€ ๋ชจํ˜ธํ–ˆ๋‹ค.

๋จผ์ € ๋‚˜์˜ Controller์˜ ๊ฒฝ์šฐ, Route์™€ Repository๊ฐ€ ๋ชจ๋‘ ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋“ค์–ด๊ฐ€์žˆ์—ˆ์œผ๋ฉฐ, model์€ repostiory๋ฅผ ํ†ตํ•ด์„œ ์ง์ ‘์ ์œผ๋กœ db์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •์„ ๋‹ค๋ฃจ์–ด์•ผ ํ•˜์ง€๋งŒ ๋‚˜๋Š” ๊ทธ๋Œ€๋กœ routes์—์„œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์ ‘๊ทผํ–ˆ์œผ๋ฉฐ, model์€ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐ€๊ณต ์ •๋„๋งŒ์„ ๊ธฐ๋Šฅํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์‹ค์ƒ ๋‚˜์˜ ๊ตฌ์กฐ์—์„œ์˜ MVC ํŒจํ„ด์€ ๊ผฌ์ธ ๊ด€๊ณ„๊ฐ€ ๋˜์–ด๋ฒ„๋ ธ๋‹ค. ์ด์— MVC ํŒจํ„ด์„ ๋” ์ถฉ์‹คํžˆ ๋”ฐ๋ฅด๋ฉด์„œ๋„ ๋А์Šจํ•œ ๊ฒฐํ•ฉ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์‹œ ์„ค๊ณ„ํ–ˆ๋‹ค.

  • Controller
    • ๋ผ์šฐํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ
      • ๊ฐ api ์š”์ฒญ์— ๋Œ€ํ•œ ๋ผ์šฐํ„ฐ๋ฅผ ๋„๋ฉ”์ธ๋ณ„๋กœ ์„ค์ •
    • ๋„๋ฉ”์ธ๋ณ„ controller ํŒŒ์ผ
      • model์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ดํ•˜๋„๋ก ์ „๋‹ฌ
  • Model
    • ๋„๋ฉ”์ธ๋ณ„ ๋ชจ๋ธ
    • ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์˜์กดํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ด
    • ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋””๋ ‰ํ† ๋ฆฌ
      • db์— ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ด
  • View
    • ๋ ˆ์ด์•„์›ƒ์„ ์ œ์™ธํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ชจ๋‘ ์ฒ˜๋ฆฌ

๋”ฐ๋ผ์„œ ํ˜„์žฌ ๊ตฌ์กฐ๋Š” api ์š”์ฒญ โ†’ router โ†’ controller โ†’ model โ†’ repository ์ˆœ์œผ๋กœ ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ณ  ์ œ์–ดํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋œ๋‹ค.