조영호 님의 "객체지향의 사실과 오해" 책을 정리한 글입니다.
1. 객체지향과 인지 능력
객체
특성 | 설명 |
형태 | 물리적 또는 개념적인 것 |
인지 가능 | 추상적인 사물을 포함하여 인식할 수 있음 |
구별 가능 | 식별 가능한 경계를 가짐 |
크기 | 작게 분해됨 (복잡성을 극복하기 위함) |
객체지향
- 현실 세계를 기반으로 새로운 세계를 창조하는 것
예시
세계 | 전등의 동작 방식 |
현실 세계 | 사람의 손길 없이는 전원을 켜거나 끌 수 없음 |
소프트웨어 세계 | 전등이 스스로 전원을 켜거나 끌 수 있음 |
2. 객체, 그리고 이상한 나라
앨리스 객체
개념 | 설명 |
행동이 상태를 결정 | 행동의 결과에 따라 객체의 상태가 변화함 ex) 앨리스의 키는 행동을 통해 변화됨 |
상태 의존성 | 행동의 성공 여부는 이전 상태에 따라 달라짐 즉, 행동의 순서가 중요함 |
3. 객체, 그리고 소프트웨어 나라
상태
- 행동의 과정과 결과를 단순하게 표현하는 개념
- 현재 객체를 직관적으로 이해할 수 있도록 도움
- 복잡성을 완화하고 인지 과부하를 줄일 수 있음
- attribute(속성)와 link(연결)의 조합으로 표현
행동
특징 | 설명 |
객체의 자율성 |
객체는 스스로 동작하며 자발적인 행동만이 상태를 변경할 수 있음 (다른 객체의 상태에 직접 접근 및 변경 불가)
|
정보 은닉 (캡슐화) |
객체는 자신의 상태를 외부에 노출시키지 않음 (행동을 경계로 캡슐화됨)
|
협력 방식 |
다른 객체에 메시지를 보내 요청함
- 외부에서 가시적으로 보여야 함 |
부수효과 |
자신의 상태 혹은 협력하는 다른 객체의 상태를 변경할 수 있음
|
식별자
- 참조 객체는 식별자를 가짐
- 서로 구별되는 특정 프로퍼티를 소유
4. 기계로서의 객체
5. 행동이 상태를 결정한다
6. 은유와 객체
'Code > OOP' 카테고리의 다른 글
[오브젝트] 4. 설계 품질과 트레이드오프 (0) | 2025.04.03 |
---|---|
[오브젝트] 3. 역할, 책임, 협력 (0) | 2025.04.03 |
[오브젝트] 2. 객체지향 프로그래밍 (1) | 2025.04.02 |
[객체지향의 사실과 오해] 1. 협력하는 객체들의 공동체 (0) | 2025.04.02 |
[오브젝트] 1. 객체, 설계 (0) | 2025.04.02 |