본문 바로가기
프로그래밍

도메인 주도 개발(Domain-Driven Development) 모델과 모델링

by bantomak 2024. 11. 20.
반응형

도메인 주도 개발(DDD)

도메인 주도 개발은 복잡한 비즈니스 요구사항을 해결하기 위해 도메인(문제가 발생하는 비지니스 영역)을 중심으로 소프트웨어를 설계하는 방법론이다. 보다 자세한 내용은 아래의 링크를 참고하자.

 

 

도메인 주도 설계란 무엇인가?(Domain Driven Design Quickly)를 읽고서

도메인 주도 설계란 무엇인가?최근에서야 DDD, 즉 도메인 주도 설계라는 개념이 있다는 것을 알게 되었다. 아직 객체 지향 설계도 제대로 못 다루는데 도메인 주도 설계에 대해서 공부하는 게 맞

jettstream.tistory.com

도메인 주도 개발의 주요 구성 요소

  • 엔티티(Entity) : 고유한 식별자를 가지며 상태가 변하는 객체
  • 값 객체(Value Object) : 고유 식별자가 없으며 값으로만 구성된 객체
  • 애그리게이트(Aggregate) : 연관된 엔티티와 값 객체들의 집합으로 변경시 일관성을 유지해야 한다.
  • 리포지토리(Repository) : 데이터 저장소에 접근하는 계층
  • 도메인 서비스(Domain Service) : 특정 도메인 로직을 표현하기 위한 서비스

도메인 주도 개발에서의 모델(Model)

모델(Model)은 도메인의 개념과 관계를 단순화하여 소프트웨어로 구현할 수 있도록 표현한 것이다.

(다른 말로 표현해보자면, 현실에 있는 어떤 개념을 소프트웨어 세계로 가져와서 표현한 것이 바로 모델이다.)

  • 현실 세계의 문제를 해결하기 위해 도메인 전문가(현실 세계의 전문가)와 협력하여 도출된 비즈니스 로직과 데이터 구조를 포함한다.
  • 모델은 소프트웨어 개발팀과 도메인 전문가 간의 공통언어(Ubiquitous Language)를 기반으로 만들어진다.
// C#으로 구현한 간단한 모델
public class Product
{
    public int Id { get; set; } // 고유 식별자
    public string Name { get; set; } // 제품명
    public decimal Price { get; set; } // 가격
    public DateTime CreatedAt { get; set; } // 생성 날짜
}

도메인 주도 개발에서의 모델링(Modeling)

모델링(Modeling)은 도메인을 이해하고 이를 소프트웨어로 설계하기 위해 모델을 생성, 수정, 검토하는 과정을 말한다.

  • 도메인 전문가와 개발자가 협력해서 모델을 정의한다.
  • 이 과정은 도메인의 요구사항, 용어, 규칙을 이해하고 이를 코드로 옮기는 작업을 포함한다.

댓글