๐Ÿ“— CS

[Desigin Pattern] MVC, MVP, MVVM ํŒจํ„ด

jcowwk 2025. 1. 17. 12:45

MVC, MVP, MVVM ํŒจํ„ด


1. MVC ํŒจํ„ด

2. MVP ํŒจํ„ด

3. MVVM ํŒจํ„ด


1. MVC ํŒจํ„ด

MVC(Model-View-Controller)๋Š” Model, View, Controller๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„ค๊ณ„ํ•˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

 

- ๊ตฌ์„ฑ ์š”์†Œ์™€ ์—ญํ• 

1. Controller

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญ์„ ์ ์ ˆํ•œ Service ๋˜๋Š” Model๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

Model๊ณผ View ์‚ฌ์ด์˜ ์ค‘๊ฐœ์ž ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

ex) API ๋ผ์šฐํŒ…, ์„œ๋น„์Šค ํ˜ธ์ถœ ๋“ฑ

 

2. Model

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜์—ฌ Controller ๋˜๋Š” View์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

 

ex) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ, ORM(Entity) ๋“ฑ

 

3. View

์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” UI๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

Model๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›์•„ Controller์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

 

ex) html, css, ํ”„๋ก ํŠธ์—”๋“œ ํ…œํ”Œ๋ฆฟ

 

2. MVP ํŒจํ„ด

MVP(Model-View-Presenter)๋Š” Model, View, Presenter๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„ค๊ณ„ํ•˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

MVCํŒจํ„ด์„ ๋ฐœ์ „์‹œํ‚จ ํ˜•ํƒœ๋กœ, UI์™€ ๋กœ์ง์˜ ์˜์กด์„ฑ์„ ๋‚ฎ์ถ”๊ณ  ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ๋ชจ๋“ˆํ™”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜‘์—… ์‹œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

- ๊ตฌ์„ฑ ์š”์†Œ์™€ ์—ญํ• 

1. Presenter

Model๊ณผ View ์‚ฌ์ด์˜ ์ค‘๊ฐœ์ž ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

2. Model

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜์—ฌ Presenter์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

 

3. View

์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” UI๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

Model๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

 

3. MVVM ํŒจํ„ด

MVVM(Model-View-View Model)๋Š” Model, View, View Model๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„ค๊ณ„ํ•˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

 

- ๊ตฌ์„ฑ ์š”์†Œ์™€ ์—ญํ• 

1. View Model

Model๊ณผ View ์‚ฌ์ด์˜ ์ค‘๊ฐœ์ž ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

2. Model

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜์—ฌ Presenter์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

 

3. View

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.


์ฐธ๊ณ  ์‚ฌ์ดํŠธ

 

[๋””์ž์ธํŒจํ„ด] MVC, MVP, MVVM ๋น„๊ต

์›น ๊ฐœ๋ฐœ์ž๋กœ ์ผ์„ ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋จผ์ € ์ ‘ํ•œ ๋””์ž์ธํŒจํ„ด์ด ๋ฐ”๋กœ MVC ํŒจํ„ด์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋งŒํผ ์œ ๋ช…ํ•˜๊ณ  ๋งŽ์ด ์“ฐ์ด๋Š” ๋””์ž์ธํŒจํ„ด์ธ MVC ํŒจํ„ด๊ณผ MVC ํŒจํ„ด์—์„œ ํŒŒ์ƒ๋˜์–ด์ ธ ๋‚˜์˜จ MVP ํŒจํ„ด๊ณผ MVVM ํŒจํ„ด์„ ์ด์•ผ

beomy.tistory.com

 

 

MVC, MVP, MVVM ํŒจํ„ด์˜ ํŠน์ง•

์š”์ฆ˜ ์ฑ„์šฉ ๊ณต๊ณ ๋ฅผ ๋ณด๋ฉด MVC, MVP, MVVM์— ๊ด€ํ•œ ์ง€์‹ ๋ณด์œ ์ž๋ฅผ ์šฐ๋Œ€ํ•˜๋Š” ๊ณต๊ณ ๋ฅผ ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ € ๋˜ํ•œ ๋ฉด์ ‘์—์„œ๋„ ์ด๋Ÿฐ MVVM์ด ๋ญ”์ง€? MVP์™€์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ๋งŽ์€ ์งˆ๋ฌธ์„ ๋ฐ›๊ณค ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค

velog.io

 

 

 

ํ•œ ๋ฒˆ์˜ ๊ธ€๋กœ ์ดํ•ดํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ( MVC, MVP, MVVM )

์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ์ฑ„์šฉ ๊ณต๊ณ ๋ฅผ ๋ณด๋ฉด ์ž์ฃผ ๋ณด์ด๋Š” ๊ฒŒ ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. mvvm ํŒจํ„ด ๊ธฐ๋ฐ˜์˜ ์•ฑ?? mvvm ํŒจํ„ด?? ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” mvvm ํŒจํ„ด์€ ๋ฌด์—‡์ผ๊นŒ์š”?? ๊ตฌ๊ธ€์— ๊ฒ€์ƒ‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€์— ๊ฒ€

dev-musa.tistory.com

 

๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !

ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค <3