폭 검사에서 문자열이 안전하다고 판단했습니다. 한자를 절반으로 나눴습니다.
(dev.to)
JavaScript의 UTF-16 인코딩 방식과 유니코드 특수 문자의 물리적 특성이 결합하여 발생한 cli-table3 라이브러리의 문자열 파손 버그 사례를 통해, 최적화 로직이 예외적인 데이터 구조에서 어떻게 시스템 오류를 유발할 수 있는지 분석합니다.
이 글의 핵심 포인트
- 1cli-table3 라이브러리에서 특정 유니코드 문자가 잘리는 버그 발생
- 2JavaScript 문자열의 length(UTF-16 코드 유닛)와 display width가 우연히 일치할 때 최적화 로직이 오작동함
- 3