๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ
๐Ÿ“š book/๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด

03 ํƒ€์ž…๊ณผ ์ถ”์ƒํ™” (2) ํƒ€์ž…

by ๋ฐ”์ฟ„๋ฆฌ 2021. 12. 29.

00. ํƒ€์ž…

ํƒ€์ž…์€ ๊ฐœ๋…์ด๋‹ค.

 

ํƒ€์ž…์€ ๊ณตํ†ต์ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์ฒด๋“ค์„ ๋ฌถ๊ธฐ ์œ„ํ•œ ํ‹€์ด๋‹ค.

ํƒ€์ž…์€ ๊ฐœ๋…๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹ฌ๋ณผ, ๋‚ด์—ฐ, ์™ธ์—ฐ์„ ์ด์šฉํ•ด ์„œ์ˆ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํƒ€์ž…์— ์†ํ•˜๋Š” ๊ฐ์ฒด ์—ญ์‹œ ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ํ•œ๋‹ค.

 

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

 

ํƒ€์ž…์ด ๊ทผ๋ณธ์ ์œผ๋กœ ๊ฐœ๋…๊ณผ ๋™์ผํ•˜๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ์ผ๋‹จ ์ปดํ“จํ„ฐ ๋‚ด๋ถ€๋กœ ๋“ค์–ด์˜ค๋Š” ์ˆœ๊ฐ„ ์ข€ ๋” ๊ธฐ๊ณ„์ ์ธ ์˜๋ฏธ๋กœ ์œค์ƒ‰๋  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

๊ธฐ๊ณ„์ ์ธ ์˜๋ฏธ๋Š” ์ข…์ข… ๊ฐœ๋ฐœ์ž๋“ค์˜ ๋จธ๋ฆฌ๋ฅผ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ๋งŒ๋“ ๋‹ค.

 

์ปดํ“จํ„ฐ ์•ˆ์— ์‚ด์•„๊ฐ€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ชฉ์ ์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜(์ˆซ์žํ˜•, ๋ฌธ์ž์—ดํ˜•, ๋…ผ๋ฆฌํ˜•,,)ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์•ˆ์—๋Š” ์„œ์„œํžˆ ํƒ€์ž… ์‹œ์Šคํ…œ(type system)์ด ์ž๋ผ๋‚˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

ํƒ€์ž… ์‹œ์Šคํ…œ์€ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ์ €์žฅ๋œ 0๊ณผ 1์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•œ ์ž‘์—…๊ณผ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ž‘์—…์„ ๊ตฌ๋ถ„ํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜๋ชป ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ํƒ€์ž… ์‹œ์Šคํ…œ์˜ ๋ชฉ์ ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜๋ชป ์‚ฌ์šฉ๋˜์ง€ ์•Š๋„๋ก ์ œ์•ฝ์‚ฌํ•ญ์„ ๋ถ€๊ณผํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

โœ” ํƒ€์ž…์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋А๋ƒ์— ๊ด€ํ•œ ๊ฒƒ์ด๋‹ค.

    - ์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ : ๋ฐ์ดํ„ฐ๋ฅผ ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ๊ฑฐ๋‚˜ ๊ณฑํ•˜๊ฑฐ๋‚˜ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

    - ๋ฌธ์ž์—ดํ˜• ๋ฐ์ดํ„ฐ : ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•ด ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ์— ํฌํ•จ๋œ ๋ฌธ์ž์˜ ๊ธธ์ด๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 : ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ํƒ€์ž…์— ์†ํ•˜๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ = ๋ฐ์ดํ„ฐ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…

 

์—ฐ์‚ฐ์ž(operate) : ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—… (ex: +, -, *, / -> ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž์˜ ์ผ์ข…)

์—ฌ๊ธฐ์„œ !! ์—ฐ์‚ฐ์ž์˜ ์ข…๋ฅ˜๊ฐ€ ์•„๋‹ˆ๋ผ ์–ด๋–ค ๋ฐ์ดํ„ฐ์— ์–ด๋–ค ์—ฐ์‚ฐ์ž๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋А๋ƒ๊ฐ€ ๊ทธ ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์„ ๊ฒฐ์ •ํ•œ๋‹ค.

 

โœ” ํƒ€์ž…์— ์†ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•˜๋Š”์ง€๋Š” ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ฒ ์ €ํ•˜๊ฒŒ ๊ฐ์ถฐ์ง„๋‹ค.

๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ํ‘œํ˜„์€ ์—ฐ์‚ฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ์— ๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ ํ˜•ํƒœ๊ฐ€ ์„ ํƒ๋˜๋ฉฐ,

๊ฐœ๋ฐœ์ž๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ํ‘œํ˜„ ๋ฐฉ์‹์„ ๋ชฐ๋ผ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์ง€์žฅ์ด ์—†๋‹ค.

 

๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ง‘ํ•ฉ์— ๊ด€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋‹ค.
๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ถ„๋ฅ˜๋Š” ์•”์‹œ์ ์œผ๋กœ ์–ด๋–ค ์ข…๋ฅ˜์˜ ์—ฐ์‚ฐ์ด ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” ๊ฐ์ฒด๋ฅผ ์ผ์ข…์˜ ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ์ฒด๋ฅผ ํƒ€์ž…์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ํ•˜๊ณ  ๊ทธ ํƒ€์ž…์— ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์„ ์–ธํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.

 

๋™์ผํ•œ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ๋ จ์˜ ๊ฐ์ฒด๋Š” ๋™์ผํ•œ ํƒ€์ž…์— ์†ํ•œ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.

-> ๊ฐ™์€ ํƒ€์ž…์— ์†ํ•œ ๊ฐ์ฒด๋Š” ํ–‰๋™๋งŒ ๋™์ผํ•˜๋‹ค๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ, ๋™์ผํ•œ ํ–‰๋™ = ๋™์ผํ•œ ์ฑ…์ž„ = ๋™์ผํ•œ ๋ฉ”์„ธ์ง€

-> ๋™์ผํ•œ ํƒ€์ž…์— ์†ํ•œ ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ ํ‘œํ˜„ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋”๋ผ๋„ ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ์ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

     ๋‹ค๋งŒ ๋‚ด๋ถ€์˜ ํ‘œํ˜„ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ์„œ๋กœ ๋‹ค๋ฅผ ์ˆ˜๋ฐ–์— ์—†๋‹ค.

-> ์ด๊ฒƒ์€ ๋‹คํ˜•์„ฑ์— ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.

     (๋‹คํ˜•์„ฑ : ๋™์ผํ•œ ์š”์ฒญ์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ) -> ๋‹คํ˜•์ ์ธ ๊ฐ์ฒด๋“ค์€ ๋™์ผํ•œ ํƒ€์ž…(๋˜๋Š” ํƒ€์ž… ๊ณ„์ธต)์— ์†ํ•œ๋‹ค.

 

ํ›Œ๋ฅญํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„๋Š” ์™ธ๋ถ€์— ํ–‰๋™๋งŒ์„ ์ œ๊ณตํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋Š” ํ–‰๋™ ๋’ค๋กœ ๊ฐ์ถฐ์•ผ ํ•œ๋‹ค. -> ์บก์Аํ™” 

-> ๊ณต์šฉ ์ธํ„ฐํŽ˜์ด์Šค ๋’ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์บก์Аํ™”ํ•˜๋Š” ์˜ค๋ž˜๋œ ๊ฒฉ์–ธ์€ ๊ฐ์ฒด๋ฅผ ํ–‰๋™์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด ์ง€์ผœ์•ผํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์›์น™์ด๋‹ค.

 

ํ–‰๋™์— ๋”ฐ๋ผ ๊ฐ์ฒด๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๊ฐ€ ์™ธ๋ถ€์— ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ํ–‰๋™์„ ๋จผ์ € ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด๊ฐ€ ์™ธ๋ถ€์— ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ์ฑ…์ž„์„ ๋จผ์ € ๊ฒฐ์ •ํ•˜๊ณ  ๊ทธ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜์ค‘์— ๊ฒฐ์ •ํ•œ ํ›„, ๋ฐ์ดํ„ฐ๋ฅผ ์ฑ…์•”์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์™ธ๋ถ€ ์ธํ„ฐํŽ˜์ด์Šค ๋’ค๋กœ ์บก์Аํ™”ํ•ด์•ผ ํ•œ๋‹ค.

์ฑ…์ž„-์ฃผ๋„ ์„ค๊ณ„(Responsibility-Driven Design)๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ๋ฐฉ๋ฒ•์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์ƒ๊ฐํ•˜๋Š” ๋ฐ์ดํ„ฐ-์ฃผ๋„ ์„ค๊ณ„(Data-Driven Design) ๋ฐฉ๋ฒ•์˜ ๋‹จ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋๋‹ค.

 

