λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ„μ„œ πŸ“š/πŸ“— 객체지ν–₯의 사싀과 μ˜€ν•΄

2μž₯: μ΄μƒν•œ λ‚˜λΌμ˜ 객체

by dev_writer 2023. 11. 1.

μ„œλ¬Έ

μ•„κΈ°λ“€μ˜ λ§‰λŒ€κΈ° μ‹€ν—˜ > 두 개의 λ§‰λŒ€κΈ°λ₯Ό ν•˜λ‚˜μΈ κ²ƒμ²˜λŸΌ 보이도둝 μ‹€ν—˜

 

μ‚¬λžŒμ€ νƒœμ–΄λ‚œ 지 μ–Όλ§ˆ μ•ˆ 된 μ‹œκΈ°λΆ€ν„° λšœλ ·ν•œ 경계λ₯Ό 가지고 ν•¨κ»˜ ν–‰λ™ν•˜λŠ” 물체λ₯Ό ν•˜λ‚˜μ˜ κ°œλ…μœΌλ‘œ μΈμ§€ν•œλ‹€.


객체지ν–₯κ³Ό 인지 λŠ₯λ ₯

인간은 세상을 λ…λ¦½μ μœΌλ‘œ 식별 κ°€λŠ₯ν•œ 객체의 μ§‘ν•©μœΌλ‘œ 바라보기 λ•Œλ¬Έμ—, 객체지ν–₯ λ˜ν•œ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ νŒ¨λŸ¬λ‹€μž„μ΄λ‹€. 객체지ν–₯은 μΈκ°„μ˜ 기본적인 인지 λŠ₯λ ₯에 κΈ°λ°˜μ„ 두고 있기 λ•Œλ¬Έμ΄λ‹€.

 

인간은 ꡬ체적인 것을 λ„˜μ–΄μ„œμ„œ 좔상적인 것 κΉŒμ§€λ„ 객체둜 인식할 수 μžˆλ‹€.

였늘의 μ£Όλ¬Έ λ‚΄μ—­κ³Ό μ–΄μ œμ˜ μ£Όλ¬Έ 내역을 μ‰½κ²Œ ꡬ뢄할 수 μžˆλ‹€.

 

인간은 μ΅œλŒ€ν•œ 더 λ‹¨μˆœν•œ κ°μ²΄λ“€λ‘œ 주변을 λΆ„ν•΄ν•¨μœΌλ‘œμ¨ 세상을 μ΄ν•΄ν•˜λ €κ³  λ…Έλ ₯ν•œλ‹€. λ”°λΌμ„œ κ°μ²΄λŠ” 인간이 λΆ„λͺ…ν•˜κ²Œ μΈμ§€ν•˜κ³  ꡬ별할 수 μžˆλŠ” 물리적, κ°œλ…μ  경계λ₯Ό μ§€λ‹Œ 것이닀.

 

κ·ΈλŸ¬λ‚˜ 1μž₯: ν˜‘λ ₯ν•˜λŠ” κ°μ²΄λ“€μ˜ κ³΅λ™μ²΄μ—μ„œ μž‘μ„±ν•œ 것 처럼, μ†Œν”„νŠΈμ›¨μ–΄ μ„Έμƒμ—μ„œμ˜ κ°μ²΄λŠ” μ‹€μƒν™œμ—μ„œμ˜ 것과 μ˜λ―Έκ°€ λ‹€λ₯Ό 수 μžˆλ‹€. 객체지ν–₯은 μƒˆλ‘œμš΄ 세계λ₯Ό μ°½μ‘°ν•˜λŠ” 것이기 λ•Œλ¬Έμ΄λ‹€.


객체, 그리고 μ΄μƒν•œ λ‚˜λΌ

μ΄μƒν•œ λ‚˜λΌμ˜ μ•¨λ¦¬μŠ€λ₯Ό 객체지ν–₯적으둜 생각해 보자.

μ•¨λ¦¬μŠ€λŠ” μ •μ›μœΌλ‘œ λ“€μ–΄κ°€λŠ” 문에 μžμ‹ μ˜ 크기λ₯Ό λ§žμΆ”κΈ° μœ„ν•΄ μžμ‹ μ˜ ν‚€λ₯Ό μ‘°μ ˆν–ˆλ‹€.

