멀티스레드 기반 자바스크립트

Multithreaded JavaScript
$28.98
SKU
9791186710838
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Fri 12/6 - Thu 12/12 (주문일로부 10-14 영업일)

Express Shipping estimated by Tue 12/3 - Thu 12/5 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2022/06/15
Pages/Weight/Size 170*232*20mm
ISBN 9791186710838
Categories IT 모바일 > 웹사이트
Description
자바스크립트로 멀티스레드 애플리케이션을 구현해야 하는 개발자에게 브라우저의 웹 워커 API, Node.js의 워커 스레드 모듈에 대한 장단점을 소개합니다. 이 책에서는 멀티스레드 애플리케이션 구현에 활용할 수 있는 두 가지 접근법을 제시한다. 첫 번째는 메시지 패싱, 두 번째는 공유 메모리다. 이를 구현하기 위한 API뿐만 아니라, 메시지 패싱 및 공유 메모리를 활용하기에 적합한 상황, 그리고 두 접근법을 모두 활용할 수 있는 상황을 설명합니다. 또한, 관련된 고수준의 프로그래밍 패턴도 소개한다.
Contents
CHAPTER 1 시작하며

1 스레드란?
2 동시성 vs 병렬성
3 싱글스레드 기반 자바스크립트
4 숨겨진 스레드
5 C언어의 스레드 : Happycoin으로 부자 되세요
__5.1 메인 스레드 1개로 구현하기
__5.2 워커 스레드 4개로 구현하기

CHAPTER 2 브라우저

1 전용 워커
__1.1 전용 워커를 사용한 Hello World 코드
__1.2 전용 워커 중급 버전
2 공유 워커
__2.1 공유 워커를 사용한 Hello World 코드
__2.2 공유 워커 중급 버전
3 서비스 워커
__3.1 서비스 워커를 사용한 Hello World 코드
__3.2 서비스 워커 중급 버전
4 메시지 패싱 개요
__4.1 RPC 패턴
__4.2 명령어 분배 패턴
__4.3 종합 버전

CHAPTER 3 Node.js

1 스레드가 없었을 시절
2 worker_threads 모듈
__2.1 workerData
__2.2 MessagePort
3 Happycoin 다시 보기
__3.1 메인 스레드 1개로 구현하기
__3.2 워커 스레드 4개로 구현하기
4 Piscina를 통한 워커 풀
5 Happycoin으로 가득 찬 풀

CHAPTER 4 공유 메모리

1 공유 메모리 입문
__1.1 브라우저에서 공유 메모리 사용하기
__1.2 Node.js의 공유 메모리
2 SharedArrayBuffer와 TypedArrays
3 데이터 가공을 위한 Atomic 메서드
4 원자성에 대한 논의
5 데이터 직렬화
__5.1 Boolean 타입
__5.2 문자열 타입
__5.3 객체 타입

CHAPTER 5 공유 메모리 중급

1 코디네이션을 위한 Atomic 메서드
__1.1 Atomics.wait()
__1.2 Atomics.notify()
__1.3 Atomics.waitAsync()
2 스레드가 깨어나는 타이밍과 예측 가능성
__2.1 비결정적 방식의 예시
__2.2 스레드 준비 여부 감지하기
3 예시 애플리케이션: 콘웨이의 생명 게임
__3.1 콘웨이의 생명 게임: 싱글 스레드 버전
__3.2 콘웨이의 생명 게임: 멀티스레드 버전
4 Atomics와 Events 객체

CHAPTER 6 멀티스레드 패턴

1 스레드 풀
__1.1 풀 크기
__1.2 작업 배정 전략
__1.3 예시 적용하기
2 뮤텍스: 록 기초
3 링 버퍼를 통한 데이터 스트리밍
4 액터 모델
__4.1 패턴 뉘앙스
__4.2 자바스크립트와의 관계
__4.3 예시 구현하기

CHAPTER 7 웹어셈블리

1 여러분의 첫 번째 웹어셈블리
2 웹어셈블리의 데이터 원자성 함수
3 Emscripten을 통해 C 코드 웹어셈블리로 컴파일하기
4 웹어셈블리 컴파일러: 기타
5 AssemblyScript
6 Happycoin: AssemblyScript로 구현하기

CHAPTER 8 분석

1 멀티스레딩을 적용하지 않아야 하는 경우
__1.1 메모리 크기가 작을 때
__1.2 코어 개수가 적을 때
__1.3 컨테이너 vs 스레드
2 멀티스레딩을 적용해야 하는 경우
3 주의사항 요약
부록: 구조화된 복제 알고리즘
Author
토머스 헌터 2세,브라이언 잉글리시,나민주
엔터프라이즈용 Node.js 서비스 개발에 참여해 왔으며, Node.js 보안 관련 회사에서 근무했다. 또한 Node.js 및 자바스크립트 콘퍼런스 발표 경험이 다수 있으며, JSNSD/JSNAD 자격을 취득했고, NodeSchool SF 커뮤니티 창립 위원이다.
엔터프라이즈용 Node.js 서비스 개발에 참여해 왔으며, Node.js 보안 관련 회사에서 근무했다. 또한 Node.js 및 자바스크립트 콘퍼런스 발표 경험이 다수 있으며, JSNSD/JSNAD 자격을 취득했고, NodeSchool SF 커뮤니티 창립 위원이다.