JAVA/Theory

[๋””์ž์ธํŒจํ„ด] MVC

ITs Min 2023. 12. 12.

๐Ÿ”ฅ Model (DTO vs DAO)

๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ์™€ ๊ด€๋ จ๋œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ž๋ฃŒํ˜•์ด ์—†์–ด์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋งŒ๋“  ์ž๋ฃŒํ˜•์œผ๋กœ DTO์™€ VO๊ฐ€ ์žˆ๋‹ค.

JAVA๋Š” 2๊ฐœ์ด์ƒ์˜ ๊ฐ’, ํŠนํžˆ return์„ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’์„ ๋“ค๊ณ  ๋‹ค๋‹ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“  ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋‹ค.

(print๊ฐ€ ์—†์–ด์šฉ)

 

DAO๋Š” DTO๊ฐ์ฒด๋“ค์„ CRUD ํ•˜๋Š” ํด๋ž˜์Šค๋‹ค. JAVA๋Š” 2๊ฐœ์ด์ƒ์˜ ๊ฐ’์„ ํŠนํžˆ return ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—
์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’์„ ๋“ค๊ณ  ๋‹ค๋‹ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“  ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋‹ค.

 

DTO ์—ญํ•  : ๋ฉค๋ฒ„๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™” / getter, setter / toString ์˜ค๋ฒ„๋ผ์ด๋“œ / ๊ฐ์ฒด์˜ ๊ฐ’์„ ์ €์žฅ

DAO ์—ญํ•  : DTO๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑ ๋ฐ CRUD ๋‹ด๋‹น


๐Ÿ’ง View

๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ , ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ์ปจํŠธ๋กค๋Ÿฌ์— ์ „๋‹ฌํ•œ๋‹ค. (Input๊ณผ Output ๋‹ด๋‹น)

์‚ฌ์šฉ์ž์™€ ๊ด€๋ จ๋œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„ "์„ธ์ƒ์— ์ •์ƒ์ ์ธ ์‚ฌ์šฉ์ž๋Š” ์—†๋‹ค."
์‚ฌ์šฉ์ž์˜ ๋ชจ๋“  ์ž…๋ ฅ ๊ฐ’์— ๋Œ€ํ•ด์„œ ๊ฒ€์‚ฌํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์นœ์ ˆํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ๋ฏผํ•˜๋Š” ์—ญํ• 

(Scanner์™€ print๊ฐ€ ์žˆ์–ด์šฉ)


โšก Controller

์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ชจ๋ธ๊ณผ ๋ทฐ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์กฐ์ •ํ•œ๋‹ค.

์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋ชจ๋ธ์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜, ๋ชจ๋ธ์˜ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ ๋ทฐ๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค.

๋ชจ๋ธ๊ณผ ๋ทฐ๋ฅผ ์ด์šฉ

(๋ชจ๋ธ๊ณผ ๋ทฐ๋Š” ์ ˆ๋Œ€๋กœ ์ง์ ‘์ ์œผ๋กœ ๊ฒฐํ•ฉ๋˜์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค!)


๐Ÿ’ก ๊ฒฐ๋ก 

MVC ํŒจํ„ด์€ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ™•์žฅ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•œ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” ์ด๋Ÿฌํ•œ MVC ํŒจํ„ด์„ ์ ์ ˆํžˆ ํ™œ์šฉํ•˜์—ฌ ๋ณด๋‹ค ํšจ๊ณผ์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.


 

๋Œ“๊ธ€

TOP

๋Šฆ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๋• ๋„ˆ๋ฌด ๋Šฆ์€ ๊ฑฐ๋‹ค.