우선 State Machine이란 컴퓨터 프로그램이나 시스템을 설계하는 데에 있어 이를 표현하는 수학적 모델이다.
Finite State Machine은 말 그대로 유한한 상태를 가진 모델이다.
무한한 상태를 가진 Infinite State Machine도 존재하지만,
보통 이론적인 연구에서만 사용되며, 실제로 구현하기에 어렵다는 것만 알아두고 넘어가자.
FSM은 아래의 그림처럼 상태(State), 전이(Transition)로 구성되어 있다.
일반적으로 상태는 원으로 표현하고 전이는 화살표로 표현한다.
그렇다면 Finite State Machine은 어디서 쓰이고 왜 쓰일까?
Finite State Machine은
- 디지털 논리회로를 설계할 때
- 센서나 제어 등 임베디드 분야
- 게임 개발에서의 NPC의 행동 패턴을 결정할 때
- 로봇을 제어할 때
등등 아주 다양한 분야에서 사용된다.
장점은
결국 복잡한 알고리즘이나 시스템을 간단한 수학적 모델로서 표현할 수 있는 것인데
이렇게 되면 상태와 전이만으로 시스템의 동작을 쉽게 표현할 수 있어서
기획자뿐만 아니라 제 3자 또한 보다 쉽게 설계할 수 있고 이해할 수 있다.
댓글