<aside> 👉 객체지향 패러다임은 지식을 추상화하고 추상화한 지식을 객체 안에 캡슐화함으로써 실세계 문제에 내재된 복잡성을 관리하려고 한다. 객체르 발견하고 창조하는 것은 지식과 행동을 구조화하는 문제다

</aside>

객체지향과 인지능력

사물을 인지할 수 있는 아기처럼 사람은 무언가를 인지할 수 있는 인지능력을 가지고 있다. 객체 지향은 세상을 자율적이고 독립적인 객체들로 분해할 수 있는 인간의 기본적인 이 인지능력에 기반을 두고 있다.

하나의 단위로 인식할 수 있고 다른 사물과 구분할 수 있는 모든 것들이 모여 객체의 스펙트럼을 형성한다.

세상을 더 작은 객체로 분해하는 것은 본질적으로 세상이 포함하고 있는 복잡성을 극복하기 위한 인간의 작은 몸부림이다. 인간은 좀 더 단순한 객체들로 주변을 분해함으로써 자신이 몸 담고 있는 세상을 이해하려 한다. 그렇기에 객체란 인간이 분명하게 인지하고 구별할 수 있는 물리적인 또는 개념적인 경계를 지닌 어떤 것이다.

하지만 현실 세계와 소프트웨어 세계 사이의 유사성은 여기까지일 뿐이다. 객체는 현실세계를 모방하는 것이 아닌, 새로운 세계를 창조하는 것. 사람의 손길 없이 스스로 불을 밝힐 수 없는 전등과 다르게 SW세계에선 전등은 외부의 도움없이도 처리가 가능하다. 우리는 이렇게 유사하면서도 이질적인 객체지향의 세계를 바라볼 수 있다.

마치 이상한 나라의 앨리스처럼!

앨리스는 어떠한 장소를 가기위해 어떠한 행위를 함으로써 자신의 키를 늘리고 줄일 수 있다.

앨리스의 키를 변화시키는 것은 앨리스의 행동. 그 행동에 따라 상태가 변하게 되는 것이다. 자신의 상태에 따라 행동의 결과도 변할 수 있는데 이것을 한마디로 ‘행동의 결과는 상태에 의존적이다’ 라고 볼 수 있다.

또한, 어떤 행동의 성공 여부는 이전에 어떤 행동들이 발생했는지에 따라 달라진다. 그러므로 행동 간의 순서도 중요한 요소가 될 수 있다는 것이다.

앨리스가 이렇듯 어떤 행동을 하든 어떤 상태가 되는 앨리스는 결국 앨리스이다. 유일한 존재로 식별이 가능하다는 것이다.

이 내용을 정리해보면,

행동에 의해 앨리스의 상태가 변경되더라도 앨리스가 앨리스라는 사실은 변하지 않는다.