[책] 클린 아키텍처

/ / 2022. 4. 23. 19:46
반응형

읽은 책들

2020.11.15 - [책] - 더 나은 소프트웨어 개발을 위해 읽은 책들

 

 

유명하신 저자분

 

 

저자가 유명하신 분인지 어쩌다 이분의 책만 세권을 읽었다. 서점에서 판매량 베스트를 기준으로 찾았는데 세권이나 읽은것을 보면 잘나가는 분인건 분명한것 같다. 순서대로 클린코드, 클린코더, 클린아키텍쳐를 읽었는데, 이 책이 가장 좋았다. 세권의 책이 다 좋았지만 특히 지금 이 책을 읽은 타이밍이 좋았다.

 

순환참조 오류

비교적 최근 파이썬으로 한 프로그램을 만들던 중 순환참조 오류를 만났다.
A파일이 B파일을 호출하고 B파일이 간접적으로 A파일을 호출하면서 발생한 문제였다. 컴파일 오류를 보면서 이 오류는 내가 아키텍쳐를 잘못 설계해서 발생한 일인지 파이썬의 컴파일(컴파일이라고 해도 될지 모르겠지만 일련의 프리프로세싱 처리과정들) 방식을 이해못한 탓인지 그냥 내가 멍청한건지 고민했었다. 그리고 얼마 후 이 책을 만났다. 책에는 단방향 호출을 방해하는 순환참조가 어떤 것인지, 왜 발생하는지, 해결방법은 어떤것들이 있는지 설명되어있었다.

 

이 책의 주요 내용

책의 제목에서 알 수 있듯이 이 책은 아키텍처를 잘 설계하는 방법들을 설명하고 있다. 그리고 그 방법을 감히 내가 두가지로 요약해보면 컴포넌트의 단방향 호출과 모듈화다. 앞서 말했듯 내가 순환참조 문제를 겪은 직후 이 책을 만난지라 유독 이 두가지에 꽃힌걸수도 있다. 그러나 책이 34장까지 있는데 이 두가지는 장을 가리지 않고 틈틈이 출몰한다. 

생각나는 내용을 두서없이 적어보자면 다음과 같다.

 

  • 절차지향, 객체지향, 함수형 프로그래밍의 탄생사
  • SOLID원칙(SOLID원칙을 알고 있다는 가정하고 깊게 들어간다.)
  • 컴파일 최적화의 역사
  • 컴포넌트의 단방향 호출방법 (컴포넌트 의존성을 역전시키는 방법은 어떤것이 있는지)
  • 컴포넌트의 우선순위(어떤 컴포넌트가 가장 보호되어야 하는지, 최대한 개발을 뒤로 미루어야 하는 컴포넌트는 어떤것이 있는지)
  • 유지보수(배포, 관리 관점에서 모듈화의 중요성)

 

보다보면 이건 전공서적인가 싶은 느낌이 들지만 코드가 써있는 장은 거의 없다. 자기계발서 보는 느낌으로 읽어나가면 된다. 다만 이해가 안가는 부분이 종종 있을 수 있으므로 중간중간 책을 놓고 구글을 뒤져야할지도 모른다. 그럼에도 너무나 흥미로웠으며 꼭 알아야 할 내용이 많았다.

아무래도 이런 책은 주니어 개발자보다는 시니어 개발자에게 더 와닿을 것 같다. 책을 읽다보면 고작 몇년이지만 내가 실무에서 경험했던 문제들이 그대로 나왔다. 그런 장일수록 더 집중해서 보게되고 체크해두게 된다. 아무래도 이러한 경험이 없는 주니어 개발자가 읽는다면 내가 늘 그러듯이 아 그런가보다 하고 기억에서 잊혀질 가능성이 클 것 같다. 만약 읽으면서 좋은 책이라는 생각이 든다면 주기적으로 읽는게 좋을 것 같다. 충분히 그럴만한 책이라 생각된다. 나 역시 내년에 다시 보지 않을까 싶다.

 

마무리

책에 다음과 같은 구절이 있다. '빨리가는 유일한 방법은 제대로 가는 것이다.'
언젠가부터 코딩하면서 계속 생각이 나는 구절이다.