๊ฐ์ฒด๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ํ–‰๋™์ด๋‹ค.

๋ฐ์ดํ„ฐ๋Š” ๋‹จ์ง€ ํ–‰๋™์„ ๋”ฐ๋ฅผ ๋ฟ์ด๋‹ค.

์ด๊ฒƒ์ด ๊ฐ์ฒด๋ฅผ ๊ฐ์ฒด๋‹ต๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ์›์น™์ด๋‹ค.

 

01. ํƒ€์ž…์˜ ๊ณ„์ธต

์ผ๋ฐ˜ํ™”/ํŠน์ˆ˜ํ™”

์ผ๋ฐ˜์ ์ธ ํƒ€์ž…์ด๋ž€ ํŠน์ˆ˜ํ•œ ํƒ€์ž…์ด ๊ฐ€์ง„ ๋ชจ๋“  ํ–‰๋™๋“ค ์ค‘์—์„œ ์ผ๋ถ€ ํ–‰๋™๋งŒ์„ ๊ฐ€์ง€๋Š” ํƒ€์ž…์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

ํŠน์ˆ˜ํ•œ ํƒ€์ž…์ด์ด๋ž€ ์ผ๋ฐ˜์ ์ธ ํƒ€์ž…์ด ๊ฐ€์ง„ ๋ชจ๋“  ํƒ€์ž…์„ ํฌํ•จํ•˜์ง€๋งŒ ๊ฑฐ๊ธฐ์— ๋”ํ•ด ์ž์‹ ๋งŒ์˜ ํ–‰๋™์„ ์ถ”๊ฐ€ํ•˜๋Š” ํƒ€์ž…์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

 

์Šˆํผํƒ€์ž…/์„œ๋ธŒํƒ€์ž…

์ผ๋ฐ˜ํ™”/ํŠน์ˆ˜ํ™” ๊ด€๊ณ„๋Š” ์ข€ ๋” ์ผ๋ฐ˜์ ์ธ ํ•œ ํƒ€์ž…๊ณผ ์ข€ ๋” ํŠน์ˆ˜ํ•œ ํ•œ ํƒ€์ž… ๊ฐ„์˜ ๊ด€๊ณ„๋‹ค.

์ด ๋•Œ ์ข€ ๋” ์ผ๋ฐ˜์ ์ธ ํƒ€์ž…์„ ์Šˆํผํƒ€์ž…(Supertype)์ด๋ผ๊ณ  ํ•˜๊ณ  ์ข€ ๋” ํŠน์ˆ˜ํ•œ ํƒ€์ž…์„ ์„œ๋ธŒํƒ€์ž…(Subtype)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

์Šˆํผํƒ€์ž…๊ณผ ์„œ๋ธŒํƒ€์ž…์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋‘ ํƒ€์ž… ๊ฐ„์˜ ๊ด€๊ณ„๊ฐ€ ํ–‰๋™์— ์˜ํ•ด ๊ฒฐ์ •๋œ๋‹ค.

-> ์–ด๋–ค ํƒ€์ž…์ด ๋‹ค๋ฅธ ํƒ€์ž…์˜ ์„œ๋ธŒํƒ€์ž…์ด ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ–‰์œ„์  ํ˜ธํ™˜์„ฑ์„ ๋งŒ์กฑ์‹œ์ผœ์•ผ ํ•œ๋‹ค.

-> ์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ธŒํƒ€์ž…์€ ์Šˆํผํƒ€์ž…์˜ ํ–‰์œ„์™€ ํ˜ธํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ธŒํƒ€์ž…์€ ์Šˆํผํƒ€์ž…์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

02. ์ •์  ๋ชจ๋ธ

์™œ ํƒ€์ž…์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€? ๊ฐ์ฒด์ง€ํ–ฅ์€ ๊ฐ์ฒด๋ฅผ ์ง€ํ–ฅํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๊ฐ์ฒด๋งŒ ๋‹ค๋ฃจ๋ฉด ๋˜์ง€ ์•Š๋Š”๊ฐ€?

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

 

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

 

โœ” ํƒ€์ž…์€ ์ถ”์ƒํ™”๋‹ค.

    ํƒ€์ž…์„ ์ด์šฉํ•˜๋ฉด ๊ฐ์ฒด์˜ ๋™์ ์ธ ํŠน์„ฑ์„ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

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

 

