시스템 분석 및 설계 다이어그램 상세 가이드

목차

  1. 시스템 다이어그램
  2. 논리 다이어그램
  3. 물리 다이어그램
  4. 아키텍처 다이어그램
  5. 배포 다이어그램
  6. 통합 다이어그램
  7. 인터페이스 다이어그램
  8. 시스템 컨텍스트 다이어그램

시스템 다이어그램

개념

정의

시스템 다이어그램은 시스템의 전체 구조와 구성 요소를 표현하는 다이어그램입니다. 시스템의 경계, 서브시스템, 인터페이스를 시각화하여 시스템을 이해하고 설계합니다.

핵심 특징

  • 시스템 중심: 시스템 전체 구조 표현
  • 경계 정의: 시스템의 범위와 경계 명시
  • 서브시스템: 시스템을 서브시스템으로 분해
  • 인터페이스: 서브시스템 간 인터페이스 표현
  • 계층 구조: 계층적 시스템 구조 표현

주요 구성 요소

시스템

  • 정의: 전체 시스템
  • 표기: 외부 박스
  • 예시: 전체 애플리케이션, 전체 시스템

서브시스템

  • 정의: 시스템의 주요 구성 요소
  • 표기: 내부 박스
  • 예시: 인증 서브시스템, 데이터 처리 서브시스템

인터페이스

  • 정의: 서브시스템 간 통신 경로
  • 표기: 연결선
  • 예시: API, 메시지 버스, 이벤트

경계

  • 정의: 시스템의 범위
  • 표기: 시스템 박스 경계
  • 예시: 시스템 경계, 외부 시스템과의 경계

외부 시스템

  • 정의: 시스템과 상호작용하는 외부 시스템
  • 표기: 시스템 외부 박스
  • 예시: 외부 API, 서드파티 서비스

사용하는 곳

1. 시스템 설계

  • 전체 시스템 구조 설계
  • 서브시스템 분해
  • 시스템 경계 정의
  • 인터페이스 설계

2. 시스템 문서화

  • 기존 시스템 구조 문서화
  • 시스템 아키텍처 문서화
  • 시스템 개요 문서화

3. 시스템 통합

  • 여러 시스템 통합 계획
  • 시스템 간 인터페이스 설계
  • 통합 아키텍처 설계

4. 시스템 분해

  • 대규모 시스템을 서브시스템으로 분해
  • 모놀리식을 마이크로서비스로 분해
  • 시스템 구조 개선

5. 아키텍처 설계

  • 시스템 아키텍처 설계
  • 아키텍처 패턴 적용
  • 아키텍처 문서화

어디에 사용하면 유리한지

1. 대규모 시스템

  • 상황: 여러 서브시스템으로 구성된 시스템
  • 예시:
    • 엔터프라이즈 애플리케이션
    • 복잡한 소프트웨어 시스템
    • 분산 시스템
  • 유리한 점:
    • 전체 시스템 구조 파악
    • 서브시스템 관계 명확화
    • 시스템 경계 정의
    • 복잡도 관리

2. 시스템 통합

  • 상황: 여러 시스템을 통합하는 경우
  • 예시:
    • 레거시 시스템 통합
    • 시스템 통합 프로젝트
    • 마이그레이션 프로젝트
  • 유리한 점:
    • 통합 구조 시각화
    • 시스템 간 관계 명확화
    • 통합 계획 수립

3. 레거시 시스템

  • 상황: 기존 시스템 구조 파악
  • 예시:
    • 레거시 시스템 분석
    • 시스템 문서화
    • 리팩토링 계획
  • 유리한 점:
    • 시스템 구조 파악
    • 서브시스템 식별
    • 개선 계획 수립

4. 시스템 분해

  • 상황: 대규모 시스템을 분해해야 하는 경우
  • 예시:
    • 모놀리식을 마이크로서비스로 분해
    • 시스템 구조 개선
    • 아키텍처 개선
  • 유리한 점:
    • 분해 전략 수립
    • 서브시스템 경계 정의
    • 마이그레이션 계획

