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

02 ์ด์ƒํ•œ ๋‚˜๋ผ์˜ ๊ฐ์ฒด (1)

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

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

01 ๊ฐ์ฒด ์ง€ํ–ฅ๊ณผ ์ธ์ง€ ๋Šฅ๋ ฅ

์ธ๊ฐ„์€ ๋ณธ๋Šฅ์ ์œผ๋กœ ์„ธ์ƒ์„ ๋…๋ฆฝ์ ์ด๊ณ  ์‹๋ณ„ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ฐ”๋ผ๋ณธ๋‹ค.

์„ธ์ƒ์„ ๋” ์ž‘์€ ๊ฐ์ฒด๋กœ ๋ถ„ํ•ดํ•˜๋Š” ๊ฒƒ : ๋ณธ์งˆ์ ์œผ๋กœ ์„ธ์ƒ์ด ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋ณต์žก์„ฑ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•œ ์ธ๊ฐ„์˜ ์ž‘์€ ๋ชธ๋ถ€๋ฆผ

์ธ๊ฐ„์€ ์ข€ ๋” ๋‹จ์ˆœํ•œ ๊ฐ์ฒด๋“ค๋กœ ์ฃผ๋ณ€์„ ๋ถ„ํ•ดํ•จ์œผ๋กœ์จ ์ž์‹ ์ด ๋ชธ๋‹ด๊ณ  ์žˆ๋Š” ์„ธ์ƒ์„ ์ดํ•ดํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•œ๋‹ค.

์ฆ‰, ๊ฐ์ฒด๋ž€? ์ธ๊ฐ„์ด ๋ถ„๋ช…ํ•˜๊ฒŒ ์ธ์ง€ํ•˜๊ณ  ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌผ๋ฆฌ์ ์ธ ๋˜๋Š” ๊ฐœ๋…์ ์ธ ๊ฒฝ๊ณ„๋ฅผ ์ง€๋‹Œ ์–ด๋–ค ๊ฒƒ์ด๋‹ค.

 

๊ฐ์ฒด์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ๋ชฉ์  : ํ˜„์‹ค ์„ธ๊ณ„๋ฅผ ๋ชจ๋ฐฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ˜„์‹ค ์„ธ๊ณ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์šด ์„ธ๊ณ„๋ฅผ ์ฐฝ์กฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 


02  ๊ฐ์ฒด, ๊ทธ๋ฆฌ๊ณ  ์ด์ƒํ•œ ๋‚˜๋ผ

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

03  ๊ฐ์ฒด, ๊ทธ๋ฆฌ๊ณ  ์†Œํ”„ํŠธ์›จ์–ด ๋‚˜๋ผ

๊ฐ์ฒด์˜ ๋‹ค์–‘ํ•œ ํŠน์„ฑ์„ ํšจ๊ณผ์ ์œผ๋กœ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒํƒœ(state), ํ–‰๋™(behavior), ์‹๋ณ„์ž(identity)๋ฅผ ์ง€๋‹Œ ์‹ค์ฒด๋กœ ๋ณด๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ๊ณผ์ ์ด๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด ์•ˆ์— ์ฐฝ์กฐ๋˜๋Š” ๊ฐ์ฒด ์—ญ์‹œ ์ƒํƒœ, ํ–‰๋™, ์‹๋ณ„์ž๋ฅผ ์ง€๋‹Œ๋‹ค.

๊ฐ์ฒด๋ž€ ์‹๋ณ„ ๊ฐ€๋Šฅํ•œ ๊ฐœ์ฒด ๋˜๋Š” ์‚ฌ๋ฌผ์ด๋‹ค. ๊ฐ์ฒด๋Š” ์ž๋™์ฐจ์ฒ˜๋Ÿผ ๋งŒ์งˆ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์ฒด์ ์ธ ์‚ฌ๋ฌผ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์‹œ๊ฐ„์ฒ˜๋Ÿผ ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ฐ์ฒด๋Š” ๊ตฌ๋ณ„ ๊ฐ€๋Šฅํ•œ ์‹๋ณ„์ž, ํŠน์ง•์ ์ธ ํ–‰๋™, ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ์•ˆ์—์„œ ๊ฐ์ฒด๋Š” ์ €์žฅ๋œ ์ƒํƒœ์™€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋œ๋‹ค.

 

