『오브젝트: 코드로 이해하는 객체지향 설계』 – 조영호

2025. 8. 28. 19:53IT 독후감

반응형

📖 오브젝트 – 조영호

“객체지향의 본질은 코드 속에 있다”


1. 읽게 된 계기

객체지향 프로그래밍(OOP)은 이미 개발 세계의 표준처럼 자리 잡았지만, 막상 실제로 코드를 작성하다 보면
“이게 진짜 객체지향적인 코드일까?”라는 의문이 자주 들었습니다.

국내 개발자들 사이에서 객체지향을 가장 잘 설명한 책으로 많이 추천되는 책이 바로 조영호님의 『오브젝트』입니다.
이 책을 통해 객체지향 설계의 철학과 실무적 감각을 얻고 싶어 읽게 되었습니다.


2. 책의 핵심 메시지

이 책은 한마디로 **“객체지향은 언어 문법이 아니라, 객체들의 협력 관계를 설계하는 사고방식이다”**라는 메시지를 전합니다.

📌 주요 내용

  1. 객체지향의 본질은 협력
    • 클래스나 상속이 중요한 것이 아니라, 객체 간 메시지와 역할이 더 핵심이다.
  2. 유연한 설계는 변경에 강하다
    • 소프트웨어의 본질은 ‘변경’이며, 객체지향은 이를 다루기 위한 강력한 도구다.
    • 의존성을 줄이고 캡슐화를 통해 결합도를 낮추는 것이 중요하다.
  3. 추상화와 책임 분배
    • “어떤 객체가 어떤 책임을 져야 하는가?”를 먼저 고민해야 한다.
    • SRP(단일 책임 원칙), DIP(의존 역전 원칙) 등이 단순 규칙이 아니라 설계 철학임을 이해시켜준다.
  4. 코드와 설계의 일체성
    • 설계 문서와 코드가 따로 존재하는 것이 아니라, 코드 자체가 설계라는 점을 강조한다.
    • 따라서 코드가 곧 객체지향의 본질을 보여준다.

3. 인상 깊었던 부분

책에서 반복해서 나오는 개념이 바로 **“역할, 책임, 협력”**이었습니다.

객체지향은 객체들의 협력으로 문제를 해결하고, 각 객체는 명확한 역할과 책임을 가진다.

이 문장을 접하고 나니, 제가 그동안 클래스 설계에 집착하거나 상속 구조를 고민했던 방식이 잘못되었음을 깨달았습니다.
객체지향은 단순한 코드 구조가 아니라, 사람 간 협력 관계를 닮은 시스템 설계 방식이라는 점이 가장 크게 와닿았습니다.


4. 개발자로서 얻은 교훈

  • 객체를 설계할 때는 먼저 **“이 객체가 어떤 책임을 져야 하는가?”**를 묻자.
  • 클래스보다는 역할과 메시지 흐름에 집중하자.
  • 설계는 문서가 아니라 살아 있는 코드로 드러나야 한다.
  • 변경에 강한 구조는 결국 협력과 책임 분배에서 나온다.

5. 읽고 난 소감

『오브젝트』는 단순히 객체지향 개념을 설명하는 책이 아니라, 실제 코드와 함께 철학을 전달해줍니다.

읽고 나서 제 코드 습관을 돌아보니, 불필요하게 복잡한 상속이나 설계 패턴에 집착했던 부분들이 보였습니다.
앞으로는 더 단순하고 직관적으로, 협력과 책임을 고려한 코드를 짜야겠다고 다짐했습니다.


한 줄 평

“객체지향은 클래스 문법이 아니라, 역할과 책임으로 엮인 객체들의 협력이다.”

728x90