도메인 주도 설계 (Spring Boot 3)
Spring Boot 3 애플리케이션에서 애그리게이트, 값 객체, 도메인 이벤트를 안전하게 설계·수정하도록 Claude를 안내하는 DDD 스킬.
개발·코딩고급★ 304⑂ 46AI 점수 9/10마지막 업데이트: 2026. 9. 21.
무엇을 해주나
- 애그리게이트 루트를 통한 접근 강제, 애그리게이트 경계를 불변식 기준으로 잡는 규칙을 제시합니다.
record기반 값 객체(Money, EmailAddress)와 검증 로직 패턴을 제공합니다.- 도메인 이벤트 수집·발행 방법과
@TransactionalEventListener(AFTER_COMMIT), Spring Data의@DomainEvents활용, 아웃박스 패턴 같은 내구성 전달 주의점을 설명합니다. - Specification 조합으로 복잡한 조회를 구성하고, 외부 시스템 연동 시 ACL(부패 방지 계층)로 도메인을 보호하는 방법을 안내합니다.
- 기존 공개 API 식별자와 영속성 매핑을 함부로 바꾸지 않도록 제약을 걸어줍니다.
이런 분께 추천
- Spring Boot 3 + JPA로 DDD 스타일 서비스를 운영·확장하는 백엔드 개발자
- 빈약한 도메인 모델(getter/setter만 있는 엔티티)을 리팩터링하고 싶은 팀
- 이벤트 발행이 롤백/커밋과 어떻게 얽히는지 정리하고 싶은 개발자
활용 예시
- "주문 애그리게이트에 취소 로직을 추가해줘" → 루트를 통한 상태 변경과 불변식 검증 코드를 제안받습니다.
- "결제 완료 시 이메일을 보내야 해" → 트랜잭션 커밋 이후 발행되는 이벤트 리스너와 아웃박스 고려 사항을 함께 제시합니다.
- "외부 결제 SDK를 붙일 건데 도메인이 오염되지 않게 해줘" → PaymentPort + 어댑터 형태의 ACL 구조를 만들어 줍니다.
· · · 설치 가이드 · · ·
설치 없이 지금 한 번 써보기
아래를 Claude에 붙여넣으면 설치하지 않고도 이 스킬을 그대로 씁니다.
이 파일의 지시를 읽고 그대로 따라서 나를 도와줘: https://raw.githubusercontent.com/rrezartprebreza/spring-boot-skills/HEAD/skills/spring-boot-3/domain-driven-design/SKILL.md 내가 원하는 것: (여기에 하고 싶은 일을 쓰세요)
Claude가 링크를 열지 못하면, 링크를 직접 열어 내용을 복사해 붙여넣으세요.
↓ 쓸 만하면 아래에서 ZIP을 받아 설치하세요. 그러면 매번 붙여넣지 않아도 알아서 작동합니다.
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 rrezartprebreza/spring-boot-skills 의 skills/spring-boot-3/domain-driven-design 폴더를 내 ~/.claude/skills/domain-driven-design/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/rrezartprebreza/spring-boot-skills.git /tmp/spring-boot-skills && mkdir -p ~/.claude/skills && cp -r /tmp/spring-boot-skills/skills/spring-boot-3/domain-driven-design ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
- 터미널을 엽니다.
- 저장소를 내려받습니다:
git clone https://github.com/rrezartprebreza/spring-boot-skills.git - 스킬 폴더를 만듭니다:
mkdir -p ~/.claude/skills - 스킬을 복사합니다:
cp -r spring-boot-skills/skills/spring-boot-3/domain-driven-design ~/.claude/skills/ - (선택) 본문이 참조하는
transactional-patterns,event-driven-messaging,spring-modulith스킬도 같은 방식으로 복사하면 링크가 모두 동작합니다. - Claude Code를 재시작하고 "이 프로젝트의 주문 애그리게이트를 DDD 원칙에 맞게 리팩터링해줘"처럼 요청하면 스킬이 자동 발동합니다.
GitHub에서 원본 보기 ↗라이선스: MIT