03 - 1  ์ƒํƒœ

๋ชจ๋“  ๊ฐ์ฒด์˜ ์ƒํƒœ๋Š” ๋‹จ์ˆœํ•œ ๊ฐ’๊ณผ ๊ฐ์ฒด์˜ ์กฐํ•ฉ์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ด๋•Œ, ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ํŠน์ง•์„ ํ†ตํ‹€์–ด ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ(property)๋ผ๊ณ  ํ•œ๋‹ค. (ex: ์•จ๋ฆฌ์Šค์˜ property -> ํ‚ค, ์œ„์น˜, ์Œ๋ฃŒ)

property๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ณ  ๊ณ ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์— '์ •์ '์ด๋‹ค.

๋ฐ˜๋ฉด, ํ”„๋กœํผํ‹ฐ ๊ฐ’(property value)์€ ์‹œ๊ฐ„์ด ํ๋ฆ„์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์—, '๋™์ '์ด๋‹ค.

 

๊ฐ์ฒด์™€ ๊ฐ์ฒด ์‚ฌ์ด์˜ ์˜๋ฏธ๋ฅผ ์—ฐ๊ฒฐ : ๋งํฌ(link)

-> ๊ฐ์ฒด์™€ ๊ฐ์ฒด ์‚ฌ์ด์—๋Š” ๋งํฌ๊ฐ€ ์กด์žฌํ•ด์•ผ๋งŒ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

-> ์ฆ‰, ๊ฐ์ฒด์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

(๊ฐ์ฒด ๊ฐ„์˜ ์„ ์œผ๋กœ ํ‘œํ˜„๋˜๋Š” ๋งํฌ์™€ ๋‹ฌ๋ฆฌ) ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋‹จ์ˆœํ•œ ๊ฐ’ : ์†์„ฑ(attribute)

-> ์•จ๋ฆฌ์Šค์˜ ํ‚ค์™€ ์œ„์น˜๋Š” ๋‹จ์ˆœํ•œ ๊ฐ’์œผ๋กœ ํ‘œํ˜„๋˜๊ธฐ ๋•Œ๋ฌธ์— ์†์„ฑ์ด๋‹ค.

-> ๊ฐ์ฒด์˜ property๋Š” ๋‹จ์ˆœํ•œ ๊ฐ’์ธ ์†์„ฑ๊ณผ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ๋งํฌ๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์กฐํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒํƒœ๋Š” ํŠน์ • ์‹œ์ ์— ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •๋ณด์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ฐ์ฒด์˜ ๊ตฌ์กฐ์  ํŠน์ง•์„ ํ‘œํ˜„ํ•œ๋‹ค.
๊ฐ์ฒด์˜ ์ƒํƒœ๋Š” ๊ฐ์ฒด์— ์กด์žฌํ•˜๋Š” ์ •์ ์ธ ํ”„๋กœํผํ‹ฐ์™€ ๋™์ ์ธ ํ”„๋กœํผํ‹ฐ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋Š” ๋‹จ์ˆœํ•œ ๊ฐ’๊ณผ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋งํฌ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

03 - 2  ํ–‰๋™

๊ฐ์ฒด๊ฐ€ ์ทจํ•˜๋Š” ํ–‰๋™์€ ๊ฐ์ฒด ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚จ๋‹ค.

๊ฐ์ฒด์˜ ํ–‰๋™์— ์˜ํ•ด ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค๋Š” ๊ฒƒ์€ ํ–‰๋™์ด ๋ถ€์ˆ˜ ํšจ๊ณผ(side effort)๋ฅผ ์ดˆ๋ž˜ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

 

ex )

์•จ๋ฆฌ์Šค๊ฐ€ ์ผ€์ดํฌ๋ฅผ ๋จน๋Š” ํ–‰์œ„ -> ์•จ๋ฆฌ์Šค์˜ ํ‚ค๋ฅผ ์ž‘๊ฒŒ ๋ณ€ํ™”์‹œํ‚ค๊ณ , ์ผ€์ดํฌ์˜ ์–‘์„ ์ค„์ด๋Š” ๋ถ€์ˆ˜ ํšจ๊ณผ๋ฅผ ์•ผ๊ธฐ