μ•¨λ¦¬μŠ€μ˜ μƒνƒœλŠ” μ•¨λ¦¬μŠ€μ˜ ν‚€λ₯Ό μ˜λ―Έν•œλ‹€.

μ•¨λ¦¬μŠ€λŠ” 'λ§ˆμ…”λΌ' κΈ€μžκ°€ μΈμ‡„λœ 음료λ₯Ό λ¨Ήκ±°λ‚˜ 케이크λ₯Ό λ¨Ήκ±°λ‚˜ λ‹€λ₯Έ 행동을 ν•˜λ©΄μ„œ ν‚€λ₯Ό μ‘°μ ˆν•  수 μžˆλ‹€.

μ•¨λ¦¬μŠ€μ˜ ν‚€ (μƒνƒœ)λ₯Ό λ³€ν™”μ‹œν‚€λŠ” 것은 μ•¨λ¦¬μŠ€μ˜ 행동이닀.

μ•¨λ¦¬μŠ€κ°€ 문을 ν†΅κ³Όν•˜κΈ° μœ„ν•΄μ„œλŠ” μΆ©λΆ„ν•œ ν‚€λ₯Ό 가지고 μžˆμ–΄μ•Ό ν•œλ‹€.

μ–΄λ–€ 행동 (문을 톡과)의 성곡 μ—¬λΆ€λŠ” 이전에 μ–΄λ–€ 행동듀 (ν‚€λ₯Ό μ‘°μ ˆν•˜λŠ” 것)이 λ°œμƒν–ˆλŠ”μ§€μ— 영ν–₯을 λ°›λŠ”λ‹€. 즉, 행동 κ°„μ˜ μˆœμ„œκ°€ μ€‘μš”ν•˜λ‹€.

μ•¨λ¦¬μŠ€κ°€ μ•¨λ¦¬μŠ€λΌλŠ” 사싀은 λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€.

μ•¨λ¦¬μŠ€κ°€ μ–΄λ– ν•œ 행동을 ν•˜λ”λΌλ„ μ•¨λ¦¬μŠ€λŠ” μ•¨λ¦¬μŠ€μ΄λ‹€. 즉, μœ μΌν•˜κ²Œ 식별 κ°€λŠ₯ν•˜λ‹€.

 

객체의 μƒνƒœλ₯Ό κ²°μ •ν•˜λŠ” 것은 ν–‰λ™μ΄μ§€λ§Œ ν–‰λ™μ˜ κ²°κ³Όλ₯Ό κ²°μ •ν•˜λŠ” 것은 μƒνƒœλ‹€.

객체, 그리고 μ†Œν”„νŠΈμ›¨μ–΄ λ‚˜λΌ

κ°μ²΄λŠ” μƒνƒœ, 행동, μ‹λ³„μžλ₯Ό μ§€λ‹Œλ‹€.

μƒνƒœ

ν–‰λ™μ˜ 성곡 μ—¬λΆ€λŠ” 이전에 μ–΄λ–€ 행동듀이 λ°œμƒν–ˆλŠ”μ§€μ— 영ν–₯을 λ°›λŠ”λ‹€. κ·ΈλŸ¬λ‚˜ 과거의 이λ ₯을 λͺ¨λ‘ κΈ°μ–΅ν•˜κ³  μžˆλŠ” 것은 λ³΅μž‘ν•˜λ‹€. λ•Œλ¬Έμ— 이λ₯Ό λ‹¨μˆœν™”ν•˜κΈ° μœ„ν•΄ μƒνƒœλΌλŠ” κ°œλ…μ„ κ³ μ•ˆν–ˆλ‹€.

 

λ‹¨μˆœν•œ 값듀은 객체가 μ•„λ‹ˆλ‹€. 이것듀은 λ‹€λ₯Έ 객체의 νŠΉμ„±μ„ ν‘œν˜„ν•˜λŠ” 데 μ‚¬μš©λ  뿐이닀. μ˜ˆμ‹œλ‘œ μ•¨λ¦¬μŠ€μ˜ ν‚€λŠ” μ•¨λ¦¬μŠ€ 객체의 νŠΉμ„±μ„ ν‘œν˜„ν•˜λŠ” 데 μ‚¬μš©λœλ‹€.

 

