본문 바로가기
  • 구름빵의 개발 블로그
프로젝트

ERD vs. Domain Model Diagram

by 은빛구름빵 2025. 12. 26.

개요 

어떤 프로젝트의 최종 산출물로 나올 수 있는 자료들에 'ERD'와 'Class Diagram'이 있다. 큰 관점에서 ERD Diagram은 말 그대로 데이터베이스의 엔티티 사이의 관계성을 보여주며 Class Diagram은 백엔드 서비스에서 클래스 사이의 관계성을 보여주는 다이어그램이다.

Class Diagram을 보면, 우리가 일반적으로 Spring Boot로 백엔드 서비스를 구현했다고 가정할 때 Controller, Config, Util, Service, Repository, Entity 등등 다양한 계층의 클래스가 존재한다. 이 때 Entity 클래스에 대해서도 Class Diagram을 작성할 수 있다. JPA를 사용한다고 하면 이 ERD로 그려지는 엔티티와 Class Diagram에서 그리는 엔티티 클래스 사이의 다이어그램과 거의 비슷하게 그려질 수 있다. 하지만 그럼에도 두 다이어그램은 각자의 목적에 따라 함께 작성된다.

 

ERD ( Entity Relationship Diagram )

ERD는 우선 데이터베이스 중심이다. 그렇기 때문에 테이블 사이의 제약 조건, N:M 관계 표현, 인덱스 전략 등과 같은 요소를 중심으로 작성하게 된다. 

 

도메인 모델 다이어그램

도메인 모델 다이어그램은 객체 중심이다. 그렇기 때문에 객체 간의 의존 관계를 표현하거나 비즈니스 로직을 표현하는데 더 중심을 두고 있다. ERD에서는 표현할 수 없었던 엔티티 사이의 상속 관계, Embedded 객체 등의 자세한 정보를 표현할 수 있으며 비즈니스 로직에 따라 특이하게 사용되는 엔티티의 구체적인 역할이나 사용 방법에 대해서도 명시할 수 있다는 특징이 있다.

 

비교

ERD( 좌 ) / DMD( 우 )

각각 ERD와 DMD이다. 

ERD에서는 어떤 필드가 어떤 테이블의 외래키로 사용되고 있는지, 테이블은 서로 몇 대 몇의 관계인지 알 수 있는 정보가 포함되어 있다. 또한 각 필드에 저장되는 타입이 DB에서 사용하는 타입으로 정의되어 있다.

DMD에서 볼 수 있는 가장 큰 차이는 상속 관계가 명시되어 있다는 점이다. ERD에서는 OnlineLecture와 OfflineLecture라는 두 개의 테이블이 독립적으로 존재하는 것처럼 보이지만 실제로는 Lecture라는 공통적인 부모 클래스를 갖고 있는 것을 알 수 있다. 추가적으로 화살표를 통해 어떤 엔티티가 어떤 엔티티에 의존적인지 가시적으로 확인할 수 있다.