5. 아키텍처 설계

  • 상황: 시스템 아키텍처를 설계해야 하는 경우
  • 예시:
    • 신규 시스템 설계
    • 아키텍처 재설계
  • 유리한 점:
    • 아키텍처 구조 시각화
    • 아키텍처 패턴 적용
    • 아키텍처 문서화

어떤 경우에는 과한 경우인지

1. 단일 애플리케이션

  • 상황: 하나의 애플리케이션만 있는 경우
  • 예시:
    • 단순한 웹 애플리케이션
    • 개인 프로젝트
  • 과한 이유:
    • 구조가 단순하여 문서화 불필요
    • 코드로 충분히 이해 가능

2. 간단한 시스템

  • 상황: 구조가 단순한 시스템
  • 예시:
    • 간단한 스크립트
    • 단순한 유틸리티
  • 과한 이유:
    • 서브시스템 개념이 없음
    • 문서화 불필요

3. 프로토타입

  • 상황: 빠르게 변경되는 초기 프로토타입
  • 예시:
    • MVP 개발
    • 개념 검증
  • 과한 이유:
    • 구조가 자주 변경됨
    • 문서 업데이트 비용 높음

개발 문서에 포함될 경우

1. 시스템 설계서 (System Design Document)

포함 내용

  • 시스템 다이어그램

    • 전체 시스템 구조
    • 서브시스템 분해
    • 시스템 경계
    • 인터페이스 정의
  • 시스템 상세

    • 각 서브시스템 상세
    • 인터페이스 명세
    • 시스템 사양

포함 이유

  • 시스템 구조 시각화
  • 서브시스템 분해
  • 인터페이스 설계
  • 아키텍처 문서화

작성 시점

  • 시스템 설계 단계
  • 아키텍처 설계 단계

포함 위치

  • 시스템 설계서의 “시스템 구조” 섹션
  • “아키텍처 설계” 섹션

2. 아키텍처 문서 (Architecture Document)

포함 내용

  • 시스템 다이어그램

    • 시스템 아키텍처
    • 서브시스템 구조
    • 아키텍처 패턴
  • 아키텍처 상세

    • 아키텍처 결정
    • 패턴 적용
    • 설계 원칙

포함 이유

  • 아키텍처 시각화
  • 아키텍처 문서화
  • 아키텍처 의사결정 기록

작성 시점

  • 아키텍처 설계 단계
  • 아키텍처 리뷰 전

포함 위치

  • 아키텍처 문서의 “시스템 아키텍처” 섹션
  • “아키텍처 구조” 섹션

3. 시스템 통합 문서 (System Integration Document)

포함 내용

  • 시스템 다이어그램

    • 통합 시스템 구조
    • 시스템 간 관계
    • 통합 인터페이스
  • 통합 상세

    • 통합 계획
    • 인터페이스 설계
    • 마이그레이션 계획

포함 이유

  • 통합 구조 시각화
  • 통합 계획 수립
  • 인터페이스 설계

작성 시점

  • 시스템 통합 설계 단계
  • 통합 계획 수립 단계

포함 위치

  • 시스템 통합 문서의 “통합 구조” 섹션
  • “시스템 통합” 섹션

논리 다이어그램

개념

정의

논리 다이어그램은 시스템의 논리적 구조를 표현하는 다이어그램입니다. 물리적 구현과 독립적으로 시스템의 논리적 구성 요소와 관계를 표현합니다.

핵심 특징

  • 논리적 관점: 물리적 구현과 독립적
  • 추상화: 구현 세부사항 제거
  • 개념적 설계: 개념적 시스템 구조
  • 플랫폼 독립: 플랫폼에 독립적
  • 아키텍처 중심: 아키텍처 관점에서 표현

주요 구성 요소

논리 컴포넌트

  • 정의: 기능적 구성 요소
  • 표기: 박스
  • 예시: 비즈니스 로직, 데이터 접근 계층, 프레젠테이션 계층

