전체 글

전체 글

    [리액트] stale closure로 인한 한글 IME 끝글자 잘림 버그

    버그: 리액트 환경에서, input 박스에서 한글 단어 입력 후 바로 탭키를 누르거나 다른 곳을 클릭하면 끝글자가 잘리는 버그가 발생했다. 한 줄 요약저장 함수가 화면 상태(state) 대신 ref라는 별도 박스에서 값을 읽는다. 그 ref를 갱신하는 타이밍이 중요하다. 타이밍과, 갱신하는 위치도 중요하다. 원인1. 한글의 특수성(IME)영어: 키 하나 누르면 바로 그 글자가 완성이 됨. 그냥 그 자체가 글자임.한글: 자모를 조합해서 한 글자 완성. 브라우저는 글자가 확정되기 전까지 composition 상태로 들고 있음. 확정 전이라 데이터(state)에 반영 안 됨. 사용자가 마지막 글자 조합 도중에 저장 버튼 누르면 그 글자는 아직 composition 상태라 저장에 반영 안 됨. 2. 리액트 ..

    리과님께..

    리과님께..

    리과님 너무조아

    [CRDT] LSEQ 만들기

    [CRDT] LSEQ 만들기

    참고한 코드https://github.com/Chat-Wane/LSEQTree/tree/masterhttps://github.com/nkohari/kseq/tree/master 아주 간단한 기능을 구현할 때 최소한으로 필요한 메소드만 만들어가는 방식으로 할 것이다.  1. 최소값, 최대값으로 초기화하는 것부터 하기우선 LSeqTree, LSeqNode 클래스부터 만들자. @Getterpublic class LSeqTree { private int boundary = 10; private String siteId; private LSeqNode root; public LSeqTree(String siteId) { this.siteId = siteId; this..