채팅 - 한글 메시지 중복 입력

생성일
2025/01/31 06:45
FE
날짜
2024/12/24
담당자

문제 상황

채팅방에서 한글 메시지 입력 후 keyDown 이벤트가 발생할 때, 마지막 글자가 다음 블록의 첫 글자로 들어가며 keyDown 이벤트가 두 번 발생

원인

IME(Input Method Editor) 이슈로 인해 엔터키를 누를 때 한글 입력이 완성되지 않은 상태에서 이벤트가 발생
한글을 입력할 때, IME는 글자를 조합하는 중이기 때문에 엔터 키를 누를 때 메시지가 완성되지 않은 상태에서 이벤트가 발생할 수 있음

해결

컴포지션 이벤트를 활용하여 IME 입력이 완전히 끝난 후에만 메시지가 전송되도록 처리
isComposing 상태를 추가하여 IMe 입력 상태 추적
onCompositionStartonCompositionEnd 이벤트 핸들러를 사용하여 IME 입력 상태 관리
handleKeyDown에서 isComposing 상태를 확인하여 한글 입력 중에는 Enter 키 이벤트를 무시하도록 설정