kko***
2020-10-25

웹어셈블리를 처음 접하는 분을 위한 안내서로, 자바스크립트에 의존하지 않고도 브라우저 기반의 고성능 애플리케이션을 만들 수 있는 방법을 알려줍니다. 네이티브 웹어셈블리 모듈을 작성하고, 자바스크립트 컴포넌트와 상호작용하고, 웹 워커와 pthread를 활용해 성능을 최대한 높이는 지식을 습득할 수 있습니다. 필요한 함수와 특성, 기법을 쉽게 찾아볼 수 있도록 섹션을 깔끔하게 정리하는 방법도 배웁니다.
안녕하세요, 괴짜 개발자 namedboy 입니다.
제가 오늘 리뷰할 책은 `웹어셈블리 인 액션` 입니다.
이 글을 보시는 분은 웹 어셈블리에 대해 어느정도 알고 계신가요?
아마 들어보셨을 수도 있고 잘 모르시는 분들도 있을겁니다.
웹 어셈블리의 핵심은 C/C++, 러스트 등의 저수준 언어를 사용해서 만들어진 코드를 바이너리로 인코딩 하여 브라우저나 브라우저가 아닌 환경에서도 실행을 시킬 수 있다는 것입니다.
기존에 C/C++ 개발자도 Web Assembly를 사용해 기존에 개발해둔 코드를 가지고 기능을 개발하는 것이 가능하다는 얘기죠.
`웹어셈블리 인 액션`에서는 여러 언어 중에 C/C++을 사용하여 웹 어셈블리 모듈로 변경하여 동작할 수 있는 방법에 대해 설명합니다.
그 외에도 웹어셈블리를 다루기 위해 필요한 기초 지식과 함께 잘 모를 수 있는 어셈블리에 대한 내용을 앞서 설명해주고 있습니다.
webassembly 공식 [사이트](https://webassembly.org/)에 보면 파이어폭스, 크롬, 사파리, 엣지에 모두 webassembly 가 포함되어 있다고 보여주는 만큼 앞으로 nodejs와 함께 웹에서 C/C++같은 언어를 사용해서 개발을 할 수 있고 빠른 실행이 장점인 만큼 웹에서 복잡한 연산을 해야 하는 경우에 대체하여 쓸 수 있는 하나의 수단이 될 수 있을거란 생각이 드네요.
특히 더 높은 수준의 성능을 계속해서 요하는 요즘 시대에 webassembly는 성능을 한단계 끌어올릴 수 있는 역할을 할 수 있지 않을까 생각합니다.
물론 앞으로 갈길을 많다고 생각이 드는데 그 이유는 꽤 많은 부분 편의성이 좋아져야 개발자 입장에서 편하게 개발을 할 수 있기 때문입니다.
추가로 걱정되는 부분은 지금까지도 webassembly가 크게 주목받지 못했던 이유로, 기존의 V8 엔진의 성능을 올리거나 개발하는 방식을 바꾸는 형태가 더 많은 도움이 되는 케이스가 많았던 듯 합니다.
그럼에도 불구하고 webassembly는 충분히 매력적인 부분이 존재하고 있습니다. 브라우저에서 C/C++언어를 사용할 수 있다는 사실 자체가 흥미를 끌기도 합니다.
이런 내용에 대해 전반적으로 짚어주고 자세하게 설명해준 `웹어셈블리 인 액션`은 [링크]에서 확인하실 수 있습니다.