[책] "오브젝트" 후기

jeyong·2024년 9월 15일
0
post-custom-banner


이 글에서는 "오브젝트"를 읽으며 얻은 생각들을 기록하려 한다. 나중에 성장한 후, 지금의 나를 되돌아보는 데 도움이 될 수 있도록, 현재의 생각을 솔직하게 적어볼 예정이다.

1. 책을 읽은 이유

"오브젝트"를 읽게 된 계기는 이전에 읽었던 [책] "객체지향의 사실과 오해" 후기에서 밝혔듯이, "객체지향의 사실과 오해"가 이론적인 개념에 대한 이해와 사고 방식을 다루는 책이어서 다소 추상적인 내용을 많이 담고 있었기 때문이다. 그 책을 통해 객체지향에 대한 철학적 이해를 어느 정도 쌓았지만, 실제 코딩에 적용할 수 있는 실용적인 지식을 다루는 데는 한계가 있었다.

그래서 동일한 저자의 두 번째 책인 "오브젝트"를 통해 코드를 활용한 객체지향 설계를 더 깊이 이해하고 싶었다. 이 책은 코드를 통해 좀 더 실질적으로 객체지향을 설명해주며, 실무에 바로 적용할 수 있을 거라는 기대를 가지고 읽기 시작했다.

2. 책을 읽은 후기

먼저, 책의 제목과 표지를 보고 놀랐다. "객체지향의 사실과 오해"의 귀여운 토끼 그림과는 달리, "오브젝트"는 제목부터가 좀 더 강렬한 느낌을 주었고, 표지에도 객체들이 협력하는 듯한 그림을 사용하고 있었다. 이걸 보면서 저자가 이번에는 개발자들을 위해 더 실질적이고 실무적인 내용을 담아냈겠구나 하는 느낌을 받았다. 그런 기대감으로 책을 펼쳤다.

예상대로, "오브젝트"는 객체지향의 다양한 개념과 원칙을 코드로 풀어 설명하고 있었다. 객체지향에서 자주 언급되는 결합도와 응집도, 캡슐화 같은 익숙하지만 막상 정의하라고 하면 모호했던 개념들을 실제 코드로 설명하면서, 그 개념들이 어떻게 구현되는지를 명확하게 보여줬다.

이전 책에서는 은유와 질문을 통해 스스로 해답을 찾게 유도했다면, 이번 책은 해답을 직설적으로 제시하며 실용적인 방향으로 전개된다. 첫 번째 책에서 추상적인 개념 설명에 집중했던 저자가, 두 번째 책에서는 "코드 없이 개념을 설명하는 것은 영감을 주지 못한다"라고 강하게 말한 점이 인상적이었다. 이를 통해 저자도 지난 몇 년간 생각이 많이 바뀌었구나 하는 생각이 들었다.

책의 전개 방식 중 하나로, 좋지 않은 코드 예시를 먼저 보여주고, 그 코드를 점진적으로 리팩토링해가는 과정이 있다. 이를 통해 객체지향 설계를 좀 더 명확하게 이해할 수 있었다. 그리고 객체지향 설계 분야에서 유명한 인물들의 발언을 인용하며, 추상적인 설명보다는 명확한 용어를 사용해 설명하는 것도 큰 도움이 됐다.

하지만, 솔직히 말해서, 이 책을 읽었다고 해서 내가 눈에 띄게 발전했는가? 그건 아직 아니라고 생각한다. "객체지향의 사실과 오해"를 읽었을 때처럼 책을 핑계 삼아 발전하지 못했다고 변명할 생각은 없다. 저자도 이 책에서 "나는 아직 따라 하는 수준이며, 실무에 적용하기 위해서는 다양한 상황에서 트레이드오프할 수 있는 단계로 나아가야 한다"고 말한다. 나 역시 책에서 배운 내용을 실무에서 다양한 프로젝트에 적용하며 나만의 설계 기준을 세워야 할 것이다.

객체지향은 매순간마다 끊임없이 고민하고, 상황에 맞는 트레이드오프를 해야 한다는 점에서 어려운 것 같다. 그럼에도 책에서 강조한 것처럼, 캡슐화, 응집도, 결합도와 같은 개념의 정의와 원칙은 여전히 유효하다. 객체지향 패러다임의 중심에는 역할, 책임, 협력이 있으며, 나는 이 기준을 바탕으로 계속해서 트레이드오프를 고민하게 될 것이다.

결국, 지름길은 없다. 책은 방향을 제시할 뿐, 그 길을 걷는 것은 나 자신이다.

profile
노를 젓다 보면 언젠가는 물이 들어오겠지.
post-custom-banner

0개의 댓글