논리 관계

  • 정의: 컴포넌트 간 논리적 관계
  • 표기: 연결선
  • 예시: 의존성, 호출 관계, 데이터 흐름

데이터 흐름

  • 정의: 논리적 데이터 흐름
  • 표기: 화살표
  • 예시: 데이터 전송, 데이터 변환

계층

  • 정의: 논리적 계층 구조
  • 표기: 수직 배치
  • 예시: 3계층 아키텍처, N계층 아키텍처

인터페이스

  • 정의: 논리적 인터페이스
  • 표기: 원 또는 릴레이
  • 예시: API 인터페이스, 서비스 인터페이스

사용하는 곳

1. 논리적 설계

  • 물리적 구현 전 논리적 구조 설계
  • 개념적 시스템 설계
  • 아키텍처 설계

2. 아키텍처 설계

  • 논리적 아키텍처 설계
  • 아키텍처 패턴 적용
  • 아키텍처 문서화

3. 요구사항 분석

  • 논리적 요구사항 분석
  • 기능 요구사항 분석
  • 시스템 범위 정의

4. 시스템 분석

  • 논리적 시스템 구조 분석
  • 시스템 이해도 향상
  • 시스템 문서화

5. 플랫폼 독립적 설계

  • 여러 플랫폼에 배포해야 하는 경우
  • 플랫폼 독립적 아키텍처
  • 이식 가능한 설계

어디에 사용하면 유리한지

1. 아키텍처 설계

  • 상황: 논리적 아키텍처가 중요한 경우
  • 예시:
    • 엔터프라이즈 아키텍처
    • 시스템 아키텍처 설계
    • 아키텍처 패턴 적용
  • 유리한 점:
    • 논리적 구조 시각화
    • 아키텍처 패턴 적용
    • 구현 독립적 설계

2. 플랫폼 독립적 설계

  • 상황: 여러 플랫폼에 배포해야 하는 경우
  • 예시:
    • 멀티 플랫폼 애플리케이션
    • 클라우드 네이티브 아키텍처
  • 유리한 점:
    • 플랫폼 독립적 설계
    • 이식 가능한 아키텍처
    • 재사용 가능한 설계

3. 개념적 설계

  • 상황: 구현 전 개념적 설계
  • 예시:
    • 시스템 개념 설계
    • 아키텍처 개념 설계
  • 유리한 점:
    • 개념적 구조 시각화
    • 구현 세부사항 제거
    • 핵심 구조 파악

4. 시스템 분석

  • 상황: 논리적 구조 분석
  • 예시:
    • 레거시 시스템 분석
    • 시스템 구조 분석
  • 유리한 점:
    • 논리적 구조 파악
    • 구현 세부사항 제거
    • 핵심 구조 이해

어떤 경우에는 과한 경우인지

1. 물리적 설계만 필요한 경우

  • 상황: 논리적 설계가 불필요한 경우
  • 예시:
    • 단일 플랫폼 애플리케이션
    • 물리적 구조만 중요한 경우
  • 과한 이유:
    • 논리적 설계 불필요
    • 물리 다이어그램으로 충분

2. 단순한 시스템

  • 상황: 논리적 구조가 단순한 경우
  • 예시:
    • 간단한 애플리케이션
    • 단순한 구조
  • 과한 이유:
    • 논리적 구조가 명확함
    • 문서화 불필요

개발 문서에 포함될 경우

1. 시스템 설계서 (System Design Document)

포함 내용

  • 논리 다이어그램

    • 논리적 시스템 구조
    • 논리적 컴포넌트
    • 논리적 관계
  • 논리 설계 상세

    • 각 컴포넌트 상세
    • 논리적 인터페이스
    • 데이터 흐름

포함 이유

  • 논리적 설계 문서화
  • 아키텍처 설계
  • 구현 가이드

작성 시점

  • 논리적 설계 단계
  • 아키텍처 설계 단계

