🧐 OOP

객체지ν–₯의 사싀과 μ˜€ν•΄ 1 · 2μž₯

taeeekki 2022. 8. 19. 20:19

ν•΄λ‹Ή 책을 κ°€λ³κ²Œ μ½μœΌλ©΄μ„œ 생각해 λ³΄λŠ” μ‹œκ°„μ„ 갖도둝 ν•©λ‹ˆλ‹€.

 

1, 2μž₯을 μ½μœΌλ©΄μ„œ μ†”μ§νžˆ λ“€μ—ˆλ˜ 생각은 μž¬λ―ΈμžˆλŠ”λ° 아직은 μ™„μ „νžˆ 와 λ‹Ώμ§€ μ•ŠλŠ”λ‹€λŠ” μƒκ°μ΄μ—ˆλ‹€. 책을 μ½μœΌλ©΄μ„œ κ³„μ†ν•΄μ„œ λ“œλŠ” 생각은 이λ₯Ό μ–΄λ–»κ²Œ μ½”λ“œμ— 잘 λ…Ήμ—¬λ‚Ό 수 μžˆμ„κΉŒλΌλŠ” μƒκ°μ΄μ—ˆλŠ”λ° 사싀 λ„ˆλ¬΄ μš•μ‹¬μΈ 것 같기도 ν•˜λ‹€. μ±… ν•œ 번 μ½λŠ”λ‹€κ³  적용이 μ‰½κ²Œ λœλ‹€λ©΄ ν”„λ‘œκ·Έλž˜λ°μ΄ λ„ˆλ¬΄ μ‰¬μšΈν…Œλ‹ˆκΉŒ 말이닀. κ·Έλž˜μ„œ κ·Έλƒ₯ ꡐ양 μ±… ν•œ ꢌ μ½λŠ”λ‹€λŠ” μƒκ°μœΌλ‘œ κ°€λ³κ²Œ μ ‘κ·Όν–ˆλ‹€.

 

1, 2μž₯μ—μ„œ 개인적으둜 μ€‘μš”ν•˜λ‹€κ³  느꼈던 점은 μš©μ–΄μ— λŒ€ν•œ 이해λ₯Ό μ–΄λŠ 정도 ν•΄μ•Ό ν•œλ‹€λŠ” μ μ΄μ—ˆλ‹€. μ—­ν• , μ±…μž„, ν˜‘λ ₯, λ©”μ‹œμ§€, μƒνƒœ, 행동 λ“± 정말 λ‹€μ–‘ν•œ μš©μ–΄κ°€ λ“±μž₯ν•˜λŠ”λ° 이것을 잘 μ΄ν•΄ν•˜κ³  우리의 ν˜„μž¬ 상황에 잘 λΉ—λŒ€μ–΄ μƒκ°ν•˜λŠ” 것이 μ€‘μš”ν•΄λ³΄μ˜€λ‹€.

객체지ν–₯의 핡심은 ν΄λž˜μŠ€κ°€ μ•„λ‹ˆλ‹€. 핡심은 μ μ ˆν•œ μ±…μž„μ„ μˆ˜ν–‰ν•˜λŠ” μ—­ν•  κ°„μ˜ μœ μ—°ν•˜κ³  κ²¬κ³ ν•œ ν˜‘λ ₯ 관계λ₯Ό κ΅¬μΆ•ν•˜λŠ” 것이닀. ~ (μ€‘λž΅) ~ 클래슀의 ꡬ쑰와 λ©”μ„œλ“œκ°€ μ•„λ‹ˆλΌ 객체의 μ—­ν• , μ±…μž„, ν˜‘λ ₯에 μ§‘μ€‘ν•˜λΌ.

객체지ν–₯을 클래슀λ₯Ό μ€‘μ‹¬μœΌλ‘œ 바라보지 말고, 각각의 μ—­ν• κ³Ό μ±…μž„ 그리고 ν˜‘λ ₯ 관계에 μ§‘μ€‘ν•˜λΌλŠ” 뢀뢄이 μΈμƒμ μ΄μ—ˆλ‹€. μš°λ¦¬λŠ” 항상 μ½”λ“œλ₯Ό λŒ€ν•  λ•Œ 클래슀, ꡬ쑰체 등등을 μ–΄λ–»κ²Œ λ§Œλ“€μ§€λ§Œ κ³ λ―Όν•˜μ§€ κ·Έ 객체의 역할에 λŒ€ν•΄ 깊게 κ³ λ―Όν•œ 적은 μ—†λ˜ 것 κ°™λ‹€. μ—­ν• ,μ±…μž„,ν˜‘λ ₯에 λŒ€ν•΄μ„œ μ΄ν•΄ν•˜λŠ” 것이 객체지ν–₯의 μ΄ν•΄μ˜ μ‹œμž‘μ΄λΌλŠ” 생각이 λ“€μ—ˆλ‹€.

 


 

