도메인 모델: 개념 모델과 구현 모델

IMKUNYOUNG·2023년 6월 13일
0

DDD

목록 보기
1/1

도메인 모델은 특정 문제 영역을 표현하는 개념 모델구현 모델로 나눌 수 있습니다. 이 두 모델은 서로 다른 목적과 관점을 가지고 있지만, 동일한 도메인을 기반으로 합니다. 이 글에서는 개념 모델과 구현 모델의 차이점과 각각의 역할에 대해 자세히 알아보겠습니다.

개념 모델 (Conceptual Model)

개념 모델은 도메인의 주요 개념과 그들 사이의 관계를 표현하는 고수준의 모델입니다. 이 모델은 도메인 전문가와 시스템 분석가가 공통의 언어로서 사용하여 도메인에 대한 이해를 공유하고 문제를 정의하는 데 사용됩니다.

예를 들어, "도서관"이라는 도메인을 생각해보겠습니다. 도서관 도메인의 개념 모델에는 '도서', '회원', '대출', '반납' 등의 개념이 포함될 수 있습니다. 이러한 개념들은 도메인 전문가와 시스템 분석가가 도서관 시스템에 대한 이해를 공유하고 문제를 정의하는 데 사용됩니다.


구현 모델 (Implementation Model)

반면에, 구현 모델은 개념 모델을 기반으로 하지만, 실제 시스템 구현에 필요한 세부 사항을 포함합니다. 이 모델은 소프트웨어 엔지니어가 시스템을 설계하고 구현하는 데 사용됩니다.

위의 도서관 예시를 계속 사용하면, 구현 모델은 '도서' 개념을 'Book' 클래스로, '회원' 개념을 'Member' 클래스로, '대출'과 '반납' 개념을 'Loan' 클래스로 표현할 수 있습니다. 이러한 클래스들은 속성과 메소드를 가지며, 이들은 도메인의 세부 사항을 반영합니다. 예를 들어, 'Book' 클래스는 'title', 'author', 'ISBN' 등의 속성과 'borrow', 'return' 등의 메소드를 가질 수 있습니다.


개념 모델과 구현 모델의 관계

개념 모델은 도메인의 고수준의 논리적인 표현이며, 구현 모델은 그것을 실제 시스템으로 변환하는 구체적인 방

법입니다. 이 두 모델은 서로 다른 관점을 제공하지만, 동일한 도메인에 대한 이해를 바탕으로 합니다.

아래 다이어그램은 도메인 모델, 개념 모델, 구현 모델, 그리고 이들이 어떻게 서로 관련되어 있는지를 보여줍니다.

이 다이어그램에서 볼 수 있듯이, 도메인 모델은 개념 모델구현 모델로 분리됩니다. 개념 모델은 도메인 전문가와 시스템 분석가가 고수준의 이해를 공유하고 문제를 정의하는 데 사용됩니다. 반면에, 구현 모델은 소프트웨어 엔지니어가 시스템을 설계하고 구현하는 데 사용됩니다.


이렇게 개념 모델구현 모델을 분리함으로써, 도메인 전문가와 시스템 분석가는 복잡한 구현 세부 사항에 방해받지 않고 도메인에 대한 고수준의 이해를 공유하고 문제를 정의할 수 있습니다. 반면에, 소프트웨어 엔지니어는 개념 모델을 기반으로 하되, 실제 시스템 구현에 필요한 세부 사항을 추가하여 시스템을 설계하고 구현할 수 있습니다.

이렇게 도메인 모델을 개념 모델구현 모델로 분리하는 것은 도메인 전문가, 시스템 분석가, 소프트웨어 엔지니어가 각자의 역할에 집중하면서도 동일한 도메인에 대한 공통의 이해를 바탕으로 협력할 수 있게 합니다.

0개의 댓글