포함 위치

  • 시스템 설계서의 “논리적 설계” 섹션
  • “아키텍처 설계” 섹션

2. 아키텍처 문서 (Architecture Document)

포함 내용

  • 논리 다이어그램

    • 논리적 아키텍처
    • 아키텍처 패턴
    • 논리적 계층
  • 아키텍처 상세

    • 아키텍처 결정
    • 패턴 적용
    • 설계 원칙

포함 이유

  • 논리적 아키텍처 문서화
  • 아키텍처 패턴 시각화
  • 아키텍처 의사결정 기록

작성 시점

  • 아키텍처 설계 단계
  • 아키텍처 리뷰 전

포함 위치

  • 아키텍처 문서의 “논리적 아키텍처” 섹션
  • “아키텍처 구조” 섹션

물리 다이어그램

개념

정의

물리 다이어그램은 시스템의 물리적 배치와 인프라를 표현하는 다이어그램입니다. 실제 서버, 네트워크, 스토리지 등 물리적 구성 요소를 표현합니다.

핵심 특징

  • 물리적 관점: 실제 하드웨어와 인프라 표현
  • 배치 정보: 물리적 배치 위치 정보
  • 하드웨어: 실제 하드웨어 장비 표현
  • 인프라: 네트워크, 스토리지 등 인프라 표현
  • 운영 중심: 운영 환경 중심 표현

주요 구성 요소

서버

  • 정의: 물리적/가상 서버
  • 표기: 박스
  • 예시: 웹 서버, 애플리케이션 서버, 데이터베이스 서버

네트워크

  • 정의: 물리적 네트워크 연결
  • 표기: 연결선
  • 예시: LAN, WAN, 인터넷 연결

스토리지

  • 정의: 물리적 스토리지
  • 표기: 원통
  • 예시: SAN, NAS, 로컬 스토리지

위치

  • 정의: 물리적 배치 위치
  • 표기: 그룹핑 또는 라벨
  • 예시: 데이터센터, 클라우드 리전, 오피스

하드웨어

  • 정의: 실제 하드웨어 장비
  • 표기: 장비 아이콘
  • 예시: 라우터, 스위치, 방화벽, 로드 밸런서

사용하는 곳

1. 인프라 설계

  • 물리적 인프라 설계
  • 하드웨어 요구사항 정의
  • 인프라 배치 계획

2. 배포 계획

  • 물리적 배치 계획
  • 서버 배치 계획
  • 네트워크 구성 계획

3. 용량 계획

  • 물리적 리소스 계획
  • 하드웨어 용량 계획
  • 확장 계획

4. 하드웨어 요구사항

  • 필요한 하드웨어 정의
  • 하드웨어 스펙 정의
  • 하드웨어 구매 계획

5. 운영 문서화

  • 운영 환경 문서화
  • 인프라 구조 문서화
  • 배치 구조 문서화

어디에 사용하면 유리한지

1. 온프레미스 인프라

  • 상황: 물리적 서버가 있는 경우
  • 예시:
    • 온프레미스 데이터센터
    • 자체 인프라 운영
  • 유리한 점:
    • 물리적 배치 시각화
    • 하드웨어 계획
    • 인프라 관리

2. 하이브리드 클라우드

  • 상황: 물리적과 가상 인프라 혼합
  • 예시:
    • 온프레미스 + 클라우드
    • 하이브리드 아키텍처
  • 유리한 점:
    • 하이브리드 구조 시각화
    • 배치 계획
    • 리소스 관리

3. 하드웨어 계획

  • 상황: 하드웨어 구매 계획
  • 예시:
    • 서버 구매 계획
    • 네트워크 장비 계획
  • 유리한 점:
    • 하드웨어 요구사항 정의
    • 구매 계획
    • 예산 계획

4. 용량 계획

  • 상황: 물리적 리소스 계획
  • 예시:
    • 서버 용량 계획
    • 스토리지 용량 계획
  • 유리한 점:
    • 리소스 계획
    • 확장 계획
    • 비용 계획

