웹 편집기 성능 최적화 결
웹 편집기를 직접 개발하면서 가장 어려웠던 기술적 도전은 대용량 문서에서의 렌더링 성능이었습니다. 콘텐츠가 길어지면 입력 시 버벅임이 생겼고, 원인을 분석해보니 전체 DOM을 매번 재렌더링하는 구조가 문제였습니다. 가상화 기법을 적용해 화면에 보이는 블록만 렌더링하도록 바꾸었고, requestAnimationFrame으로 업데이트를 묶어 레이아웃 스래싱도 줄였습니다. 또한 에디터 내부 상태를 불변 데이터 구조로 관리하니 변경 감지 비용이 줄었고, 실행 취소 기능을 히스토리 스택으로 구현할 수 있었습니다. 처음에는 브라우저 contenteditable 속성의 동작 방식을 깊이 이해하지 못해 커서 위치 처리에서 버그가 자주 났습니다. Selection API 문서를 꼼꼼히 읽으면서 각 이벤트 순서를 직접 실험해보는 과정이 이 프로젝트의 핵심 학습 구간이었고, 성능 병목을 스스로 추적해 해결한 것이 좋은 결이었습니다.