Finite Automaton(유한 상태 기계)란?(with. Rails)

Posted by negabaro kim on Thursday, April 8, 2021 Tags: rails   1 minute read

Finite Automaton(유한 상태 기계)이란?

일본어로 有限オートマトン라고 한다.

상태를 나타내는 모델을 의미하고 플로우 차트같은 상태전이표(?)로 표현이 가능하다.

소프트웨어 엔지니어 뿐만 아니라 하드웨어쪽에서도 범용적으로 쓰이는 언어인것 같다.

아래와 같은 상태전이표로 표현한다.

상태전이표라는 말이 실제 써본적이 없어 어색하므로 이 포스트에서는 플로우 차트라고 쓰겠다.

image

Rails에서 플로우차트 구현

아래와 같은 gem들로 플로우 차트 구현이 가능하다.

gem 'draw_erd'
gem 'draw_smd'
gem 'state_machine'
gem 'ruby-graphviz'

Finite Automaton자체의 구현은 aasm이나 staeful_enum을 이용해 구현 가능

staeful_enum에 대해서는 Rails 상태관리 gem StatefulEnum 소개를 참조