5. 재해 복구

  • 상황: 물리적 인프라 복구 계획
  • 예시:
    • 백업 인프라
    • 재해 복구 계획
  • 유리한 점:
    • 복구 인프라 시각화
    • 복구 계획
    • 비즈니스 연속성

어떤 경우에는 과한 경우인지

1. 완전 클라우드

  • 상황: 물리적 인프라가 없는 경우
  • 예시:
    • 완전 관리형 클라우드 서비스
    • 서버리스 아키텍처
  • 과한 이유:
    • 물리적 인프라 개념이 없음
    • 논리 다이어그램이 더 적합

2. 서버리스

  • 상황: 물리적 서버 개념이 없는 경우
  • 예시:
    • AWS Lambda
    • Azure Functions
  • 과한 이유:
    • 물리적 서버 개념이 없음
    • 논리 다이어그램이 더 적합

3. 개발 환경

  • 상황: 개발자 로컬 환경
  • 예시:
    • 로컬 개발 환경
    • Docker Compose 환경
  • 과한 이유:
    • 임시 환경
    • 문서화 불필요

개발 문서에 포함될 경우

1. 인프라 설계서 (Infrastructure Design Document)

포함 내용

  • 물리 다이어그램

    • 물리적 인프라 구조
    • 서버 배치
    • 네트워크 구조
    • 스토리지 구조
  • 인프라 상세

    • 하드웨어 스펙
    • 배치 계획
    • 용량 계획

포함 이유

  • 물리적 인프라 설계
  • 하드웨어 요구사항 정의
  • 배치 계획

작성 시점

  • 인프라 설계 단계
  • 하드웨어 계획 단계

포함 위치

  • 인프라 설계서의 “물리적 인프라” 섹션
  • “하드웨어 요구사항” 섹션

2. 배포 문서 (Deployment Document)

포함 내용

  • 물리 다이어그램

    • 배포 구조
    • 서버 배치
    • 네트워크 구성
  • 배포 상세

    • 배포 절차
    • 서버 구성
    • 네트워크 설정

포함 이유

  • 배포 구조 시각화
  • 배포 계획
  • 운영 가이드

작성 시점

  • 배포 계획 단계
  • 배포 문서화 단계

포함 위치

  • 배포 문서의 “배포 구조” 섹션
  • “인프라 구성” 섹션

아키텍처 다이어그램

개념

정의

아키텍처 다이어그램은 시스템 아키텍처를 다양한 관점에서 표현하는 다이어그램입니다. 시스템의 구조, 구성 요소, 관계를 시각화하여 아키텍처를 이해하고 설계합니다.

핵심 특징

  • 다양한 관점: 여러 관점에서 아키텍처 표현
  • 구조 중심: 시스템 구조에 초점
  • 패턴 적용: 아키텍처 패턴 시각화
  • 의사결정 기록: 아키텍처 의사결정 기록
  • 문서화: 아키텍처 문서화

주요 관점

논리적 아키텍처

  • 목적: 논리적 구조 표현
  • 포함: 논리적 컴포넌트, 논리적 관계
  • 용도: 개념적 설계, 아키텍처 설계

물리적 아키텍처

  • 목적: 물리적 구조 표현
  • 포함: 서버, 네트워크, 스토리지
  • 용도: 인프라 설계, 배포 계획

배포 아키텍처

  • 목적: 배포 구조 표현
  • 포함: 배포 단위, 배치 구조
  • 용도: 배포 계획, 운영 계획

통합 아키텍처

  • 목적: 시스템 통합 구조 표현
  • 포함: 시스템 간 통합, 인터페이스
  • 용도: 시스템 통합, 통합 계획

사용하는 곳

1. 아키텍처 설계

  • 시스템 아키텍처 설계
  • 아키텍처 패턴 적용
  • 아키텍처 의사결정

2. 아키텍처 문서화

  • 아키텍처 문서화
  • 아키텍처 의사결정 기록
  • 아키텍처 리뷰