그리고 μƒνƒœμ™€ 행동에 λŒ€ν•œ ν‘œν˜„μ΄ μ—¬λŸ¬ 번 λ“±μž₯ν–ˆλŠ”λ° 개인적으둜 μ΄ν•΄ν•œ κ²ƒμœΌλ‘œλŠ” μƒνƒœλž€ μ–΄λ–€ λ³€ν™”ν•˜λŠ” λ‚΄μš©μΈ 것 κ°™κ³ , ν–‰λ™μ΄λž€ λ³€ν™”λ₯Ό μΌμœΌν‚€λŠ” μ–΄λ– ν•œ λ™μž‘ λ˜λŠ” μˆ˜λ‹¨μΈ 것 κ°™λ‹€. κ°„λ‹¨νžˆ λŒ€μž…ν•΄λ³΄λ©΄ μƒνƒœλŠ” ν”„λ‘œνΌν‹°, λ˜λ‹€λ₯Έ 객체, λ‹€λ₯Έ 객체λ₯Ό μ—°κ²°ν•˜λŠ” 링크가 될 수 μžˆμ„ 것 κ°™κ³  행동은 λ³€ν™”λ₯Ό μΌμœΌν‚€λŠ” λ©”μ„œλ“œλΌκ³  λ³Ό 수 μžˆμ„ 것 κ°™λ‹€.

μƒνƒœλ₯Ό 외뢀에 λ…ΈμΆœμ‹œν‚€μ§€ μ•Šκ³  행동을 ν†΅ν•΄μ„œ μ ‘κ·Όν•˜λŠ” 것이 κ³§ μΊ‘μŠν™”μ΄κ³ , 객체의 μžμœ¨μ„±μ„ λ†’μ΄λŠ” μž‘μ—…μ΄λΌκ³  ν•œλ‹€. κ·Έλ™μ•ˆ 객체 μ•ˆμ˜ ν”„λ‘œνΌν‹° λ˜λŠ” μƒνƒœμ— λ„ˆλ¬΄ μ§μ ‘μ μœΌλ‘œ μ ‘κ·Όν•˜κ³  μžˆμ§€ μ•Šμ•˜λ‚˜λΌλŠ” 생각도 λ“€μ—ˆλ‹€.

 


 

'κ°’κ³Ό κ°μ²΄λŠ” 동일성, λ™λ“±μ„±μ˜ 차이가 μžˆλ‹€. 값은 였직 μƒνƒœλ§Œμ„ μ΄μš©ν•΄ 동등성을 νŒλ‹¨ν•˜κΈ° λ•Œλ¬Έμ— μΈμŠ€ν„΄μŠ€λ₯Ό κ΅¬λ³„ν•˜κΈ° μœ„ν•œ λ³„λ„μ˜ μ‹λ³„μžλ₯Ό ν•„μš”λ‘œ ν•˜μ§€ μ•ŠλŠ”λ‹€.' - 이 λΆ€λΆ„μ—μ„œ λ­”κ°€ equatableκ³Ό identifiable ν”„λ‘œν† μ½œμ΄ λ– μ˜¬λžλ‹€.

 


 

'μƒνƒœλ₯Ό λ¨Όμ € κ²°μ •ν•˜κ³  행동을 λ‚˜μ€‘μ— κ²°μ •ν•˜λŠ” 방법은 섀계에 λ‚˜μœ 영ν–₯을 λΌμΉœλ‹€.''μ–΄λ–€ μ±…μž„μ΄ ν•„μš”ν•œκ°€λ₯Ό κ²°μ •ν•˜λŠ” 과정이 전체 섀계λ₯Ό 주도해야 ν•œλ‹€.' - 아직 이 말이 ν™• μ™€λ‹Ώμ§€λŠ” μ•ŠλŠ”λ‹€. μ’€ 더 찾아보아야 ν•  것 κ°™λ‹€.

 

 

