1. 개념 요약
- **FSM(유한 상태 머신)**은 미리 정해진 한정된 상태 집합과, 상태 간 전이 규칙에 따라 시스템이나 객체가 동작하는 모델이다.
- 한 번에 오직 하나의 상태를 가지며, 특정 조건이나 이벤트에 따라 상태가 바뀌는 것을 관리한다.
2. 배경 지식
- 컴퓨터 과학과 자동자 이론에서 시작된 개념으로, 복잡한 시스템의 동작을 단순한 상태들의 집합과 전이로 모델링하기 위해 고안됨
- 프로그래밍, 게임 개발, 임베디드 시스템, 네트워크 프로토콜 등 다양한 분야에서 상태 제어를 위해 사용
- 상태가 무한하지 않고 유한한 개수라는 점에서 ‘유한 상태 머신’이라 부름
- 상태 전이를 다이어그램으로 표현하면 직관적이고 이해하기 쉬움 (상태도, 상태 다이어그램)
3. 상세 설명
3-1. 구성 요소
- 상태(State)
- 시스템이나 객체가 존재할 수 있는 서로 다른 모드나 상황
- 예: 게임 캐릭터의 ‘대기’, ‘이동’, ‘공격’ 상태
- 입력(Input) 또는 이벤트(Event)
- 상태 전이를 일으키는 외부 신호나 조건
- 예: 적 발견, 체력 감소, 버튼 클릭
- 전이(Transition)
- 한 상태에서 다른 상태로 바뀌는 규칙과 조건
- 예: ‘대기’ 상태에서 적 발견하면 ‘이동’ 상태로 전이
- 초기 상태(Initial State)
3-2. 동작 원리
- 초기 상태에서 시작