3-5์žฅ

50p

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

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

60p

HANDS-ON MODELER

๋ฌธ์ œ๋Š” Model-driven design๋‚ด์—์„œ ์„œ๋กœ ๊ธด๋ฐ€ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋œ ๋ชจ๋ธ๋ง๊ณผ ๊ตฌํ˜„์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ๊ณผ์—…์„ ใ„ด๋ฆฌํ•˜๋Š” ๋ฐ์„œ ๋‚˜ํƒ€๋‚œ๋‹ค.

๋ชจ๋ธ์— ๊ธฐ์—ฌํ•˜๋Š” ๋ชจ๋“  ๊ธฐ์ˆ ์ž๋Š” ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ์ฐจ์  ์—ญํ• ๊ณผ๋Š” ์ƒ๊ด€์—†์ด ์ฝ”๋“œ๋ฅผ ์ ‘ํ•˜๋Š” ๋ฐ ์–ด๋А ์ •๋„ ์‹œ๊ฐ„์„ ํˆฌ์žํ•ด์•ผ๋งŒ ํ•œ๋‹ค. ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ฑ…์ž„์ด ์žˆ๋Š” ๋ชจ๋“  ์ด๋“ค์€ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฒ•์„ ๋ฐ˜๋“œ์‹œ ๋ฐฐ์›Œ์•ผ ํ•œ๋‹ค.

04 ๋„๋ฉ”์ธ๊ณผ ๊ฒฉ๋ฆฌ

72p

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

05 ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ํ‘œํ˜„๋˜๋Š” ๋ชจ๋ธ

  • ์—ฐ์†์„ฑ๊ณผ ์‹๋ณ„์„ฑ์„ ๊ฐ€์ง„๋‹ค โ†’ ENTITY

  • ENTITY์˜ ๊ทผ๋ณธ์ ์ธ ๊ฐœ๋…์€ ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๋‚ด๋‚ด ์ด์–ด์ง€๋Š” ์ถ”์ƒ์ ์ธ ์—ฐ์†์„ฑ

  • ๊ฐœ๋…์  ์‹๋ณ„์„ฑ์„ ๊ฐ–์ง€ ์•Š์œผ๋ฉด์„œ ๋„๋ฉ”์ธ์˜ ์„œ์ˆ ์  ์ธก๋ฉด์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด โ†’ VALUE OBJECT

  • ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ƒํƒœ๋ฅผ ์ฃผ๊ณ ๋ฐ›์ง€๋Š” ์•Š๋Š” ํ™œ๋™ โ†’ SERVICE

ENTITY ๋ชจ๋ธ๋ง

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

VALUE OBJECT

๋ชจ๋ธ์— ํฌํ•จ๋œ ์–ด๋–ค ์š”์†Œ์˜ ์†์„ฑ์—๋งŒ ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ VALUE OBJECT๋กœ ๋ถ„๋ฅ˜ํ•˜๋ผ. VALUE OBJECT์—์„œ ํ•ด๋‹น VALUE OBJECT๊ฐ€ ์ „ํ•˜๋Š” ์†์„ฑ์˜ ์˜๋ฏธ๋ฅผ ํ‘œํ˜„ํ•˜๊ฒŒ ํ•˜๊ณ  ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ๋ถ€์—ฌํ•˜๋ผ. ๋˜ํ•œ VALUE OBJECT๋Š” ๋ถˆ๋ณ€์ (immutable)์œผ๋กœ ๋‹ค๋ค„๋ผ. VALUE OBJECT์—๋Š” ์•„๋ฌด๋Ÿฐ ์‹๋ณ„์„ฑ์„ ๋ถ€์—ฌํ•˜์ง€ ๋ง๊ณ  ENTITY๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์„ค๊ณ„์ƒ์˜ ๋ณต์žก์„ฑ์„ ํ”ผํ•˜๋ผ.

SERVICE

๋„๋ฉ”์ธ์˜ ์ค‘๋Œ€ํ•œ ํ”„๋กœ์„ธ์Šค๋‚˜ ๋ณ€ํ™˜ ๊ณผ์ •์ด ENTITY๋‚˜ VALUE OBJECT์˜ ๊ณ ์œ ํ•œ ์ฑ…์ž„์ด ์•„๋‹ˆ๋ผ๋ฉด ์—ฐ์‚ฐ์„ SERVICE๋กœ ์„ ์–ธ๋˜๋Š” ๋…๋ฆฝ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ชจ๋ธ์— ์ถ”๊ฐ€ํ•˜๋ผ. ๋ชจ๋ธ์˜ ์–ธ์–ด๋ผ๋Š” ์ธก๋ฉด์—์„œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•˜๊ณ  ์—ฐ์‚ฐ์˜ ์ด๋ฆ„์„ UBIQUITOUS LANGUAGE์˜ ์ผ๋ถ€๊ฐ€ ๋˜๊ฒŒ๋” ๊ตฌ์„ฑํ•˜๋ผ. SERVICE์˜ ์ƒํƒœ๋ฅผ ๊ฐ–์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค์–ด๋ผ.

MODULE

์‹œ์Šคํ…œ์˜ ๋‚ด๋ ฅ์„ ๋งํ•ด์ฃผ๋Š” MODULE์„ ๊ณจ๋ผ ์ผ๋ จ์˜ ์‘์ง‘๋ ฅ ์žˆ๋Š” ๊ฐœ๋…๋“ค์„ ํ•ด๋‹น MODULE์— ๋‹ด์•„๋ผ. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ข…์ข… ๋ชจ๋“ˆ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ์•„์ง€๊ธฐ๋„ ํ•˜๋Š”๋ฐ, ๊ทธ๋ ‡๊ฒŒ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ชจ๋ธ์„ ๋ณ€๊ฒฝํ•ด์„œ ์–ฝํ˜€ ์žˆ๋Š” ๊ฐœ๋…์„ ํ’€์–ด๋‚ผ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๊ฑฐ๋‚˜, ์•„๋‹ˆ๋ฉด ์˜๋ฏธ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋ธ์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋งบ์–ด์ค„, MODULE์˜ ๊ธฐ์ค€์ด ๋  ๋ฒ•ํ•œ ๊ฒƒ ์ค‘ ๋ฏธ์ฒ˜ ๋ชป๋ณด๊ณ  ์ง€๋‚˜์นœ ๊ฐœ๋…์„ ์ฐพ์•„๋ณด๋ผ.

Last updated