C++ 코드와 엠스크립튼을 활용한 실전 웹어셈블리
한빛미디어
번역서
판매중
웹 개발의 새로운 지평을 열게 될 잠재력 높은 기술!
이 책은 웹어셈블리를 처음 접하는 분을 위한 안내서로, 자바스크립트에 의존하지 않고도 브라우저 기반의 고성능 애플리케이션을 만들 수 있는 방법을 알려줍니다. 네이티브 웹어셈블리 모듈을 작성하고, 자바스크립트 컴포넌트와 상호작용하고, 웹 워커와 pthread를 활용해 성능을 최대한 높이는 지식을 습득할 수 있습니다. 필요한 함수와 특성, 기법을 쉽게 찾아볼 수 있도록 섹션을 깔끔하게 정리하는 방법도 배웁니다.
출판사 리뷰
프런트엔드 개발의 핵심 기술로 자리매김할 웹 어셈블리 기술을 미리 준비하세요!
C/C++로 작성된 모듈을 웹브라우저에서 사용하려면 새로 만들어야 합니다.
하지만 웹어셈블리는 엠스크립튼 컴파일러를 사용해 C/C++ 코드를 손쉽게 자바스크립트 모듈로 변경할 수 있습니다! 무엇보다 자바스크립트는 그 태생적 한계 탓에 어느 이상의 성능은 내기 어려웠지만, 웹어셈블리는 브라우저 또는 Node.js 환경에서 네이티브에 가까운 속도로 코드를 실행할 수 있으니 속도가 중요한 웹 애플리케이션에서 매우 주목하는 기술로 각광받고 있습니다. C/C++뿐만 아니라 여러 언어로 작성된 코드를 네이티브에 가까운 속도로 실행하는 길을 제공합니다.
주요 내용
누구를 위한 책 인가요?
장별 요약
1부 웹어셈블리 들어가기
웹어셈블리가 어떤 기술인지, 어떻게 작동하는지 설명하고, 앞으로 이 책에서 웹어셈블리 모듈을 컴파일할 때 사용할 엠스크립튼 툴킷의 사용법을 간략히 살펴봅니다.
1장: 웹어셈블리란 무엇이고 이 기술로 어떤 문제를 해결할 수 있는지 알아보고, 사용 가능한 프로그래밍 언어에 대해서도 이야기합니다.
2장: 웹어셈블리 모듈의 내부 구조를 들여다보고 각 섹션의 역할을 살펴봅니다.
3장: 웹어셈블리 모듈 컴파일 시 사용 가능한 엠스크립튼 툴킷의 다양한 출력 옵션과 웹어셈블리 자바스크립트 API를 소개합니다.
2부 웹어셈블리 모듈
웹어셈블리 모듈을 생성하고 웹 브라우저와 상호작용하는 프로세스를 이야기합니다.
4장: 기존 C/C++ 코드베이스를 웹어셈블리 모듈로 컴파일하려면 어떻게 수정해야 하는지 안내합니다. 웹페이지 자바스크립트와 모듈이 상호작용하는 원리도 설명합니다.
5장: 웹어셈블리 모듈에서 웹페이지 자바스크립트를 호출하려면 4장 예제를 어떻게 수정해야 하는지 가이드합니다.
6장: 한발 더 나아가 자바스크립트 함수 포인터를 웹어셈블리 모듈에 전달하는 방식으로 웹페이지 자바스크립트를 호출합니다. 이렇게 하면 그때그때 함수를 자바스크립트로 지정하고 프라미스를 최대한 활용할 수 있습니다.
3부 웹어셈블리 활용
동적 링킹, 병렬 처리 등 고급 주제를 다룹니다. 브라우저가 아닌 환경에서 웹어셈블리를 사용하는 방법도 설명합니다.
7장: 여러 웹어셈블리 모듈을 런타임에 링크하여 각자의 기능을 불러쓰는 동적 링킹 기법을 소개합니다.
8장: 7장의 내용을 심화하여 동일한 웹어셈블리 모듈의 인스턴스를 여럿 생성하고 필요할 때마다 각 인스턴스를 다른 웹어셈블리 모듈에 동적 링크하는 방법을 설명합니다.
9장: 웹 워커를 활용하여 웹어셈블리 모듈을 프리페치하는 방법과 웹어셈블리 모듈에서 pthread로 병렬 처리하는 방법을 배웁니다.
10장: 웹어셈블리의 무대를 브라우저 밖으로 확장하여 Node.js 환경에서 웹어셈블리 모듈을 사용하는 방법을 설명합니다.
4부 디버깅과 테스팅
웹어셈블리 모듈의 오류를 미리 발견하고 조치하기 위한 디버깅과 테스팅 기법을 설명합니다.
11장: 카드 짝 맞추기 게임 개발을 통해 웹어셈블리 텍스트 포맷에 대해 설명합니다.
12장: 카드 짝 맞추기 게임을 확장하면서 웹어셈블리 모듈의 다양한 디버깅 방법을 이야기합니다.
13장: 웹어셈블리 모듈의 통합 테스트를 어떻게 작성하는지 살펴봅니다.