loc sentence
30p 객체지ν–₯ μ„€κ³„λΌλŠ” μ˜ˆμˆ μ€ μ μ ˆν•œ κ°μ²΄μ—κ²Œ μ μ ˆν•œ μ±…μž„μ„ ν• λ‹Ήν•˜λŠ” κ²ƒμ—μ„œ μ‹œμž‘λœλ‹€.
31p 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ— κ²½ν—˜μ΄ λ§Žμ€ μ‚¬λžŒλ“€μ‘°μ°¨ μ—­ν• μ˜ μ€‘μš”μ„±μ„ κ°„κ³Όν•˜κ³€ ν•œλ‹€. 역할은 μœ μ—°ν•˜κ³  μž¬μ‚¬μš© κ°€λŠ₯ν•œ ν˜‘λ ₯ 관계λ₯Ό κ΅¬μΆ•ν•˜λŠ” 데 μ€‘μš”ν•œ 섀계 μš”μ†Œλ‹€.
33p 객체의 내뢀와 μ™ΈλΆ€λ₯Ό λͺ…ν™•ν•˜κ²Œ κ΅¬λΆ„ν•˜λŠ” κ²ƒμœΌλ‘œλΆ€ν„° λ‚˜μ˜¨λ‹€. 객체의 사적인 뢀뢄은 객체 슀슀둜 κ΄€λ¦¬ν•˜κ³  μ™ΈλΆ€μ—μ„œ 일체 κ°„μ„­ν•  수 없도둝 차단해야 ν•˜λ©°, 객체의 μ™ΈλΆ€μ—μ„œλŠ” 접근이 ν—ˆλ½λœ μˆ˜λ‹¨μ„ ν†΅ν•΄μ„œλ§Œ 객체와 μ˜μ‚¬μ†Œν†΅ν•΄μ•Ό ν•œλ‹€. κ°μ²΄λŠ” λ‹€λ₯Έ 객체가 무엇을 μˆ˜ν–‰ν•˜λŠ”μ§€λŠ” μ•Œ 수 μžˆμ§€λ§Œ μ–΄λ–»κ²Œ μˆ˜ν–‰ν•˜λŠ”μ§€μ— λŒ€ν•΄μ„œλŠ” μ•Œ 수 μ—†λ‹€.
34p 객체지ν–₯의 μ„Έκ³„μ—μ„œλŠ” 였직 ν•œ κ°€μ§€ μ˜μ‚¬μ†Œν†΅ μˆ˜λ‹¨λ§Œμ΄ μ‘΄μž¬ν•œλ‹€. 이λ₯Ό λ©”μ‹œμ§€λΌκ³  ν•œλ‹€. ν•œ 객체가 λ‹€λ₯Έ κ°μ²΄μ—κ²Œ μš”μ²­ν•˜λŠ” 것을 λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•œλ‹€κ³  λ§ν•˜κ³  λ‹€λ₯Έ κ°μ²΄λ‘œλΆ€ν„° μš”μ²­μ„ λ°›λŠ” 것을 λ©”μ‹œμ§€λ₯Ό μˆ˜μ‹ ν•œλ‹€κ³  λ§ν•œλ‹€.
34~35p κ°μ²΄λŠ” λ‹€λ₯Έ 객체와 ν˜‘λ ₯ν•˜κΈ° μœ„ν•΄ λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•œλ‹€. μˆ˜μ‹ μžλŠ” λ¨Όμ € μˆ˜μ‹ λœ λ©”μ‹œμ§€λ₯Ό 이해할 수 μžˆλŠ”μ§€ μ—¬λΆ€λ₯Ό νŒλ‹¨ν•œ ν›„ 미리 μ •ν•΄μ§„ μžμ‹ λ§Œμ˜ 방법에 따라 λ©”μ‹œμ§€λ₯Ό μ²˜λ¦¬ν•œλ‹€. λ©”μ‹œμ§€λ₯Ό μ²˜λ¦¬ν•˜λŠ” 방법을 λ©”μ„œλ“œλΌκ³  λΆ€λ₯Έλ‹€. μ™ΈλΆ€μ˜ μš”μ²­μ΄ 무엇인지λ₯Ό ν‘œν˜„ν•˜λŠ” λ©”μ‹œμ§€μ™€ μš”μ²­μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ κ΅¬μ²΄μ μΈ 방법인 λ©”μ„œλ“œλ₯Ό λΆ„λ¦¬ν•˜λŠ” 것은 객체의 μžμœ¨μ„±μ„ λ†’μ΄λŠ” 핡심 λ§€μ»€λ‹ˆμ¦˜μ΄λ‹€. 이것은 μΊ‘μŠν™”λΌλŠ” κ°œλ…κ³Όλ„ 깊이 관련돼 μžˆλ‹€.
47p κ°μ²΄λž€ 식별 κ°€λŠ₯ν•œ 개체 λ˜λŠ” 사물이닀. κ°μ²΄λŠ” μžλ™μ°¨μ²˜λŸΌ 만질 수 μžˆλŠ” ꡬ체적인 사물일 μˆ˜λ„ 있고, μ‹œκ°„μ²˜λŸΌ 좔상적인 κ°œλ…μΌ μˆ˜λ„ μžˆλ‹€. κ°μ²΄λŠ” ꡬ별 κ°€λŠ₯ν•œ μ‹λ³„μž, νŠΉμ§•μ μΈ 행동, λ³€κ²½ κ°€λŠ₯ν•œ μƒνƒœλ₯Ό κ°€μ§„λ‹€. μ†Œν”„νŠΈμ›¨μ–΄ μ•ˆμ—μ„œ κ°μ²΄λŠ” μ €μž₯된 μƒνƒœμ™€ μ‹€ν–‰ κ°€λŠ₯ν•œ μ½”λ“œλ₯Ό 톡해 κ΅¬ν˜„λœλ‹€.
51p 객체지ν–₯의 μ„Έκ³„μ—μ„œ κ°μ²΄λŠ” λ‹€λ₯Έ 객체의 μƒνƒœμ— μ§μ ‘μ μœΌλ‘œ μ ‘κ·Όν•  μˆ˜λ„, μƒνƒœλ₯Ό λ³€κ²½ν•  μˆ˜λ„ μ—†λ‹€. 자율적인 κ°μ²΄λŠ” 슀슀둜 μžμ‹ μ˜ μƒνƒœλ₯Ό μ±…μž„μ Έμ•Ό ν•œλ‹€. μ™ΈλΆ€μ˜ 객체가 μ§μ ‘μ μœΌλ‘œ 객체의 μƒνƒœλ₯Ό 주무λ₯Ό 수 μ—†λ‹€λ©΄ κ°„μ ‘μ μœΌλ‘œ 객체의 μƒνƒœλ₯Ό λ³€κ²½ν•˜κ±°λ‚˜ μ‘°νšŒν•  수 μžˆλŠ” 방법이 ν•„μš”ν•˜λ‹€.
56p κ°μ²΄λŠ” μƒνƒœλ₯Ό 캒슐 μ•ˆμ— 감좰둔 채 μ™ΈλΆ€λ‘œ λ…ΈμΆœν•˜μ§€ μ•ŠλŠ”λ‹€. 객체가 외뢀에 λ…ΈμΆœν•˜λŠ” 것은 행동뿐이며, μ™ΈλΆ€μ—μ„œ 객체에 μ ‘κ·Όν•  수 μžˆλŠ” μœ μΌν•œ 방법 μ—­μ‹œ 행동뿐이닀. μƒνƒœλ₯Ό 외뢀에 λ…ΈμΆœμ‹œν‚€μ§€ μ•Šκ³  행동을 κ²½κ³„λ‘œ μΊ‘μŠν™”ν•˜λŠ” 것은 결과적으둜 객체의 μžμœ¨μ„±μ„ 높인닀.
57p 객체가 식별 κ°€λŠ₯ν•˜λ‹€λŠ” 것은 객체λ₯Ό ꡬ뢄할 수 μžˆλŠ” νŠΉμ •ν•œ ν”„λ‘œνΌν‹°κ°€ 객체 μ•ˆμ— μ‘΄μž¬ν•œλ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€. 이 ν”„λ‘œνΌν‹°λ₯Ό μ‹λ³„μžλΌκ³  ν•œλ‹€.
64p μƒνƒœλ₯Ό λ¨Όμ € κ²°μ •ν•˜κ³  행동을 λ‚˜μ€‘μ— κ²°μ •ν•˜λŠ” 방법은 섀계에 λ‚˜μœ 영ν–₯을 λΌμΉœλ‹€.
65p ν˜‘λ ₯ μ•ˆμ—μ„œ 객체의 행동은 κ²°κ΅­ 객체가 ν˜‘λ ₯에 μ°Έμ—¬ν•˜λ©΄μ„œ μ™„μˆ˜ν•΄μ•Ό ν•˜λŠ” μ±…μž„μ„ μ˜λ―Έν•œλ‹€. μ–΄λ–€ μ±…μž„μ΄ ν•„μš”ν•œκ°€λ₯Ό κ²°μ •ν•˜λŠ” 과정이 전체 섀계λ₯Ό 주도해야 ν•œλ‹€. (RDD) → 응집도 λ†’κ³  μž¬μ‚¬μš© κ°€λŠ₯ν•œ 객체λ₯Ό λ§Œλ“€ 수 있게 ν•œλ‹€.