원문 제목: Bun has an open PR adding shared-memory threads to JavaScriptCore 원문 링크: oven-sh/WebKit#249 번역일: 2026-06-21 KST
Bun 쪽에서 JavaScriptCore에 공유 메모리 기반 스레드 지원을 실험하는 PR이 올라왔습니다. PR 설명 기준으로 아직 "experimental, not working yet" 단계이고, 바로 제품에 적용할 수 있는 기능이라기보다는 JavaScriptCore 위에서 진짜 다중 mutator, 공유 힙, thread API를 어떻게 설계할 수 있는지 보여주는 연구성 작업에 가깝습니다.
핵심은 여러 JS 실행 스레드가 같은 힙을 다루는 모델입니다. 이를 위해 PR은 per-thread allocator, shared VM state, thread id 또는 shared-write 태그가 붙은 내부 객체 표현, N-thread safepoint, JIT tier별 체크, CodeBlock 회수 전략 같은 런타임 내부 설계를 다룹니다. Thread, Lock, Condition, ThreadLocal API와 object property에 대한 Atomics 실험도 언급됩니다.
프론트엔드 실무자가 지금 당장 바꿀 코드는 거의 없습니다. 다만 이 흐름은 Web Worker, SharedArrayBuffer, Atomics, 서버 사이드 JS 런타임의 병렬 처리 모델이 앞으로 더 중요해질 수 있다는 신호입니다. 특히 Bun을 서버 런타임이나 빌드 툴 체인에 쓰는 팀이라면, 런타임 성능 벤치마크만 볼 게 아니라 메모리 안전성, race test, TSAN, fallback 옵션 같은 안정성 지표를 같이 봐야 합니다.
실무 체크포인트는 세 가지입니다.
- Bun/JSC의 스레드 기능은 아직 실험 단계이므로 운영 의존성으로 보지 않습니다.
- CPU-bound 작업을 JS 런타임 안에서 병렬화하려는 요구가 있다면 Worker/queue/process 분리 전략을 먼저 점검합니다.
- 런타임 내부 동시성 변화는 빌드 도구, SSR, edge/server runtime의 장애 양상을 바꿀 수 있으므로 업데이트 때 changelog와 known issue를 더 꼼꼼히 봅니다.