"오토마타(Automata)"와 "UML(Unified Modeling Language)"은 모두 시스템을 모델링하거나 표현할 때 사용되는 도구이지만, 사용하는 분야와 목적이 다릅니다. 아래에 두 개념을 상세히 설명하고, 각각의 용도 및 차이점도 함께 소개드릴게요.
1. 오토마타 (Automata)
● 개념
오토마타는 형식 언어 이론(Formal Language Theory)의 일부로, 수학적으로 추상화된 계산 모델입니다. 어떤 입력에 대해 상태 전이(State Transition)를 하며 작동하는 기계 모델을 의미합니다. 대표적인 오토마타로는 다음이 있습니다.
- DFA (Deterministic Finite Automaton): 결정적 유한 오토마타
- NFA (Non-deterministic Finite Automaton): 비결정적 유한 오토마타
- PDA (Pushdown Automaton): 스택을 사용하는 오토마타 (문맥자유언어 처리 가능)
- Turing Machine: 가장 강력한 오토마타로 계산 가능한 모든 문제 처리 가능
● 활용 분야
- 컴파일러 설계 (문법 검사, 어휘 분석기)
- 정규 표현식과 패턴 인식
- 이론 컴퓨터 과학에서 언어의 복잡도 분석
2. UML (Unified Modeling Language)
● 개념
UML은 객체지향 소프트웨어 설계 및 문서화를 위한 표준화된 그래픽 언어입니다. 시스템의 구조와 동작을 시각적으로 표현하여 소프트웨어 개발자 간의 의사소통을 도와줍니다.
● 주요 다이어그램
UML은 다양한 다이어그램으로 시스템을 표현합니다.
- 클래스 다이어그램(Class Diagram): 클래스 간의 관계 및 속성/메서드 표현
- 시퀀스 다이어그램(Sequence Diagram): 객체 간 메시지 흐름 시간 순 표현
- 상태 다이어그램(State Diagram): 객체의 상태 변화 표현 → 여기서 오토마타와 유사
- 활동 다이어그램(Activity Diagram): 업무 프로세스 흐름 표현
- 유스케이스 다이어그램(Use Case Diagram): 사용자와 시스템 간 상호작용
● 활용 분야
- 소프트웨어 설계 및 개발
- 시스템 아키텍처 설계 문서화
- 요구사항 분석 및 구현 계획
3. 오토마타와 UML의 공통점과 차이점
항목 오토마타 UML
| 분야 | 이론 컴퓨터 과학 | 소프트웨어 공학 |
| 표현 방식 | 수학적 모델 (상태 전이) | 시각적 모델 (다이어그램) |
| 중점 | 언어/논리 분석 | 시스템 구조/행동 표현 |
| 대표 형태 | 상태 전이도, DFA, NFA 등 | 클래스 다이어그램, 상태 다이어그램 등 |
| 접점 | UML 상태 다이어그램은 오토마타 개념 기반으로 구성 |
특히 UML의 상태 다이어그램(State Diagram)은 오토마타 이론을 기반으로 하여 객체의 상태 변화를 표현하므로, 두 개념의 접점이 되는 부분입니다.
4. 결론
- 오토마타는 이론적인 개념으로서, 시스템이 입력을 받아 어떤 상태로 전이되는지를 모델링합니다.
- UML은 소프트웨어 개발에서 실제 시스템을 설계하고 문서화하는 데 사용되는 실용적인 도구입니다.
- UML의 일부 다이어그램, 특히 상태 다이어그램은 오토마타와 매우 유사한 구조를 가집니다.

https://ko.wikipedia.org/wiki/%ED%86%B5%ED%95%A9_%EB%AA%A8%EB%8D%B8%EB%A7%81_%EC%96%B8%EC%96%B4
통합 모델링 언어 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. UML 다이어그램 통합 모델링 언어(UML, 영어: Unified Modeling Language)는 소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어이다.[1] 이 표준은 UML을 고안한 객
ko.wikipedia.org
'Tech > Coding' 카테고리의 다른 글
| 2399번-거리의 합 (0) | 2025.05.15 |
|---|---|
| 스파이럴 수열 (0) | 2025.05.14 |
| Suffix Automaton과 KMP 비교 이해 (0) | 2025.05.06 |
| FSM과 DFA, NFA의 개념과 차이 (0) | 2025.05.05 |
| KMP 알고리즘을 DFA(오토마타) 관점에서 이해하기 (0) | 2025.05.05 |