본문 바로가기
  • Seizure But Okay Developer
Computer Science

객체지향의 사실과 오해 - 1

by Sky_Developer 2024. 10. 1.

이 책 문구는 하나하나가 수학 공식을 이해해야 하는 것처럼 잘 안 읽힌다. 논리적인 문구들로 구성되어 있지만 그 하나하나를 소화해내기가 어렵다.

 

애플리케이션을 개발하면서 객체에 직접적으로 대응되는 실세계의 사물을 발견할 확률은 그다지 높지 않다.
심지어 소프트웨어가 반영해야 하는 객관적인 실세계가 존재한다는 아이디어조차도 논란의 여지가 있는 철학적 근거를 기반으로 한다.
역할은 커피 주문에 참여하는 캐시어나 바리스타와 같이 협력에 참여하는 객체에 대한 일종의 페르소나다

 

  • 역할
  • 책임
  • 협력

위 3가지가 중요하다. 지금까지 객체지향을 실세계의 모방이라며 설명했던 것을 제대로 이해하기 위해 새로운 설명을 해준다.

커피를 주문하는 사람, 캐셔, 바리스타는 커피를 제조하기 위해 요청과 응답을 하며 서로 협력을 한다.

커피를 주문하는 사람은 주문하는 역할, 캐셔는 주문을 받는 역할, 바리스타는 커피를 제조하는 역할을 갖는다. 그리고 각각은 옳게 행동할 책임을 갖는다. 역할은 책임을 내포한다.

 

소프트웨어에서 객체와 인간 세계에서 객체가 협력하는 건 무엇이 다를까?

소프트웨어에서 객체는 기능을 수행하기 위해 협력을 하고 인간 세계에서 객체는 목표를 달성하기 위해서 협력을 수행한다.

 

책임이 중요하다. 적절한 책임은 애플리케이션의 아름다움을 결정한다.

역할도 중요하다. 역할은 관련성 높은 책임의 집합이다.

 

댓글