객체지향의 사실과 오해 책 표지 사진
출처 - 위키북스 https://wikibook.co.kr/object-orientation/

 

 

책을 읽게 된 이유


자바 언어를 공부하다 보면 객체지향에 대한 내용들이 포함되어있습니다. 자바에서는 문법적으로 객체지향을 어떻게 지원해주고 있는지에 대한 내용들이죠. 하지만 프로그래밍을 처음 공부하는 입장에서는 객체지향의 본질이 뭔지를 모르는 상태이기 때문에 객체지향이 자바의 클래스에 대한 내용이고 자바는 객체지향언어다라는 정도로만 이해하고 넘어가는 경향이 있는 것 같습니다. 저도 마찬가지였고요.

 

 

자바로 실무 코드를 짜보면 때로 코드를 변경해야 할 때 너무 시간이 많이 걸리고 바꿔야할 것도 너무 많은 경우가 있습니다. 별로 변경사항이 많은 것도 아닌데 코드에 적용하려고 하면 머릿속이 복잡해집니다. 저는 이런 상황을 겪고 어떻게 하면 코드를 변경하기 쉽게 짤 수 있을까에 대해 고민을 했습니다. 그래서 클린코드, 리팩토링, 클린 아키텍처와 같은 책들을 뒤적뒤적거렸고 강의들도 몇 개 들어 봤습니다. 자료들을 뒤적거린 결과 객체지향이란 변경에 유연한 코드를 설계하기 위해 탄생한 것이라는 것을 알게 되었고 이에 대해 공부를 해봐야겠다 생각했습니다.

 

 

어떤 자료가 객체지향의 본질에 대해 설명하고 있을까 찾아보던 도중 '객체지향의 사실과 오해'라는 책이 좋다고 주변에서도 추천을 하고 인터넷 상에서도 추천을 많이 하길래 책을 읽게 되었습니다.

 

 

 

책에서 새롭게 배운 점


객체지향을 공부하며 가장 헷갈렸던 부분이 객체지향이 현실의 객체를 코드상에 투영하는 것이라고 하는데 실제 코드를 구현할 때는 실제 세계를 투영하는 경우가 없었습니다. 하지만 책을 읽고 현실의 객체를 투영하는 것이 객체지향의 핵심이 아니라는 사실을 알게 되었습니다. 그런 설명은 단지 객체지향을 이해하기 쉽도록 하기 위한 한 가지 비유에 불과한 것이라는 것을 깨닫고 나니 객체지향의 본질에 대해 더 잘 이해할 수 있게 된 것 같습니다.

 

 

책에서 가장 인상깊었던 부분은 설계에서 객체들이 가지는 상태에 집중하지 말고 객체간의 메시지에 집중하라는 것이었습니다. 이때까지 저는 코드를 짜면서 항상 클래스에 '어떤 필드들이 있어야 하고 그 필드들을 다른 객체에 제공하려면 어떤 메서드를 만들어야할까'의 순서로 객체를 설계했습니다. 그래서 그런지 코드를 객체지향적으로 짜려고 노력했지만 항상 결과물이 만족스럽다 못해 이상했습니다. 하지만 이 책을 읽고 이제는 객체들이 어떤 메시지를 주고받아야 하는지, 그리고 각 객체들은 어떤 역할과 책임을 가지는지에 대해 먼저 생각을 하며 설계를 해야겠다고 생각했습니다. 

 

 

이외에도 완벽하게 이해하지는 못했지만 책을 읽으며 객체지향에 대해서 제가 많은 부분 잘못 이해하고 있었다는 사실을 깨달았고 오해들을 풀수 있었습니다. 책을 읽은 후 실무에서 설계를 해봤는데 확실히 설계를 좀 더 명확하고 깔끔하게 할 수 있었습니다. 아직 배우고 공부할 내용들은 많지만 그래도 막혀있던 한 부분이 뻥뚫리는 느낌이 들어 이 책을 읽기 참 잘했다는 생각을 했습니다.



 

 

책의 특징


이 책은 우선 다른 개발 책들에 비해서는 두께가 얇은 편입니다. 게다가 책에 코드가 거의 없기때문에 생각보다 빨리 다 읽을 수 있었습니다. 두께가 비록 얇기는 하나 객체지향의 큰 그림에 대해 비유적으로 이해가 쉽도록 설명합니다. 

저는 이 책이 프로그래밍을 시작한지 그렇게 오래되지 않은 신입 개발자들이 읽으면 굉장히 좋을 것 같다는 생각을 했습니다. 왜 다른 분들도 저에게 이 책을 추천했는지 알 것 같습니다. 소프트웨어 코드 설계를 어떤식으로 하면 좋을 지 고민하는 중이라면 이 책을 더욱더 추천합니다.

다만 객체지향에 대한 개념적인 설명만이 대상이기 때문에 코딩으로 정확히 이러한 개념들이 어떻게 구현되는지는 이 책의 대상이 아닙니다. 하지만 저자분께서 쓰신 '오브젝트'라는 다른 책에서 그 내용을 다루고 있기 때문에 이 책을 읽고 궁금하신 분들은 읽어보시면 좋을 것 같습니다.

 

 

객체지향의 사실과 오해 오브젝트 코드로 이해하는 객체지향 설계 (마스크제공), 단품

' > 추천' 카테고리의 다른 글

진짜 부자가 되는 법  (0) 2020.06.01
삶이 나아지지 않을때 읽기 좋은 책  (0) 2020.04.14
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기