๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

MVC ํŒจํ„ด ๊ฒŒ์‹œํŒ

by 5566 2023. 10. 18.

1. ๊ฒŒ์‹œํŒ ๊ฐœ์š”

๊ฒŒ์‹œํŒ์€ ์›น ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ์ž๋“ค์ด ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์ฃผ์ œ์™€ ์นดํ…Œ๊ณ ๋ฆฌ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž๋“ค์€ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ , ๋Œ“๊ธ€์„ ๋‹ฌ๊ฑฐ๋‚˜ ์ข‹์•„์š”๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒŒ์‹œํŒ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ํ˜•์„ฑ๊ณผ ์ •๋ณด ๊ณต์œ ๋ฅผ ์œ„ํ•œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒŒ์‹œํŒ์„ ๊ฐœ๋ฐœํ•  ๋•Œ, MVC (Model-View-Controller) ํŒจํ„ด์€ ํšจ๊ณผ์ ์ธ ๊ตฌ์กฐํ™”๋ฅผ ์œ„ํ•œ ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. MVC ํŒจํ„ด์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๋ถ€๋ถ„์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์„ ํ™œ์šฉํ•˜์—ฌ ๊ฒŒ์‹œํŒ์˜ ์ƒ์„ฑ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œ, ๊ฒ€์ƒ‰, ์ •๋ ฌ ๊ธฐ๋Šฅ ๋“ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์ œ๋กœ ์„ ์ •ํ•œ ๊ฒŒ์‹œํŒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ํ–ฅ์ƒ๋˜๋ฉฐ, ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ๋Š” MVC ํŒจํ„ด์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

2. MVC ํŒจํ„ด ์†Œ๊ฐœ

MVC ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ, ๋ชจ๋ธ(Model), ๋ทฐ(View), ์ปจํŠธ๋กค๋Ÿฌ(Controller)๋ผ๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์š”์†Œ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ(Model): ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ๋‹ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํŒŒ์ผ ์‹œ์Šคํ…œ, ์™ธ๋ถ€ API์™€์˜ ์ƒํ˜ธ์ž‘์šฉ๊ณผ ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ทฐ(View): ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” HTML, CSS, JavaScript ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ปจํŠธ๋กค๋Ÿฌ(Controller): ๋ชจ๋ธ๊ณผ ๋ทฐ ์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ๋ชจ๋ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ, ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ชจ๋ธ์˜ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ๋ทฐ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

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

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

3. ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ๋ฐ ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ๊ณผ ์กฐํšŒ๋Š” ๊ฒŒ์‹œํŒ ๊ธฐ๋Šฅ ์ค‘ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. MVC ํŒจํ„ด์„ ํ™œ์šฉํ•˜์—ฌ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ๊ณผ ์กฐํšŒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

3.1. ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ๊ธฐ๋Šฅ

๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ  ๊ฒŒ์‹œํŒ์— ๋“ฑ๋กํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ ๋ถ€๋ถ„์˜ ์—ญํ• ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ(Model): ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ฒŒ์‹œ๋ฌผ์„ ์ €์žฅํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๋ฌผ ์ •๋ณด๋ฅผ ๋‹ด์€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๊ฒŒ์‹œ๋ฌผ์€ ์กฐํšŒ ๊ธฐ๋Šฅ์—์„œ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ๋ทฐ(View): ๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ํ™”๋ฉด์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. HTML ํผ์„ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๊ฒŒ์‹œ๋ฌผ ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ํ•„๋“œ์™€ ์ œ์ถœ ๋ฒ„ํŠผ ๋“ฑ ํ•„์š”ํ•œ ์š”์†Œ๋ฅผ ํฌํ•จ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ปจํŠธ๋กค๋Ÿฌ(Controller): ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ชจ๋ธ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๋ฌผ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ œ์ถœํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ด๋ฅผ ๋ฐ›์•„์„œ ๋ชจ๋ธ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํฌํ•จํ•˜๋ฏ€๋กœ, ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜์—ฌ ๊ฒŒ์‹œ๋ฌผ ์ •๋ณด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

3.2. ๊ฒŒ์‹œ๋ฌผ ์กฐํšŒ ๊ธฐ๋Šฅ

