카테고리 없음

자료 흐름도(DFD) - 시스템의 데이터 흐름을 한눈에 파악하기 🔄

블로글러 2025. 5. 4. 09:43

 

여러분은 복잡한 시스템을 어떻게 이해하시나요? 수많은 데이터가 이곳저곳으로 움직이는 모습을 상상해 보세요. 마치 복잡한 교통 시스템처럼 말이죠! 자료 흐름도(DFD)는 이러한 데이터의 이동을 시각적으로 표현해주는 도구입니다. 오늘은 DFD의 각 요소별 표기법에 대해 알아보겠습니다.

등장 배경

과거에는 시스템 분석이나 설계 시 텍스트로만 설명하거나 복잡한 도식을 사용했습니다. 하지만 이런 방식은 시스템의 전체적인 흐름을 직관적으로 파악하기 어려웠습니다. 1970년대 Larry Constantine과 Ed Yourdon이 구조적 분석 및 설계를 위해 DFD를 개발했고, 이후 Tom DeMarco가 이를 발전시켰습니다. DFD는 시스템 내부에서 데이터가 어떻게 처리되고 이동하는지 시각적으로 표현하는 도구로, 복잡한 시스템을 이해하기 쉽게 만드는 데 큰 도움을 줍니다.

DFD가 해결하는 문제:

  1. 복잡성 관리: 복잡한 시스템을 계층적으로 간단하게 표현
  2. 의사소통 개선: 기술적 배경이 다른 이해관계자들 간의 소통 촉진
  3. 시스템 경계 명확화: 시스템의 범위와 외부 환경과의 상호작용 명확히 정의

핵심 원리: DFD 요소별 표기법

DFD에는 네 가지 기본 요소가 있습니다: 프로세스(Process), 데이터 저장소(Data Store), 외부 개체(External Entity), 데이터 흐름(Data Flow)입니다. 각 요소는 고유한 기호로 표현되며, Yourdon and Coad, Gane and Sarson 등 여러 표기법이 존재합니다.

1. 프로세스(Process) 🔄

프로세스는 데이터 변환이 일어나는 곳을 나타냅니다. 입력 데이터를 받아 처리하고 출력 데이터를 생성합니다.

표기법:

  • Yourdon & DeMarco: 동그라미 또는 둥근 모서리의 사각형
  • Gane & Sarson: 둥근 모서리를 가진 사각형

내부 표기:

  • 프로세스 번호 (상단)
  • 프로세스 이름 (중앙)
  • 실행 위치/담당자 (선택적, 하단)

예시:

 ┌───────────┐
 │ 1.0      │
 │ 주문 검증 │
 │ 주문팀    │
 └───────────┘

2. 데이터 저장소(Data Store) 💾

데이터 저장소는 시스템 내에서 데이터가 저장되는 위치를 나타냅니다. 데이터베이스, 파일, 임시 저장소 등이 이에 해당합니다.

표기법:

  • Yourdon & DeMarco: 평행선 또는 열린 직사각형
  • Gane & Sarson: 한쪽이 닫힌 직사각형

내부 표기:

  • 식별자 (D1, D2 등)
  • 저장소 이름

예시:

┌─────────────┐
│D1 고객 데이터│
└─────────────┘

3. 외부 개체(External Entity) 🏢

외부 개체는 시스템 외부에 있으면서 시스템과 상호작용하는 사람, 조직, 다른 시스템 등을 의미합니다. 데이터의 출처나 목적지가 됩니다.

표기법:

  • Yourdon & DeMarco: 사각형
  • Gane & Sarson: 얇은 그림자가 있는 사각형

내부 표기:

  • 개체 이름

예시:

┌─────────┐
│  고객   │
└─────────┘

4. 데이터 흐름(Data Flow) ➡️

데이터 흐름은 한 요소에서 다른 요소로 이동하는 데이터를 나타냅니다. 화살표로 표시되며 데이터의 방향을 보여줍니다.

표기법:

  • 모든 표기법: 화살표 (→)

내부 표기:

  • 데이터 이름/설명

예시:

   주문 정보
───────────→

DFD 레벨 구분 📊

