출력 중에도 전환할 수 있는 분기 대화
메시지 출력 도중 분기 조건이 충족되면 다음 대화로 넘어가야 했습니다. 출력 작업과 조건 확인을 병행하고, 전환 시 취소 토큰으로 이전 출력과 대기를 중단하도록 구현했습니다.
메시지 출력← 취소 전달분기 조건 확인
출력과 조건 확인을 병행하고, 전환 시 이전 작업 정리
메시지 출력과 분기 조건 확인의 병행 처리출력 간격을 기다리는 동안에는 진행 위치가 이미 갱신되어 있어, 작업을 멈추는 것만으로는 대화 상태가 복원되지 않았습니다. 취소 시 마지막 메시지와 진행 위치를 복원하고, 남은 큐와 전송·대기 상태를 정리했습니다.
대화창을 전환했을 때 이전 타이핑 표시가 다른 대화창에 남는 문제도 수정했습니다.
세이브 포맷 변경과 하위 호환성
출시 후 콘텐츠와 유저 진행 데이터를 분리하는 개편에서, 기존 세이브의 식별자 연결과 진행 상태 변환을 담당했습니다. 새 저장 형식은 메시지 내용 대신 UID와 진행 상태를 보관합니다.
현재 메시지의 위치만으로는 다음 동작을 결정할 수 없었습니다. 화면에 표시됐는지, 읽었는지, 답장을 기다리는지에 따라 이어서 진행할 동작이 달라지므로 각각의 상태를 구분해 옮겼습니다.
기존 세이브의 변환| 처리 대상 | 변환 내용 |
|---|
| 읽은 메시지 | 기존 확인 위치를 기준으로 읽음 상태 지정 |
|---|
| 표시됐지만 읽지 않은 메시지 | 미확인 메시지 수를 반영해 표시 상태와 알림 유지 |
|---|
| 아직 표시되지 않은 메시지 | 조건 대기와 답장 입력 대기를 구분 |
|---|
| 분기 시작에서 저장한 기록 | 이전 메시지가 없는 경우를 처리해 불러오기 오류 수정 |
|---|
피드·게시물·동적 댓글에서도 콘텐츠와 유저별 진행 정보를 분리하는 작업을 맡았습니다. 변경된 구조에 맞춰 콘텐츠 참조와 저장 코드를 수정했습니다.