3. 아키텍처 통신

  • 이해관계자와 아키텍처 소통
  • 아키텍처 프레젠테이션
  • 아키텍처 교육

4. 아키텍처 개선

  • 아키텍처 개선 계획
  • 아키텍처 리팩토링
  • 아키텍처 최적화

어디에 사용하면 유리한지

1. 복잡한 시스템

  • 상황: 복잡한 아키텍처를 가진 시스템
  • 유리한 점:
    • 아키텍처 시각화
    • 구조 이해
    • 패턴 적용

2. 아키텍처 의사결정

  • 상황: 아키텍처 결정을 기록해야 하는 경우
  • 유리한 점:
    • 의사결정 기록
    • 대안 비교
    • 향후 참고

어떤 경우에는 과한 경우인지

1. 간단한 시스템

  • 상황: 아키텍처가 단순한 시스템
  • 과한 이유:
    • 아키텍처 문서화 불필요

개발 문서에 포함될 경우

1. 아키텍처 문서 (Architecture Document)

포함 내용

  • 아키텍처 다이어그램

    • 논리적 아키텍처
    • 물리적 아키텍처
    • 배포 아키텍처
  • 아키텍처 상세

    • 아키텍처 결정
    • 패턴 적용
    • 설계 원칙

포함 이유

  • 아키텍처 시각화
  • 아키텍처 문서화
  • 아키텍처 의사결정 기록

작성 시점

  • 아키텍처 설계 단계
  • 아키텍처 리뷰 전

포함 위치

  • 아키텍처 문서의 “아키텍처 구조” 섹션
  • “아키텍처 설계” 섹션

배포 다이어그램

개념

정의

배포 다이어그램은 인프라스트럭처와 배포 구조를 표현하는 다이어그램입니다. 애플리케이션과 서비스의 배포 구조, 인프라 구성, 네트워크 구조를 시각화합니다.

핵심 특징

  • 배포 중심: 배포 구조에 초점
  • 인프라 표현: 인프라 구성 요소 표현
  • 배치 정보: 배치 구조 정보
  • 운영 중심: 운영 환경 중심

주요 구성 요소

서버

  • 정의: 배포 대상 서버
  • 표기: 박스
  • 예시: 웹 서버, 애플리케이션 서버

네트워크

  • 정의: 네트워크 구조
  • 표기: 클라우드 모양
  • 예시: 서브넷, VPC, 네트워크 세그먼트

데이터베이스

  • 정의: 데이터베이스 서버
  • 표기: 원통
  • 예시: MySQL, PostgreSQL, MongoDB

로드 밸런서

  • 정의: 트래픽 분산 장비
  • 표기: 다이아몬드
  • 예시: ALB, NLB, 로드 밸런서

배포 단위

  • 정의: 배포되는 애플리케이션/서비스
  • 표기: 박스 내부
  • 예시: 컨테이너, VM, 서비스

사용하는 곳

1. 인프라 설계

  • 배포 인프라 설계
  • 서버 구성 계획
  • 네트워크 구성 계획

2. 배포 계획

  • 배포 구조 계획
  • 배포 전략 수립
  • 배포 절차 정의

3. 운영 계획

  • 운영 환경 계획
  • 모니터링 계획
  • 확장 계획

어디에 사용하면 유리한지

1. 복잡한 배포 구조

  • 상황: 여러 서버와 서비스가 있는 경우
  • 유리한 점:
    • 배포 구조 시각화
    • 배포 계획
    • 운영 가이드

2. 마이크로서비스

  • 상황: 여러 마이크로서비스 배포
  • 유리한 점:
    • 서비스 배치 시각화
    • 서비스 간 관계
    • 배포 전략

어떤 경우에는 과한 경우인지

1. 단순한 배포

  • 상황: 단일 서버 배포
  • 과한 이유:
    • 구조가 단순하여 문서화 불필요

개발 문서에 포함될 경우

