Code/OOP

[객체지향의 사실과 오해] 2. 이상한 나라의 객체

noahkim_ 2025. 4. 2. 16:27

조영호 님의 "객체지향의 사실과 오해" 책을 정리한 글입니다.

 

1. 객체지향과 인지 능력

객체

특성 설명
형태 물리적 또는 개념적인 것
인지 가능 추상적인 사물을 포함하여 인식할 수 있음
구별 가능 식별 가능한 경계를 가짐
크기 작게 분해됨 (복잡성을 극복하기 위함)

 

객체지향

  • 현실 세계를 기반으로 새로운 세계를 창조하는 것

 

예시
세계 전등의 동작 방식
현실 세계 사람의 손길 없이는 전원을 켜거나 끌 수 없음
소프트웨어 세계 전등이 스스로 전원을 켜거나 끌 수 있음

 

2. 객체, 그리고 이상한 나라

앨리스 객체

개념 설명
행동이 상태를 결정 행동의 결과에 따라 객체의 상태가 변화함
ex) 앨리스의 키는 행동을 통해 변화됨
상태 의존성 행동의 성공 여부는 이전 상태에 따라 달라짐
즉, 행동의 순서가 중요함

 

3. 객체, 그리고 소프트웨어 나라

상태

  • 행동의 과정과 결과를 단순하게 표현하는 개념
    • 현재 객체를 직관적으로 이해할 수 있도록 도움
    • 복잡성을 완화하고 인지 과부하를 줄일 수 있음
  • attribute(속성)와 link(연결)의 조합으로 표현

 

행동

특징 설명
객체의 자율성
객체는 스스로 동작하며 자발적인 행동만이 상태를 변경할 수 있음 (다른 객체의 상태에 직접 접근 및 변경 불가)
정보 은닉 (캡슐화)
객체는 자신의 상태를 외부에 노출시키지 않음 (행동을 경계로 캡슐화됨)
협력 방식
다른 객체에 메시지를 보내 요청함
- 외부에서 가시적으로 보여야 함
부수효과
자신의 상태 혹은 협력하는 다른 객체의 상태를 변경할 수 있음

 

식별자

  • 참조 객체는 식별자를 가짐
  • 서로 구별되는 특정 프로퍼티를 소유

 

4. 기계로서의 객체

5. 행동이 상태를 결정한다

6. 은유와 객체