BinaryAST - 자바스크립트를 텍스트 대신 AST로
(blog.cloudflare.com)요즘 웹사이트 중에 자바스크립트가 들어가지 않는 경우는 매우 드뭅니다.
자바스크립트를 텍스트 형태로 내려보내서 클라이언트가 파싱하는 대신 이미 파싱 된 AST 형태로 내려보내면 어떨까 - 라는 아이디어는 예전부터 있었는데 Cloudflare가 좀 더 깊게 파보았습니다.
재미있는 지점만 뽑아보자면...
- 텍스트는 전부 다 받아야만 파싱하고 평가할 수 있습니다
- AST는 일부만 받아도 평가할 수 있습니다
- 최초 화면을 띄우는데 필요한 만큼만 먼저 내려보내고 나머지는 비동기로 보낼 수 있습니다
- 파싱은 Node.js로 하지만 AST 편집과 인코딩은 Rust로 합니다!
- Cloudflare는 Workers라는 AWS Lambda처럼 로직을 돌릴 수 있는 격리된 VM을 제공하는데 Text -> BinaryAST 생성 과정에 이를 활용합니다
- Workers는 자바스크립트 기반 엔진이라 Rust를 웹 어셈블리로 컴파일해서 돌립니다
- 파이어폭스는 이미 BinAST를 해석할 수 있습니다