๊ฒŒ์‹œ๋ฌผ ์กฐํšŒ ๊ธฐ๋Šฅ์€ ์ž‘์„ฑ๋œ ๊ฒŒ์‹œ๋ฌผ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๊ฒŒ์‹œํŒ์—์„œ ์ž‘์„ฑ๋œ ๊ฒŒ์‹œ๋ฌผ์˜ ๋ชฉ๋ก์„ ํ™•์ธํ•˜๊ณ , ์›ํ•˜๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ์„ ํƒํ•˜์—ฌ ์ƒ์„ธ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ถ€๋ถ„์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ(Model): ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฒŒ์‹œ๋ฌผ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฒŒ์‹œ๋ฌผ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๊ณ , ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  • ๋ทฐ(View): ๋ทฐ๋Š” ๊ฒŒ์‹œ๋ฌผ ๋ชฉ๋ก๊ณผ ์ƒ์„ธ ๋‚ด์šฉ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๋ฌผ์˜ ๋ชฉ๋ก์„ ํ…Œ์ด๋ธ”๋กœ ํ‘œ์‹œํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๋ฌผ์„ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์˜ ์ƒ์„ธ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด HTML๊ณผ CSS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์‹œ๋ฌผ ๋ชฉ๋ก๊ณผ ์ƒ์„ธ ๋‚ด์šฉ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ์ปจํŠธ๋กค๋Ÿฌ(Controller): ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ๊ฒŒ์‹œ๋ฌผ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ณ , ํ•ด๋‹น ์ •๋ณด๋ฅผ ๋ทฐ์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๋ฌผ์„ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์˜ ์‹๋ณ„์ž๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ „๋‹ฌํ•˜๊ณ , ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ด๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์˜ ์ •๋ณด๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ์กฐํšŒ๋œ ์ •๋ณด๋Š” ๋ทฐ์— ์ „๋‹ฌ๋˜์–ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ชจ๋ธ, ๋ทฐ, ์ปจํŠธ๋กค๋Ÿฌ ๊ฐ๊ฐ์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ๋ฐ ์กฐํšŒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MVC ํŒจํ„ด์„ ํ™œ์šฉํ•˜๋ฉด ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ๋†’์•„์ง€๋ฉฐ, ๊ฐœ๋ฐœ๊ณผ ์œ ์ง€๋ณด์ˆ˜ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๋ฌผ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. MVC ํŒจํ„ด์„ ํ™œ์šฉํ•˜์—ฌ ๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ • ๋ฐ ์‚ญ์ œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

4.1. ๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ • ๊ธฐ๋Šฅ

๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ • ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๋ฌผ์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ ๋ถ€๋ถ„์˜ ์—ญํ• ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ(Model): ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๊ฒŒ์‹œ๋ฌผ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜์ •ํ•œ ๊ฒŒ์‹œ๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋ชจ๋ธ์— ์ „๋‹ฌํ•˜๊ณ , ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

  • ๋ทฐ(View): ๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒŒ์‹œ๋ฌผ ์ˆ˜์ • ํ™”๋ฉด์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด์— ์ž‘์„ฑ๋œ ๊ฒŒ์‹œ๋ฌผ์˜ ๋‚ด์šฉ์„ HTML ํผ์— ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ํ•„๋“œ์™€ ์ œ์ถœ ๋ฒ„ํŠผ ๋“ฑ ํ•„์š”ํ•œ ์š”์†Œ๋ฅผ ํฌํ•จ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ปจํŠธ๋กค๋Ÿฌ(Controller): ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ชจ๋ธ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜์ •ํ•œ ๊ฒŒ์‹œ๋ฌผ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ œ์ถœํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ด๋ฅผ ๋ฐ›์•„์„œ ๋ชจ๋ธ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋œ ๊ฒŒ์‹œ๋ฌผ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

4.2. ๊ฒŒ์‹œ๋ฌผ ์‚ญ์ œ ๊ธฐ๋Šฅ

