[번역] 웹어셈블리의 현재 위치와 미래

2월 28일, 4개의 주요 브라우저들은 웹어셈블리의 MVP가 완료되었다는 합의에 이르렀다고 발표했다. 이는 브라우저들이 탑재를 시작할 수 있는 최초의 안정적인 버전을 제공한다. 이는 브라우저가 탑재할 수 있는 안정적인 코어를 제공한다. 이 코어는 커뮤니티 그룹이 계획하고 있는 모든 기능을 포함하고 있지는 않지만, 웹어셈블리를 빠르고 사용가능하도록 만들기에는 충분하다.

[번역] 웹어셈블리는 왜 빠를까?

이전 글에서 나는 웹어셈블리와 자바스크립트는 양자택일의 문제가 아니라는 점을 설명했다. 우리는 너무 많은 개발자들이 웹어셈블리만을 이용해 코드를 작성하기를 바라지 않는다. 그러므로 개발자들이 어플리케이션을 개발할 때 웹어셈블리와 자바스크립트 사이에서 하나를 선택할 필요는 없다. 다만, 자바스크립트 코드의 일부를 웹어셈블리로 교체할 수는 있을 것이다. 예를 들어, 리액트를 개발하고 있는 팀은 그들의 리콘사일러(reconciler) 코드 (일명 Virtual DOM) 를 웹어셈블리 버전으로 교체할 수 있을 것이다. 리액트를 사용하는 사람들은 아무것도 할 필요가 없다. 그들의 앱은 웹어셈블리의 장점을 취한다는 것 빼고는 이전과 정확하게 똑같을 것이다.

[번역] 웹어셈블리 모듈의 생성과 동작

웹어셈블리는 자바스크립트가 아닌 프로그래밍 언어를 웹페이지에서 실행하기 위한 방법이다. 예전에는 웹페이지 내의 다른 부분들과 상호작용하기 위해 브라우저에서 코드를 실행시키기 위한 유일한 선택지가 자바스크립트였다. 그래서 사람들이 웹어셈블리가 빠르다고 이야기할 때, 유일한 비교대상은 자바스크립트다. 하지만 그것이 웹어셈블리와 자바스크립트 중에서 하나만 선택해서 사용해야 한다는 의미는 아니다. 사실, 우리는 개발자들이 같은 어플리케이션 내에서 웹어셈블리와 자바스크립트를 모두 사용하길 바란다. 심지어 웹어셈블리를 직접 작성하지 않더라도, 그 이점을 누릴 수 있다.

[번역] 어셈블리 집중 코스

웹어셈블리가 어떻게 작동하는지를 이해하기 위해서는, 어셈블리가 무엇이고 컴파일러가 어떻게 그것을 생성해내는지를 이해하는 것이 도움이 될 것이다. JIT에 대해 설명한 글에서 나는 기계와 의사소통을 하는 것이 마치 외계인과 의사소통을 하는 것과 비슷하다고 설명했다. 03-01-alien03-500x286.png 이제 나는 그 외계인의 뇌가 어떻게 작동하는지를 - 즉, 기계의 뇌가 들어오는 정보를 해석하고 이해하는지 - 를 살펴보도록 하겠다.

[번역] 저스트-인-타임(JIT) 컴파일러 집중 코스

자바스크립트는 태생이 느렸지만, JIT라고 불리는 무언가 덕분에 빨라지게 되었다. 그런데 JIT는 어떻게 동작하는걸까? 자바스크립트는 브라우저에서 어떻게 실행될까 개발자로서 자바스크립트를 페이지에 추가하면, 당신은 목표와 문제를 갖게 된다. 목표 : 당신은 컴퓨터에게 무엇을 할지 말하고 싶다. 문제 : 당신과 컴퓨터는 다른 언어를 사용해서 이야기한다. 당신은 인간의 언어를 사용하고, 컴퓨터는 기계의 언어를 사용한다. 비록 당신이 자바스크립트나 다른 상위레벨 프로그래밍 언어들이 인간의 언어가 아니라고 생각할 지라도, 이들은 실제로 인간의 언어이다. 이들 언어는 기계가 아닌 인간이 이해하기 위해 디자인되었다.

[번역] 카툰으로 소개하는 웹어셈블리

웹어셈블리는 자바스크립트가 아닌 다른 프로그래밍 언어로 작성된 코드를 브라우저에서 실행시키기 위한 방법이다. 그래서 사람들이 웹어셈블리가 빠르다고 이야기하는 건, 자바스크립트와 비교했을 때 빠르다는 말이다. 지금 나는 자바스크립트나 웹어셈블리 둘 중의 하나만 선택해야 한다고 말하고 싶은 것이 아니다. 사실, 우리는 개발자들이 동일한 어플리케이션에서 웹어셈블리와 자바스크립트를 모두 사용하기를 기대한다.