
712
16장 노드와 서버 사이드 자바스크립트
다 9배 느리게 동작합니다. 단순히 2천만 번 증가시키는 게 목적이라면 스레드 하
나만 쓰는 편이 훨씬 단순하고 빠릅니다. 또한 이미지 처리 알고리즘 같은 경우도
배열의 각 요소가 다른 요소와 아무 상관없는 개별 값이므로 스레드 안정성이 보장
된다고 볼 수 있습니다. 하지만 실제 사용하는 프로그램에서는 배열 요소들이 서로
연관된 경우가 대부분이므로 어떤 형태로든 스레드 동기화가 필요합니다. 저수준
함수인
Atomics.wait()
,
Atomics.notify()
가 이 문제에 도움이 될 수도 있지만 이
책의 범위를 벗어납니다.
16.12
자바스크립트는 웹 브라우저에서 실행되도록 설계됐지만 노드 덕분에 범용 프로그
래밍 언어로 탈바꿈했습니다. 노드는 웹 서버를 만들 때 특히 자주 사용되지만, 운
영 체제와 밀접하게 연결되므로 셸 스크립트를 대체하는 용도로 사용할 수도 있습
니다.
이 장에서 가장 중요한 주제는 다음과 같습니다.
·
기본적으로 비동기적이고 싱글 스레드이며, 콜백과 이벤트를 기반으로 동시성
을 구현하는 노드 API
·
노드의 기본적인 데이터 타입, 버퍼, 스트림
·
파일시스템을 다루는
fs
,
path
모듈
·
HTTP 클라이언트와 서버를 다루는
http
,
https
모듈