만화로 소개하는 WebAssembly

WebAssembly는 빠릅니다. 아마 들어봤을거에요. 하지만 왜 빠른지 알고 계신가요?

이번 시리즈에서는 왜 WebAssembly가 빠른지 그 이유에 대해 설명하고자 합니다.

잠시만, 근데 WebAssembly가 뭐죠?

WebAssembly 는 JavaScript가 아닌 다른 언어로 짜여진 코드를 브라우저에서 작동할 수 있게 만드는 하나의 수단입니다. 그러므로 사람들이 WebAssembly가 빠르다고 말할 때 비교 대상은 JavaScript를 의미합니다.

저는 지금 둘 중 반드시 하나를 선택하라는 것이 아닙니다. 오히려 WebAssembly와 JavaScript를 함께 사용하는 것을 기대하고 있습니다.

그럼에도 두가지를 비교해보는 것은 WebAssembly가 잠재적으로 어떤 긍정적인 영향을 가져올 수 있는지 이해하는 측면에서 의미있을 것입니다.

성능에 대한 간략한 역사

JavaScript는 1995년에 만들어졌습니다. 속도가 빠른 것이 목표가 아니었기 때문에 그 당시에는 빠르지 않았습니다.

이 후 브라우저들간의 경쟁이 치열해졌습니다.

2008년 사람들이 성능 전쟁이라 일컫는 시기가 시작됩니다. 여러 브라우저들이 JITs이라 불리는 just-in-time 컴파일러를 도입합니다. JavaScript가 동작하는 동안, JIT은 패턴을 분석하여 동일한 패턴을 최적화시키면서 코드를 더 빠르게 동작하도록 만들어 줍니다.

JIT의 등장은 JavaScript 성능의 역사에서 변곡점이 됩니다. JS의 실행이 10배 이상은 빨라지게 되죠.

2008년 급격하게 증가한 JS 실행 성능을 보여주는 그래프

이렇게 개선된 성능 덕분에, 이전에는 상상하지 못했던 다양한 곳에서 JavaScript가 사용되 기 시작합니다. 예를 들면 서버 사이드 프로그래밍이 가능한 Node.js 같은 것들 말이죠. 이렇게 개선된 성능 이후 JavaScript가 완전히 새로운 분야의 문제를 해결하는데 사용될 수 있게 됩니다.

지금 우리는 2008년 이후 새로운 변곡점에 서있습니다. 바로 WebAssembly 의 등장과 함께 말이죠.

이후 JavaScript의 성능이 얼마나 증가하게 될 지 궁금함을 보여주는 그래프

자, 그럼 이제 WebAssembly가 왜 빠른지에 대해 좀 더 자세히 들여다 봅시다.

배경:

WebAssembly의 현재:

WebAssembly의 미래:

이 글은 Lin Clark 이 쓴 A cartoon intro to WebAssembly 의 한국어 번역본입니다.

작성자: Hoony Chang

Web Programmer

Hoony Chang가 작성한 문서들…


댓글이 없습니다.

댓글 쓰기