1. 배포 문서 (Deployment Document)

포함 내용

  • 배포 다이어그램

    • 배포 구조
    • 서버 구성
    • 네트워크 구조
  • 배포 상세

    • 배포 절차
    • 서버 구성
    • 네트워크 설정

포함 이유

  • 배포 구조 시각화
  • 배포 계획
  • 운영 가이드

작성 시점

  • 배포 계획 단계
  • 배포 문서화 단계

포함 위치

  • 배포 문서의 “배포 구조” 섹션
  • “인프라 구성” 섹션

통합 다이어그램

개념

정의

통합 다이어그램은 여러 시스템을 통합하는 구조를 표현하는 다이어그램입니다. 시스템 간 통합, 인터페이스, 데이터 흐름을 시각화합니다.

핵심 특징

  • 통합 중심: 시스템 통합에 초점
  • 인터페이스: 시스템 간 인터페이스 표현
  • 데이터 흐름: 통합 데이터 흐름
  • 통합 패턴: 통합 패턴 시각화

사용하는 곳

1. 시스템 통합

  • 여러 시스템 통합 계획
  • 통합 구조 설계
  • 통합 인터페이스 설계

2. 통합 문서화

  • 통합 구조 문서화
  • 통합 인터페이스 문서화
  • 통합 가이드

어디에 사용하면 유리한지

1. 시스템 통합 프로젝트

  • 상황: 여러 시스템을 통합하는 경우
  • 유리한 점:
    • 통합 구조 시각화
    • 통합 계획
    • 인터페이스 설계

어떤 경우에는 과한 경우인지

1. 단일 시스템

  • 상황: 통합이 불필요한 경우
  • 과한 이유:
    • 통합 개념이 없음

개발 문서에 포함될 경우

1. 시스템 통합 문서 (System Integration Document)

포함 내용

  • 통합 다이어그램

    • 통합 구조
    • 시스템 간 관계
    • 통합 인터페이스
  • 통합 상세

    • 통합 계획
    • 인터페이스 설계
    • 마이그레이션 계획

포함 이유

  • 통합 구조 시각화
  • 통합 계획
  • 인터페이스 설계

작성 시점

  • 시스템 통합 설계 단계
  • 통합 계획 수립 단계

포함 위치

  • 시스템 통합 문서의 “통합 구조” 섹션
  • “시스템 통합” 섹션

인터페이스 다이어그램

개념

정의

인터페이스 다이어그램은 시스템 간 인터페이스를 표현하는 다이어그램입니다. 인터페이스 구조, 프로토콜, 데이터 형식을 시각화합니다.

핵심 특징

  • 인터페이스 중심: 인터페이스에 초점
  • 프로토콜: 통신 프로토콜 표현
  • 데이터 형식: 데이터 형식 표현
  • 통신 방식: 통신 방식 표현

사용하는 곳

1. 인터페이스 설계

  • 시스템 간 인터페이스 설계
  • API 설계
  • 프로토콜 설계

2. 인터페이스 문서화

  • 인터페이스 문서화
  • API 문서화
  • 통합 가이드

어디에 사용하면 유리한지

1. 복잡한 인터페이스

  • 상황: 여러 인터페이스가 있는 경우
  • 유리한 점:
    • 인터페이스 시각화
    • 인터페이스 설계
    • 문서화

어떤 경우에는 과한 경우인지

1. 단순한 인터페이스

  • 상황: 인터페이스가 단순한 경우
  • 과한 이유:
    • 문서화 불필요

개발 문서에 포함될 경우

1. 인터페이스 설계서 (Interface Design Document)

포함 내용

  • 인터페이스 다이어그램

    • 인터페이스 구조
    • 프로토콜
    • 데이터 형식
  • 인터페이스 상세

    • 각 인터페이스 명세
    • 프로토콜 정의
    • 데이터 정의

포함 이유

  • 인터페이스 시각화
  • 인터페이스 설계
  • 문서화

