DDD 레이어 경계 도메인 분리 결
Domain-Driven Design을 처음 공부한 것은 팀 프로젝트에서 비즈니스 로직이 컨트롤러에 뒤섞이는 문제를 겪으면서였습니다. 기능이 늘어날수록 어느 코드를 수정해야 하는지 파악하기 어려워졌고, DDD의 레이어 분리가 이 문제를 구조적으로 해결하는 방법이라는 것을 알게 됐습니다.
도메인 레이어를 외부 의존성에서 격리하면, 비즈니스 규칙이 변경돼도 인프라 코드에 영향을 주지 않는다는 원칙을 적용했습니다. Application/Domain/Infrastructure 레이어를 분리하고 각 레이어의 책임을 명확히 정의했는데, 처음에는 경계를 어디에 그어야 할지 판단이 어려웠습니다.
Aggregate와 Repository 패턴을 도입해 도메인 모델이 DB 구조에 직접 의존하지 않도록 했고, 이후 저장 방식을 변경해도 비즈니스 로직을 수정할 필요가 없었습니다. DDD는 팀이 같은 도메인 언어를 쓰는 것부터 시작하는 것이 결임을 배웠습니다.