오브젝트 마지막인 마치며, 나아가기에 이런 문구가 있다
어떤 기술을 처음 학습하려는 사람은 '따라가는 수준'에서 시작한다.
나는 객체지향을 코드로 이해하기 위해서 오브젝트를 읽기 시작했다.
처음엔 객체지향 개념도 제대로 안 잡힌 상태여서 오브젝트 내용을 잘 이해하지 못했다. 말 그대로 글과 코드를 보면서 따라갔다.
그러다가 중반부터 한달정도 멈췄다가 다시 읽으면 첫 완주를 했다.
첫 완주 했을 때의 심정은 드디어 다 읽었구나, 나도 이제 객체지향에 대해 좀 알게 된 거 같은 기분이다.
객체가 무엇인지 검색을 해보면 객체란 상태와 행동을 가진 거라 정의하는 사이트가 많았다.
오브젝트 초반 부분도 객체는 행동과 상태를 같이 가진 것이라고 표현한다.
하지만 초반 이후엔 객체는 협력이라는 문맥 안에서 적합한 책임을 가진 것이라 생각이 바뀐다.
객체는 독립적으로 존재하는 게 아니다. 협력하기 위해 존재하는 것이고, 협력안에서 적합한 책임을 가지며 책임을 지기 위해 사용되는 상태를 가지는 것이 객체라 생각하게 된다.
오브젝트는 이런 객체로 협력을 설계하는 방법을 알려준다.
오브젝트를 포스팅하기 위해 다시 읽었다.
디자인 패턴과 리팩터링, 클린 아키텍처 등 객체지향 관련된 책을 읽고 나서 다시 보게 되니 이해했다고 생각했던 내용들이 이번에는 전혀 색다른 내용으로 다가왔다.
흔히들 책은 시간이 지나면 느껴지는 게 다르다는 말이 무엇인지 이해됐다.
주기적으로 여러 번 봐도 재미가 있겠구나 생각된다.
그리고 읽으면서 좋은 객체지향 설계란 무엇인가 고민했다.
좋은 설계는 무엇일까? 좋은 코드는 무엇일까?
흔히 말하는 이해하기 좋은 코드일까? 오브젝트에서는 자주 언급되는 게 있다.
설계는 트레이드오프의 산물이다.
나쁜 설계든 좋은 설계든 상관없다.
모두가 상황에 따라 선택된 최선의 선택일 것이다.
'서적 > 오브젝트: 코드로 이해하는 객체지향 설계' 카테고리의 다른 글
오브젝트 15_ 디자인 패턴과 프레임워크 (0) | 2021.06.10 |
---|---|
오브젝트 14_ 일관성 있는 협력 (0) | 2021.06.10 |
오브젝트 13_ 서브클래싱과 서브타이핑 (0) | 2021.06.10 |
오브젝트 12_ 다형성 (0) | 2021.06.10 |
오브젝트 11_ 합성과 유연한 설계 (0) | 2021.06.10 |