이번 시리즈에서는 왜 WebAssembly가 빠른지 그 이유에 대해 설명하고자 합니다.
잠시만, 근데 WebAssembly가 뭐죠?
WebAssembly 는 JavaScript가 아닌 다른 언어로 짜여진 코드를 브라우저에서 작동할 수 있게 만드는 하나의 수단입니다. 그러므로 사람들이 WebAssembly가 빠르다고 말할 때 비교 대상은 JavaScript를 의미합니다.
저는 지금 둘 중 반드시 하나를 선택하라는 것이 아닙니다. 오히려 WebAssembly와 JavaScript를 함께 사용하는 것을 기대하고 있습니다.
그럼에도 두가지를 비교해보는 것은 WebAssembly가 잠재적으로 어떤 긍정적인 영향을 가져올 수 있는지 이해하는 측면에서 의미있을 것입니다.
성능에 대한 간략한 역사
JavaScript는 1995년에 만들어졌습니다. 속도가 빠른 것이 목표가 아니었기 때문에 그 당시에는 빠르지 않았습니다.
이 후 브라우저들간의 경쟁이 치열해졌습니다.
2008년 사람들이 성능 전쟁이라 일컫는 시기가 시작됩니다. 여러 브라우저들이 JITs이라 불리는 just-in-time 컴파일러를 도입합니다. JavaScript가 동작하는 동안, JIT은 패턴을 분석하여 동일한 패턴을 최적화시키면서 코드를 더 빠르게 동작하도록 만들어 줍니다.
JIT의 등장은 JavaScript 성능의 역사에서 변곡점이 됩니다. JS의 실행이 10배 이상은 빨라지게 되죠.
이렇게 개선된 성능 덕분에, 이전에는 상상하지 못했던 다양한 곳에서 JavaScript가 사용되 기 시작합니다. 예를 들면 서버 사이드 프로그래밍이 가능한 Node.js 같은 것들 말이죠. 이렇게 개선된 성능 이후 JavaScript가 완전히 새로운 분야의 문제를 해결하는데 사용될 수 있게 됩니다.
지금 우리는 2008년 이후 새로운 변곡점에 서있습니다. 바로 WebAssembly 의 등장과 함께 말이죠.
자, 그럼 이제 WebAssembly가 왜 빠른지에 대해 좀 더 자세히 들여다 봅시다.
배경:
WebAssembly의 현재:
WebAssembly의 미래:
이 글은 Lin Clark 이 쓴 A cartoon intro to WebAssembly 의 한국어 번역본입니다.
작성자: Hoony Chang
Web Programmer
댓글이 없습니다.