한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.
AI 시대에도 여전히 중요한 아키텍처
개발에서 생산성과 견고하면서도 유연한 체계는 언제나 trade-off의 대상이다. 빠르게 기능을 만들려면 구조적 엄격함을 어느 정도 포기하게 되고, 장기적으로 변경에 강한 시스템을 만들려면 초기 설계와 추상화에 더 많은 비용을 들여야 한다.
AI가 개발 과정에 들어왔다고 해서 이 문제가 크게 달라진 것 같지는 않다. 오히려 AI는 기존 구조의 장점과 단점을 더 빠르게 증폭한다.
구조가 잘 잡힌 프로젝트에서는 생산성을 높이지만, 책임과 경계가 흐린 코드베이스에서는 혼란 역시 빠르게 키운다. 그래서 AI 시대일수록 아키텍처 공부는 선택적 교양이 아니라, 개발자가 속도와 복잡도 사이의 균형을 잡기 위해 갖춰야 할 기본 감각에 가깝다.

현업의 현실과 클린 아키텍처의 위치
현업에서는 사실 레이어드 아키텍처와 MVC 패턴 정도만으로도 상당수의 애플리케이션을 충분히 만들 수 있다. Controller, Service, Repository로 나뉜 익숙한 구조는 여전히 실용적이고, 스프링 같은 프레임워크는 깊은 설계 철학을 완전히 이해하지 못해도 어떻게든 동작하는 애플리케이션을 만들 수 있게 해준다.
그래서 클린 아키텍처, 헥사고날 아키텍처, DDD, TDD 같은 개념은 때로는 배부른 소리처럼 들리기도 한다. 당장 기능을 만들어야 하는 상황에서는 “이 정도까지 해야 하나?”라는 의문이 자연스럽게 생긴다.
하지만 『클린 아키텍처 with 파이썬』은 클린 아키텍처를 절대적 정답으로 제시하지 않는다. 이 책에서의 클린 아키텍처는 “깨끗한 구조만이 옳다”는 선언이 아니라, 객체지향 설계와 테스트, 도메인 중심 사고를 더 일관되게 받아들이기 위한 체계에 가깝다.

SOLID를 통해 다시 보는 설계 원칙
책은 먼저 객체지향 설계의 대표 원칙인 SOLID에서 출발한다. 처음에는 단일 책임 원칙, 개방-폐쇄 원칙, 리스코프 치환 원칙, 인터페이스 분리 원칙, 의존성 역전 원칙 같은 개념이 다소 고루하게 느껴질 수 있다.
그러나 책은 이 원칙들을 암기용 구호가 아니라, 구현에만 급급했던 코드가 왜 시간이 지날수록 변경하기 어려워지는지를 설명하는 도구로 사용한다. 특히 단일 책임 원칙은 “클래스 하나는 일 하나만 해야 한다”가 아니라 “변경 이유가 하나여야 한다”는 기준으로 읽힌다.
의존성 역전 원칙은 고수준 정책이 저수준 구현에 끌려가지 않게 만드는 핵심 원리로 이어진다. 이 지점에서 Service 클래스 안에 비즈니스 로직, DB 접근, 외부 API 호출, 예외 처리, DTO 변환이 뒤섞인 코드가 왜 테스트와 확장을 방해하는지 명확해진다.

양파 아키텍처와 의존성의 방향
중반부터 양파 아키텍처 설명은 이 책에서 가장 인상적인 부분이었다. 양파 아키텍처는 시스템을 여러 겹의 원으로 바라보며, 가장 안쪽에는 핵심 비즈니스 규칙과 도메인 모델을 둔다. 그 바깥에는 유스케이스와 애플리케이션 서비스가 위치하고, 더 바깥에는 데이터베이스, 웹 프레임워크, 외부 API, UI 같은 기술적 세부사항이 위치한다.
핵심은 의존성의 방향이다. 바깥쪽 계층은 안쪽 계층을 알 수 있지만, 안쪽 계층은 바깥쪽 계층을 몰라야 한다. 즉, 데이터베이스나 프레임워크가 바뀌더라도 핵심 비즈니스 규칙은 흔들리지 않아야 한다. 이 원칙은 계층 분리가 단순히 코드를 예쁘게 나누는 일이 아니라, 변경 가능성이 높은 세부사항을 핵심 정책으로부터 분리하는 실무적 장치라는 점을 설득력 있게 보여준다.

파이썬을 넘어 다른 기술 스택으로 확장되는 사고
제목은 『클린 아키텍처 with 파이썬』이지만, 읽고 나면 “파이썬은 거들뿐”이라는 생각이 든다. 파이썬의 타입 힌트, 프로토콜, 테스트 도구, 의존성 주입 방식에 대한 설명도 유익하지만, 이 책의 더 큰 가치는 특정 언어 문법보다 아키텍처적 사고방식에 있다.
같은 구조는 스프링 프로젝트에서도 적용할 수 있다. Controller를 어댑터로, Use Case를 애플리케이션 계층으로, Entity와 Value Object를 도메인 계층으로 분리하는 방식이다. 노드 기반 프로젝트에서도 Express나 NestJS의 라우터와 컨트롤러는 바깥쪽 어댑터로 두고, 핵심 비즈니스 규칙은 프레임워크 바깥에 독립적으로 둘 수 있다. 결국 이 책은 클린 아키텍처를 그대로 따르라고 말하는 책이 아니라, 구현 중심의 사고에서 구조 중심의 사고로 넘어가게 만드는 책이다.
AI와 프레임워크가 생산성을 높여주는 시대일수록 개발자가 직접 이해하고 통제해야 할 것은 더 선명해진다. 중요한 것은 유행하는 구조를 외우는 것이 아니다. 각 계층의 책임을 명확히 하고, 변경 가능성이 높은 세부사항을 핵심 정책으로부터 분리하며, 비즈니스 규칙을 기술 선택보다 오래 살아남게 만드는 것이다.

#클린아키텍처 #소프트웨어아키텍처 #객체지향설계 #SOLID #의존성역전 #양파아키텍처 #헥사고날아키텍처 #도메인주도설계 #테스트주도개발 #레이어드아키텍처 #MVC패턴 #파이썬개발 #백엔드개발 #AI시대개발 #소프트웨어설계