AI가 위지윅 에디터 성능을 개선한 비결은?
채널톡 위지윅 에디터의 NodeView 렌더링 성능 저하 문제를 해결하기 위해, AI 기반의 Auto Research 기법을 활용한 자율 성능 개선 시스템을 구축함
Auto Research는 점수가 오르는 변경은 유지하고, 그렇지 않으면 되돌리는 방식으로, React Profiler 기반 렌더링 지표를 활용하여 성능을 측정함
50번의 루프를 돌린 결과, User INP 23% 감소, Long task 완전 제거 등 실질적인 성능 개선을 달성했으며, 5개의 커밋이 머지됨
점수표의 정확도 문제, AI의 반복적인 함정, 높은 크래시율 등 몇 가지 한계점이 있었지만, AI가 올바른 방향으로 실험할 수 있는 환경 설계의 중요성을 강조함
벤치마크 안정화, 점수 가중치 조정, 허용 임계값 설정 등 평가 환경 설계의 중요성을 강조하며, 향후 개선 가능성을 제시함
Auto Research 시스템의 핵심 원리
본문에서 소개된 Auto Research는 점수가 오르는 변경은 유지(Keep)하고, 그렇지 않으면 이전 상태로 되돌리는 반복적인 실험 루프(Iterative Experiment Loop)를 기반으로 한다.
prepare.py: 사람이 정의한 평가 코드(Evaluation Code)로, AI는 수정 불가
train.py: AI가 수정 가능한 샌드박스(Sandbox)로, 코드 변경 및 커밋 수행
program.md: 연구 방향과 제약 조건을 정의하는 파일
AI는 train.py를 수정하고, 커밋 후 5분간 학습을 진행하며, 점수 측정을 통해 개선 여부를 판단한다. 이러한 구조는 지속적인 성능 개선(Continuous Performance Improvement)을 가능하게 한다.
Auto Research vs Ralph Loop 비교 분석
Auto Research와 Ralph Loop는 모두 AI를 활용한 자동화된 실험을 수행하지만, 목표와 접근 방식에서 차이를 보인다.
Ralph Loop: 완수형 루프(Completion-oriented Loop)로, PRD(요구사항 문서)와 TODO 리스트를 기반으로 작업을 완료하는 것을 목표
Auto Research: 탐색형 루프(Exploration-oriented Loop)로, 점수가 오르는 동안 계속 실험을 진행하며, 종료 조건이 명확하지 않음
Auto Research는 위지윅 에디터의 성능 개선과 같이 정량적인 지표(Quantitative Metrics)를 활용하여 성능 향상을 측정하는 문제에 적합하다.
성능 개선을 위한 점수표 설계
Auto Research 시스템에서 점수표(Scoreboard)는 성능 개선의 핵심 지표로 작용하며, 정확한 측정을 위해 다양한 노력을 기울였다.
React Profiler: 렌더링 지표(Rendering Metrics)를 측정하여 NodeView 렌더링 횟수, 불필요한 렌더링 등을 파악
벤치마크 페이지: 다른 컴포넌트의 영향을 최소화하기 위해 벤치마크 전용 페이지(Dedicated Benchmark Page)를 구축
실제 병목 시나리오 반영: 큰 문서 로드, 표 내 타이핑, 코드 블록 옆 타이핑 등 실제 사용 환경(Real-world Scenario)을 반영
이러한 점수표 설계는 AI가 실제 체감 성능을 개선하는 방향으로 학습하도록 돕는다.
Auto Research의 한계점과 개선 방향
Auto Research는 몇 가지 한계점을 보였지만, 평가 환경 설계의 중요성을 강조하며, 향후 개선 가능성을 제시했다.
점수표의 유연성: 오차 범위 내의 변경도 통과되어 의미 없는 변경(Insignificant Changes)이 포함되는 문제 발생
반복적인 함정: useCallback 제거, node.eq() 깊은 비교 등 비슷한 아이디어를 반복적으로 시도하는 문제
높은 크래시율: 빌드 실패 및 런타임 에러로 인해 실험 효율(Experiment Efficiency) 저하
저자는 벤치마크 안정화, 점수 가중치 조정, 허용 임계값 설정 등을 통해 평가 환경을 개선하고, AI가 올바른 방향으로 실험할 수 있도록 유도해야 한다고 강조한다.
AI 기반 성능 개선 시스템의 재사용성
Auto Research 시스템은 한 번 구축하면, 다른 성능 문제 해결에도 재사용될 수 있는 장점을 가진다.
벤치마크 페이지, 측정 파이프라인, 점수표 골격: 재사용 가능한 인프라(Reusable Infrastructure) 구축
미세 최적화 시도: 사람이라면 망설일 수 있는 미세한 최적화도 측정 기반으로 채택/기각(Acceptance/Rejection) 결정
장기적인 관점: 단발성 성능 이슈 해결보다, 지속적인 성능 개선(Continuous Performance Improvement)을 위한 기반 마련
이러한 재사용성은 시스템의 효율성을 높이고, 개발 생산성을 향상시키는 데 기여한다.