Moonbit으로 만든 Markdown 에디터, 증분 컴파일로 압도적인 속도!

by DD
5개월 전
조회수 13

Moonbit을 사용하여 증분 컴파일 방식의 Markdown 에디터를 구현함

CST(Concrete Syntax Tree) 기반으로 변경된 부분만 재구축하여 60fps 성능 유지

WASM-GC 환경에서 cmark보다 느리지만, 증분 컴파일은 압도적인 성능

증분 컴파일의 핵심: CST와 CRDT

CST(Concrete Syntax Tree)를 활용하여 변경된 부분만 파싱하는 증분 컴파일 방식을 채택했다. 구체적으로, CRDT(Conflict-free replicated data type) 개념을 차용하여 동시 편집 환경에서의 효율적인 업데이트를 구현했다. 따라서 편집 시 60fps를 유지하며, 대용량 텍스트 처리에도 강점을 보인다.

성능 비교: WASM, Native, JS

Moonbit 기반 Markdown 컴파일러는 WASM-GC 환경에서 cmark보다 느리지만, 증분 컴파일 방식 덕분에 실제 에디터 사용 환경에서 압도적인 성능을 보인다. Native 빌드는 작은 문서에서 더 빠르지만, 문서 크기가 커질수록 V8 JIT의 영향으로 JS와 격차가 줄어든다. 따라서 WASM의 효율성이 돋보인다.

Moonbit과 AI의 시너지 효과

AI를 활용한 코드 생성 시, Moonbit의 명확한 컴파일러 에러 메시지와 간결한 코드가 생산성을 높인다. 구체적으로, API 설계테스트 케이스 작성이 중요해진다. 따라서 AI와 협업하여 개발 효율을 높이고, 테스트 커버리지를 통해 코드 품질을 향상시킬 수 있다.

Building Incremental Markdown Compiler by Moonbit