[리뷰] 객체지향의 사실과 오해

제레인트20·2021년 6월 6일
2

Review

목록 보기
2/2
post-thumbnail

🚀 제가 사용자로서의 경험한 것을 기록한 글입니다.

수석님(팀장님)께서 추천해준 책, 객체지향의 사실과 오해 를 읽었습니다.
이 책을 다 읽기 위해 3번의 시도를 했고, 마지막 시도에서도 2주간 거의 매일 1~2시간씩 붙잡고 있어야 했습니다. 왜 이렇게 힘들고 오랜 시간을 소요했던 책인지, 그리고 읽으면서 든 생각을 기록합니다.

읽기까지의 과정

회식을 마치고 집에 가는 날이었어요. 수석님과 저는 집 방향이 같아서 같이 가게 되었죠.
가는 동안 이런 저런 이야기를 하다가, 개발을 잘 하려면 어떤 책을 읽는게 좋은지 여쭈어 보았고, 그때 추천받은 책 중 하나가 바로 객체지향의 사실과 오해 였어요.
(이때 알아봤어야 했는데.. 수석님이 hard worker 라는 걸...)

책은 많이 어려웠어요.
원래 저는 책을 읽을 때 한번에 3~4시간을 써서 한번에 쭉 읽어나가는 편인데, 이 책은 그럴수가 없었어요. 내용의 밀도가 매우 높아서 1시간에 20페이지를 넘기가 힘들더라구요. 그래서 읽다가 포기하기를 반복했다가, 이번 5월에 마음을 다잡고 2주동안 읽었습니다.

객체지향의 사실과 오해 리뷰

밀도 높은 책

이 책은 내용이 빼곡하게 들어찬 책이에요.
저는 이런 책들을 밀도 높은 책 이라 부르는데, 이런 책들은 다음과 같은 공통점이 있어요.

  • 여러 개념들을 소개함
  • 소개한 개념들을 엮어서 하나의 결론으로 이끌어냄
  • 문장이 쉽게 읽히지 않음
  • 저자는 쉽다고 주장하나 실제 읽으면 전혀 쉽지 않음

이 책도 위 공통점을 그대로 따르고 있는걸 봐선, 밀도 높은 책에 완벽히 맞는 책이라고 생각해요.

전제 조건

책 처음에 적혀있는 '대상 독자' 파트의 마지막 문단에는 다음과 같이 적혀 있어요.

물론 개발 경험이 전무하다고 해서 이 책을 읽을 수 없는 것은 아닙니다. 비개발자가 책을 읽더라도 이해하는 데는 큰 무리가 없을 정도로 일반적이고 평이한 난이도를 유지하기 위해 노력했습니다.

그.. 글쎄요......

제가 읽어보고 생각한 이 책을 읽기 위한 최소 전제조건은 다음과 같아요.

  1. 객체 지향에 대해 들어본 적이 있음
  2. 개발자 or 애플리케이션을 개발한 적이 있음
  3. 애플리케이션 구조 및 설계에 대해 고민해본적이 있음

위 조건에 해당이 되지 않는 경우, 당장 이 책을 읽는걸 추천하지 않아요.
굳이 지금 읽어서 개발 의지를 꺾지 않는게 더 좋다고 생각합니다!

책 내용

이 책은 제목에 충실한 책이에요.
제목 그대로 객체지향 프로그래밍의 개념과, 사람들이 오해하는 포인트를 잘 잡아서 설명하는 책이에요.

책을 읽으면서 생각한 몇가지를 나열하자면,

  • 책에서는 "이상한 나라의 앨리스" 의 몇몇 상황을 가져와서 예시로 사용하는데, 소프트웨어 설계 === 이상한 나라 창조 라는 작가의 생각이 담겨있는 비유라는 생각이 들었어요.
  • 제가 주로 개발하는 방식은 전통적인 기능 분해(functional decomposition)방식 이라는걸 알게 되었고, 왜 매번 개발 후 아쉬웠는지 알게 되었어요. 동시에, 왜 객체지향이라는 개념이 유명해졌는지도 알게 되었죠.
  • 객체지향의 핵심메시지라는 사실을 알게 되었어요. 그래서 행동이 상태를 결정하도록 해야 하고, 시스템을 메시지를 주고받는 동적인 객체들의 집합으로 바라봐야 하는걸 알게 되었죠.
  • 객체지향을 제대로 이해하는건 아직 멀었다는 생각이 들었어요. 제대로 적용하기 위해선 시간과 노력이 많이 필요할꺼라 생각했어요.
  • 책 내용을 좀 더 소화시키기 위해, 시간 될 때마다 틈틈히 개인 TIL에 조금씩 책 내용을 요약해서 제 나름대로 정리해볼 생각이에요.

한줄평

내 코드의 구조를 고민해본 사람이라면 꼭 읽어보길 권함.
동시에 마음을 다 잡고 읽어야 하는 책.

profile
글쓰고 코딩하는 직장인

0개의 댓글