본문 바로가기
미국 개발자/HOOTips

[HOO's Q&A] FSM과 FSA의 차이가 무엇인가요?

by Henry Cho 2021. 7. 17.
728x90

Q:  FSM과 FSA의 차이가 무엇인가요?


FSM이라고 불리는 Finite State Machine과 FSA라고 불리는 Finite State Automata에 대해서 헷갈리는 경우가 종종 있다. 비슷하면서도 FSM와 FSA는 방식에서 다소 차이가 있다. FSM과 FSA를 동일하다고 이야기하는 이유는 FSM 안에 FSA가 존재하기 때문이다. FSM이라고 불리는 방식은 한 가지 방식을 의미하는 게 아니다. 따라서 FSM 방식 안에 FSA라는 방식이 존재하다 보니 FSM == FSA라고 오해하는 경우가 종종 생기는데 그렇지는 않다.

우선 FSM은 전기 회로에 대한 설계를 위한 설계 방식에 해당하며 binary에 대한 이동 방식을 표현하는 사용된다. 그렇다 보니 상황에 따라 입력값이나 결괏값이 한 가지 이상이 나올 수 있다. 물론 FSM에 대한 결괏값도 binary 기반으로 산출된다. 또한 FSM에서는 결정적인 값에 대해서 중요하게 다루다 보니, 이동되지 않는 값에 대해서 중요도가 떨어진다.

반면에 FSA는 컴퓨팅에 사용하는 일반적인 흐름도를 보인다. 예를 들면 알파벳을 이용해서 FSA가 어떤식으로 작동하는지를 표시한다. 따라서 FSA는 general abstract를 나타낸다고도 이야기한다. FSA는 결정적으로 이동되지 않는 값에 대해서도 중요하게 다루다 보니 이동되지 않는 값의 결과도 나타내 줘야 한다. 또한 FSA에서는 최종적으로 끝이 나는 결괏값을 중요하게 여기기에 이 부분에 대해서도 놓치지 말고 표기가 이루어져야 한다. 한마디로 종착지에 대한 표기와 종착지까지 가지 못한 값의 결과에 대해서 모두 표기해줘야 한다.

결과적으로 FSM 안에는 FSA가 있는 것이며, 흔히 사용하는 FSM은 전기 회로 설계에서 사용하는 반면 FSA는 Computional abstract 부분에서 사용된다. 그렇다보니 FSA와 FSM 작성 방식에서도 차이가 있기에 유의하여 알고 있어야 한다.

728x90

댓글