MVC

Dearยท2025๋…„ 6์›” 19์ผ

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
44/74

๐Ÿ’™ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง(Business Logic)

์‹ค์ œ ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๋™ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์˜ค๋Š” ์ž‘์—…์„ ํ•จ

๐Ÿ’™ ํ”„๋ฆฌ์  ํ…Œ์ด์…˜ ๋กœ์ง(Presentation Logic)

ํ™”๋ฉด์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„
HTML ํ˜•ํƒœ๋กœ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ• 

๐Ÿ’™ Model 1๋ฐฉ์‹

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ JSP ๋˜๋Š” Servlet์ด ์ง์ ‘ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹

JSP๊ฐ€ ๋ชจ๋“  ์—ญํ• (์š”์ฒญ ์ฒ˜๋ฆฌ + ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง + ํ™”๋ฉด ์ถœ๋ ฅ)์„ ๋‹ด๋‹นํ•จ

๊ตฌ์กฐ

[Client] โ†’ [JSP ํŒŒ์ผ] โ†’ [DB or ๊ฒฐ๊ณผ ์ถœ๋ ฅ]

JSP ํŒŒ์ผ์—์„œ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›๊ณ 
๋‚ด๋ถ€์—์„œ ์ง์ ‘ Java ์ฝ”๋“œ๋กœ ๋กœ์ง ์ฒ˜๋ฆฌํ•˜๊ณ 
๊ฒฐ๊ณผ๋ฅผ HTML๋กœ ์ถœ๋ ฅํ•จ

์žฅ์ 

  • ๊ตฌ์กฐ๊ฐ€ ๋‹จ์ˆœํ•ด ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
  • ์ดˆ๊ธฐ ํ•™์Šต์ž์—๊ฒŒ ์ง๊ด€์ 

๋‹จ์ 

  • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋กœ์ง์ด ๋’ค์„ž์ž„ (์ฝ”๋“œ ๋ณต์žกํ•ด์ง)
  • ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ ๋–จ์–ด์ง
  • MVC ํŒจํ„ด ์ ์šฉ ์–ด๋ ค์›€

๐Ÿ’™ MVC

MVC = Model + View + Controller
์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ธฐ๋Šฅ์„ ์—ญํ• ์— ๋”ฐ๋ผ ๋‚˜๋ˆ„๋Š” ๊ตฌ์กฐ

model1์˜ ๋‹จ์ ์„ ๋ณด์•ˆํ•˜๊ธฐ ์œ„ํ•ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ๋ชจ๋ธ ์˜์—ญ๊ณผ ๋””์ž์ธ์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ๋ทฐ ์˜์—ญ์ด ๋‚˜์™”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‘˜์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
์ด ํŒจํ„ด์ด MVC ํŒจํ„ด์ด๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ์—ญํ• 
Model๋ฐ์ดํ„ฐ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋‹ด๋‹น (DB ์ฒ˜๋ฆฌ, ๊ณ„์‚ฐ ๋“ฑ)
View์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ํ™”๋ฉด (HTML, JSP ๋“ฑ)
Controller์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ  ํ๋ฆ„ ์ œ์–ด (์š”์ฒญ ๋ถ„๊ธฐ, Model ํ˜ธ์ถœ, View ์„ ํƒ)

๋™์ž‘ ํ๋ฆ„

[User] โ†’ [Controller] โ†’ [Model] โ†’ [Controller] โ†’ [View] โ†’ [User]

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์›น ํŽ˜์ด์ง€์— ์š”์ฒญ์„ ๋ณด๋ƒ„ (/login, /list ๋“ฑ)
  2. Controller๊ฐ€ ์š”์ฒญ์„ ๋ฐ›๊ณ  ์–ด๋–ค ๋กœ์ง์ด ํ•„์š”ํ•œ์ง€ ํŒ๋‹จ
  3. ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ Model์„ ํ†ตํ•ด ์ฒ˜๋ฆฌ
  4. ์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  View์— ์ „๋‹ฌ
  5. View๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œ

๐Ÿค ํšŒ๊ณ 

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

profile
์นœ์• ํ•˜๋Š” ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€