유한 상태 머신(FSM)
유한한 상태 내에서 어떤 특정한 조건에 맞춰서 동작들을 계속 취해나갈 수 있도록 구성하는 것.
FSM의 개념
- FSM은 유한 상태 기계를 나타내는 디자인 패턴.
- 상태와 상태 간의 전환을 기반으로 동작하는 동작 기반 시스템이다.
FSM의 구성 요소
-
상태(State) : 시스템이 취할 수 있는 다양한 상태를 나타낸다.
-
전환 조건(Transition Condition) : 상태 간 전환을 결정하는 조건.
-
동작(Action) : 상태에 따라 수행되는 동작 또는 로직을 나타낸다.
FSM의 동작 원리
- 초기 상태에서 시작하여 입력 또는 조건에 따라 상태 전환을 수행.
- 상태 전환은 전환 조건을 충족할 때 발생, 전환 조건은 입력, 시간, 조건 등으로 결정된다.
- 상태 전환 시 이전 상태의 종료 동작과 새로운 상태의 진입 동작이 수행된다.
FSM의 장점
- 상태를 명확하게 정의하고 상태 간 전환을 일관되게 관리할 수 있다.
- 복잡한 동작을 상태와 전환 조건으로 나누어 구현하므로 코드 유지 보수가 용이하다.
- 다양한 동작을 유기적으로 조합하여 원하는 동작을 구현할 수 있다.
FSM의 예시 : 플레이어 상태 관리
- 상태 : 정지, 이동, 점프
- 전환 조건 : 이동 입력, 점프 입력, 충돌 등의 조건
- 동작 : 이동 애니메이션 재생, 점프 처리, 이동 속도 조정 등