가끔은 λ‹¨μˆœν•œ 값이 μ•„λ‹ˆλΌ 객체λ₯Ό μ΄μš©ν•΄ λ‹€λ₯Έ 객체의 νŠΉμ„±μ„ ν‘œν˜„ν•  μˆ˜λ„ μžˆλ‹€. μ•¨λ¦¬μŠ€ 객체가 음료 객체λ₯Ό 가지고 μžˆλŠ”μ§€λ‘œ μ„€λͺ…ν•  수 μžˆκ² λ‹€.

 

λ‹¨μˆœν•œ κ°’ (속성)κ³Ό 객체λ₯Ό μ΄μš©ν•΄ 객체의 μƒνƒœλ₯Ό ν‘œν˜„ν•  수 μžˆλ‹€.

- ν”„λ‘œνΌν‹°λŠ” 객체의 μƒνƒœλ₯Ό κ΅¬μ„±ν•˜λŠ” λͺ¨λ“  νŠΉμ§•μ„ λœ»ν•˜λ©°, 정적이닀. (ex: ν‚€)
- ν”„λ‘œνΌν‹° 값은 각각의 ν”„λ‘œνΌν‹°μ˜ 값을 μ˜λ―Έν•˜λ©°, 동적이닀. (ex: ν‚€μ˜ 수치)
- λ‹€λ₯Έ κ°μ²΄μ™€μ˜ 연결은 링크라고 ν•˜λ©°, 이 링크λ₯Ό ν†΅ν•΄μ„œ λ©”μ‹œμ§€λ₯Ό 주고받을 수 μžˆλ‹€. λ”°λΌμ„œ 링크가 μžˆμ–΄μ•Ό λ‹€λ₯Έ 객체와 ν˜‘λ ₯이 κ°€λŠ₯ν•˜λ‹€.

 

행동

객체가 μ·¨ν•˜λŠ” 행동은 객체 μžμ‹ μ˜ μƒνƒœλ₯Ό λ³€κ²½ν•œλ‹€. > 행동을 ν•  λ•Œ λΆ€μˆ˜ 효과 (side effect)κ°€ λ°œμƒν•œλ‹€.

 

κ°μ²΄λŠ” ν˜‘λ ₯에 μ°Έμ—¬ν•˜κΈ° μœ„ν•΄ μžμ‹ λ§Œμ˜ 방법 (λ©”μ„œλ“œ)으둜 ν–‰λ™ν•œλ‹€κ³  ν•˜μ˜€λ‹€. 결과적으둜 ν˜‘λ ₯에 μ°Έμ—¬ν•˜λ©° μžμ‹ μ˜ μƒνƒœκ°€ λ³€κ²½λœλ‹€. λ•Œλ‘œλŠ” λ‹€λ₯Έ κ°μ²΄μ—κ²Œλ„ μƒνƒœλ₯Ό λ³€κ²½ν•΄ 달라고 μš”μ²­ν•˜κΈ°λ„ ν•œλ‹€.

μ•¨λ¦¬μŠ€κ°€ 음료λ₯Ό λ§ˆμ‹œλŠ” 행동을 ν•  λ•ŒλŠ” 음료 객체의 μ–‘ λ˜ν•œ 쀄어듀어야 ν•œλ‹€.

 

κ·ΈλŸ¬λ‚˜ μš”μ²­μ„ 보낸 κ°μ²΄λŠ” μš”μ²­μ„ 받은 객체의 μƒνƒœκ°€ 변화될지 μ•Œ 수 μ—†λ‹€. μš”μ²­μ„ 받은 κ°μ²΄λŠ” μžμ‹ λ§Œμ˜ λ°©λ²•μœΌλ‘œ μš”μ²­μ„ μ²˜λ¦¬ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€. λ”°λΌμ„œ μš”μ²­λ°›μ€ 객체의 μƒνƒœλŠ” λ³€κ²½λ˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆλ‹€. μ΄λŠ” μžμœ¨μ„±μ„ 보μž₯λ°›μ•„μ•Ό ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

 

μƒνƒœλ₯Ό 외뢀에 λ…ΈμΆœμ‹œν‚€μ§€ μ•Šκ³  행동을 κ²½κ³„λ‘œ μΊ‘μŠν™”ν•˜λŠ” 것은 결과적으둜 객체의 μžμœ¨μ„±μ„ 높이며, μžμœ¨μ„±μ΄ λ†’μ•„μ§ˆμˆ˜λ‘ 객체의 지λŠ₯이 높아진닀. ν˜‘λ ₯에 μ°Έμ—¬ν•˜λŠ” κ°μ²΄λ“€μ˜ 지λŠ₯이 λ†’μ•„μ§ˆμˆ˜λ‘ ν˜‘λ ₯은 μœ μ—°ν•˜κ³  간결해지기 λ§ˆλ ¨μ΄λ‹€.

 

