스택큐힙리스트

DD 패밀리 완전 정복 본문

개발

DD 패밀리 완전 정복

스택큐힙리스트 2025. 7. 20. 22:26
반응형

1. ‘DD’ 가 붙은 네 가지 개발 방법론 한눈에 보기

  • TDD(Test-Driven Development)
    테스트 → 코드 → 리팩터 순서로 개발하는 방식. 높은 코드 신뢰성과 안전한 리팩터링이 장점이며, 스프링의 @SpringBootTest, JUnit 5, Mockito, Testcontainers와 찰떡궁합이다.
  • BDD(Behavior-Driven Development)
    “Given-When-Then” 시나리오로 요구사항을 자연어에 가깝게 명세한다. 개발자와 비즈니스 담당자가 같은 언어를 쓰기 때문에 협업이 쉬워지고, Cucumber·JBehave 같은 도구로 자동화 테스트를 만들 수 있다.
  • DDD(Domain-Driven Design)
    도메인 모델을 중심으로 설계·코드를 조직화한다. 유비쿼터스 언어, 바운디드 컨텍스트, 이벤트 스토밍을 통해 복잡한 비즈니스 규칙을 코드와 1 : 1로 맞춘다. 레이어드 아키텍처(프레젠테이션-애플리케이션-도메인-인프라)가 기본 골격이다.
  • AIDD(AI-Driven Development)
    최신 트렌드. LG CNS DevOn AIDD처럼 분석·설계·코딩·테스트·품질 진단 전 과정을 AI가 지원한다. 코드 생성과 자동 테스트 케이스 작성 덕분에 초기 프로토타이핑과 유지보수가 비약적으로 빨라진다.

2. 언제 어떤 DD를 선택할까?

  • 빠른 피드백 & 버그 방지가 목표라면 → TDD
  • 비즈니스와 기술 간 소통 강화가 필요하다면 → BDD
  • 복잡한 도메인 지식이 핵심 경쟁력이라면 → DDD
  • 개발 생산성·자동화 극대화를 노린다면 → AIDD

Tip: 실무에서는 TDD·BDD로 테스트 안전망을 만들고, 아키텍처는 DDD로 조직화한 뒤, AIDD 도구를 파이프라인에 얹어 코드 생성·리팩터를 가속하는 식으로 조합하는 경우가 많다.


3. 실전 적용 로드맵

  1. 기초 다지기
    • JUnit 5 + Mockito로 TDD 사이클 체득
    • Cucumber로 BDD 시나리오 작성 연습
  2. 도메인 모델링 워크숍 – 이벤트 스토밍으로 팀과 ‘유비쿼터스 언어’를 합의
  3. 레이어 분리 & 모듈화 – 바운디드 컨텍스트마다 스프링 모듈을 나누고, 컨텍스트 맵으로 의존성을 설계
  4. AI 도구 통합 – GitHub Copilot, DevOn AIDD 등을 IDE·CI 파이프라인에 연결해 코드 생성과 테스트 자동화를 실험
  5. 지속적 개선 – 테스트 커버리지 목표(단위 70 %+, 통합 20 %+)를 세우고, 리팩터링 시 AIDD의 리코멘더·정적 분석 기능을 적극 활용

4. DD 패밀리를 함께 쓸 때 주의할 점

  • 도메인 규칙은 단일 소스: DDD의 도메인 모델에서 변경되고, TDD·BDD 테스트가 이를 바로 검증하도록 한다.
  • AI 제안은 ‘리뷰 필수’: AIDD가 만든 코드·테스트도 코드리뷰와 CI 통과는 필수다.
  • 시나리오와 테스트 네이밍 일관성: BDD 시나리오 제목과 JUnit 테스트 메서드 이름을 맞춰 추적성을 높이면 SEO·가독성 모두 잡을 수 있다.
반응형
Comments