HOME > Detail View

Detail View

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

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

Material type
단행본
Personal Author
Hunter II, Thomas English, Bryan, 저 나민주, 역
Title Statement
멀티스레드 기반 자바스크립트 : / 토머스 헌터 2세, 브라이언 잉글리시 지음; 나민주 옮김
Publication, Distribution, etc
부천 :   루비페이퍼,   2022  
Physical Medium
xvi, 256 p. : 삽화 ; 24 cm
Varied Title
Multithreaded JavaScript
ISBN
9791186710838
General Note
색인수록  
000 00000cam c2200205 c 4500
001 000046124174
005 20220824111042
007 ta
008 220809s2022 ulka 001a kor
020 ▼a 9791186710838 ▼g 93000
040 ▼a 211009 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.133 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b J41 2022z4
100 1 ▼a Hunter II, Thomas
245 1 0 ▼a 멀티스레드 기반 자바스크립트 : / ▼d 토머스 헌터 2세, ▼e 브라이언 잉글리시 지음; ▼e 나민주 옮김
246 1 9 ▼a Multithreaded JavaScript
260 ▼a 부천 : ▼b 루비페이퍼, ▼c 2022
300 ▼a xvi, 256 p. : ▼b 삽화 ; ▼c 24 cm
500 ▼a 색인수록
546 ▼a 영어로 된 원저작을 한국어로 번역
700 1 ▼a English, Bryan, ▼e
700 1 ▼a 나민주, ▼e
900 1 0 ▼a 헌터 2세, 토머스, ▼e
900 1 0 ▼a 잉글리시, 브라이언, ▼e

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Sejong Academic Information Center/Science & Technology/ Call Number 005.133 J41 2022z4 Accession No. 151360852 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

자바스크립트로 멀티스레드 애플리케이션을 구현해야 하는 개발자에게 브라우저의 웹 워커 API, Node.js의 워커 스레드 모듈에 대한 장단점을 소개한 책이다. 이 책에서는 멀티스레드 애플리케이션 구현에 활용할 수 있는 두 가지 접근법을 제시한다.

첫 번째는 메시지 패싱, 두 번째는 공유 메모리다. 이를 구현하기 위한 API뿐만 아니라, 메시지 패싱 및 공유 메모리를 활용하기에 적합한 상황, 그리고 두 접근법을 모두 활용할 수 있는 상황을 설명한다. 또한, 관련된 고수준의 프로그래밍 패턴도 소개한다.

이 책의 목표는 자바스크립트 멀티스레딩을 구현하기 위한 실무 지식을 제공하는 것입니다. 그간 자바스크립트 프로그램은 싱글 코어에 국한하여 개발되었고, 실제로 트위터나 개발자 포럼에서도 자바스크립트는 싱글 스레드 프로그램으로만 개발할 수 있다고 말하는 글이 많습니다. 이 책의 제목이 멀티스레드 기반 자바스크립트(Multithreaded JavaScript)인 것처럼, 자바스크립트 프로그램은 무조건 싱글 스레드로 개발해야 한다는 오해를 타파하고자 합니다.

그리고 세부 목표는 여러분께 자바스크립트 멀티스레딩을 구현할 때 고려해야 할 요소를 설명하는 것입니다. 이 책을 다 읽을 때쯤에는 브라우저 웹 워커 API의 사용법, 강/약점, 언제 어떤 API를 사용해야 할지를 이해하게 될 겁니다. 또한 Node.js의 워커 스레드 모듈 API는 브라우저 웹 워커와 어떠한 차이가 있는지 알게 될 겁니다.

- 멀티스레딩을 통해 성능을 향상하는 법
- 전용 워커, 공유 워커, 서비스 워커의 차이점
- 애플리케이션에서 스레드를 사용해야 할 때, 사용하지 않아야 할 때
- Atomics 객체를 활용한 스레드 통신 적용
- 애플리케이션 성능 향상을 위한 예시 코드 구현
- 멀티스레딩 성능에 대한 벤치마크


Information Provided By: : Aladin

Author Introduction

브라이언 잉글리시(지은이)

자바스크립트 및 Rust 오픈소스 개발자입니다. 대형 엔터프라이즈 시스템, 코드 계측, 애플리케이션 보안 관련한 개발 경험이 있습니다. 현재는 Datadog의 시니어 오픈소스 개발자이며, Node.js 코어 컬래보레이터 및 컨트리뷰터로 활동하고 있습니다.

토머스 헌터 2세(지은이)

엔터프라이즈용 Node.js 서비스 개발에 참여해 왔으며, Node.js 보안 관련 회사에서 근무했습니다. 또한 Node.js 및 자바스크립트 콘퍼런스 발표 경험이 다수 있으며, JSNSD/JSNAD 자격을 취득했고, NodeSchool SF 커뮤니티 창립 위원입니다.

나민주(옮긴이)

서강대학교에서 영미어문학과를 전공했습니다. 삼성전자에 소프트웨어 엔지니어로 입사하여, 음성인식 분야에서 개발자, PM, Developer Relations 담당자로 일했습니다. 주업과 부업의 적절한 균형을 추구합니다.

Information Provided By: : Aladin

Table of 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 주의사항 요약
부록: 구조화된 복제 알고리즘


Information Provided By: : Aladin

New Arrivals Books in Related Fields

Burns, Brendan (2023)
김성기 (2023)