μ‹λ³„μž

μ‹λ³„μžλŠ” 객체가 가지고 μžˆλŠ” ν”„λ‘œνΌν‹° 쀑 λ‹€λ₯Έ 객체와 κ΅¬λ³„λ˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” νŠΉμ •ν•œ ν”„λ‘œνΌν‹°μ΄λ‹€. μ‹λ³„μžλ₯Ό 기반으둜 객체가 같은지λ₯Ό νŒλ‹¨ν•  수 μžˆλŠ” μ„±μ§ˆμ„ 동일성 (identical)이라고 ν•œλ‹€.

μ–΄λ¦° μ‹œμ ˆμ˜ λ‚˜μ™€ ν˜„μž¬μ˜ λ‚˜λŠ” λ™μΌν•œ λ‚˜λ‹€.

 

객체λ₯Ό 비ꡐ할 λ•Œ μƒνƒœλ₯Ό μ΄μš©ν•΄ 비ꡐ할 수 μ—†λŠ” μ΄μœ λŠ” 객체의 μƒνƒœλŠ” λ³€ν•  수 있기 λ•Œλ¬Έμ΄λ‹€.

 

객체의 ν‚€κ°€ λ³€ν•œλ‹€κ³  ν•΄μ„œ 객체 μžμ²΄κ°€ λ°”λ€Œμ§€λŠ” μ•ŠλŠ”λ‹€.

 

λ°˜λŒ€λ‘œ λ‹¨μˆœν•œ 값은 μ‹λ³„μžλ₯Ό 가지고 μžˆμ§€ μ•ŠμœΌλ©° μƒνƒœλ§Œ 가지고 μžˆλ‹€.

 

λ‹¨μˆœν•œ κ°’μ˜ μƒνƒœλŠ” λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€. λ•Œλ¬Έμ— 값을 비ꡐ할 λ•ŒλŠ” μƒνƒœλ₯Ό μ΄μš©ν•΄ λΉ„κ΅ν•˜λ©°, 이λ₯Ό 동등성 (equality)이라고 ν•œλ‹€.

ν‚€κ°€ 170μ—μ„œ 180으둜 λ³€κ²½λ˜μ—ˆλ‹€λ©΄ 이것은 κ°’ μžμ²΄κ°€ λ³€ν•œ 것이닀. λ”°λΌμ„œ 170κ³Ό 180은 μΌμΉ˜ν•˜μ§€ μ•ŠλŠ”λ‹€!

 

객체지ν–₯의 μ„Έκ³„λŠ” μƒνƒœκ°€ λ³€ν•˜μ§€ μ•ŠλŠ” κ°’κ³Ό μƒνƒœκ°€ λ³€ν•˜λŠ” 객체듀이 μ„œλ‘œ κ· ν˜•μ„ λ§žμΆ”λ©° μ‘°ν™”λ₯Ό 이루어야 ν•˜λŠ” μ‚¬νšŒμ—¬μ•Ό ν•œλ‹€.

κΈ°κ³„λ‘œμ„œμ˜ 객체

객체의 μƒνƒœλ₯Ό μ‘°νšŒν•˜λŠ” μž‘μ—…μ„ 쿼리 (query)라고 ν•˜λ©°, 객체의 μƒνƒœλ₯Ό λ³€κ²½ν•˜λŠ” μž‘μ—…μ„ λͺ…λ Ή (command)이라고 ν•œλ‹€.

 

객체 κΈ°κ³„λŠ” 객체지ν–₯을 효과적으둜 μ„€λͺ…ν•˜κΈ°μ— μ ν•©ν•˜λ‹€.

 

μ‚¬μš©μžλŠ” λ²„νŠΌμ„ ν†΅ν•΄μ„œλ§Œ 객체의 μƒνƒœλ₯Ό μ‘°νšŒν•˜κ±°λ‚˜ 변경을 "μš”μ²­"ν•  수 μžˆλ‹€. μ–΄λ–€ 방식을 μ‚¬μš©ν• μ§€λŠ” 기계 슀슀둜 κ²°μ •ν•œλ‹€. μ΄λŠ” 객체의 μžμœ¨μ„±κ³Ό κ΄€λ ¨λ˜μ–΄ μžˆλ‹€.

 

