“살아있는 전설이 들려주는 실용적인 소프트웨어 아키텍처 원칙”
《클린 코드》의 저자 로버트 C. 마틴이 반 세기에 걸친 현장 경험을 토대로, 세월이 흘러도 변치 않는 소프트웨어 설계 원칙을 집대성했습니다. 《클린 코드》에서 좋은 ‘벽돌’을 만드는 방법을 배웠다면, 이 책 《클린 아키텍처》에서는 견고한 ‘빌딩’을 짓는 방법을 배울 수 있습니다.
클린 아키텍처의 모습은 마틴이 7년 전에 자신의 블로그에 올린 동명의 글(한글 번역)에 등장하는 다음 그림으로 대표됩니다.

이 단순한 그림에는 소프트웨어 시스템을 이루는 주요 구성요소들과 각 구성요소가 자리해야 하는 계층, 의존성이 향해야 할 방향과 소스 코드의 올바른 제어흐름 등이 담겨 있습니다.
의존성은 항상 경계 안쪽을 향하므로 안쪽 원은 각각 자신의 바깥 원에 독립적입니다. 그래서 이 아키텍처 원칙대로 구축한 시스템은 사용하는 프레임워크의 제약으로부터 자유롭고 UI나 데이터베이스 같은 외부 요소를 언제든 최소한의 노력으로 교체할 수 있습니다. 자연스럽게 업무 규칙은 바깥세상과 전혀 무관한 순수한 업무 규칙으로 남게 되어 독자적으로 테스트할 수 있습니다.
간략히 요약했지만 우리가 실무에서 이 깔끔한 아키텍처에 도달하려면 더 기초가 되는 원리, 구체적인 방법, 이 길이 최선이라는 확신 등이 곁들여져야 할 것입니다. 마틴은 자신의 오랜 경험과 통찰을 기초로 우리가 궁금해하고 우리에게 필요한 모든 것을 이 책에 담았습니다.
그런데 재미나고 한편으론 놀라운 점은, 여기서 이야기하는 원칙은 앨런 튜링이 최초로 기계어 코드를 작성한 1946년이나 지금이나 똑같다는 것입니다. 바뀐 것은 단 하나! 그 시절에는 이 원칙을 몰랐다는 것이죠. 그래서 수십 년 동안 엉터리 구조의 소프트웨어와 씨름하는 고통을 겪으며 조금씩 터득해 왔고, 드디어 구체적으로 규정할 수 있게 되었습니다.
자! 이제 여러분 차례입니다.
참고로 ‘클린 아키텍처와 설계’라는 저자 강연에 김용욱 님께서 ‘한글 자막’을 입혀주셨습니다. 책을 읽기 전에 가볍게 한번 들어보시고, 다 읽으신 후 시간 내어 한번 더 들어보시면 핵심을 정리하는 데 큰 도움이 될 것입니다.
《클린 아키텍처》는 다음 서점에서 구입하실 수 있습니다.
Yes24 | 교보문고 | 알라딘 | 인터파크 | 전자책(eBook)
※정오표