이 책에서 말하는 객체지향은 단순히 기술적인 구조나 설계 방식이 아니라, 결국 사람 사이의 관계처럼 '협력'이라는 본질에 가깝다고 느꼈다. '커피 공화국'의 예시는 아침의 일상적인 장면을 통해 우리가 얼마나 자연스럽게 역할과 책임, 협력에 기반한 상호작용을 하고 있는지를 보여준다. 그리고 그 안에 담긴 구조는 결국 객체지향 프로그래밍에서도 그대로 반영된다는 점에서 흥미로웠다. 시스템이든 조직이든 사람이든, 구성원 각자가 자신의 역할을 맡고 책임을 다하는 방식으로 전체가 유기적으로 동작한다는 점에서, 객체지향은 현실 세계를 모사하는 것이 아니라 현실 그 자체를 프로그래밍에 녹여낸 방식이라는 생각이 들었다.
특히 요청과 응답의 연쇄, 그리고 그 방향성에 대한 설명이 인상 깊었다. 협력은 단절된 단위로만 이뤄지는 것이 아니라, 하나의 요청이 또 다른 요청을 불러오고, 그 결과는 다시 앞선 요청자에게 되돌아가는 방식이다. 이는 실제 개발할 때도 마찬가지다. 하나의 서비스 호출은 또 다른 객체의 메서드를 호출하고, 그 결과가 다시 상위 레이어로 전달된다. 그리고 그 사이사이에는 각자의 역할과 책임이 자연스럽게 녹아들어 있다. 이런 흐름을 이해하고 나면, 객체 사이의 관계를 단순히 의존성이나 연결선으로 보는 게 아니라, 일종의 대화 혹은 업무 흐름처럼 느껴지기 시작한다.
역할이라는 개념을 책임과 연결 지어 설명한 부분도 많이 와닿았다. 역할이란 단순히 어떤 이름표나 자리에 불과한 것이 아니라, 그것이 내포하고 있는 책임을 수행할 수 있어야 진정한 역할이라고 할 수 있다. 그리고 그 역할은 서로 대체 가능해야 하며, 동시에 하나의 역할을 여러 객체가 수행할 수도 있고, 하나의 객체가 여러 역할을 감당할 수도 있다는 유연성이 중요하다. 이 유연함 속에서 자율성이 생기고, 그것이 곧 다형성이라는 개념과 연결된다. 동일한 요청에 대해 각기 다른 방식으로 응답할 수 있는 능력은 결국 각 객체가 자신의 내부 구현은 감춘 채, 정해진 약속에 따라 책임을 이행하는 모습과 닮아 있다.
사람도 마찬가지다. 우리는 각자 팀 안에서 맡은 역할이 있고, 그 역할에 따른 책임이 있다. 그런데 중요한 건 '역할'이 '직책'이나 '타이틀'로 고정되는 것이 아니라는 점이다. 상황에 따라 새로운 역할이 부여되기도 하고, 그 역할을 수행하는 방식 또한 다를 수 있다. 심지어는 동시에 여러 역할을 맡기도 한다. 그래서 중요한 건 누가 무엇을 맡았느냐가 아니라, 누가 어떤 방식으로 그 역할에 충실하고 있는가이다. 객체지향에서 말하는 역할과 책임의 분리는 결국 사람 간 협업에 있어서도 유효한 기준이 될 수 있다는 생각이 들었다.
그런 점에서 이 책이 강조하는 객체지향은 단순히 코드 상의 추상화나 설계 기법이 아니라, 우리가 함께 일하고 문제를 해결하는 방식에 대한 태도에 가깝다. 객체를 바라보는 시선이 '데이터를 담는 그릇'에서 '행동하고 책임지는 주체'로 바뀌는 순간, 프로그래밍 자체에 대한 생각도 달라지기 시작했다. 그렇게 보면 결국 개발이라는 일은 코드만 다루는 것이 아니라, 책임을 분배하고 협력을 조직하는 일이기도 하다. 객체지향의 핵심이 바로 그 지점에 있다고 느꼈다. 이 책을 읽으며 다시금 '코드를 짠다'는 행위의 의미를 되짚어보게 됐다.
'독서 > 객체지향의 사실과 오해' 카테고리의 다른 글
이상한 나라의 객체 | 객체, 그리고 이상한 나라 (0) | 2025.06.19 |
---|---|
이상한 나라의 객체 | 객체지향과 인지 능력 (0) | 2025.06.18 |
협력하는 객체들의 공동체 | 객체지향의 본질 (1) | 2025.06.17 |
협력하는 객체들의 공동체 | 협력 속에 사는 객체 (0) | 2025.06.16 |
협력하는 객체들의 공동체 | 역할, 책임, 협력 (0) | 2025.06.15 |