기계λ₯Ό λœ―μ–΄λ³΄μ§€ μ•ŠλŠ” 이상, 기계가 μ–΄λ–€ μ›λ¦¬λ‘œ λ‘œμ§μ„ μˆ˜ν–‰ν•˜λŠ”μ§€ μ•Œ 수 μ—†λ‹€. λ˜ν•œ 쿼리 λ²„νŠΌμ„ μ œμ™Έν•˜κ³ λŠ” 객체의 μƒνƒœλ₯Ό μ•Œ 수 μ—†λ‹€. μ΄λŠ” μΊ‘μŠν™”μ™€ κ΄€λ ¨λ˜μ–΄ μžˆλ‹€.

 

μ„œλ‘œ λ‹€λ₯Έ 두 기계가 μžˆμ„ λ•Œ, 이 기계듀은 λ‹€λ₯Ό μˆ˜λ°–μ— μ—†λ‹€. 즉, 객체가 ꡬ뢄 κ°€λŠ₯ν•œ μ‹λ³„μžλ₯Ό κ°€μ§„λ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€.

 

κΈ°κ³„λŠ” μ—°κ²°λœ λ‹€λ₯Έ κΈ°κ³„μ—κ²Œ μš”μ²­μ„ 전솑할 수 μžˆλ‹€. μ΄λŠ” 객체 간에 λ©”μ‹œμ§€ 전솑을 톡해 ν˜‘λ ₯ν•˜κ³  μžˆλŠ” 것을 μ˜λ―Έν•œλ‹€.


행동이 μƒνƒœλ₯Ό κ²°μ •ν•œλ‹€

μƒνƒœλ₯Ό μ€‘μ‹¬μœΌλ‘œ 객체λ₯Ό λ°”λΌλ³΄λŠ” ν–‰μœ„ (μƒνƒœλ₯Ό λ¨Όμ € κ²°μ •ν•˜κ³  그에 λŒ€ν•œ 행동을 κ²°μ •ν•˜λŠ” ν–‰μœ„)λŠ” 섀계에 λ‚˜μœ 영ν–₯을 λ―ΈμΉœλ‹€.

μƒνƒœλ₯Ό λ¨Όμ € κ²°μ •ν•  경우 μΊ‘μŠν™”κ°€ μ €ν•΄λœλ‹€.

객체의 μƒνƒœκ°€ 곡용 μΈν„°νŽ˜μ΄μŠ€μ— λ…ΈμΆœλ  ν™•λ₯ μ΄ λŠ˜μ–΄λ‚œλ‹€.

객체λ₯Ό 고립된 μ„¬μœΌλ‘œ λ§Œλ“ λ‹€.

객체의 쑴재 μ΄μœ λŠ” λ‹€λ₯Έ 객체와 ν˜‘λ ₯ν•˜κΈ° μœ„ν•΄μ„œλ‹€.

객체의 μž¬μ‚¬μš©μ„±μ΄ μ €ν•΄λœλ‹€.

객체의 μž¬μ‚¬μš©μ„±μ€ 객체가 λ‹€μ–‘ν•œ ν˜‘λ ₯에 μ°Έμ—¬ν•  수 μžˆλŠ” κ²ƒμ—μ„œ λ‚˜μ˜¨λ‹€. 객체λ₯Ό 고립된 μ„¬μœΌλ‘œ λ§Œλ“¦μœΌλ‘œμ¨ 객체λ₯Ό ν˜‘λ ₯에 μ°Έμ—¬ν•˜κΈ° λΆ€μ μ ˆν•œ μš”μ†Œλ‘œ λ§Œλ“€κΈ° λ•Œλ¬Έμ— 객체의 μž¬μ‚¬μš©μ„± λ˜ν•œ μ €ν•΄λœλ‹€.

 

λ”°λΌμ„œ μƒνƒœκ°€ μ•„λ‹ˆλΌ 행동을 μ€‘μ‹¬μœΌλ‘œ 객체λ₯Ό 바라봐야 ν•œλ‹€.

 

객체지ν–₯ μ„€κ³„λŠ” λ‹€μŒκ³Ό 같은 λ°©μ‹μœΌλ‘œ μ§„ν–‰λ˜μ–΄μ•Ό ν•œλ‹€.

- μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— ν•„μš”ν•œ ν˜‘λ ₯을 μƒκ°ν•˜λΌ.
- ν˜‘λ ₯에 ν•„μš”ν•œ 행동듀을 μƒκ°ν•˜λΌ.
- 행동을 μˆ˜ν–‰ν•  μ μ ˆν•œ 객체λ₯Ό μ„ νƒν•˜λΌ.
- 행동이 κ²°μ •λ˜λ©΄ κ·Έ 행동을 μˆ˜ν–‰ν•  λ•Œ ν•„μš”ν•œ 정보가 무엇인지 κ³ λ €ν•˜κ²Œ λœλ‹€.
- μ΄λ•Œ ν•„μš”ν•œ μƒνƒœκ°€ κ²°μ •λœλ‹€. 즉, 행동이 μƒνƒœλ₯Ό κ²°μ •ν•œλ‹€.

 

μ΄λŠ” μ±…μž„ 주도 섀계 (Responsibility Driven Design)와 κ΄€λ ¨ μžˆλ‹€. μ±…μž„ 주도 μ„€κ³„λŠ” ν˜‘λ ₯μ΄λΌλŠ” λ¬Έλ§₯ μ•ˆμ—μ„œ 객체의 행동을 μƒκ°ν•˜λ„λ‘ λ„μ›€μœΌλ‘œμ¨ 응집도 λ†’κ³  μž¬μ‚¬μš© κ°€λŠ₯ν•œ 객체λ₯Ό λ§Œλ“€ 수 있게 ν•œλ‹€.


μ€μœ μ™€ 객체

객체지ν–₯이 λ‹¨μˆœν•œ ν˜„μ‹€ μ„Έκ³„μ˜ λͺ¨λ°©μ΄ μ•„λ‹Œ 이유 쀑 ν•˜λ‚˜λŠ” ν˜„μ‹€ μ†μ—μ„œ μˆ˜λ™μ μΈ μ‘΄μž¬κ°€ 객체지ν–₯ μ„Έκ³„μ—μ„œλŠ” λŠ₯동적인 μ‘΄μž¬κ°€ 될 수 있기 λ•Œλ¬Έμ΄λ‹€. μ΄λŠ” 객체λ₯Ό μ˜μΈν™” (anthropomorphism) ν•˜μ˜€κΈ° λ•Œλ¬Έμ΄λ‹€.

 

계속 μ–ΈκΈ‰ν–ˆλ“―μ΄ λͺ¨λ“  κ°μ²΄λŠ” μΆ©λΆ„ν•œ μžμœ¨μ„±μ„ 보μž₯λ°›λŠ”λ‹€.

 

μ „ν†΅μ μœΌλ‘œλŠ” ν˜„μ‹€ μ„Έκ³„μ˜ 객체λ₯Ό μžμ„Ένžˆ κ΄€μ°°ν•˜κ³  κ·Έμ€‘μ—μ„œ μ†Œν”„νŠΈμ›¨μ–΄ 객체에 μ ν•©ν•œ μ†μ„±λ§Œ μΆ”λ €λ‚΄λΌλŠ” 것을 μ‘°μ–Έν–ˆμ—ˆλ‹€.

 

κ·ΈλŸ¬λ‚˜ 이 생각은 객체 지ν–₯의 세계가 ν˜„μ‹€μ„ λ°˜μ˜ν•΄μ•Ό ν•œλ‹€λŠ” μ˜λ„λ₯Ό λ‚΄ν¬ν•˜κ³  μžˆλ‹€.

 

λ§ν–ˆλ“―μ΄, 객체 지ν–₯ μ„Έκ³„λŠ” μƒˆλ‘œμš΄ 세계λ₯Ό μ°½μ‘°ν•˜λŠ” 것이닀. κ·Έλ ‡λ‹€λ©΄ ν˜„μ‹€ 세계와 μ™„μ „νžˆ λΆ„λ¦¬λœ 세계λ₯Ό μ°½μ‘°ν•˜λŠ” 것인가? 그것은 μ•„λ‹ˆλ‹€. 단지 객체 지ν–₯ μ„Έκ³„λŠ” ν˜„μ‹€ 세계λ₯Ό μ€μœ  (metaphor)ν•  뿐이닀.

 

