개발공부/객체지향의 사실과 오해

[객(체지향의)사(실과)오(해)] 6. 객체지도 ( 태초마을로 간 지우 )

장아장 2023. 6. 5. 16:29

다시 시작으로 돌아왔다~~이말이야~

객체 지도는 우리가 만드는 객체들이 어떻게 협력하고, 서로간에 메시지를 전해줘야 할지 미리 생각해보는 시간을 만드는 것 같았다. 

 

하나씩 빌드업을 해나가며, 도메인 모델을 만들어가는 과정이다. 

사실 이게 역할, 협력, 메시지를 생각하기 전에 우리가 해야할 부분이 아닐까 싶은 생각이 든다. 

 

객체는 협력한다. 

객체는 역할을 가진다. 

객체는 메시지를 주고 받는다. 

객체는 기능을 수행한다. 

 

이를 모두 담은 상태가 되기 위해 우리는 지도를 그린다고 생각한다. 

내가 느끼는 방식대로 설명을 해보겠다. 

 

  1. 지도에 땅을 그려야 한다 ➡️ 우리가 사용할 역할들이 뭐가 있을지 생각한다. 
  2. 땅에 있는 길들을 만들어야 한다 ➡️ 역할간의 협력관계를 이어본다. 
  3. 길들이 도로인지, 인도인지, 자전거 전용도로인지 정리해야 한다 ➡️ 협력관계에서 어떤 메시지를 사용할지 정리한다. 
  4. 그 길로 가는 건물들을 정리한다 ➡️ 협력관계의 양 끝에 있는 역할이 직접 해야할 일을 정리한다. 

정도로 나는 생각했다. 

 

여기에서 기능단위로 설계가 되는 것이 아닌, 구조 단위로 설계가 되었을 때 더 안정된 상태라고 한다. 

안정된 상태에서 설계가 되었을 때에야 비로소 개발을 시작할 때라고 생각한다. 

 

오히려 관념적이기도 하고, 예시가 와닿지 않는 부분이기도 했다. 

이해하기 나름인 분야일 수도 있지만, 내 생각에는 아직 정답에 도달하지 못한 것 같다.