DDD 설계

zeze·2023년 8월 5일
0

study

목록 보기
5/10

DDD 설계란

  • Domain-Driven Design : 도메인 주도 설계
  • 도메인 패턴을 중심에 놓고 설계하는 방식
  • 높은 응집력과 낮은 결합도로 변경과 확장에 용이한 설계

    도메인이란?
    현실에서 접하는 업무의 한 영역
    예) 배달 어플리케이션의 도메인 : 회원, 주문, 음식, 배달, 결제... 등등

DDD 설계 특징

  • 도메인 그 자체와 도메인 로직에 초점을 맞춤
  • 보편적인 언어의 사용
    - 분석 작업, 설계, 구현이 통일된 방식으로 커뮤니케이션 가능
  • 소프트웨어 엔티티와 도메인 컨셉트를 가능한 가장 가까이 일치시키는 것
    - 도메인 모델부터 코드까지 항상 함께 움직이는 구조의 모델을 지향!

왜 DDD 사용?

  • 도메인 모델의 적용 범위를 구현까지 확장하여 도메인 지식을 구현 코드에 반영
  • MSA에서 많이 사용됨
    - 분산된 모놀리스 시스템

SQL 중심 설계란?

  • SQL 중심으로 개발을 하는 것
    - 객체지향언어 + 관계형 DB -> 관계형 DB가 알아들을 수 있는 SQL로 개발 -> 객체를 관계형 DB에 맞춰 관리

SQL 중심 설계 문제점

  • 기능 추가하면서 테이블을 만들면 해당 테이블에 관련된 쿼리를 일일이 새로 개발해야함
  • 자바 객체 -> SQL -> 자바 객체 => 이런식으로 반복 작업이 계속 추가됨
  • SQL 의존 개발을 피하기 어렵다!!
  • 패러다임 불일치
    - 관계형 DB : 데이터 정규화해서 보관
    • 객체 : 속성, 메서드로 캡슐화하여 사용

https://incheol-jung.gitbook.io/docs/q-and-a/architecture/ddd
https://ittrue.tistory.com/252
https://velog.io/@syleemk/JPA-JPA-%EC%99%9C-%EC%8D%A8%EC%95%BC%ED%95%98%EB%8A%94%EA%B0%80

0개의 댓글