Posts [객체지향의 사실과 오해] Chapter1-협력하는 객체들의 공동체
Post
Cancel

[객체지향의 사실과 오해] Chapter1-협력하는 객체들의 공동체

  • 실세계의 모방이라는 개념은 아쉽게도 객체지향의 기반을 이루는 철학적인 개념을 설명하는데 적합하지만, 유연하고 실용적인 관점에서 객체지향 분석, 설계를 설명하기엔 적합하지 않다.
    • 대다수의 개발자들은 객체지향 애플리케이션이 실세계를 모방해야 한다는 설명을 전혀 납득하지 못한다.
  • 객체지향의 목표는 실세계를 모방하는 것이 아니라 새로운 세계를 창조하는 것이다.
    • 소프트웨어 개발자의 역할은 단순히 실세계를 소프트웨어 안으로 옮겨 담는 것이 아니라 고객과 사용자를 만족시킬 수 있는 신세계를 창조하는 것이다.
    • 버트란드 마이어는 “소프트웨어 시스템이 해결하고자 하는 실재는 잘해봐야 먼 친척 밖에는 되지 않는다.” 는 말로 소프트웨어의 세계와 실세계 사이의 거리를 잘 표현하고 있다.
  • 실세계의 모방이라는 객체지향의 개념은 훌륭한 프로그램을 설계하고 구현하는 실무적인 관점에선 부적합하지만, 객체지향이라는 용어에 담긴 기본 사상을 이해하고 학습하는데 매우 효과적이다.
  • 그래서 이번 쳅터에선 객체지향에 관한 기본적인 내용을 설명하고자 잠시 동안만 실세계의 모방이라는 과거의 인습에 얽매일 예정이다.

협력하는 사람들

커피 공화국의 아침

  • 커피 주문점에 모든 음료 주문은 손님이 커피를 주문하고, 캐시어가 주문 받고, 바리스타가 커피를 제조하는 과정을 거친 후에야 완료된다.
  • 커피를 주문하고 제조하는 과정은 역할, 책임, 협력이라는 사람의 일상 속에 항상 스며들어 있는 세 가지 개념이 한데 어울려 조화를 이루며 만들어 낸 것이다.
  • 모든 과정 속엔 손님, 캐시어, 바리스타 사이의 암묵적인 협력 관계가 존재한다.
    • 커피를 주문하는 손님, 주문을 받는 캐시어, 커피를 제조하는 바리스타라는 역할이 존재하기에 모든 회사원들이 아침에 모닝커피를 원활히 누릴 수 있는 것이다.
    • 손님, 캐시어, 바리스타는 부문한 커피를 손님에게 제공하기 위해 협력하는 과정에서 자신이 맡은 바에 책임을 다한다. 손님은 카페인을 채우기 위해 커피를 주문할 책임을 수행한다. 캐시어는 손님의 주문을 받는 책임을 성실히 수행한다. 바리스타는 주문된 커피를 제조하는 책임을 수행한다.
  • 위에서 언급되는 역할, 책임, 협력 은 객체지향에서 가장 중요한 개념 세 가지이다.

요청과 응답으로 구성된 협력

This post is licensed under CC BY 4.0 by the author.

[도메인주도개발시작하기] Chapter11-CQRS

[클린코드] Chapter7-오류 처리