-
오브젝트후기/Book Review 2020. 5. 10. 17:13728x90반응형
1년에 걸쳐 다 읽게 된 책. 객체지향 프로그래밍이란 무엇인지 다시 생각하게 하고, 객체지향 프로그래밍이 쉽지 않다는 것을 알게 해 주었다.
목차
- ◎ 1장: 객체, 설계
- ◎ 2장: 객체지향 프로그래밍
- ◎ 3장: 역할, 책임, 협력
- ◎ 4장: 설계 품질과 트레이드오프
- ◎ 5장: 책임 할당하기
- ◎ 6장: 메시지와 인터페이스
- ◎ 7장: 객체 분해
- ◎ 8장: 의존성 관리하기
- ◎ 9장: 유연한 설계
- ◎ 10장: 상속과 코드 재사용
- ◎ 11장: 합성과 유연한 설계
- ◎ 12장: 다형성
- ◎ 13장: 서브클래싱과 서브타이핑
- ◎ 14장: 일관성 있는 협력
- ◎ 15장: 디자인 패턴과 프레임워크
- ◎ 마치며: 나아가기
- ◎ 부록A: 계약에 의한 설계
- ◎ 부록B: 타입 계층의 구현
- ◎ 부록C: 동적인 협력, 정적인 코드
- ◎ 부록D: 참고문헌
블로그 Book Review의 첫 번째 글인 <객체지향의 사실과 오해>의 저자이신 조영호님의 두 번째 책이 나온다고 하여 에약구매로 구입했었다(이에 따른 역효과가 있었으니... 이는 조금 뒤에 얘기하겠다). 특정 언어에 대한 기본서나 심화서 등은 많이 존재하는데 객제지향에 관련된 책은 거의 못 본 것 같다. 예제 코드가 거의 자바로 되어있긴 한데(더 효과적인 설명을 위해 스칼라나 루비, C#등을 사용하기도 함) 언어 때문에 객체지향을 이해하는데 방해가 될 것 같진 않다.
프로그램 작성에 있어서 결국 최종적으로 우리가 추구하는 것은 높은 유지보수성이다. 객체지향 프로그래밍이 나온 이유도 결국은 이 유지보수를 잘하기 위해서이다. 클라이언트의 요구사항이 추가되고 변경됨에 따라 우리의 코드도 덩달아 계속 변경이 될 수밖에 없다. 이 변화에 대해 얼마나 잘 대응(낮은 버그 발생률, 적은 코드 변경, 가독성 있는 코드 유지 등)할 수 있느냐가 바로 유지보수성이다. 유지보수도 결국 비용이고 우리는 이 비용을 최소화하고 싶은 것이다. 사람이 엑셀로 작업하던 것을 새로 시스템을 구축한다고 해서 무조건 이득인 것이 아닌 것이다. 오히려 엑셀로 하는 것이 더 나을 때도 있다. 이런 높은 유지보수성을 가능하게 하는 언어적 패러다임 중 하나가 객체지향 프로그래밍인 것이다. 그리고 그 객체지향 프로그래밍을 잘하기 위해 이 책을 읽어야 하는 것이다.
수많은 서적 참조와 저자의 내공이 느껴지는 책이다. 이 한 권을 통해 여기서 참조하는 여러 양서들을 하나씩 파보는 것도 좋은 공부 방법일 것 같다. 객체지향에 대해 매우 많은 내용들을 다루며 어떻게 더 이 특성을 잘 쓸 수 있는지 자세히 설명해 주고 있다.
거의 끝까지 읽던 중 팀 내에서 이 책으로 스터디를 하기로 해서 다시 원점으로 돌아가 다시 읽었다. 사실상 2독을 한 셈이다. 그만큼 내용이 더 잘 기억이 나는지는 논외로 하고.
예약판매로 사서 작년 6월에 초판을 받았는데 오타가 너무 많았다. 단순 글자가 틀린 수준이 아니라 그림이 잘못되거나, 변수명이 다른 것으로 돼있거나 하는 식으로 나와서 조금 읽기 힘들었다. 관련해서 저자가 사과를 할 정도니... 이때까지 많은 IT 책들을 보았는데, 이 정도로 심각한 경우는 못 봤다. 저자나 출판사를 욕하고 싶지는 않다. 나름의 사정이 있었을 테니까. 조영호님과 위키북스를 좋아하는 저자로서 너무 아쉬운 부분이다. 다행히 팀원들은 초판이 아니라 별 문제가 없는 것 같다. 오탈과 관련해서 정오표는 공식 홈페이지에 잘 나와있다.
오브젝트: 코드로 이해하는 객체지향 설계, 위키북스 (조영호)
반응형'후기 > Book Review' 카테고리의 다른 글
객체지향 사고 프로세스 (0) 2020.08.11 자바와 JUnit을 활용한 실용주의 단위 테스트 (0) 2020.06.14 DDD START! (0) 2020.04.28 자바 퍼즐러 (0) 2020.04.23 마이크로서비스 패턴 (0) 2020.04.05