Andrej Karpathy의 Auto Research를 활용한 위지윅 에디터 성능 최적화 자동화 도전기
개발자가 직접 코드를 고치는 전통적인 방식에서 벗어나, AI가 스스로 가설을 세우고 성능을 측정하며 코드를 최적화하는 '탐색형 루프' 시스템의 실무 적용기를 다룹니다. 단순한 코드 생성을 넘어 성능 지표 기반의 자율 최적화가 실무에서 어떻게 작동하는지, 그리고 이를 위해 개발자가 설계해야 할 평가 환경의 중요성을 심도 있게 보여줍니다.
정량적 지표 측정이 가능하지만 수동 최적화에 많은 리소스가 소모되는 성능 개선 과제를 안고 있는 팀에게 추천합니다. 특히 AI 에이전트를 단순 코딩 보조가 아닌 자율적인 문제 해결 도구로 활용하고자 하는 엔지니어에게 훌륭한 인사이트를 제공합니다.
채널톡의 위지윅(WYSIWYG) 에디터에서 대형 문서 작업 시 특정 노드의 변경이 전체 NodeView의 리렌더링을 유발하여 입력 지연 및 성능 저하가 발생하는 고질적인 문제가 있었습니다. 이를 해결하기 위한 리소스를 확보하기 어려운 상황에서, 사람이 직접 최적화하는 대신 AI가 스스로 성능 개선을 반복하게 만드는 자동화 시스템 도입을 시도했습니다.
Andrej Karpathy의 'Auto Research' 개념을 도입하여 가설 수립, 코드 수정, 벤치마크 측정, 결과 검증(Keep/Revert) 과정을 자동화하는 탐색형 루프를 구축했습니다. React Profiler 기반의 정교한 벤치마크 전용 페이지와 성능 점수 체계를 설계하여 AI가 객관적인 지표를 바탕으로 성능 개선을 반복 수행하도록 환경을 조성했습니다.
50회의 반복 루프를 실행하여 5개의 유효한 최적화 커밋을 확보했으며, 이를 통해 User INP를 104ms에서 80ms로 23% 개선하고 53ms에 달하던 Long Task를 완전히 제거하는 성과를 거두었습니다. 특히 NodeView 업데이트 시의 참조 비교 및 구독 구조 최적화 등 사람이 놓치기 쉬운 미세 최적화를 AI가 스스로 수행해냈습니다.
Trade-off
실제 코드 수정보다 신뢰할 수 있는 벤치마크 환경과 평가 지표를 설계하는 데 훨씬 더 많은 시간이 소요되었으며, 단발성 과제에 대해서는 수동 디버깅이 더 효율적일 수 있다는 한계가 확인되었습니다. 또한 AI가 동일한 실패 가설을 반복해서 시도하거나, 측정 환경의 노이즈로 인한 미세한 점수 상승을 실제 성능 개선으로 오판하는 등의 부작용이 관찰되었습니다.
Andrej Karpathy가 공개한 탐색형 자동화 루프로, 점수가 오르는 코드 변경은 유지하고 그렇지 않으면 되돌리는 무한 반복 프로세스입니다.
사용자의 입력으로부터 다음 프레임이 화면에 그려질 때까지의 지연 시간을 측정하는 핵심 웹 지표입니다.
ProseMirror 에디터 내부에 React 컴포넌트를 렌더링하기 위해 사용되는 기술적 브릿지 구조입니다.