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

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

Tags
조영호
OOP
Java
Published
May 28, 2023
Author
lkdcode

2장 이상한 나라의 객체


 

🚀 객체를 발견하고 창조하는 것은 지식과 행동을 구조화하는 문제다.

객체는 객체 그 자체로 온전히 바라보기만 해야 하며, 그 이상의 자율성, 즉 행동들을 생각하게 되었다. 우리가 만든 세계들은 아주 많을 것이며 무엇이 정답인지 찾기는 어려울 것 같다. 다만 협력과 행동, 상태 등을 통해 객체를 바라볼 수 있다면 그것은 객체지향을 오해하지 않는 방법일 것이다.
 

🎯 1. 상태와 행동


둘은 뗄 수 없는 관계 속에서 상호작용한다. 객체들끼리 협력하는 것처럼 객체의 행동과 상태가 마치 협력하는 것처럼 느껴졌다. 무엇이 먼저인가?에 대한 고민이 조금은 길어질 무렵 책에서 '행동을 먼저 생각하라'라는 메시지가 정답처럼 느껴졌다. 그동안 상태를 생각하면서 코드를 짰던 시간들이 생각났고 객체지향하는 척했을 수도 있다. 상태와 행동.. 객체를 생각하기 전에 행동을 생각한다면 자연스럽게 상태와 객체까지 이어질 수 있을 것 같다.
 

🎯 2. 협력


객체가 다른 객체와 메시지를 통해서 의사소통할 수 있다는 것은 협력을 뜻하기도 한다. 다른 말로 메시지가 아니면 객체끼리의 협력은 단절되고 최악의 경우 객체는 섬이 될 수도 있다. 객체들은 자신을 쉽게 오픈해선 안 되고 또 서로가 서로를 믿으며 궁금해하지도 않아야 한다. (어쩌면 수십 년간 돌아가는 서비스에서도 객체들은 서로의 이름조차 모르며 상호작용하지 않을까?) 객체의 프라이버시를 존중하자, 메시지를 통해 객체의 행동을 유발하고 행동으로 바뀌는 상태 값은 객체의 프라이버시다. 그 메시지는 프라이버시를 존중하기에 질문은 없을 것이다. Tell, Don't ask
 

🎯 3. 이상한 나라를 창조하라


내가 만드는 이상한 나라는 행동을 먼저 생각하며 객체가 탄생할 것이다. 행동이 상태를 결정한다면 행동을 중심으로 객체를 생각하는 것도 나쁘지 않을 것 같다. 이러한 이야기들이 아직은 매끄럽게 코드로 이어지지는 않지만 그동안의 코드를 조금은 복기하는 느낌이 든다. 현실 세계를 모방하는 것이 아닌 새로운 세계를 창조한다는 것과 객체의 행동이 상태를 결정한다는 것. 이 두 내용을 중심으로 코드를 짜면 조금은 객체지향에 다가서지 않을까 싶다!
 

🎯QnA


책을 읽을 수록 객체지향과 멀어지는 것처럼 느껴지는 나, 비정상인가요?