DDD 설계
▶ DDD 설계의 개념
- DDD(Domain-Driven Design) 또는 도메인 주도 설계라고 부르며, 도메인 패턴을 중심에 놓고 설계하는 방식
▶ DDD 설계의 특징
- 비즈니스 도메인별로 나누어 설계하는 방식
- 보편적인 언어의 사용(모두가 공통으로 이해하는 통일된 용어 필요)
- 모듈 간의 의존성은 최소화시키고, 응집성은 최대화
- 소프트웨어 엔티티와 도메인 콘셉트를 가능한 가까이 일치시키는 것
- 개념 설계와 구체적 설계로 나뉜다.
💡 도메인이란? 유사한 업무의 집합
SQL 설계
▶ SQL 설계의 개념
- 데이터베이스 구조와 데이터의 흐름을 중심으로 설계하고 생성한 후 시스템을 개발하는 것
▶ SQL 설계의 특징
- 데이터베이스 설계를 중심으로 개발 프로세스를 진행
- 데이터베이스 쿼리를 통해 데이터를 처리
- 데이터베이스 변경이 개발 프로세스에 영향을 주기 쉽다.
DDD 설계 vs SQL중심 설계의 차이점
SQL | DDD | |
설계 | 데이터베이스 중심으로 시스템 설계 | 도메인 중심 시스템 설계 |
비즈니스 로직 처리 | 데이터베이스 쿼리 | 도메인 모델 |
일관성 유지 | 데이터베이스 정규화를 통해 일관성 유지 | 도메인 모델을 통해 일관성 유지 |
변경 | 데이터베이스 구조 변경 시 시스템 전체 영향 | 도메인 모델 변경시 시스템 일부 변경 |
결합도 | 높음 | 낮음 |
📍 쇼핑몰 사이트 개발 시 도메인 설계
상품 / 회원 / 주문 / 배송 / 결제로 도메인을 나눌 수 있고 사용자(비회원, 회원, 판매자 )에 따라서 서비스가 달라질 시
구매자가 주문하는 도메인과 판매자들이 관리하는 도메인등이 나뉠 수 있다!
결론
SQL설계의 객체지향프로그래밍과 데이터베이스의 불일치를 해결하고 객체중심으로 개발하기 위해
객체를 자바 컬렉션 저장하는 것 처럼 DB에 저장하기 위해 JPA(자바진영)라는 기술을 사용하기도 한다!