μ€μœ λ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” 무엇인가? μ€μœ λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μ‹€ μ„Έκ³„μ˜ 객체λ₯Ό 객체 지ν–₯ μ„Έκ³„μ—μ„œ μ‚¬μš©ν•  경우, κ·Έ 의미λ₯Ό μš°λ¦¬κ°€ μ‰½κ²Œ νŒŒμ•…ν•˜κ³  μœ μΆ”ν•  수 있기 λ•Œλ¬Έμ΄λ‹€. μΌλ‘€λ‘œ μ „ν™”κΈ° κ°μ²΄λŠ” 이 객체가 μ „ν™”λ₯Ό κ±Έ 수 μžˆλ‹€λŠ” 사싀을 μœ μΆ”ν•  수 μžˆμ„ 것이닀. λ°©ν™”λ²½ κ°μ²΄λŠ” 이 객체가 μ΄λΆ€μ˜ μΉ¨μž…μ„ λ³΄ν˜Έν•  수 μžˆλ‹€λŠ” 사싀을 μœ μΆ”ν•  수 μžˆμ„ 것이닀.

 

μ΄λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œ μœ μ§€λ³΄μˆ˜λ„ μš©μ΄ν•˜κ²Œ ν•΄ μ€€λ‹€.

 

λ‹€λ§Œ μ΄λŠ” ν˜„μ‹€ 세계와 관련이 μžˆμ„ λ•Œ μ‚¬μš©ν•˜λŠ” 방식이닀. λ§Œμ•½ ν˜„μ‹€ 세계와 μœ μ‚¬μ„±μ΄ μ—†λ‹€λ©΄ ν˜„μ‹€μ„ λ¬΄μ‹œν•˜κ³  자유둭게 세계λ₯Ό κ΅¬μΆ•ν•˜λΌ.


μš”μ•½

  • 객체의 μƒνƒœλ₯Ό κ²°μ •ν•˜λŠ” 것은 ν–‰λ™μ΄μ§€λ§Œ ν–‰λ™μ˜ κ²°κ³Όλ₯Ό κ²°μ •ν•˜λŠ” 것은 μƒνƒœλ‹€.
  • κ°μ²΄λŠ” μƒνƒœ, 행동, μ‹λ³„μžλ₯Ό 가진닀.
  • 객체λ₯Ό 이루고 μžˆλŠ” μš”μ†ŒλŠ” λ‹¨μˆœν•œ κ°’κ³Ό λ‹€λ₯Έ 객체둜 κ΅¬λΆ„λœλ‹€.
  • μƒνƒœ μ€‘μ‹¬μœΌλ‘œ μ„€κ³„ν•˜κΈ°λ³΄λ‹€λŠ” 행동 μ€‘μ‹¬μœΌλ‘œ μ„€κ³„ν•˜λΌ. 객체의 쑴재 μ΄μœ λŠ” ν˜‘λ ₯을 톡해 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬μΆ•ν•˜κΈ° μœ„ν•΄μ„œμ΄λ©°, ν˜‘λ ₯을 ν•˜κΈ° μœ„ν•œ 방법이 곧 행동이기 λ•Œλ¬Έμ΄λ‹€.
  • ν•„μš”ν•œ ν˜‘λ ₯을 μƒκ°ν•˜κ³ , κ·Έ ν˜‘λ ₯을 이루기 μœ„ν•œ 행동듀을 μƒκ°ν•˜κ³ , ν–‰λ™ν•˜κΈ°μ— μ μ ˆν•œ 객체λ₯Ό μ„ νƒν•˜λ©°, 행동을 μˆ˜ν–‰ν•  λ•Œ ν•„μš”ν•œ μƒνƒœλ₯Ό κ²°μ •ν•˜λŠ” λ°©μ‹μœΌλ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ„€κ³„ν•˜λΌ.
  • ν˜„μ‹€ 세계와 객체 지ν–₯ μ„Έκ³„μ˜ κ΄€κ³„λŠ” μ€μœ μ΄λ‹€. μ΄λŠ” κ°•μ œμ μΈ 것이 μ•„λ‹ˆλ‹€. 단지 κ·Έ 의미λ₯Ό μ‰½κ²Œ νŒŒμ•…ν•  수 있기 λ•Œλ¬Έμ΄λ‹€. ν•„μš”ν•˜μ§€ μ•Šλ‹€λ©΄ μ‚¬μš©ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.