ERD와 UML의 차이점

임지원·2026년 1월 4일

개요

ERD(Entity Relationship Diagram)와 UML(Unified Modeling Language)은 모두 시스템 설계를 위한 다이어그램이지만, 각각 다른 목적과 관점에서 시스템을 표현합니다.


ERD (Entity Relationship Diagram)

정의

ERD는 데이터베이스 설계를 위한 다이어그램으로, 데이터베이스 내의 엔티티(Entity), 속성(Attribute), 관계(Relationship)를 시각적으로 표현합니다.

주요 구성 요소

1. 엔티티 (Entity)

  • 데이터베이스에 저장될 실제 객체나 개념
  • 예: 사용자, 주문, 상품, 게시글
  • 표기: 사각형으로 표현

2. 속성 (Attribute)

  • 엔티티의 특성이나 특징
  • 예: 사용자의 이름, 이메일, 전화번호
  • 표기: 타원형 또는 엔티티 내부에 나열

3. 관계 (Relationship)

  • 엔티티 간의 연관성
  • 예: 사용자와 주문 간의 "주문한다" 관계
  • 표기: 다이아몬드 또는 선으로 표현

4. 관계의 카디널리티 (Cardinality)

  • 1:1 (One-to-One): 한 엔티티가 다른 엔티티와 하나씩만 관계
  • 1:N (One-to-Many): 한 엔티티가 여러 엔티티와 관계
  • N:M (Many-to-Many): 여러 엔티티가 여러 엔티티와 관계

ERD 예시

[사용자] ----<주문한다>---- [주문]
  |                           |
  |                           |
[이름]                    [주문번호]
[이메일]                  [주문일자]
[전화번호]                [총액]

ERD의 특징

  • 데이터 중심: 데이터 구조와 관계에 집중
  • 정적 모델: 데이터베이스 스키마를 표현
  • 구현 지향: 실제 데이터베이스 설계에 직접 활용
  • 단순성: 비교적 간단한 표기법

사용 시나리오

  • 데이터베이스 스키마 설계
  • 데이터 모델링
  • 데이터베이스 정규화/반정규화 설계
  • 데이터 관계 분석

UML (Unified Modeling Language)

정의

UML은 소프트웨어 시스템 전체를 모델링하기 위한 표준화된 시각적 표기법으로, 객체 지향 설계를 중심으로 다양한 다이어그램을 제공합니다.

주요 다이어그램 유형

1. 구조 다이어그램 (Structure Diagrams)

시스템의 정적 구조를 표현

클래스 다이어그램 (Class Diagram)

  • 클래스, 인터페이스, 속성, 메서드, 관계를 표현
  • ERD와 유사하지만 메서드(동작)도 포함

컴포넌트 다이어그램 (Component Diagram)

  • 시스템의 물리적 구성 요소 표현

배치 다이어그램 (Deployment Diagram)

  • 하드웨어와 소프트웨어의 배치 구조 표현

2. 행위 다이어그램 (Behavior Diagrams)

시스템의 동적 동작을 표현

시퀀스 다이어그램 (Sequence Diagram)

  • 객체 간 상호작용을 시간 순서로 표현

활동 다이어그램 (Activity Diagram)

  • 워크플로우나 프로세스 흐름 표현

상태 다이어그램 (State Diagram)

  • 객체의 상태 변화 표현

유스케이스 다이어그램 (Use Case Diagram)

  • 시스템의 기능과 사용자 간의 상호작용 표현

UML 클래스 다이어그램 예시

┌─────────────┐
│   User      │
├─────────────┤
│ - userId    │
│ - name      │
│ - email     │
├─────────────┤
│ + login()   │
│ + logout()  │
└─────────────┘
       │
       │ 1
       │
       │ *
       ▼
┌─────────────┐
│   Order     │
├─────────────┤
│ - orderId   │
│ - orderDate │
│ - totalAmount│
├─────────────┤
│ + create()  │
│ + cancel()  │
└─────────────┘

UML의 특징

  • 시스템 전체 모델링: 데이터뿐만 아니라 동작, 프로세스까지 표현
  • 객체 지향: 클래스, 객체, 상속, 다형성 등 OOP 개념 반영
  • 표준화: 국제 표준(ISO/IEC 19505)으로 정의
  • 다양성: 14가지 이상의 다이어그램 유형 제공
  • 복잡성: 다양한 표기법과 규칙

사용 시나리오

  • 소프트웨어 아키텍처 설계
  • 객체 지향 설계 및 분석
  • 시스템 요구사항 분석
  • 개발자 간 의사소통 도구
  • 시스템 문서화

ERD vs UML 비교

목적과 관점

구분ERDUML
주요 목적데이터베이스 설계소프트웨어 시스템 전체 모델링
관점데이터 중심객체 지향 중심
초점데이터 구조와 관계클래스, 동작, 프로세스
표현 범위정적 데이터 모델정적 구조 + 동적 동작

구성 요소 비교

구분ERDUML (클래스 다이어그램)
엔티티/클래스엔티티 (데이터만)클래스 (데이터 + 메서드)
속성속성 (Attribute)속성 (Attribute)
관계관계 (Relationship)연관 (Association), 상속 (Inheritance), 집합 (Aggregation), 합성 (Composition)
동작 표현없음메서드 (Method) 포함

관계 표현 비교

ERD의 관계

  • 1:1, 1:N, N:M: 카디널리티 중심
  • 관계의 의미보다는 데이터 연결에 집중

