작업 방식
State Machine은 인터페이스 동작을 느슨하게 연결된 불리언 플래그가 아니라 명시적인 상태와 전환으로 모델링합니다. 컴포넌트를 움직이는 이벤트, 전환을 허용하는 가드, 그 과정에서 일어나는 액션을 파악합니다. 소스가 드는 예시는 폼, 데이터 요청, 인증, 다단계 마법사입니다.
목표는 테스트 가능한 동작 명세입니다. 각 상태에는 정의된 UI 표현이 필요합니다. 종료 상태가 아닌 상태에는 나가는 경로가 있어야 하며, 유효하지 않은 조합은 구현 전에 식별해야 합니다. 소스는 특정 state-machine 라이브러리를 선택하지 않으며, 완전한 증명을 자동으로 생성한다고 주장하지도 않습니다.
예상 결과물
- 하나의 구체적인 관심사에 대한 상태 및 이벤트 목록.
- 가드와 진입 또는 종료 액션이 포함된 전환 맵.
- 검토를 위한 오류, 복구, 불가능한 상태 사례.
브리프에서 검토까지
- 01상태와 이벤트 나열
의미 있는 모드와 이를 바꿀 수 있는 모든 트리거에 이름을 붙이고, 정상 경로부터 시작합니다.
- 02유효한 전환 정의
도착 상태, 조건, 부수 효과를 명시합니다. 설계에서 막아야 할 조합을 식별합니다.
- 03복구 및 UI 매핑 추가
실패, 재시도, 취소, 종료를 모델링하고 각 상태에서 인터페이스가 어떻게 보이는지 보여줍니다.