โœ” ๊ฐ์ฒด๋ฅผ ์ƒ๊ฐํ•  ๋•Œ, ์šฐ๋ฆฌ๋Š” ๋‘ ๊ฐ€์ง€ ๋ชจ๋ธ์„ ๋™์‹œ์— ๊ณ ๋ คํ•˜๊ณ  ์žˆ๋‹ค.

 

    1. ๊ฐ์ฒด๊ฐ€ ํŠน์ • ์‹œ์ ์— ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๋А๋ƒ?

       โ†’ ์ด๋ฅผ ๊ฐ์ฒด์˜ ์Šค๋ƒ…์ƒท(snapshot)์ด๋ผ๊ณ  ํ•œ๋‹ค.

       โ†’ ๊ฐ์ฒด์ง€ํ–ฅ ๋ชจ๋ธ๋ง์„ ์œ„ํ•œ ํ‘œ์ค€ ์–ธ์–ด(UML)์—์„œ ์Šค๋ƒ…์ƒท์€ ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ(object diagram)์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.

     ์Šค๋ƒ…์ƒท์ฒ˜๋Ÿผ ์‹ค์ œ๋กœ ๊ฐ์ฒด๊ฐ€ ์‚ด์•„ ์›€์ง์ด๋Š” ๋™์•ˆ ์ƒํƒœ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ํ–‰๋™ํ•˜๋Š”์ง€๋ฅผ ํฌ์ฐฉํ•˜๋Š” ๊ฒƒ์„ ๋™์  ๋ชจ๋ธ(dynamic model)๋ผ๊ณ  ํ•œ๋‹ค.

 

     2. ๊ฐ์ฒด๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ƒํƒœ์™€ ๋ชจ๋“  ํ–‰๋™์„ ์‹œ๊ฐ„์— ๋…๋ฆฝ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ

        โ†’ ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฐ ๋ชจ๋ธ์„ ํƒ€์ž… ๋ชจ๋ธ(type diagram)์ด๋ผ๊ณ  ํ•œ๋‹ค.

      ์ด ๋ชจ๋ธ์€ ๋™์ ์œผ๋กœ ๋ณ€ํ•˜๋Š” ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๊ฐ€ ์†ํ•œ ํƒ€์ž…์˜ ์ •์ ์ธ ๋ชจ์Šต์„ ํ‘œํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •์  ๋ชจ๋ธ(static model)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

* ๊ฐ์ฒด์ง€ํ–ฅ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด ๊ด€์ ์˜ ๋™์  ๋ชจ๋ธ๊ณผ ๊ฐ์ฒด๋ฅผ ์ถ”์ƒํ™”ํ•œ ํƒ€์ž… ๊ด€์ ์˜ ์ •์  ๋ชจ๋ธ์„ ์ ์ ˆํžˆ ํ˜ผ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ด์šฉํ•ด ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‹œ์ ์—๋Š” ์‹œ์Šคํ…œ์„ ์ •์ ์ธ ๊ด€์ ์—์„œ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•ด ๊ฐ์ฒด์˜ ์ƒํƒœ ๋ณ€๊ฒฝ์„ ์ถ”์ ํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๋™์•ˆ์—๋Š” ๊ฐ์ฒด์˜ ๋™์ ์ธ ๋ชจ๋ธ์„ ํƒํ—˜ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

โœ” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์ •์ ์ธ ๋ชจ๋ธ์€ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„๋œ๋‹ค.

    ๋”ฐ๋ผ์„œ ํƒ€์ž…์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฐ€์žฅ ๋ณดํŽธ์ ์ธ ๋ฐฉ๋ฒ•์€ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

    - ํƒ€์ž… : ๊ฐ์ฒด๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋…

    - ํด๋ž˜์Šค : ๋‹จ์ง€ ํƒ€์ž…์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ตฌํ˜„ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ผ ๋ฟ

    (์‹ค์ œ๋กœ ์ž๋ฐ”์ŠคํŠธ๋ฆฝํŠธ์™€ ๊ฐ™์€ ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด์—๋Š” ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.)


โญ  ๊ฒฐ๊ตญ ๊ฐ์ฒด์ง€ํ–ฅ์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋™์ ์œผ๋กœ ๋ณ€ํ•˜๋Š” ๊ฐ์ฒด์˜ '์ƒํƒœ'์™€ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” 'ํ–‰์œ„'์ด๋‹ค. โญ

โญ  ํด๋ž˜์Šค๋Š” ํƒ€์ž…์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ตฌํ˜„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ๊ธฐ์–ตํ•˜์ž. โญ