본문 바로가기
  • 장원익 기술블로그
더 좋은 개발자 되기/개발자 책읽기

[개발자 책 읽기] 객체지향의 사실과 오해-조영호 후기와 총평

by Wonit 2021. 4. 10.

해당 글은 조영호님의 객체지향의 사실과 오해 역할, 책임, 협력, 관점에서 본 객체지향 라는 책을 읽고 학습한 내용을 정리 및 회고하는 글 입니다. 자세한 사항은 YES 24 객체지향의 사실과 오해 에서 확인해주세요.

객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향 (조영호)

  • 위키북스
  • 지은이: 조영호
  • 펴낸이: 박찬규, 엮은이: 이대엽, 디자인: 북누리
  • 1쇄 발행: 2015.06.17


객체지향의 사실과 오해를 접한 시점

객체지향의 사실과 오해는 현재 나에게 가장 필요한 책이었다.

 

나는 현재 배재대학교 정보보안학과 공식 홈페이지 를 만들고 있다.

 

해당 홈페이지에는 모의 해킹을 할 수 있는 wargame 기능을 현재 준비하고 있다.

wargame 이란? 모의 해킹을 해볼 수 있는 체험형 해킹 게임으로 여러 분야(웹 해킹, 모바일 해킹, 시스템 해킹, 리버싱, 포렌식) 등이 있다.
문제를 푸는 사용자는 해당 문제를 다운로드 (웹이라면 url 접속)한 뒤 문제 속에 있는 flag 값을 찾고 점수를 얻는 방식이다.
CTF 대회의 기본 문제 풀이 개념으로 유명한 사이트로는 dreamhack.io, webhacking.kr 등이 있고 유명한 대회로는 Defcon, Codegate, LineCTF 등이 있다.

해당 홈페이지는 후배들에게도 인계가 되고 계속해서 이어져 나가야 했기 때문에 유지보수적인 측면에서 많은 노력이 필요했다.

 

그래서 생각해낸 것이 바로 정말 제대로된 객체지향 설계를 해보자! 였다.

 

그리고 많은 자료 조사를 하던 도중 내가 처음으로 개발에 눈을 뜨고 이것 저것 찾으면서 보게 된 조영호님의 우아한 테크 세미나 에서 발표한 우아한객체지향 by 우아한형제들 개발실장 조영호님 의 영상을 보고 있었다.

 

그럼과 동시에 도서관에서 우연히 오브젝트라는 책을 보게 되었는데, 그 책이 나를 객체지향의 세계로 끌어당겼다.


말 그대로 끌어당겨짐을 느꼈었다.

 

그리고 조영호님의 발표를 더 찾아보게 되었고 결국 객체지향의 사실과 오해 라는 책이 존재한다는 것을 알게 되었다.

 

사실 그 전에도 알고 있었지만 제목만 알고 있었다

 

그리고 학교 도서관에서 바로 책을 대여하고 약 5일? 만에 다 읽은듯 하다.

책을 읽으면서 느낀점

내가 느낀 점들은 다음과 같다.

  • 구성
  • 글쓴이, 조영호님의 마음
  • 완급 조절

1. 구성

우선 책을 읽다보면 이 책을 쓰신 조영호님은 개발자가 맞나 싶은 생각이 계속 든다.

 

개발자에게 글쓰기는 숙명과 동시에 무기라고 들었는데, 정말 조영호님은 글을 잘 쓰시는 것 같다.

 

책이 지루할 틈이 없다.

계속해서 강조하시는 내용은 객체는 협력하는 공동체이다. 책임과 역할을 적절히 분류하자! 인데, 이 내용을 처음 부터 끝 까지 아주 다양한 방식으로 설명하신다.

어떤 내용을 설명하시다가 결국은 협력하는 공동체가 나오거나 책임과 역할의 적절한 분배가 나온다.

 

억지로 끼워 맞춘듯 한 느낌이 아니라 아주 자연스럽고 매끄럽게 중요한 내용을 강조하신다.

2. 글쓴이(조영호님)의 마음

글의 구성이 워낙 좋다 보니 글을 읽으면서 딴 생각을 할 수 없다.

 

아니? 딴 생각을 하려고 해도 옆에서 내 고개를 책으로 박으려 한다는 느낌까지 들 지경이다.

 

다른 생각을 하면서도 새롭고 신기한 내용이 막 등장한다.

 

또 다른 생각은

어떻게던 이해시키겠다! 라는 것이 느껴진다.

계속해서 협력과 책임, 역할에 대해서 설명하시는데, 독자의 상황을 체크하신다.

 

이는 완급 조절과도 연관이 있다.

3. 완급 조절

이 책은 완급 조절이 잘 되어 있다.

 

객체 지향이란 어쩌면 조금 무겁고 추상적인 내용을 이야기하는 책이다 보니 자칫 잘못하면 책의 내용이 정신사납고 뭔가 붕 뜬것 같은 느낌을 줄 수 있을것 같지만 이 책은 전혀 그런 걱정이 필요가 없다.

 

너무 바쁘게 달려왔으니 이제 좀 정리를 해보자!

라고 하며 어려운 내용이 나온다면 계속해서 우리에게 숨을 쉬라고 하는것 같았다.

내가 느끼는 아주 조심스러운 단점

이 책은 원래 출판 계획이 없다고 들었다.

 

원래 계획하던 책에서 서론? 쯤으로 조금 빼놓은 부분을 책으로 만들어놓으셨다고 했는데, 그에 맞게 이 책에는 이론적인 내용이 99%를 이룬다.

 

그래서 코드 보다는 좀 더 추상적인 내용이 많이 들어있다.

 

하지만 이는 내일 읽을 오브젝트라는 책에서 100% 보충한다.

 

오브젝트라는 책의 존재와 위치로 인해서 글쓴이도 어쩔수 없는 이론의 늪이라는 설정을 버리지 않으신 것 같다.

 

아니 어쩔 수 없는게 아니라 오히려 의도하신것 같았다.

 

하지만 이 책 자체로만 본다면 코드가 좀 더 있었더라면? 하는 생각이 조금 들기도 하였다.

하지만 변하지 않는 사실은 이 책은 객체지향 초보를 위한 완벽한 가이드라는 것이다.

총평

이 책을 읽다 보면 앞서 말 했듯 조금 추상적이라 어려운 내용들이 퍼즐과 같이 자주 등장한다.


하지만 마지막 함께 모으기 에서 모든 포즐이 완벽하게 맞춰진다.


1장에서 잠깐 나온 커피가게를 실제로 객체지향적으로 설계하는 시간이 나오는데, 이 때 정말 감동의 쓰나미였다.

 

~ 이 말이 그 말이었구나..

 

또 이를 실제로 내가 생각하는 도메인으로 옮겨 나만의 설계를 하니 이제 나도 객체지향 설계를 할 수 있을 것만 같은 기대감에 자신감이 가득 찼었다.

댓글