πŸ“š book/객체지ν–₯의 사싀과 μ˜€ν•΄

02 μ΄μƒν•œ λ‚˜λΌμ˜ 객체 (2)

바쿄리 2021. 12. 21. 20:34

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

객체지ν–₯의 세계λ₯Ό μ°½μ‘°ν•˜λŠ” κ°œλ°œμžλ“€μ˜ 주된 μ—…λ¬΄λŠ” 객체의 μƒνƒœλ₯Ό μ‘°νšŒν•˜κ³  객체의 μƒνƒœλ₯Ό λ³€κ²½ν•˜λŠ” 것이닀.

- 쿼리 (query) : 객체의 μƒνƒœλ₯Ό μ‘°νšŒν•˜λŠ” μž‘μ—…

- λͺ…λ Ή (command) : 객체의 μƒνƒœλ₯Ό λ³€κ²½ν•˜λŠ” μž‘μ—…

-> 객체가 외뢀에 μ œκ³΅ν•˜λŠ” ν–‰λ™μ˜ λŒ€λΆ€λΆ„μ€ 쿼리와 λͺ…λ ΉμœΌλ‘œ κ΅¬μ„±λœλ‹€.

 

κΈ°κ³„λ‘œμ„œμ˜ 객체 : μ°¨κ°€μš΄ κΈˆμ† μ™Έν”Όλ‘œ λ‘˜λŸ¬μ‹ΈμΈ λΈ”λž™ λ°•μŠ€λΌκ³  μƒκ°ν•˜μž.

-> κΈ°κ³„μ˜ λΆ€ν’ˆμ€ λ‹¨λ‹¨ν•œ κΈˆμ† μ™Έν”Ό μ•ˆμ— 감좰져 있기 λ•Œλ¬Έμ— 기계λ₯Ό λΆ„ν•΄ν•˜μ§€ μ•ŠλŠ”ν•œ κΈ°κ³„μ˜ λ‚΄λΆ€λ₯Ό 직접 λ³Ό 수 μ—†λ‹€.

-> λŒ€μ‹ , μ‚¬λžŒμ€ κΈ°κ³„μ˜ 외뢀에 λΆ€μ°©λœ μ‚¬κ°ν˜•(ㅁ)κ³Ό 원λͺ¨μ–‘(γ…‡)의 λ²„νŠΌμ„ μ΄μš©ν•΄μ„œλ§Œ 기계와 μƒν˜Έμž‘μš©ν•  수 μžˆλ‹€.

 

- μ‚¬κ°ν˜•(ㅁ) λ²„νŠΌ : 객체의 μƒνƒœλ₯Ό λ³€κ²½ν•  수 μžˆλ‹€.

- 원λͺ¨μ–‘(γ…‡) λ²„νŠΌ : μ›ν•˜λŠ” μ‹œμ μ— 원 λͺ¨μ–‘μ˜ λ²„νŠΌμ„ 눌러 객체의 μƒνƒœλ₯Ό μ‘°νšŒν•  수 μžˆλ‹€.

 

1. μ‚¬μš©μžκ°€ 객체 κΈ°κ³„μ˜ λ²„νŠΌμ„ 눌러 μƒνƒœλ₯Ό λ³€κ²½ν•˜κ±°λ‚˜ μƒνƒœ 쑰회λ₯Ό μš”μ²­ν•˜λŠ” 것

    = 객체의 행동을 μœ λ°œν•˜κΈ° μœ„ν•΄ λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•˜λŠ” 것과 μœ μ‚¬ν•˜λ‹€.

2. λ²„νŠΌμ„ λˆ„λ₯΄λŠ” 것은 μ‚¬μš©μžμ΄μ§€λ§Œ 눌린 λ²„νŠΌμ— 따라 μ–΄λ–€ λ°©μ‹μœΌλ‘œ λ™μž‘ν• μ§€λŠ” 기계 슀슀둜 κ²°μ •ν•œλ‹€.

    = μ „λ‹¬λœ λ©”μ‹œμ§€μ— 따라 슀슀둜 νŒλ‹¨ν•˜κ³  κ²°μ •ν•˜λŠ” 자율적인 객체의 νŠΉμ„±

