jingug1***
2026-05-22

AI 코딩 에이전트와 LLM의 보급으로 코드 생산성은 폭발했지만, 역설적으로 유지보수 비용은 급증하는 ‘아키텍처의 대혼돈기’를 맞이한 현대 개발자에게 가장 확실한 생존 전략을 제시합니다. 로버트 C. 마틴의 고전적 원칙을 파이썬 3.13 최신 문법과 타입 힌팅, 프로토콜, 데이터 클래스 등의 실전 코드로 구체화하여, 특정 프레임워크나 외부 기술 변화에도 흔들리지 않는 견고한 비즈니스 로직 격리 방안을 증명합니다. 단순히 ‘돌아가는 코드’를 넘어, 시간이
한빛미디어 서평단 <나는리뷰어다> 활동을 위해서
책을 협찬받아 작성된 서평입니다.
작은 서비스를 만들 때 제가 가장 중요하게 생각하는 건 “일단 제대로 돌아가게 만드는 것”이에요. 여기서 말하는 “제대로”는 절대 “대충”이 아니에용 ㅎㅎ 함께 일하는 동료들이 너무 오래 기다리지 않게 하고, 여러 시도를 빠르게 해볼 수 있을 정도의 완성도는 있어야 한다고 생각했어요. 그런데 서비스가 커지고 사용자 수가 늘어나면 자연스럽게 불안도 따라오더라고요. “지금 이 구조가 나중에도 괜찮을까?”, “갑자기 트래픽이 몰리면 버틸 수 있을까?”, “지금 편해서 택한 설계가 나중에는 발목을 잡지 않을까?” 같은 생각들이요. 그래서 막연히 걱정만 하기보다, 이런 고민에 답을 줄 수 있는 책을 읽어봐야겠다고 마음먹게 됐습니당.
이 책을 읽게 된 계기도 꽤 현실적이었어요. 카카오톡 오픈채팅에서 DDD 이야기가 오가는 걸 봤는데, 솔직히 무슨 말인지 다 알아듣기 어려웠거든요 ㅋㅋ 예전에 회사에서 DDD 스터디를 끝까지 따라간 적은 있었지만, 그때는 깊이 있게 남지 않았고 실천으로 이어지지도 못했어요. 그러다 누군가 비슷한 고민을 올린 글에 이 책을 추천하는 사람이 있었고, 저도 바로 서점에 가서 책을 사게 됐습니다. 직접 보니 생각보다 얇아서 “오, 금방 읽겠는데?” 싶었는데, 결과적으로는 그게 아주 큰 착각이었어요. 얇은 책인데도 결코 가볍지 않았고, 출퇴근길에 읽는 정도로는 쉽게 소화되지 않았어요.
실제로 저는 2주 정도 지하철에서 읽다가 Part 1까지만 겨우 보고, 주말에 다시 복습하면서 정리까지 했어요. 그 과정에서 느낀 건, 이 책은 한 번 읽고 “대충 알겠다” 하고 넘어갈 책이 절대 아니라는 점이었습니다. 특히 TDD나 DDD에 대한 기본 감이 없는 상태라면 처음부터 술술 읽히는 책은 아니에요. 오히려 멈춰서 다시 읽고, 다른 자료도 함께 찾아보면서 천천히 이해해야 하는 책에 가까웠어요. 그래도 어려운 만큼 얻는 게 컸고, 특히 파이썬 예제를 따라가며 “아, 그래서 이렇게 나누는 거구나” 하고 이해되는 순간은 꽤 즐거웠어요. 어렵지만 재미있는 책, 딱 그런 느낌이었습니당 ^^
책의 앞부분에서 가장 인상 깊었던 건 도메인 모델을 설명하는 방식이었어요. 도메인은 결국 우리가 해결하려는 문제이고, 모델은 그 문제를 이해하기 쉽게 그려놓은 지도 같은 것이라고 설명하는데, 이 비유가 정말 와닿았어요. 값 객체와 엔티티를 구분하는 설명도 좋았어요. 값 객체는 데이터 자체로 의미가 있고, 엔티티는 시간이 지나도 유지되는 정체성이 있다는 차이를 주문과 주문 라인 같은 예제로 보여주니까 훨씬 이해하기 쉬웠거든요. 또 모든 걸 억지로 객체로 만들 필요는 없고, 어떤 경우에는 클래스보다 함수가 더 읽기 쉽고 표현력이 좋다는 부분도 현실적으로 다가왔어요. 괜히 있어 보이려고 구조를 무겁게 만드는 게 아니라, 문제를 더 잘 표현하는 방향이 중요하다는 메시지가 참 좋았습니다.
중반부에서 특히 좋았던 건 저장소 패턴, 서비스 계층, 작업 단위 패턴(UoW), 애그리게이트 같은 개념들이 실제 코드 흐름 안에서 연결된다는 점이었어요. 도메인 모델은 데이터베이스나 웹 프레임워크 같은 바깥 세부사항을 몰라야 하고, 저장소 패턴은 그런 영속성 문제를 감춰주는 장치라는 설명이 인상 깊었어요. 서비스 계층은 API가 해야 할 오케스트레이션을 분리해줘서, 웹 계층을 얇고 단순하게 만들어주더라고요. 또 TDD 관점에서는 도메인 내부 구현에 너무 직접 붙은 테스트보다, 서비스 계층 중심으로 “변하면 안 되는 동작”을 검증하는 테스트가 더 유연할 수 있다는 점도 많이 배웠어요. UoW와 애그리게이트 부분은 처음엔 조금 어렵지만, 읽다 보면 결국 데이터의 일관성과 변경의 경계를 어떻게 지킬 것인가에 대한 이야기라서 꽤 설득력 있었습니당.
전체적으로 이 책은 클린 아키텍처와 DDD를 단순히 멋있는 개념처럼 보여주는 게 아니라, “어떻게 하면 더 잘 바꾸고, 더 잘 테스트하고, 더 오래 버티는 코드를 만들 수 있을까”를 계속 생각하게 만드는 책이었어요. 물론 작은 기능 하나에도 파일과 클래스가 많아져서 처음엔 복잡해 보일 수 있고, 무조건 처음부터 이렇게 다 적용하는 게 정답이라고 말하기는 어렵습니다. 하지만 프로젝트가 커질수록 왜 이런 구조가 필요한지, 왜 의존성 방향과 책임 분리가 중요한지 분명하게 느끼게 해주는 책이었어요. 저에게는 읽는 동안 계속 멈춰 생각하게 만들고, 직접 구현해보고 싶게 만드는 책이었고, 동시에 TDD, pytest, DDD를 더 공부해보고 싶다는 마음까지 들게 해준 책이었어요 ㅎㅎ 그래서 “빨리 만들되, 나중도 생각하고 싶은 개발자”에게 충분히 추천할 만한 책이라고 느꼈습니다.