DFD는 여러 레벨로 구성될 수 있습니다. 각 레벨은 시스템의 상세 정도를 나타냅니다.

  1. 컨텍스트 다이어그램(Level 0): 시스템 전체를 하나의 프로세스로 표현하고 외부 개체와의 상호작용만 보여줌
  2. Level 1 DFD: 주요 프로세스, 데이터 저장소, 데이터 흐름을 보여줌
  3. Level 2+ DFD: 각 프로세스를 더 세부적으로 분해하여 표현

DFD 레벨 표기 예시:

          ┌─────────┐
          │  고객   │
          └────┬────┘
               │ 주문 제출
               ▼
┌───────────────────────────┐
│                           │
│      주문 처리 시스템      │
│                           │
└───────────────────────────┘
               │ 배송 정보
               ▼
          ┌─────────┐
          │  배송부 │
          └─────────┘

     [Level 0: 컨텍스트 다이어그램]

DFD 작성 규칙 표

규칙 설명 예시

이름 부여 모든 요소에 고유한 명칭 부여 '고객 정보 검증', '주문 데이터'
프로세스 번호 계층적 번호 체계 사용 1.0, 1.1, 1.2, 2.0 등
균형 유지 상위 DFD와 하위 DFD 간 일관성 유지 같은 입출력 데이터 유지
블랙홀 방지 데이터가 사라지는 곳 없어야 함 모든 입력은 출력이나 저장으로 연결
기적 방지 입력 없이 출력만 있는 프로세스 금지 모든 출력에 대응하는 입력 필요

주의사항 및 팁 💡

⚠️ 이것만은 주의하세요!

  1. 지나친 복잡성
    • 한 다이어그램에 너무 많은 요소 포함 시 이해하기 어려움
    • 해결 방법: 7±2 규칙 적용 (한 다이어그램에 5-9개 프로세스만 포함)
  2. 일관성 부족
    • 상위 레벨과 하위 레벨 간 불일치
    • 해결 방법: 분해 후 데이터 흐름 검증
  3. 불명확한 레이블
    • "데이터", "정보" 같은 모호한 표현
    • 해결 방법: 구체적인 데이터 내용 명시 ("고객 주문 번호", "결제 정보")

💡 꿀팁

  • 컨텍스트 다이어그램부터 시작해 점진적으로 상세화하세요
  • 색상 코드를 활용해 다른 유형의 요소를 구분하면 가독성이 높아집니다
  • CASE(Computer-Aided Software Engineering) 도구를 활용하면 DFD 작성과 유지보수가 쉬워집니다
  • 번호 체계는 계층을 나타내도록 설계하세요 (예: 1.1, 1.2, 1.2.1 등)

DFD 실제 적용 예시

       ┌───────┐         주문 정보         ┌───────────┐
       │ 고객  │ ───────────────────────→ │  1.0      │
       └───────┘                          │ 주문 접수  │
          ↑                               └─────┬─────┘
          │                                     │
          │                                     │ 유효한 주문
          │                                     ▼
  주문 상태 알림                         ┌───────────┐
          │                              │  2.0      │
          │                              │ 재고 확인  │
          │                              └─────┬─────┘
          │                                    │
┌───────────────┐                             │ 재고 정보
│ 4.0          │       결제 확인              ▼
│ 주문 상태 업데이트│ ←───────────── ┌───────────┐
└───────┬───────┘                   │  3.0      │
        │                           │ 결제 처리  │
        │                           └─────┬─────┘
        │                                 │
        │                                 │ 결제 정보
        ▼                                 ▼
┌────────────┐                   ┌────────────┐
│D1 주문 DB  │ ◀───────────────→ │D2 결제 DB  │
└────────────┘                   └────────────┘

마치며

지금까지 자료 흐름도(DFD)의 각 요소별 표기법에 대해 알아보았습니다. 처음에는 복잡하게 느껴질 수 있지만, 기본 요소들과 표기법을 익히면 시스템의 데이터 흐름을 명확하게 표현할 수 있습니다. DFD는 시스템 분석과 설계에서 핵심적인 도구이며, 기술적 배경이 다른 팀원들 간의 의사소통을 원활하게 해주는 강력한 도구입니다. 여러분의 시스템 분석 작업에 이 지식이 도움이 되길 바랍니다! 🙋‍♀️

참고 자료 🔖


#자료흐름도 #DFD #시스템분석 #데이터모델링 #소프트웨어설계

728x90
반응형