[typescript] 열거형(Enum)을 이용한 상태 머신(State Machine) 구현하기
이번에는 TypeScript를 사용하여 열거형(Enum)을 통해 상태 머신(State Machine)을 구현하는 방법에 대해 알아보겠습니다. 상태 머신은 특정 상태에 따라 동작이 변하는 로직을 다룰 때 유용하게 사용됩니다. 열거형은 상태와 상태에 대한 전이를 정의할 때 간편하고 명확한 구조를 제공합니다.
1. 열거형(Enum) 정의
먼저, 열거형을 사용하여 상태 머신의 각 상태를 정의합니다.
enum State {
Idle,
Loading,
Success,
Error
}
위의 예제에서는 Idle
, Loading
, Success
, Error
라는 네 가지 상태를 정의했습니다.
2. 상태 머신(State Machine) 클래스 구현
다음으로, 위에서 정의한 열거형을 사용하여 상태 머신을 구현하는 클래스를 작성합니다.
class StateMachine {
currentState: State;
constructor(initialState: State) {
this.currentState = initialState;
}
transitionTo(newState: State) {
// 상태 전이 로직 작성
this.currentState = newState;
}
}
위의 예제에서는 StateMachine
클래스를 정의하고, transitionTo
메서드를 통해 상태 전이 로직을 구현했습니다.
3. 상태 머신 활용
이제 상태 머신 클래스를 실제로 활용할 수 있습니다.
const stateMachine = new StateMachine(State.Idle);
stateMachine.transitionTo(State.Loading);
console.log(stateMachine.currentState); // 출력 결과: Loading
stateMachine.transitionTo(State.Success);
console.log(stateMachine.currentState); // 출력 결과: Success
위의 예제에서는 StateMachine
클래스를 생성하고, transitionTo
메서드를 통해 상태를 변경하여 상태 변화를 확인했습니다.
이렇게 열거형(Enum)을 사용하여 상태 머신을 구현하면 상태 전이를 명확하게 정의할 수 있고, 코드의 가독성을 높일 수 있습니다.
이상으로 TypeScript를 사용하여 열거형을 통한 상태 머신 구현에 대해 알아보았습니다.
참고 문헌: TypeScript Handbook - Enums