본인은 책을 읽을 때 거의 대부분 사서 읽는다. 내 책이어야 마음에 드는 부분에 표시를 해둘 수 있으니까. 나의 좁은 식견으로 꼽은, 이 책에서 말하는 핵심 문장은 아래와 같다.
소프트웨어의 가치는 사용자가 요구하는 기능을 올바르게 제공하는 데 있다. ...(중략) 소프트웨어는 변화할 수 있어야 한다. 이게 또 다른 소프트웨어의 가치이다.
위 문장을 원활하게 이루어내기 위한 것들(객체지향, 디자인 패턴)을 본 책에서는 소개해주고 있다. 개인적으로는 개발 서적임에도 불구하고 비교적 가벼운 마음으로 읽을 수 있었던 것 같다. 짬나는 시간마다 표시하면서 읽었음에도 후루룩 읽혔고, 금세 완독할 수 있었다. 개인적으로 이 책을 읽으면서 든 생각은 토끼책(객체지향의 오해와 사실)을 먼저 읽고 이 책을 읽으면 이해가 정말 잘 될 것 같다는 거다. 본인도 아는 선배의 추천으로 읽었는데, 토끼책은 꼭 읽어보시길 바란다.
이 책에서는 단순한 예제와 함께 객체 지향과 디자인 패턴의 여러 가지 개념들을 주의사항과 함께 소개한다. 읽어보면 알겠지만, 정말 단순하고 명료하게 이해할 수 있게 쓰여져 있다. 그렇지만 쉽다고 해서 대충 쓰여진 것이 아니므로 주니어 레벨의 개발자라면 읽어보길 강력하게 추천한다(심지어 우아한테크코스에서도 추천서적으로 언급되고 있다). 애플리케이션 레벨에서의 구현에 분명히 많은 도움이 될 것이라 믿어 의심치 않는다.
책의 추천 자료 파트에서 추천해주고 있는 책들이다. 관심 있는 사람들은 찾아보길 바란다.
GOF의 디자인 패턴 - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
실전 코드로 배우는 실용주의 디자인 패턴 - Allen Holub
Agile Software Development, Principles, Patterns, and Practices - Robert C. Martin
켄트 벡의 구현 패턴 - Kent Beck
이펙티브 자바 - Joshua Bloch
Clean Code 클린 코드: 애자일 소프트웨어 장인 정신 - Robert C. Martin
리팩토링: 코드 품질을 개선하는 객체지향 사고법 - Martin Fowler
테스트 주도 개발: Test-Driven Development - Kent Beck
레거시 코드 활용 전략 - Michael Feathers
UML Distilled: 표준 객체 모델링 언어 입문 - Martin Fowler
본 책을 읽고나서 정리도 할 겸, 책에 기재된 예제가 아닌 샘플 코드를 직접 구현하는 중이며 해당 코드는 여기(필자의 GitHub)의 놀이터(예제코드 작성)
디렉토리에서 확인할 수 있게 할 예정이다(아직 보이지 않는다면 solid-design-pattern-sample
브랜치 참고). 이 글을 보는 누군가에게 도움이 되었으면 좋겠다.