[TIL]객체지향의 사실과 오해 제1장 협력하는 객체들의 공동체 스터디노트
서론
개발을 독학해나가면서 소프트웨어 아티스트의 길을 걷고 있는 나는 현재 나만의 개발자커리어로드맵을 만들어가기 위해 매일 연구한다.
소프트웨어 아티스트라는 이전에는 없던 독보적 커리어를 어떻게 가꾸어나가는게 좋을지 고민이지만, 공부하면서도 즐거운 것을 보니 천직일지 모른다는 생각이 들었다.
혜풍의 기술스택의 방향성
아무튼 나는 우선 프로그래밍 언어를 기본적으로 익히는게 먼저라는 생각에 파이썬과 자바스크립트를 공부 중이다.
파이썬은 내가 데이터과학과 인공지능, 로보틱스 분야를 하기 위해서 전공 쪽으로 필요하기 때문이고, 자바스크립트의 경우 원래 프론트엔드 개발을 위한 기술일 뿐만아니라 최근에는 node.js를 통해 서버프로그래밍이 가능한 유연한 언어로 백엔드개발자- 더 나아가 풀스택개발자를 지향하는 내게 도움이 될 언어라고 판단했기 때문이다.
‘객체지향’을 공부하기로 하다
특히나 이 두 언어를 접하다보면 '객체지향, 객체지향' 이란 말을 엄청 자주 보는데, 나는 솔직히 객체지향이 뭔지 설명을 봐도 몰랐다. 그래서 그놈의 '객체지향'에 대한 정의만 주구장창 찾았다. 그때마다 보는 정의란 "실세계를 직접적이고 직관적으로 모델링 할 수 있는 패러다임"이었다. 이게 더 무슨 말을 하고 있는건지 해석할 수 없었다.
대충 여러 문서들을 계속 찾아보며 객체지향의 뜻을 추론해보니 실세계의 것들-그러니까 실제 존재하는 사물-을 최대한 유사하게 모방해 소프트웨어 내부를 구현하는 건가보다하고 생각하게 되었다.
물론 찜찜했다. 이렇게 생각하는게 맞는 것인지 스스로 단언할 수가 없었기 때문이다.
그래서 나는 개발자 필독도서 목록을 찾아보았고 여기에 반드시 들어가는 책이 객체지향의 사실과 오해 라는 것을 알아냈고, 이 책으로 객체지향을 공부하기로 했다.
1. 협력하는 사람들
결론부터 요약하자면 이 파트에 나오는 '커피 공화국' 얘기는 정말 미친 비유라고 생각한다. 이렇게 쉽게 객체지향이 무엇인지 설명이 가능했었나?
커피를 주문하고 제조하는 과정은 역할, 책임, 협력이라는 사람의 일상 속에 항상 스며들어 있는 세 가지 개념이 조화를 이루며 만들어지는 것이다. 저자는 커피전문점에서 일련의 과정에서 협력관계, 역할, 책임을 뽑아내어 이를 소프트웨어 내에서 벌어지는 과정에 비유한다.