์•จ๋ฆฌ์Šค๊ฐ€ ๋ฌธ์„ ํ†ต๊ณผํ•˜๋Š” ํ–‰์œ„ -> ์•จ๋ฆฌ์Šค์˜ ์œ„์น˜๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๋Š” ๋ถ€์ˆ˜ํšจ๊ณผ๋ฅผ ์ดˆ๋ž˜

 

๊ฐ์ฒด์˜ ํ–‰๋™์€ ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค์ง€๋งŒ ํ–‰๋™์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ์ฒด์˜ ์ƒํƒœ์— ์˜์กด์ ์ด๋‹ค.

ex ) ์Œ๋ฃŒ๋ฅผ ๋งˆ์‹  ํ›„์˜ ์•จ๋ฆฌ์Šค์˜ ํ‚ค๋Š” ์Œ๋ฃŒ๋ฅผ ๋งˆ์‹œ์ง€ ์ „์˜ ์•จ๋ฆฌ์Šค์˜ ํ‚ค๋ณด๋‹ค ์ž‘์•„์ ธ์•ผ ํ•œ๋‹ค.

       -> ์Œ๋ฃŒ๋ฅผ ๋งˆ์‹œ๋Š” ํ–‰๋™์˜ ๊ฒฐ๊ณผ๊ฐ€ ์•จ๋ฆฌ์Šค์˜ ํ‚ค์— ์˜์กดํ•œ๋‹ค.

 

์ƒํƒœ์™€ ํ–‰๋™ ์‚ฌ์ด์˜ ๊ด€๊ณ„

1. ๊ฐ์ฒด์˜ ํ–‰๋™์€ ์ƒํƒœ์— ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค. -> ์ƒํ˜ธ์ž‘์šฉ์ด ํ˜„์žฌ์˜ ์ƒํƒœ์— ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์˜์กดํ•˜๋Š”๊ฐ€

2. ๊ฐ์ฒด์˜ ํ–‰๋™์€ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚จ๋‹ค.     -> ์ƒํ˜ธ์ž‘์šฉ์ด ์–ด๋–ป๊ฒŒ ํ˜„์žฌ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š”๊ฐ€

 

๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ํ˜‘๋ ฅํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.

-> ์š”์ฒญ์„ ์ˆ˜์‹ ํ•œ ๊ฐ์ฒด๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ํ–‰๋™ํ•œ๋‹ค.

-> ๋”ฐ๋ผ์„œ, ๊ฐ์ฒด์˜ ํ–‰๋™์€ ๊ฐ์ฒด๊ฐ€ ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

๊ฐ์ฒด์˜ ํ–‰๋™์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฐ๊ณผ

1. ๊ฐ์ฒด ์ž์‹ ์˜ ์ƒํƒœ ๋ณ€๊ฒฝ

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

 

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

 

03 - 3  ์‹๋ณ„์ž

๊ฐ์ฒด๋ž€ ์ธ๊ฐ„์˜ ์ธ์ง€ ๋Šฅ๋ ฅ์„ ์ด์šฉํ•ด ์‹๋ณ„ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๊ณ„๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“  ์‚ฌ๋ฌผ์„ ์˜๋ฏธํ•œ๋‹ค.

-> ๊ฐ์ฒด๊ฐ€ ์‹๋ณ„ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์€ ๊ฐ์ฒด๋ฅผ ์„œ๋กœ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ •ํ•œ property๊ฐ€ ๊ฐ์ฒด ์•ˆ์— ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

-> ์ด property๋ฅผ ์‹๋ณ„์ž๋ผ๊ณ  ํ•œ๋‹ค.

-> ๋ชจ๋“  ๊ฐ์ฒด๋Š” ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ง€๋ฉฐ ์‹๋ณ„์ž๋ฅผ ์ด์šฉํ•ด ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ฐ’๊ณผ ๊ฐ์ฒด์˜ ์ฐจ์ด์ 

1. ๊ฐ’ : ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค.

2. ๊ฐ์ฒด : ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ง„๋‹ค.

 

๊ฐ’ value

