Clean Architecture: A Craftsman’s Guide to Software Structure and Design
오랫만에 Software Architecture에 관한 책을 읽었다. 이 책을 선택한 배경은 Software Architecture에 관해 비교적 최근(2018)에 나온 책이고 저자가 그 유명한 밥아저씨(Uncle Bob, Robert C. Martin)이기 때문이다. 이 책을 읽으면서 과거 한 때 Software Engineering에 심취해서 여러가지 개념들, 그리고 실제 코드로 적용해 본 기억들이 나면서 한 때 사용하지 않아 소실 됐던 근육이 다시 단련되는 기분이다.

책 전반적으로 실무 코드를 기반으로 설명하는 것이 아니라 개념적으로 접근하고 있어 아마도 초보 개발자들에게는 좀 어려운 내용이지 않을까 생각한다. 하지만 한 번 쯤 귓등으로라도 읽어 놓으면 나중에 어련풋한 기억으로 다시 소환되지 않을까 하고 그 경험을 한 번 해본 개발자라면 관련 지식은 오롯이 자기의 것으로 만들 수 있지 않을까 생각한다.
Principle이라는 이름으로 여러가지 개념이 나오지만 한 가지만 깊이 고민하기 보다 왜 이런 것이 나오게 되었는지 배경을 생각해 보고 여러 Principle들을 교차해 가면서 이해를 시도한다면 좀 더 도움이 되지 않을까 싶다. 즉 나무만 보지 말고 나무 하나를 보면서 숲이 어떻게 생겼는지 생각해보고 하면서 추가적인 나무를 볼 때마다 전체 숲을 같이 고민해 보라는 얘기다.
이 책에서 내가 그래도 값어치가 있다고 생각하는 부분은 마지막 장 “The Missing Chapter”이다. 이 장은 앞에서 계속 다루던 내용의 정수가 되기도 한다. 따라서 어느정도 개발 경험이 있다면 마지막 장을 먼저 보고 앞쪽에서부터 다시 시작하는 것도 추천할만 하다. 소프트웨어 개발 관련 이론들을 실제 적용할 때 어떻게 적용할 수 있는지를 설명하기 때문에 훨씬 더 피부에 와 닿을 것이라 본다.
특히 마지막 장은 패키지들간의 관계를 어떻게 설정하는지를 쉽게 설명하므로 다른 책에서는 쉽게 찾을 수 없는 내용이다. 개인적으로도 개발할 때 이런 부분에 촛점을 많이 두는 스타일이라 눈에 더 띄게 들어온다.
앞으로 소프트웨어 아키텍처 관련해서 책을 1~2권 더 읽어볼 계획이다. 그간 시간이 많이 흘렀고 그만큼 기술적으로도 많이 변화되었기 때문에 여러 권의 책을 훑어 봐야 약간 균형잡힌 시각을 가질 수 있지 않을까 생각한다.
이 책을 잡고 보기 시작한 지 한 달정도 되는 것 같다. 회사일로 이것 저것 하느라 차일 피일 조금씩 미루다가 이제서야 마치게 됐다. 시간이 조금 걸렸지만 이 책은 소프트웨어 아키텍처에 관현 기본서로 생각되며 되도록 많은 사람들에게 소개해 주고 싶다.
2025.05.03 by Skanto