클린 아키텍처

2022. 12. 20. 22:17

로버트 마틴의 클린아키텍처

 

이 책은 클린코드를 읽고 나서 저자가 쓴 다른 책을 살펴보다가 발견한 책이다.

또한, 회사에 입사한 이후 아키텍처라는 말은 자주 들려오는데, 아키텍처란 정확히 무엇인가에 대해 설명한 내용이 없고, 인터넷이나 전공서적에서 설명하는 정의, 기본적인 이론설명 정도로는 명확하게 이해가 되지 않아 답답해하던 차에 발견한 책이기도 하다.

 

이 책을 읽기 이전에 CS 과목에서 아키텍처에 대해 어느정도 배우고 나서 읽고자 지금것 미뤄놨다가 읽게되었다.

(CS과목에 대해 공부하는데, 아키텍처에 대해 구체적으로 자세하게 설명하는 과목을 기대해보았지만(사실 약간의 답답함을 느끼며 끝까지 버텨보았지만..), 그냥 이 책을 읽는 것이 더 좋았을 것이라 생각한다.)

 

책의 내용은 아키텍처를 구성할 때 생각할 수있는 관점(저자가 아키텍처를 구성할 때 중요하게 생각하는 관점에 대해)을 설명한다.

기억에 남는 점은 다음과 같다.

1. 업무 규칙을 중심으로 외부의 영향을 받는 구성요소들을 계층으로 구별하였으며, 이를 인터페이스를 활용하여 의존성을 관리하는 방식을(그 외에도 많을 것을) 설명한다.

2. 설계, 구현하고자 하는 프로그램의 규모나 복잡도, 진행상황에 맞추어 아키텍처의 복잡도를 설정해야 한다. 또한 이미 특정 아키텍처가 반영되어 있는 프로그램일지라도 프로그램의 확장(혹은 발전)과정에서 아키텍처 또한 같이 변경되어야 한다. 즉, 간단한 프로그램에 매우 복잡한 아키텍처를 적용하는 것은 비효율적이고, 아키텍처는 프로그램에 변화에 유연하게 대응해야 한다. 필요에 맞추어 적절한 수준의 아키텍처를 구성하자.(내가 올바르게 이해했을까..)

 

참고로 부록을 읽을까 말까 고민하다가 읽어보았는데, 나와 같이 고민하는 사람은 한 번 읽어보는 것을 추천한다.

저자가 앞에서 서술한 내용들이 어떻게 나왔는 가에 대해, 본인이 일하며 겪은 경험과 단점, 개선방법을 서술하여 잘 엮어 설명해두었다.

이론을 어떻게 실전에서 적용할까, 예시는 뭔가 없을까 하고 고민 중인 사람에게는 적절한 내용이 될 것이라 생각한다.

 

책을 읽어가며 느낀 점은 '이 책을 미리 읽어두었다면, 지금 마무리되어가는 프로그램을 설계단계에서 미리 고려하여 보다 좋은 구조로 아키텍처를 구성할 수 있었을 텐데'라는 작은 아쉬움이다.

 

나중에 여러번 반복해서, 혹은 다른 아키텍처 책을 읽고 나서 이 책을 다시 읽게 되면 지금 느끼고 배운 점을 넘어 더 많은 점을 배울 수 있을 것이라 생각되는 책이다.

 

'Study > CS과목_강의및서적' 카테고리의 다른 글

객체지향  (0) 2023.02.20
네트워크  (0) 2023.01.14
시스템 프로그래밍  (0) 2022.11.06
운영체제  (0) 2022.10.26
컴파일러  (0) 2022.10.20

+ Recent posts