์ˆซ์ž, ๋ฌธ์ž์—ด, ๋‚ ์งœ, ์‹œ๊ฐ„, ๊ธˆ์•ก ๋“ฑ๊ณผ ๊ฐ™์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์–‘์„ ๋ชจ๋ธ๋งํ•œ๋‹ค.

๊ฐ’์˜ ์ƒํƒœ๋Š” ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๋ณ€ ์ƒํƒœ(immutable state)๋ผ๊ณ  ํ•œ๋‹ค.

 

๊ฐ’์˜ ๊ฒฝ์šฐ, ๋‘ ์ธ์Šคํ„ด์Šค์˜ ์ƒํƒœ๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋‘ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค.

-> ์ƒํƒœ๋ฅผ ์ด์šฉํ•ด ๋‘ ๊ฐ’์ด ๊ฐ™์€์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ์งˆ์„ ๋™๋“ฑ์„ฑ(equality)์ด๋ผ๊ณ  ํ•œ๋‹ค.

-> ์ƒํƒœ๋ฅผ ์ด์šฉํ•ด ๋™๋“ฑ์„ฑ์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ? ๊ฐ’์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ

-> ๊ฐ’์€ ์˜ค์ง ์ƒํƒœ๋งŒ์„ ์ด์šฉํ•ด ๋™๋“ฑ์„ฑ์„ ํŒ๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ์Šคํ„ด์Šค๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๋ณ„๋„์˜ ์‹๋ณ„์ž๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

๊ฐ์ฒด object

์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋˜๋Š” ์ƒํƒœ๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ํ–‰๋™์„ ํ†ตํ•ด ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค. -> ๊ฐ€๋ณ€ ์ƒํƒœ(mutable state)

 

ํƒ€์ž…์ด ๊ฐ™์€ ๋‘ ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ์™„์ „ํžˆ ๋˜‘๊ฐ™๋”๋ผ๋„ ๋‘ ๊ฐ์ฒด๋Š” ๋…๋ฆฝ์ ์ธ ๋ณ„๊ฐœ์˜ ๊ฐ์ฒด๋กœ ๋‹ค๋ค„์•ผ ํ•œ๋‹ค.

ex ) ์ด๋ฆ„์ด ์•จ๋ฆฌ์Šค์ด๊ณ  ํ‚ค๊ฐ€ ๋™์ผํ•œ ๋‘ ์‚ฌ๋žŒ์ด ํ•จ๊ป˜ ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๋‘ ์‚ฌ๋žŒ์€ ์™„์ „ํžˆ ๋ณ„๊ฐœ์˜ ์ธ๊ฒฉ์ฒด์ด๋‹ค.

 

๋‘ ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋‹ค๋ฅด๋”๋ผ๋„ ์‹๋ณ„์ž๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๋‘ ๊ฐ์ฒด๋ฅผ ๊ฐ™์€ ๊ฐ์ฒด๋กœ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

-> ์‹๋ณ„์ž๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€์ง€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ์งˆ : ๋™์ผ์„ฑ(identical)

 

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

 

- ์ฐธ์กฐ ๊ฐ์ฒด(reference object), ์—”ํ‹ฐํ‹ฐ(entity) : ์‹๋ณ„์ž๋ฅผ ์ง€๋‹Œ ์ „ํ†ต์ ์ธ ์˜๋ฏธ์˜ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์šฉ์–ด

- ๊ฐ’ ๊ฐ์ฒด(value object) : ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š” ๊ฐ’์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์šฉ์–ด

 


  • ๊ฐ์ฒด๋Š” ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๋ฉฐ ์ƒํƒœ๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ๊ฒƒ์€ ๊ฐ์ฒด์˜ ํ–‰๋™์ด๋‹ค.
    • ํ–‰๋™์˜ ๊ฒฐ๊ณผ๋Š” ์ƒํƒœ์— ์˜์กด์ ์ด๋ฉฐ ์ƒํƒœ๋ฅผ ์ด์šฉํ•ด ์„œ์ˆ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํ–‰๋™์˜ ์ˆœ์„œ๊ฐ€ ์‹คํ–‰ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.
  • ๊ฐ์ฒด๋Š” ์–ด๋–ค ์ƒํƒœ์— ์žˆ๋”๋ผ๋„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ ๊ฐ€๋Šฅํ•˜๋‹ค.