Clean Architecture 리뷰

Seonghoon Kim·2021년 9월 29일
0

Robert C. Martin의 Clean Architecture를 다 읽었다.
읽기 전 기대했던 내용과는 사뭇 달랐지만, 그래도 어떤 mindset을 통해 software architecture를 가꿔나가야 할지 어느정도의 가이드는 됐다.

우선, 이 책은 입문자 용이 아니다. Design pattern, Object 설계 등 Robert C. Martin의 다른 책들을 읽은 것을 가정하고 설명하기 때문에 모른다면 참고문헌을 알아서 보라고 책에서도 설명한다.

그렇기 때문에 입문자가 읽는다면 용어들의 뜻을 잘 파악하지 못해 잘못된 내용을 이해하거나 이해하는데 시간이 많이 걸릴 수 있다.

이 책에서 강조하는 내용은 세 가지정도로 요약이 가능할 것 같다.

  1. 고수준의 컴포넌트는 저수준에 종속되면 안된다. 저수준은 고수준의 interface를 이용하되, 특정한 내용에 종속되면 안된다. 이를 지키기 위해서는 SOLID principle 중 D를 활용할 수 있다.

  2. 세부사항은 언제든지 변경할 수 있는 대비가 돼야하나, over engineering은 하지말자. 만약 데이터베이스를 Mysql을 이용하다가 MongoDB를 이용해야될 때, 모든 코드가 변경돼야하면 어떻게 되는 걸까? 서비스가 웹 기반으로 되어있다가 native application을 지원하도록 변경해야 된다면 어떻게 해야될까? 즉, business rule에 관련된 고수준 컴포넌트는 저수준에 영향을 받으면 안된다. 항상 세부사항이 변경될 수 있는 것을 열어두되 가능성이 없는 것을 고려하기 위해 over engineering은 하지말자

  3. rule을 통해 강제하지 말고 compiler나 linter와 같은 자동도구를 통해 구축한 Architecture를 위반하는 것을 막자. 누군가는 규칙을 몰라서 의도한 architecture를 위반하기 쉽다. 따라서 긴밀하게 코드리뷰를 해야하고 이는 자동화 된 도구를 통해 강제하면 좋다.

어쩌다보니 요약하면서 더 쓰고싶은 말이 많지만 1번만 읽은 내용이라서 정리가 잘 되지 않았다.
다른 책들을 읽어보고 다시 읽어봐야겠다.

0개의 댓글