DDD란?

각각의 기능적인 문제의 영역을 정의하는 도메인과 그 도메인을 사용하는 비즈니스 로직을 중심으로 설계하는 것을 말합니다.

DDD는 구체적인 방법론도 아니고, 오히려 추상적인 철학이나 접근법이 그 본질이다. 그리고 그 본질이 바로 전략적 설계에 근간을 두고 있다. ← NHN Dooray 정명주 中

DDD의 특징?

DDD 도입 이유


1️⃣ 비즈니스 로직을 코드에 직접적으로 반영할 수 있다.

이는 비즈니스 로직을 더욱 명확하게 이해하고, 이를 바탕으로 효율적인 코드를 작성하도록 도울 수 있습니다. 이렇게 되면 실제 비즈니스 요구사항과 코드 사이의 간극을 줄여, 소프트웨어가 실제 비즈니스에 더욱 부합하게 됩니다.

2️⃣ DDD의 **‘바운디드 컨텍스트’**는 복잡한 시스템을 작은 부분으로 나누고, 각 부분을 독립적으로 개발하고 관리할 수 있게 한다.

이는 코드의 유지보수성을 높이고, 팀원간의 협업을 향상 시킬수 있습니다. 팀원은 자신의 **‘바운디드 컨텍스트’**에만 집중하면 되므로, 전체 시스템의 복잡성을 줄이고 생산성을 향상 시킬 수 있게됩니다.

3️⃣ 변화에 대응하는 능력 향상

비즈니스 요구사항은 시간이 지남에 따라 변화합니다. DDD를 통해 비즈니스 로직을 코드에 직접 반영하면, 비즈니스 로직의 명확한 이해를 바탕으로, 요구사항의 변화를 빠르게 코드에 반영할 수 있습니다.

이벤트 스토밍


Untitled

Why ?

이걸 왜 할까요? 본인의 비즈니스 요구사항을 포스트잇으로 표현함으로써, 비즈니스 로직을 더욱 명확하게 이해하기 위해서입니다.