3. μ‚¬κ°ν˜•(ㅁ) λ²„νŠΌ : μƒνƒœλ₯Ό λ³€κ²½ν•˜λŠ” λͺ…λ Ή

    원λͺ¨μ–‘(γ…‡) λ²„νŠΌ : μƒνƒœλ₯Ό μ‘°νšŒν•˜λŠ” 쿼리

4. 객체에 μ ‘κ·Όν•  수 μžˆλŠ” μœ μΌν•œ 방법은 객체가 μ œκ³΅ν•˜λŠ” 행동 뿐

    = μ‚¬μš©μžλŠ” 객체가 μ œκ³΅ν•˜λŠ” λͺ…λ Ή λ²„νŠΌκ³Ό 쿼리 λ²„νŠΌμœΌλ‘œ κ΅¬μ„±λœ μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν†΅ν•΄μ„œλ§Œ 객체에 μ ‘κ·Όν•  수 μžˆλ‹€.

    = 객체의 μΊ‘μŠν™”


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

μƒνƒœλ₯Ό λ¨Όμ € κ²°μ •ν•˜κ³  행동을 λ‚˜μ€‘μ— κ²°μ •ν•˜λŠ” 방법은 섀계에 λ‚˜μœ 영ν–₯을 λΌμΉœλ‹€.

 

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

    -> μƒνƒœμ— μ΄ˆμ μ„ 맞좜 경우 μƒνƒœκ°€ 객체 λ‚΄λΆ€λ‘œ κΉ”λ”ν•˜κ²Œ μΊ‘μŠν™”λ˜μ§€ λͺ»ν•˜κ³  곡용 μΈν„°νŽ˜μ΄μŠ€μ— κ·ΈλŒ€λ‘œ λ…ΈμΆœλ˜λ²„λ¦΄ ν™•λ₯ μ΄ λ†’μ•„μ§„λ‹€.

2. 객체λ₯Ό ν˜‘λ ₯μžκ°€ μ•„λ‹Œ 고립된 μ„¬μœΌλ‘œ λ§Œλ“ λ‹€.

    -> 객체가 ν•„μš”ν•œ μ΄μœ λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ¬Έλ§₯ λ‚΄μ—μ„œ λ‹€λ₯Έ 객체와 ν˜‘λ ₯ν•˜κΈ° μœ„ν•΄μ„œμ΄λ‹€.

    -> λΆˆν–‰ν•˜κ²Œλ„ μƒνƒœλ₯Ό λ¨Όμ € κ³ λ €ν•˜λŠ” 방식은 ν˜‘λ ₯μ΄λΌλŠ” λ¬Έλ§₯μ—μ„œ 멀리 λ²—μ–΄λ‚œ 채 객체λ₯Ό μ„€κ³„ν•˜κ²Œ ν•¨μœΌλ‘œμ¨ μžμ—°μŠ€λŸ½κ²Œ ν˜‘λ ₯에 μ ν•©ν•˜           μ§€ λͺ»ν•œ 객체λ₯Ό μ°½μ‘°ν•˜κ²Œ λœλ‹€.

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

    -> 객체의 μž¬μ‚¬μš©μ„±μ€ λ‹€μ–‘ν•œ ν˜‘λ ₯에 μ°Έμ—¬ν•  수 μžˆλŠ” λŠ₯λ ₯μ—μ„œ λ‚˜μ˜¨λ‹€.

    -> μƒνƒœμ— μ΄ˆμ μ„ 맞좘 κ°μ²΄λŠ” λ‹€μ–‘ν•œ ν˜‘λ ₯에 μ°Έμ—¬ν•˜μ§€ μ–΄λ ΅κΈ° λ•Œλ¬Έμ— μž¬μ‚¬μš©μ„±μ΄ μ €ν•˜λ  μˆ˜λ°–μ— μ—†λ‹€.

 