๊ฒŒ์‹œ๋ฌผ ์‚ญ์ œ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๋ฌผ์„ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๋ฌผ ์ค‘ ์›ํ•˜๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ์„ ํƒํ•˜์—ฌ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ถ€๋ถ„์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ(Model): ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฒŒ์‹œ๋ฌผ์„ ์‚ญ์ œํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ๊ฒŒ์‹œ๋ฌผ์˜ ์‹๋ณ„์ž๋ฅผ ๋ชจ๋ธ์— ์ „๋‹ฌํ•˜๊ณ , ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

  • ๋ทฐ(View): ๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒŒ์‹œ๋ฌผ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œํ•  ๊ฒŒ์‹œ๋ฌผ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชฉ๋ก์„ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๋ฌผ์„ ์„ ํƒํ•˜๊ณ  ์‚ญ์ œ๋ฅผ ์š”์ฒญํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ์—๊ฒŒ ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์˜ ์‹๋ณ„์ž๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  • ์ปจํŠธ๋กค๋Ÿฌ(Controller): ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ๊ฒŒ์‹œ๋ฌผ์„ ์‚ญ์ œํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์‚ญ์ œ๋ฅผ ์š”์ฒญํ•œ ๊ฒŒ์‹œ๋ฌผ์˜ ์‹๋ณ„์ž๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ์—๊ฒŒ ์ „๋‹ฌํ•˜๊ณ , ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์„ ๋ชจ๋ธ์— ์ „๋‹ฌํ•˜์—ฌ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

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

5. ๊ฒŒ์‹œ๋ฌผ ๊ฒ€์ƒ‰ ๋ฐ ์ •๋ ฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๊ฒŒ์‹œ๋ฌผ ๊ฒ€์ƒ‰ ๋ฐ ์ •๋ ฌ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด MVC ํŒจํ„ด์„ ํ™œ์šฉํ•˜์—ฌ ๊ฒŒ์‹œ๋ฌผ ๊ฒ€์ƒ‰ ๋ฐ ์ •๋ ฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

5.1. ๊ฒŒ์‹œ๋ฌผ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ

๊ฒŒ์‹œ๋ฌผ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ ๋ถ€๋ถ„์˜ ์—ญํ• ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ(Model): ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŠน์ • ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒ€์ƒ‰์–ด๋‚˜ ์„ ํƒํ•œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  • ๋ทฐ(View): ๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ ํ•„๋“œ์™€ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ, ํ•„์š”ํ•œ ์กฐ๊ฑด์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์กฐ๊ฑด์œผ๋กœ ๊ฒŒ์‹œ๋ฌผ์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • ์ปจํŠธ๋กค๋Ÿฌ(Controller): ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™€ ๋ทฐ์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๊ฐ’์„ ๊ฐ€์ ธ์™€ ๋ชจ๋ธ์— ์ „๋‹ฌํ•˜์—ฌ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋Š” ๋ทฐ์— ์ „๋‹ฌ๋˜์–ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค.

5.2. ๊ฒŒ์‹œ๋ฌผ ์ •๋ ฌ ๊ธฐ๋Šฅ

๊ฒŒ์‹œ๋ฌผ ์ •๋ ฌ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๋ฌผ์„ ํŠน์ • ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ž‘์„ฑ์ผ, ์ œ๋ชฉ, ์ž‘์„ฑ์ž ๋“ฑ์˜ ๊ธฐ์ค€์— ๋”ฐ๋ผ ๊ฒŒ์‹œ๋ฌผ์„ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ถ€๋ถ„์˜ ์—ญํ• ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ(Model): ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฒŒ์‹œ๋ฌผ์„ ํŠน์ • ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ •๋ ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ์ •๋ ฌ ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ •๋ ฌ๋œ ๊ฒฐ๊ณผ๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  • ๋ทฐ(View): ๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ ฌ ๊ธฐ์ค€์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๋‚˜ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ๋“ฑ์„ ๋ทฐ์— ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ธฐ์ค€์— ๋”ฐ๋ผ ๊ฒŒ์‹œ๋ฌผ์„ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • ์ปจํŠธ๋กค๋Ÿฌ(Controller): ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ์ •๋ ฌ๋œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™€ ๋ทฐ์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ •๋ ฌ ๊ธฐ์ค€์„ ์„ ํƒํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๊ฐ’์„ ๊ฐ€์ ธ์™€ ๋ชจ๋ธ์— ์ „๋‹ฌํ•˜์—ฌ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ ฌ๋œ ๊ฒฐ๊ณผ๋Š” ๋ทฐ์— ์ „๋‹ฌ๋˜์–ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค.

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

๋Œ“๊ธ€