한 개발자가 러스트(Rust)와 웹어셈블리(WebAssembly, WASM) 기술을 이용해 웹 환경에서 초고속으로 작동하는 스프레드시트 엔진 '타이탄(Titan)'을 공개했습니다. 이 엔진은 특히 대규모 스프레드시트의 재계산 성능을 획기적으로 개선하는 데 중점을 두었으며, 자바스크립트(JavaScript) 객체 할당이나 WASM 경계를 넘나드는 데이터 직렬화(serialization) 과정에서 발생하는 성능 저하 문제를 해결하고자 했습니다.
타이탄 엔진은 셀 데이터를 자바스크립트 객체 대신 고정된 32x32 크기의 청크(chunk) 단위로 메모리에 저장합니다. 각 청크는 타입과 페이로드(payload)를 별도의 배열에 저장하는 구조(Struct-of-Arrays)를 채택하여 메모리 연속성을 확보하고 순차 스캔 비용을 절감합니다. 수식은 직접 AST(추상 구문 트리)를 평가하지 않고 바이트코드(bytecode)로 컴파일된 후 스택 기반 가상 머신(VM)에서 실행됩니다. 또한, VLOOKUP, SUMIFS 같은 조회 및 집계 함수는 전체 배열을 구체화(materialize)하지 않고 지연 평가(lazy evaluation) 방식을 사용해 대규모 열을 효율적으로 처리하며, 42가지의 엑셀(Excel) 호환 내장 함수를 지원합니다.
이러한 설계는 웹 애플리케이션에서 복잡한 데이터 처리와 실시간 반응성을 요구하는 스프레드시트 기능을 구현하려는 개발자들에게 큰 이점을 제공합니다. 기존 웹 기반 스프레드시트 구현 시 성능 문제로 어려움을 겪었던 프로젝트나, 데이터 양이 많아질수록 사용자 경험이 저하되던 서비스에 새로운 해결책을 제시할 수 있습니다. 특히, 러스트와 WASM의 조합은 웹 환경에서 데스크톱 애플리케이션에 버금가는 성능을 기대하게 하며, 웹 기반 오피스 도구나 데이터 분석 도구 개발에 활용될 잠재력이 큽니다.