카테고리 없음

DDD 설계와 SQL 중심 설계 비교

suesoo 2023. 8. 15. 17:04

DDD 설계

▶ DDD 설계의 개념

- DDD(Domain-Driven Design) 또는 도메인 주도 설계라고 부르며, 도메인 패턴을 중심에 놓고 설계하는 방식

 

▶ DDD 설계의 특징

  • 비즈니스 도메인별로 나누어 설계하는 방식
  • 보편적인 언어의 사용(모두가 공통으로 이해하는 통일된 용어 필요)
  • 모듈 간의 의존성은 최소화시키고, 응집성은 최대화
  • 소프트웨어 엔티티와 도메인 콘셉트를 가능한 가까이 일치시키는 것
  • 개념 설계와 구체적 설계로 나뉜다.

 

💡 도메인이란?  유사한 업무의 집합


SQL 설계

▶ SQL 설계의 개념

- 데이터베이스 구조와 데이터의 흐름을 중심으로 설계하고 생성한 후 시스템을 개발하는 것

 

▶ SQL 설계의 특징

  • 데이터베이스 설계를 중심으로 개발 프로세스를 진행
  • 데이터베이스 쿼리를 통해 데이터를 처리
  • 데이터베이스 변경이 개발 프로세스에 영향을 주기 쉽다.

DDD 설계 vs SQL중심 설계의 차이점

  SQL DDD
설계 데이터베이스 중심으로 시스템 설계 도메인 중심 시스템 설계
비즈니스 로직 처리 데이터베이스 쿼리 도메인 모델
일관성 유지 데이터베이스 정규화를 통해 일관성 유지 도메인 모델을 통해 일관성 유지
변경 데이터베이스 구조 변경 시 시스템 전체 영향 도메인 모델 변경시 시스템 일부 변경
결합도 높음 낮음

📍 쇼핑몰 사이트 개발 시 도메인 설계

상품 / 회원 / 주문 / 배송 / 결제로 도메인을 나눌 수 있고 사용자(비회원, 회원, 판매자 )에 따라서  서비스가 달라질 시

구매자가 주문하는 도메인과 판매자들이 관리하는 도메인등이 나뉠 수 있다!

 

 

결론

SQL설계의 객체지향프로그래밍과 데이터베이스의 불일치를 해결하고 객체중심으로 개발하기 위해

객체를 자바 컬렉션 저장하는 것 처럼 DB에 저장하기 위해 JPA(자바진영)라는 기술을 사용하기도 한다!