Review

오브젝트

Doljae 2022. 2. 20. 22:44

이 책을 한번 훑을 때까지 몇 번이나 책을 빌렸는지 모르겠다. 처음 빌려서 읽을 때는 이해가 안 되어서 반납했고, 두 번째 빌려서 읽을 때는 잘 안 와닿아서 반납했다. 시간이 좀 지났고 다시 한번 도전해봐야겠다 싶어서 주말을 이용해서 드디어 한 번을 훑었다.

 

이 책은 OOP라는 콘셉트를 가지고 개발을 할 때 지키면 좋을 가이드라인을 제시한다. 뭔가 기술 면접 때 나올법한 의존성 역전, SOLID, IOC 등의 개념을 코드 예시와 함께 설명한다. 책이 굉장히 두껍고 코드 양이 많아서 중간에 휙휙 넘기고 싶은 욕구가 계속 들 텐데 꾹 참고 차근차근 읽어보면 좋을 것 같다.

 

순서가 반대일 수도 있겠지만 이 책을 읽고 기존에 가지고 있던 모호했던 개념이나 프레임워크(특히 Spring)의 개발 철학 등에 대해 많이 공감했다. 물론 다양한 키워드들에 대해 여전히 명료하게 설명할 수는 없는데, 그래도 두어 가지 정도는 이제 설명할 수 있게 되었다는 점에서 만족한다.

 

개발을 하다 보면, 특히 기존에 잘 작성되어 있는 코드들을 보면 기능적인 부분 이외에 클래스 디자인이라던지 이런 구조를 어떻게 생각해서 구현했을까라는 생각이 들 때가 있다. 책에선 그런 것들을 집어주었고 어떤 개념을 적용해서, 혹은 어떤 방식을 의식하면 결과적으로 이런 구조가 나오는지에 대해 다루고 있다. 사실 디자인 패턴이란 게 수많은 경험과 시행착오에서 발생한 정형화된 구조인데 그것의 원리라는 굉장히 모호한 것을 독자로 하여금 수긍할 수 있게 구체적인 사례와 함께 설명했다는 점에서 놀라웠다.

 

이 책을 읽고 "뭔가 당연한 이야기를 하네"라는 생각이 드는 분이라면 본인이 OOP 관점에서 코드를 잘 작성하고 있다고 생각해도 될 것 같다. 어떻게 하면 이렇게 잘 쪼개서 기능을 구현할까?, 진짜 추상화를 잘해서 변경도 용이한 클래스 구조를 만들려면 어디서부터 시작해야 하지? 등의 의문이 있다면 이 책이 약간의 해결의 실마리가 될 수 있지 않을까 생각한다.