은유와 객체

"현실 속의 객체와 소프트웨어 객체 사이의 가장 큰 차이점은 무엇일까?"
"현실 속에서는 수동적인 존재가 소프트웨어 객체로 구현될 때는 능동적으로 변한다는 것이다."
"현실 세계인 도메인에서 사용되는 이름을 객체에게 부여하라."
  • 객체지향이 현실 세계의 모방이라는 것은 우리가 추상화를 통해 객체의 특성을 상기시키는 것에서 발생한 오해이다.

  • 의인화

    • 현실 속 객체는 스스로 상태를 변경할 수 없다. 하지만 소프트웨어 속 객체는 스스로의 상태를 변경한다.

    • 현실의 객체보다 더 많은 일을 할 수 있는 소프트웨어 객체의 특징 의인화(anthropomorphism)라고 부른다.

    • 이러한 특징으로 현실 세계에서 존재조차 하지 않는 것들을 소프트웨어 세계에서 창조할 수 있다.

    • 객체지향의 궁극적 목적은 현실과 전혀 다른 새로운 세계를 창조하는 것이다.

  • 은유

    • 현실 세계 속 객체의 개념을 이용해 소프트웨어 속 객체의 기능을 쉽게 상기시킬 수 있다.

    • 은유 관계에 있는 실제 객체의 이름을 소프트웨어 객체의 이름으로 사용하면 표현적 차이를 줄여 소프트웨어의 구조를 쉽게 예측할 수 있다.

    • 이를 통해 이해하기 쉽고 유지보수가 용이한 소프트웨어를 만들 수 있다.

Last updated