사용자 세션 상태 전이

명령은 현재 상태와 전이 조건을 함께 만족할 때만 세션을 바꾼다.

01 · 연결됨

CONNECTED

/join만 허용

아직 사용자 이름이 예약되지 않은 초기 상태

02 · 참가 중

JOINED

message · users · change

이름을 가진 채 채팅 명령을 처리하는 정상 상태

03 · 이름 변경 중

RENAMING

유일성 검사 + 원자 교체

성공해도 실패해도 참가 상태로 돌아간다.

04 · 종료 중

CLOSING

추가 명령 거부

자원을 정리하고 연결을 닫는 최종 상태

핵심: 이름 변경 실패에서는 기존 이름과 참가 상태를 보존한다.