728x90
반응형
UML (Unified Modeling Language) 이란?
UML(통합 모델링 언어)은 소프트웨어 시스템을 시각적으로 모델링하는 표준화된 언어입니다. 시스템의 구조, 동작, 상호작용 등을 다이어그램으로 표현하여 개발자, 설계자, 비즈니스 분석가 등이 소프트웨어를 설계하고 이해하는 데 도움을 줍니다.
UML 버전별 특징
버전 | 출시 연도 | 주요 특징 |
UML 1.0 | 1997 | 초기 버전, 여러 모델링 방법론을 통합 |
UML 1.3 | 1999 | 객체 제약 언어(OCL) 추가, 액티비티 다이어그램 개선 |
UML 1.5 | 2003 | 액티비티 다이어그램의 동작 명확화, 프로파일 개념 도입 |
UML 2.0 | 2005 | 다이어그램 구조 개편, 복합 구조 다이어그램 도입, 인터랙션 다이어그램 확장 |
UML 2.5 | 2015 | 표준 문서 단순화, 모델링 표현 간소화 |
UML 2.6 이후 | 지속 업데이트 중 | 최신 개발 환경 및 시스템 설계 방식 반영 |
UML 다이어그램 종류
UML은 크게 구조 다이어그램과 행동 다이어그램으로 나뉩니다.
1. 구조 다이어그램 (Structural Diagrams)
- 클래스 다이어그램(Class Diagram) : 클래스 간의 관계 표현 (객체 지향 설계)
- 객체 다이어그램(Object Diagram) : 특정 순간의 객체 인스턴스 표현
- 컴포넌트 다이어그램(Component Diagram) : 시스템의 구성 요소(컴포넌트) 표현
- 배포 다이어그램(Deployment Diagram) : 하드웨어 및 네트워크 배포 모델링
- 복합 구조 다이어그램(Composite Structure Diagram) : 클래스 내부 구조 표현
- 패키지 다이어그램(Package Diagram) : 논리적 그룹 및 네임스페이스 표현
반응형
2. 행동 다이어그램 (Behavioral Diagrams)
- 유스케이스 다이어그램(Use Case Diagram) : 사용자의 시스템 이용 방식 모델링
- 시퀀스 다이어그램(Sequence Diagram) : 객체 간 메시지 흐름 표현
- 커뮤니케이션 다이어그램(Communication Diagram) : 객체 간 상호작용 표현
- 스테이트 다이어그램(State Diagram) : 상태 변화 모델링
- 액티비티 다이어그램(Activity Diagram) : 비즈니스 프로세스나 워크플로우 표현
- 타이밍 다이어그램(Timing Diagram) : 객체의 상태 변화 타이밍 표현
UML 사용 사례
- 소프트웨어 설계: 시스템 아키텍처 설계, 데이터베이스 모델링
- 비즈니스 프로세스 모델링: 업무 프로세스 최적화 및 문서화
- 임베디드 시스템 개발: 하드웨어 및 소프트웨어 상호작용 정의
- 네트워크 및 시스템 엔지니어링: 네트워크 인프라 설계
- 게임 개발: 게임 로직 및 객체 간 관계 설계
많이 사용되고 사용하기 쉬운 UML 툴
툴 이름 | 특징 | 가격 |
StarUML | 가볍고 빠른 UML 모델링 도구, 플러그인 지원 | 무료/유료 |
Visual Paradigm | 강력한 UML 지원, 협업 기능 제공 | 무료/유료 |
Lucidchart | 웹 기반, 직관적인 UI, 협업 기능 지원 | 무료/유료 |
Draw.io (diagrams.net) | 무료, 웹 기반, 간단한 UML 다이어그램 제작 가능 | 무료 |
PlantUML | 텍스트 기반 UML 다이어그램 생성, 코드와 통합 가능 | 무료 |
Enterprise Architect | 대규모 프로젝트 관리, 고급 UML 기능 제공 | 유료 |
추천 도구
- 초보자 : Draw.io, Lucidchart → 웹에서 쉽게 사용 가능
- 개발자 : PlantUML, StarUML → 코드 기반 UML 작성 가능
- 기업용 : Enterprise Architect, Visual Paradigm → 협업 및 고급 기능 제공
728x90
반응형
'IT > SW Dev.' 카테고리의 다른 글
A/B 테스트 - 개념, 주요단계, 장/단점 (1) | 2025.03.22 |
---|---|
디자인 패턴(Design Patterns) - 생성 패턴의 주요 유형(싱글톤, 팩토리 메서드, 프로토타입 등) (1) | 2025.03.05 |
Vercel 에서 flask 와 neon 연결(.env(local), environment variables) (0) | 2025.03.02 |
어느 것을 선택할까? Vercel or Netlify (0) | 2025.03.01 |
Vercel 과 잘 맞는 무료 데이터 베이스 - Neon, PlanetScale, Supabase (1) | 2025.03.01 |