β˜… ν˜‘λ ₯에 μ°Έμ—¬ν•˜λŠ” ν›Œλ₯­ν•œ 객체 μ‹œλ―Όμ„ μ–‘μ„±ν•˜κΈ° μœ„ν•œ κ°€μž₯ μ€‘μš”ν•œ 덕λͺ©μ€ μƒνƒœκ°€ μ•„λ‹ˆλΌ 행동에 μ΄ˆμ μ„ λ§žμΆ”λŠ” 것이닀. β˜…

-> μš°λ¦¬κ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•ˆμ—μ„œ μ–΄λ–€ 행동을 μ›ν•˜λŠλƒκ°€ μ–΄λ–€ 객체가 μ ν•©ν•œμ§€λ₯Ό κ²°μ •ν•œλ‹€ !!

 

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

03  μ€μœ μ™€ 객체

객체지ν–₯을 ν˜„μ‹€ μ„Έκ³„μ˜ λͺ¨λ°©μ΄λΌκ³  λ³΄λŠ” 관점은 객체지ν–₯ 뢄석/μ„€κ³„λž€ ν˜„μ‹€ 세계에 μ‘΄μž¬ν•˜λŠ” λ‹€μ–‘ν•œ 객체λ₯Ό λͺ¨λ°©ν•œ ν›„ ν•„μš”ν•œ λΆ€λΆ„λ§Œ μ·¨ν•΄ μ†Œν”„νŠΈμ›¨μ–΄ 객체둜 κ΅¬ν˜„ν•˜λŠ” 과정이라고 μ„€λͺ…ν•œλ‹€.

ν”νžˆ 객체지ν–₯을 ν˜„μ‹€ μ„Έκ³„μ˜ 좔상화라고도 ν•˜λŠ”λ°, κ·Έ μ•ˆμ—λŠ” ν˜„μ‹€ 세계λ₯Ό λͺ¨λ°©ν•΄μ„œ λ‹¨μˆœν™”ν•œλ‹€λŠ” μ˜λ―Έκ°€ μˆ¨μ–΄ μžˆλ‹€.

μ—¬κΈ°μ„œ 좔상화(abstraction)λž€ μ‹€μ œμ˜ μ‚¬λ¬Όμ—μ„œ μžμ‹ μ΄ μ›ν•˜λŠ” νŠΉμ„±λ§Œ μ·¨ν•˜κ³  ν•„μš” μ—†λŠ” 뢀뢄을 μΆ”λ € ν•΅μ‹¬λ§Œ ν‘œν˜„ν•˜λŠ” ν–‰μœ„λ₯Ό λ§ν•œλ‹€.

 

ν˜„μ‹€μ˜ 객체보닀 더 λ§Žμ€ 일을 ν•  수 μžˆλŠ” μ†Œν”„νŠΈμ›¨μ–΄ 객체의 νŠΉμ§•μ„ μ˜μΈν™”(anthropomomrphism)라고 λΆ€λ₯Έλ‹€.

 

μ€μœ λž€ μ‹€μ œλ‘œλŠ” μ μš©λ˜μ§€ μ•ŠλŠ” ν•œ κ°€μ§€ κ°œλ…μ„ μ΄μš©ν•΄ λ‹€λ₯Έ κ°œλ…μ„ μ„œμˆ ν•˜λŠ” λŒ€ν™”μ˜ ν•œ ν˜•νƒœλ‹€.

- ν‘œν˜„μ  차이(representational gap)

- 의미적 차이(semantic gap)

(μ—¬κΈ°μ„œ μ°¨μ΄λž€? μ†Œν”„νŠΈμ›¨μ–΄μ— λŒ€ν•΄ μ‚¬λžŒλ“€μ΄ μƒκ°ν•˜λŠ” λͺ¨μŠ΅κ³Ό μ‹€μ œ μ†Œν”„νŠΈμ›¨μ–΄μ˜ ν‘œν˜„ μ‚¬μ΄μ˜ 차이)