오늘의 과제는 도메인 주도 설계와 SQL 중심 설계에 대해서 공부하고 비교해보는 것!

DDD(Domain-Driven Design)

개념

도메인

소프트웨어로 해결하고자하는 문제의 영역

도메인 모델

  • 특정 도메인을 개념적으로 표현한 것
  • 도메인 모델을 사용하면 동일한 모습으로 도메인을 이해하고, 지식을 공유하는데 도움이 된다.

도메인 주도 설계

  • 도메인 패턴을 중심에 놓고 설계하는 방식

특징

  • 데이터 중심의 접근법이 아니라 도메인의 모델과 로직에 집중한다.
  • 보편적인 언어를 사용한다.
  • 분석 모델과 설계, 코드가 모두 다른 구조가 아닌 도메인 모델부터 코드까지 항상 움직이는 구조의 모델을 지향한다.

SQL 중심 설계

정의

  • 데이터베이스의 설계에서 시작되는 소프트웨어 개발 방법론중 하나

특징

  • 데이터베이스 구조와 데이터 흐름을 중심으로 시스템을 설계하고 개발 프로세스를 진행한다.

차이점

DDD 설계 SQL 중심 설계
도메인 중심 설계 데이터베이스 중심 설계
도메인의 문제 영역을 중심으로 설계 데이터베이스 구조와 데이터의 흐름을 중심으로 설계
도메인 모델을 통해 도메인 일관성 유지 데이터베이스 정규화를 통해 데이터 일관성 유지
도메인 모델을 통해 비즈니스 로직 처리 데이터베이스 쿼리를 통해 데이터 처리
도메인 모델이 변경되더라도 시스템의 일부분만 변경 데이터베이스 구조가 변경되면 시스템 전체에 영향

출처

하루만에 파악할 수 있는 개념이 아니기 때문에 간단하게 정리했다😏 내가 접해본 방식은 SQL 중심 설계이기 때문에 기회가 된다면 도메인 주도 설계를 접해보고 깊에 알아가봐야지!