이 책을 한번 훑을 때까지 몇 번이나 책을 빌렸는지 모르겠다. 처음 빌려서 읽을 때는 이해가 안 되어서 반납했고, 두 번째 빌려서 읽을 때는 잘 안 와닿아서 반납했다. 시간이 좀 지났고 다시 한번 도전해봐야겠다 싶어서 주말을 이용해서 드디어 한 번을 훑었다.
이 책은 OOP라는 콘셉트를 가지고 개발을 할 때 지키면 좋을 가이드라인을 제시한다. 뭔가 기술 면접 때 나올법한 의존성 역전, SOLID, IOC 등의 개념을 코드 예시와 함께 설명한다. 책이 굉장히 두껍고 코드 양이 많아서 중간에 휙휙 넘기고 싶은 욕구가 계속 들 텐데 꾹 참고 차근차근 읽어보면 좋을 것 같다.
순서가 반대일 수도 있겠지만 이 책을 읽고 기존에 가지고 있던 모호했던 개념이나 프레임워크(특히 Spring)의 개발 철학 등에 대해 많이 공감했다. 물론 다양한 키워드들에 대해 여전히 명료하게 설명할 수는 없는데, 그래도 두어 가지 정도는 이제 설명할 수 있게 되었다는 점에서 만족한다.
개발을 하다 보면, 특히 기존에 잘 작성되어 있는 코드들을 보면 기능적인 부분 이외에 클래스 디자인이라던지 이런 구조를 어떻게 생각해서 구현했을까라는 생각이 들 때가 있다. 책에선 그런 것들을 집어주었고 어떤 개념을 적용해서, 혹은 어떤 방식을 의식하면 결과적으로 이런 구조가 나오는지에 대해 다루고 있다. 사실 디자인 패턴이란 게 수많은 경험과 시행착오에서 발생한 정형화된 구조인데 그것의 원리라는 굉장히 모호한 것을 독자로 하여금 수긍할 수 있게 구체적인 사례와 함께 설명했다는 점에서 놀라웠다.
이 책을 읽고 "뭔가 당연한 이야기를 하네"라는 생각이 드는 분이라면 본인이 OOP 관점에서 코드를 잘 작성하고 있다고 생각해도 될 것 같다. 어떻게 하면 이렇게 잘 쪼개서 기능을 구현할까?, 진짜 추상화를 잘해서 변경도 용이한 클래스 구조를 만들려면 어디서부터 시작해야 하지? 등의 의문이 있다면 이 책이 약간의 해결의 실마리가 될 수 있지 않을까 생각한다.
'Review' 카테고리의 다른 글
데이터 중심 애플리케이션 설계 (0) | 2022.03.28 |
---|---|
클린 아키텍처 (0) | 2022.03.06 |
2022 KAKAO BLIND RECRUITMENT 코딩테스트 2차 (2) | 2021.09.26 |
Kotlin In Action (0) | 2021.09.22 |
객체지향의 사실과 오해 (0) | 2021.09.19 |