티스토리 뷰
클린 아키텍처를 읽는데, 잘 와닿지 않거나 이해가 가지 않는 내용이 상당히 많이 있었습니다. 하지만 이 책을 읽고 얻어가는 자그만한 부분이라도 정리를 해두고자 합니다. 책에서 다루는 핵심적인 내용들이 아닌, 개인적으로 기억하고 싶은 내용들만 정의하였습니다.
1. 단일 책임 원칙(SRP, Single Responsibility Principal)의 재정의
단일 책임의 원칙은 단일 모듈은 변경의 이유가 하나, 오직 하나뿐이어야 한다는 것이다. 이것은 하나의 일만 해야한다는 원칙과는 다르다. 여기서 말하는 변경의 이유는 사용자와 이해관계자를 가리키는데, 작성한 모듈들이 여러 대상들에 의해 변경되어서는 안된다는 것이다. 이러한 내용을 책에서는 하나의 모듈은 오직 하나의 액터에 대해서만 책임져야 한다고 SRP를 재정의하고 있다. (p66 참고)
2. 세부사항에 몰두하지 말자
아키텍처의 주된 목적은 시스템의 생명 주기를 지원하는 것이다. 좋은 아키텍처는 시스템을 쉽게 이해하고, 쉽게 개발하며, 쉽게 유지보수하고, 쉽게 배포하게 해준다. 아키텍처의 궁극적인 목표는 시스템의 수명과 관련된 비용은 최소화하고, 프로그래머의 생산성은 최대화하는 데 있다.
좋은 아키텍트라면 세부사항에 몰두하지 않은 채 고수준의 정책을 만들 수 있어야 한다. 이러한 세부사항을 최대한 미룸으로써 더 많은 정보를 얻어 제대로 된 결정을 내릴 수 있을 것이고, 다양한 테스트를 해볼 수 있을 것이다. 그리고 결정을 더 이상 미룰 수 없는 시점에는 이미 많은 정보를 획득했을 것이다.
그렇기 때문에 좋은 아키텍트는 결정되지 않은 사항의 수를 최대화한다. 예를 들면 사용할 프레임워크나, 사용할 자료구조, 데이터베이스 사용 여부 등은 세부사항이기 때문에, 이러한 부분에 대한 결정을 최대한 미루어야 한다.
3. 소리치는 아키텍처
좋은 아키텍처는 상위 수준의 디렉토리 구조, 최상위 패키지에 담긴 소스 파일을 볼 때, 무슨 시스템인지 소리쳐야 한다. 예를 들면 우리가 어떤 프로젝트를 클론해서 패키지를 살펴볼 때, 해당 시스템은 어떠한 시스템인지 바로 인지할 수 있어야 한다.
책에서 다루는 내용들을 정리해두기도 하였지만, 그 내용들을 아직 저의 것으로 만들지 못한 것 같습니다. 작성자가 제대로 이해하지 못한 내용을 정리해서 올리면, 읽는 사람들에게 또 다른 혼란만을 야기할 것 같다는 생각을 했습니다. 그래서 이번에는 책의 내용들 중 개인적으로 알고 있어야 할 것 같은 부분 만을 정리하였습니다. 더욱 개발 경험과 아키텍처 설계 역량을 쌓아 책을 다시 읽은 후에, 다음에는 핵심적인 내용들을 포스팅 하도록 하겠습니다.
감사합니다:)
'나의 공부방' 카테고리의 다른 글
[IntelliJ] 자주 사용되는 인텔리제이 단축키 모음(맥북, Mac OS) (16) | 2021.03.26 |
---|---|
[개발서적] 조엘 온 소프트웨어 (Joel on Software) 핵심 요약 및 정리 (0) | 2021.03.21 |
[개발서적] 이펙티브 자바(Effective Java) 핵심 요약 및 정리 (20) | 2021.03.05 |
[개발서적] 클린 코드(Clean Code) 핵심 요약 및 정리 (10) | 2021.03.05 |
[Hadoop] Hadoop의 구조와 MapReduce (0) | 2021.02.03 |