작성 시점

  • 인터페이스 설계 단계
  • API 설계 단계

포함 위치

  • 인터페이스 설계서의 “인터페이스 구조” 섹션
  • “인터페이스 명세” 섹션

시스템 컨텍스트 다이어그램

개념

정의

시스템 컨텍스트 다이어그램은 시스템과 외부 액터의 관계를 표현하는 다이어그램입니다. 시스템의 경계, 외부 의존성, 액터와의 관계를 시각화합니다.

핵심 특징

  • 시스템 중심: 시스템을 중심으로 표현
  • 경계 정의: 시스템 경계 명확히 정의
  • 외부 의존성: 외부 시스템과의 의존성 표현
  • 액터 관계: 사용자 및 액터와의 관계

사용하는 곳

1. 시스템 경계 정의

  • 시스템 범위 정의
  • 시스템 경계 명확화
  • 외부 의존성 식별

2. 아키텍처 개요

  • 시스템 아키텍처 개요
  • 이해관계자 소통
  • 시스템 이해도 향상

3. 요구사항 분석

  • 시스템 요구사항 분석
  • 외부 요구사항 식별
  • 시스템 범위 결정

어디에 사용하면 유리한지

1. 시스템 설계 초기

  • 상황: 시스템 설계 초기 단계
  • 유리한 점:
    • 시스템 경계 정의
    • 외부 의존성 식별
    • 이해관계자 소통

2. 복잡한 시스템

  • 상황: 많은 외부 의존성이 있는 시스템
  • 유리한 점:
    • 외부 의존성 시각화
    • 시스템 경계 명확화

어떤 경우에는 과한 경우인지

1. 단순한 시스템

  • 상황: 외부 의존성이 없는 단순한 시스템
  • 과한 이유:
    • 구조가 단순하여 문서화 불필요

개발 문서에 포함될 경우

1. 시스템 설계서 (System Design Document)

포함 내용

  • 시스템 컨텍스트 다이어그램

    • 시스템 경계
    • 외부 액터
    • 외부 시스템
  • 시스템 상세

    • 시스템 범위
    • 외부 의존성
    • 액터 정의

포함 이유

  • 시스템 경계 정의
  • 외부 의존성 식별
  • 시스템 이해도 향상

작성 시점

  • 시스템 설계 초기 단계
  • 요구사항 분석 단계

포함 위치

  • 시스템 설계서의 “시스템 개요” 섹션
  • “시스템 경계” 섹션

도구

시스템 다이어그램 도구

  • Draw.io: 다양한 시스템 다이어그램 지원
  • Lucidchart: 시스템 다이어그램 템플릿
  • Visio: 기업 표준 도구
  • Structurizr: C4 모델 기반 시스템 다이어그램

아키텍처 도구

  • ArchiMate: 엔터프라이즈 아키텍처 모델링
  • C4 Model: 소프트웨어 아키텍처 문서화
  • PlantUML: 텍스트 기반 아키텍처 다이어그램

모범 사례

시스템 다이어그램

  1. 시스템 경계 명확히 정의
  2. 서브시스템 적절히 분해
  3. 인터페이스 명확히 표현
  4. 계층 구조 유지

논리/물리 다이어그램

  1. 논리와 물리 구분 명확히
  2. 적절한 추상화 수준 유지
  3. 일관된 표기법 사용
  4. 정기적 업데이트

결론

시스템 분석 및 설계 다이어그램은 시스템을 다양한 관점에서 분석하고 설계하는 강력한 도구입니다. 시스템 다이어그램은 전체 구조를, 논리 다이어그램은 논리적 구조를, 물리 다이어그램은 물리적 구조를 각각 표현합니다.

각 다이어그램은 고유한 목적과 사용 사례를 가지고 있으며, 시스템의 특성과 분석/설계 단계에 맞는 적절한 다이어그램을 선택하는 것이 중요합니다. 적절한 상황에서 사용하면 시스템 이해도와 설계 품질을 크게 향상시킬 수 있습니다.