UML의 관계

  • 연관 (Association): 일반적인 관계
  • 상속 (Inheritance): IS-A 관계
  • 집합 (Aggregation): HAS-A 관계 (약한 소유)
  • 합성 (Composition): HAS-A 관계 (강한 소유)
  • 의존 (Dependency): 사용 관계
  • 구현 (Realization): 인터페이스 구현

복잡도와 학습 곡선

구분ERDUML
학습 난이도낮음중-높음
표기법 복잡도단순복잡
다이어그램 종류1가지 (기본)14가지 이상
표준화여러 변형 존재국제 표준

사용자 및 활용 분야

구분ERDUML
주요 사용자데이터베이스 설계자, DBA소프트웨어 아키텍트, 개발자
활용 분야데이터베이스 설계, 데이터 모델링소프트웨어 설계, 시스템 분석
도구ERwin, MySQL Workbench, dbdiagram.ioEnterprise Architect, StarUML, PlantUML

언제 무엇을 사용할까?

ERD를 사용하는 경우

  1. 데이터베이스 설계 단계

    • 새로운 데이터베이스 스키마 설계
    • 기존 데이터베이스 구조 분석
    • 데이터 정규화/반정규화 설계
  2. 데이터 중심 프로젝트

    • 데이터 웨어하우스 구축
    • 데이터 마이그레이션 계획
    • 데이터 관계 분석
  3. 간단한 표현이 필요한 경우

    • 비개발자와의 소통
    • 빠른 프로토타이핑
    • 데이터 구조 중심의 논의

UML을 사용하는 경우

  1. 소프트웨어 설계 단계

    • 객체 지향 설계
    • 시스템 아키텍처 설계
    • API 설계
  2. 복잡한 시스템 개발

    • 대규모 소프트웨어 프로젝트
    • 여러 팀 간 협업
    • 시스템 문서화
  3. 동작과 프로세스 표현이 필요한 경우

    • 비즈니스 로직 설계
    • 워크플로우 분석
    • 사용자 시나리오 정의

함께 사용하는 경우

많은 프로젝트에서 ERD와 UML을 함께 사용합니다:

  1. ERD: 데이터베이스 스키마 설계
  2. UML 클래스 다이어그램: 애플리케이션 레이어의 클래스 구조 설계
  3. UML 시퀀스 다이어그램: 비즈니스 로직 흐름 설계

실제 예시 비교

사용자-주문 시스템을 ERD로 표현

┌──────────┐         ┌──────────┐
│  User    │         │  Order   │
├──────────┤         ├──────────┤
│ userId   │◄───1:N──│ orderId  │
│ name     │         │ userId   │
│ email    │         │ orderDate│
│ phone    │         │ totalAmt │
└──────────┘         └──────────┘

특징:

  • 데이터 구조만 표현
  • 속성(컬럼) 중심
  • 관계의 카디널리티만 표시

사용자-주문 시스템을 UML로 표현

┌──────────────────┐
│      User        │
├──────────────────┤
│ - userId: int    │
│ - name: string   │
│ - email: string  │
│ - phone: string  │
├──────────────────┤
│ + login()        │
│ + logout()       │
│ + createOrder()  │
└──────────────────┘
        │
        │ 1
        │
        │ *
        ▼
┌──────────────────┐
│      Order       │
├──────────────────┤
│ - orderId: int   │
│ - orderDate: Date│
│ - totalAmount:   │
│   decimal        │
├──────────────────┤
│ + create()       │
│ + cancel()       │
│ + calculateTotal()│
└──────────────────┘

특징:

  • 데이터 + 메서드(동작) 포함
  • 접근 제어자 표시 (-: private, +: public)
  • 데이터 타입 명시
  • 객체 지향 개념 반영

도구 추천

ERD 도구

  • dbdiagram.io: 웹 기반, 간단하고 직관적
  • MySQL Workbench: MySQL 전용, 무료
  • ERwin: 전문 데이터 모델링 도구
  • Lucidchart: 다양한 다이어그램 지원

UML 도구

  • PlantUML: 텍스트 기반, 버전 관리 용이
  • StarUML: 무료, 다양한 UML 다이어그램 지원
  • Enterprise Architect: 전문 모델링 도구
  • draw.io (diagrams.net): 무료, 웹 기반

결론

ERD와 UML은 서로 다른 목적을 가진 모델링 도구입니다:

  • ERD: 데이터베이스 설계에 특화된 데이터 중심 모델링
  • UML: 소프트웨어 시스템 전체를 표현하는 객체 지향 모델링

프로젝트의 성격과 목적에 따라 적절한 도구를 선택하거나, 두 가지를 함께 활용하여 시스템을 다각도로 설계할 수 있습니다.

핵심 차이점 요약:
1. ERD는 데이터 구조에 집중, UML은 데이터 + 동작에 집중
2. ERD는 단순하고 직관적, UML은 복잡하지만 표현력이 풍부
3. ERD는 데이터베이스 설계자에게, UML은 소프트웨어 개발자에게 더 친숙
4. ERD는 정적 모델, UML은 정적 + 동적 모델 모두 표현 가능


참고

  • ERD (Entity Relationship Diagram) 개념 및 표기법
  • UML (Unified Modeling Language) 표준 사양
  • 데이터베이스 설계 방법론
  • 객체 지향 설계 원칙
  • 소프트웨어 아키텍처 패턴
profile
백엔드 새싹

0개의 댓글