티스토리 뷰
IT 시스템을 설계할 때 자주 등장하는 UML, ERD, DFD는 각각 목적이 다릅니다. 이 글에서는 세 가지 도식화 도구의 개념, 쓰임새, 차이점을 비전문가도 이해할 수 있도록 쉽게 설명합니다. 설계와 기획 단계에서 어떤 도구를 언제 써야 하는지 헷갈렸다면, 이 비교 정리가 큰 도움이 될 것입니다.
UML – 시스템 구조와 행위를 시각화하는 언어
UML(Unified Modeling Language)은 시스템의 구조와 동작을 시각화하는 설계 언어입니다. 즉, ‘어떤 구성 요소가 어떤 역할을 하고 어떻게 서로 연결되는지’를 보여주는 그림입니다. UML은 다양한 다이어그램 유형으로 구성되며, 시스템 개발의 거의 모든 단계를 문서화할 수 있습니다.
- 클래스 다이어그램: 객체지향 시스템에서 클래스 간 관계를 보여줍니다. 예: 고객, 주문, 상품 간 연관.
- 유스케이스 다이어그램: 사용자가 어떤 기능을 이용할 수 있는지를 시각화합니다.
- 시퀀스 다이어그램: 객체 간 메시지 흐름을 시간 순서대로 표현합니다.
- 활동 다이어그램: 업무 흐름이나 프로세스를 순서대로 나타냅니다.
UML은 개발자뿐만 아니라 기획자, 디자이너와의 협업에도 유용하며, 복잡한 시스템의 구조나 동작을 명확하게 공유할 수 있게 해줍니다. 특히 객체지향 기반의 시스템 설계에 강력한 도구로 활용됩니다.
ERD – 데이터 구조와 테이블 관계 중심의 설계
ERD(Entity-Relationship Diagram)는 데이터베이스 설계를 위한 도구입니다. 말 그대로 데이터(Entity) 간의 관계(Relationship)를 도식화하여 표현한 것입니다. 쉽게 말해 “어떤 데이터를 저장해야 하고, 서로 어떻게 연결되어야 하는가”를 그린 도표입니다.
예를 들어 온라인 쇼핑몰의 경우 다음과 같은 ERD 구성 요소가 있을 수 있습니다:
- 엔터티(Entity): 고객, 상품, 주문, 결제 등 저장할 대상(테이블).
- 속성(Attribute): 고객 이름, 이메일, 주문 날짜 등 각 테이블의 컬럼.
- 관계(Relationship): 고객은 여러 주문을 한다, 주문은 하나의 상품을 포함한다 등.
ERD는 보통 백엔드 개발자나 DB 설계자가 사용하며, 데이터 정합성을 유지하고 중복 없이 효율적으로 데이터를 저장하기 위한 핵심 문서입니다. 다른 도구들과 달리, 실제 데이터베이스 구조와 매우 밀접한 연관이 있으며, 실무에서 가장 먼저 작성되는 설계도 중 하나입니다.
DFD – 시스템의 흐름과 처리 과정을 시각화
DFD(Data Flow Diagram)는 시스템 내의 데이터 흐름과 처리 과정을 시각화하는 다이어그램입니다. 즉, ‘어떤 정보가 어디서 들어와서, 어디로 가고, 어떻게 처리되는가’를 보여줍니다.
DFD는 다음과 같은 요소들로 구성됩니다:
- 프로세스(Process): 데이터가 처리되는 기능, 예: "주문 접수", "결제 처리"
- 데이터 흐름(Data Flow): 데이터의 이동 경로, 예: "고객 정보 → 주문 시스템"
- 데이터 저장소(Data Store): 데이터가 저장되는 장소, 예: "회원 DB", "상품 목록"
- 외부 엔티티(External Entity): 시스템 외부 사용자나 다른 시스템, 예: 고객, PG사
DFD는 개발 초기 단계에서 전체 시스템의 개요를 설명할 때 유용하며, 특히 비개발자와의 커뮤니케이션에 효과적입니다. 업무 플로우를 구조적으로 표현해, 어떤 정보가 언제 어떤 식으로 처리되는지를 쉽게 파악할 수 있게 도와줍니다.
UML, ERD, DFD는 모두 ‘시스템을 눈에 보이게 설명하는 도구’이지만, 그 목적은 다릅니다.
- UML: 전체 시스템 구조와 동작을 그리는 설계 중심 도구
- ERD: 데이터 테이블 관계를 시각화하는 DB 설계 도구
- DFD: 시스템의 정보 흐름을 보여주는 업무 분석 도구
이 세 가지를 적절히 활용하면 개발자는 물론, 기획자, 디자이너, 운영자까지도 시스템의 이해도를 높일 수 있습니다. 복잡한 IT 시스템일수록, 이 도식화 도구들은 협업을 위한 ‘공통 언어’가 되어줍니다.
'EasyIT: 용어 풀어쓰기' 카테고리의 다른 글
프론트엔드 초보자도 이해하는 V8 구조 (초보자, 자바스크립트, V8) (0) | 2025.07.27 |
---|---|
[쉽게 설명한 IT 용어] Jenkins·Docker·Nexus란? (0) | 2025.07.26 |
IT 신입도 이해하는 A/B 테스트, 전처리, AutoML (0) | 2025.07.21 |
AI모델링 핵심 용어 비교 (EDA, CDA, 모델) (0) | 2025.07.20 |
[쉽게 설명한 IT 용어] 데이터, 아키텍처, 통신 (0) | 2025.07.19 |