본문 바로가기
끄적/개발일기

SAFE EDIT 개발 일기 ②

by iwbap 2025. 12. 16.
728x90
반응형

하이라이팅 성능 최적화 (2025-09-30)

 Analyzer 쪽 로직이 늘어나기 시작하면서 바로 체감 문제가 하나 생겼다.

하이라이팅이 점점 느려짐.
처음에는 그냥 기분 탓인가 싶었는데, 파일 크기가 조금만 커져도 스크롤할 때 버벅이는 게 확실히 느껴졌음.

초기 구조는 단순했다.
텍스트가 바뀌면 전체를 다시 분석하고, 그 결과를 기준으로 하이라이팅을 전부 다시 적용하는 방식이었음.
파일이 작을 때는 크게 문제 없었는데, 실제 현장 데이터처럼 길어지니까 바로 한계가 드러남.

처음에는 Analyzer 쪽 처리 때문인 줄 알았다.
그래서 로그도 찍어보고, 분석 단계마다 시간을 재보기도 했음.
근데 확인해보니 문제는 Analyzer가 아니라 하이라이팅 쪽에서 불필요하게 전체 처리를 계속하고 있었음.

이 상태로는 계속 기능을 추가할수록 더 느려질 것 같았음.

그래서 아예 구조를 바꾸기로 결정함.

전체 텍스트를 한 번에 처리하는 방식 대신, 현재 커서 기준으로만 스트리밍 방식으로 하이라이팅하도록 수정했음.
보이는 영역 위주로만 처리하고, 스크롤 중에는 하이라이팅을 잠시 멈추도록 했다.

이렇게 바꾸고 나니까 체감이 확실히 달라졌다.
완전히 부드럽다고 할 수는 없지만, 적어도 못 쓰겠다는 느낌은 없어짐.
이날 이후로는 기능 추가할 때마다 항상 성능부터 먼저 생각하게 됐다.

728x90
반응형

'끄적 > 개발일기' 카테고리의 다른 글

SAFE EDIT 개발 일기 ⑥  (0) 2025.12.20
SAFE EDIT 개발 일기 ⑤  (0) 2025.12.20
SAFE EDIT 개발 일기 ④  (0) 2025.12.19
SAFE EDIT 개발 일기 ③  (0) 2025.12.18
SAFE EDIT 개발 일기 ①  (0) 2025.12.15