반응형
도메인 주도 개발(DDD)
도메인 주도 개발은 복잡한 비즈니스 요구사항을 해결하기 위해 도메인(문제가 발생하는 비지니스 영역)을 중심으로 소프트웨어를 설계하는 방법론이다. 보다 자세한 내용은 아래의 링크를 참고하자.
도메인 주도 개발의 주요 구성 요소
- 엔티티(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)은 도메인을 이해하고 이를 소프트웨어로 설계하기 위해 모델을 생성, 수정, 검토하는 과정을 말한다.
- 도메인 전문가와 개발자가 협력해서 모델을 정의한다.
- 이 과정은 도메인의 요구사항, 용어, 규칙을 이해하고 이를 코드로 옮기는 작업을 포함한다.
'프로그래밍' 카테고리의 다른 글
더 나쁜 것이 더 좋습니다? Worse is better (0) | 2025.01.13 |
---|---|
C# Web API 구조 - 비동기, 멀티스레드, 쓰레드 풀 (1) | 2025.01.03 |
/**/* 은 무슨 뜻일까? Glob 패턴에 대해서 알아보자 (1) | 2024.10.23 |
PowerShell 에러 Invoke-WebRequest : 기본 연결이 닫혔습니다. SSL/TLS 보안 채널에 대한 트러스트 관계를 설정할 수 없습니다. (0) | 2024.09.27 |
PowerShell의 Invoke-WebRequest로 Post Request 보내기 (1) | 2024.09.27 |
댓글