티스토리 뷰

반응형

최근에 읽은 책은 “만들면서 배우는 클린 아키텍처” 라는 책입니다.

https://www.yes24.com/Product/Goods/105138479

 

만들면서 배우는 클린 아키텍처 - 예스24

우리 모두는 낮은 개발 비용으로 유연하고 적응이 쉬운 소프트웨어 아키텍처를 구축하고자 한다. 그러나 불합리한 기한과 쉬워보이는 지름길은 이러한 아키텍처를 구축하는 것을 매우 어렵게

www.yes24.com

 

다른 유명한 “클린 아키텍처”의 경우 책이 두꺼워서 선뜻 읽기가 겁이 나는데 해당 책은 대략 150페이지 정도의 분량으로 “클린 아키텍처”를 읽기 전 거쳐가는 단계로 가볍게 읽어보기 좋다고 생각하여 읽어 보았습니다.

서평은 개인적인 생각으로 작성하였으니 책을 구매하는데에 참고만 하시면 좋을것 같습니다.

 

책 서평


이 책에 대해 한줄로 요약하자면 아래의 질문에 대한 답변을 정리한 책이라고 할 수 있다.

유지보수 가능한 소프트웨어를 만들려면 어떻게 해야 될까??

 

위의 질문에 답변하기 위해서는 다양한 부분에 대해 많은 고민이 필요한데 여기서 "어떤 부분"에 대해 고민을 할지에 대한 길라잡이 같은 책이라고 느꼈졌다.

책 자체 분량이 많지 않다보니 하나의 주제에 대해 많은 내용을 다루지는 못하지만 각 주제들이 한번쯤은 고민해 볼 필요가 있는 주제들이었다.

 

나의 경우에는 평소에 고민을 해본 주제도 있지만 영속성 어댑터의 책임, 아키텍처 경계 강제하기 등 미처 생각해보지못한 부분도 책을 읽으면서 발견할 수 있었고 이번 기회를 통해 평소에 놓쳤던 부분에 대해 고민해 볼 수 있던 시간이었다.

 

아키텍처 경계 강제하기의 경우 자바에서는 접근 제어자를 활용하여 경계를 강제할 수 있는데 책에서는 package-private을 많이 추천하고 있었다. 그렇지만 실제로 코드를 작성할때는 package-private 접근 제어자를 잘 사용하지 않는데 평소에는 아무런 생각이 없었다가 문득 궁금해져서 접근제어자에 대해 찾아보면서 클린 아키텍처가 가지는 이론적인 부분과 실무의 환경에서의 차이에 대해서도 생각해 볼 수 있었다.

(물론 package-private를 실무에 사용하여도 문제가 있는건 아니다. 해당 내용의 자세한 내용은 여기 글을 한번 읽어보시면 도움이 될것 같다.)

 

 

얻은 점


멀티 모듈

최근에는 규모있는 프로젝트의 경우 Gradle의 멀티 모듈 전략을 사용해서 구조를 설계하고 진행을 하였는데

대부분의 경우 패키지 아키텍처 구조에 대해서는 이야기 하지만 멀티 모듈 환경에서의 패키지 구조에 대해 다룬 이야기를 거의 보지 못하였다.

해당 책에서도 정확히 내가 원하는 바의 이야기 하지는 않지만 빌드 아티팩터의 이야기를 통해 멀티 모듈 환경에 대한 어느정도 힌트를 얻을 수 있었다.

 

 

영속성 어댑터 책임

이 책에서 영속성 어댑터 책임에 대해 다룰때 아래와 같은 말을 하였다.

필요없는 화물을 운반하는 무언가에 의존하고 있으면 예상하지 못했던 문제가 생길 수 있다.

글을 읽고나니 순간 흠칫 놀랐는데 평소에 JPA를 통해 개발을 할때는 하나의 레포지토리에 책임 대해서는 크게 신경을 쓰지 않았는데

신경쓰지 못한사이에 레포지토리 하나에 많은 화물이 실려있다고 생각이 들었고 내 코드를 한번 점검해보는 계기가 되었다.

 

 

작은 단위로 쪼개는 기준

개발을 하다보면 이것도 분리를 해야할까?? 굳이?? 이런 생각이 들때가 많았는데 책을 읽고나니 작은 단위로 분리할려고 했던 나의 생각이 틀리지 않았다는거를 알게 되었다.

분리를 하지 않고 하는 경우를 책에서는 지름길이라고 표현을 하는데 여기서 중요한것은 지름길을 사용하여도 틀린것이 아니라는 것이다.

내가 지름길을 사용하였다는 거를 인지하고 있다면 추후에 쉽게 유지보수를 할 수 있고
위의 자바 접근제어자처럼 이론적으로는 맞지만 실무에서는 어느정도 타협이 필요한 부분이 존재하기 때문이다.

 

 

아쉬운점


적은 분량

150페이지 분량의 간단한 책인걸 알고 읽기 시작하였지만 책을 다 읽고나니 역시 아쉬운건 책의 분량이었다.

책의 6장에 트랜잭션에 대한 내용이 잠깐 나오는데 분량이 너무 적어서인지 트랜잭션에 대해 무슨 이야기를 하고 싶었는지 의도를 알기가 어려웠던 부분도 있었다.

 

평소에 클린 아키텍처에 깊은 고민을 하시고 내가 클린 아키텍처에 대한 학습이 주목적이라면

바로 “클린 아키텍처”나 “도메인 주도 설계”  책을 읽으시는걸 추천한다.

이 책은 독자 스스로 좀 더 고민해보게 도움을 주는것은 맞지만 클린 아키텍처 학습에 대한 갈증을 완전히 해소시켜주기에는 약간 아쉬움을 느끼실거 같다.

 

 

자바&스프링

나에게는 해당되지 않는점이었지만 책의 예제가 자바로 작성되어있고 중간에 스프링 프레임워크에 대한 이야기도 나온다.

만약 자바&스프링 둘다 사전지식이 없다면 책을 읽는데 어려움이 예상된다.

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함