ammarahm-ed/react-native-workers

React Native에서 실제 스레드로 무거운 작업을 분리 실행하는 Web Worker 스타일 라이브러리

개발 재료맘대로 써도 됨 · MIT모바일TypeScript난이도
86+0이번 주0
1포크0이슈
데모·홈페이지 열기ammarahm-ed.github.io

중간맛 분석

TypeScript로 작성된 React Native(0.81.4+, New Architecture + Hermes 필수) 멀티스레딩 라이브러리입니다. 특징은 ① 네이티브 모듈(TurboModules, react-native-mmkv 등)이 워커 내부에서 그대로 작동 ② SharedStore, SharedValue, SharedBuffer로 메시지 외 공유 메모리 지원 ③ 양방향 타입 안전 RPC(JSModule) ④ 번들 크기 약 150KB(전체 앱의 1/10 수준) ⑤ 워커마다 DevTools 디버깅 가능. 설치 후 Metro config에 withWorkers() 래퍼와 babel 플러그인을 추가하면, 파일 기반 워커를 자동으로 별도 번들로 컴파일합니다. 복잡한 이미지 필터링, 데이터 파싱, 시뮬레이션, 센서 수집 등을 UI 블로킹 없이 처리할 수 있습니다.

이런 레포예요

이럴 때 쓰면 좋아요

  • 이미지 필터링·압축 등 CPU 집약적 작업을 UI 블로킹 없이 처리
  • 복잡한 JSON 파싱, 데이터 검색 인덱싱을 백그라운드에서 수행
  • 센서 데이터 수집, 지속적인 위치 추적 등 실시간 데이터 처리

핵심 기능

진정한 멀티스레드 실행 (Hermes 기반 독립 런타임)SharedStore·SharedValue·SharedBuffer로 고성능 공유 메모리 지원양방향 타입 안전 RPC(JSModule) 및 네이티브 모듈 접근

대안 대비 차별점

진정한 OS 스레드(타임슬라이싱 아님)에서 별도 런타임을 실행하면서도 react-native-mmkv, react-native-blob-util 같은 네이티브 모듈이 워커 내부에서 그대로 작동하고, 워커 번들이 ~150KB로 극도로 최소화됩니다.

먹어본 사람들

실제로 차려 먹어본 손님들의 흔적이에요 — 한마디와 완주 인증 모두 검수 후 공개돼요.

시식평 · 먹어본 사람 한마디

아직 시식평이 없어요. 먹어보셨다면 첫 한마디를 남겨주세요.

다른 레포 시식평 구경하기 →

이 레포로 만든 것들

🖋 완주 인증하기

아직 이 레포로 만든 완주 인증이 없어요. 첫 밥도장을 찍어보세요!

이 레포, 해먹는 법

처음 오셨어요? 어렵지 않아요 — 위에서 아래로 따라 하면 내 컴퓨터에 이 레포를 차려서 바로 맛볼 수 있어요.

준비물

  • React Native 0.81.4 이상
  • New Architecture 활성화
  • Hermes 엔진 활성화

바로 차려먹기Node.js (yarn)

깃밥이 레포 구조를 확인하고 만든 실행 명령이에요. 터미널에 붙여넣으면 받기부터 실행까지 한 번에 진행돼요.

git clone --depth 1 https://github.com/ammarahm-ed/react-native-workers.git &&
cd react-native-workers &&
yarn

실행 명령은 README를 확인하세요.

코드는 내 컴퓨터에서 실행돼요 — 처음 보는 레포라면 내용을 한번 훑어보고 실행하는 습관을 추천해요.

README가 안내하는 자세한 단계 보기
  1. 패키지 설치
npm install @ammarahmed/react-native-workers
  1. iOS 네이티브 의존성 설치
cd ios && pod install && cd ..
  1. metro.config.js에 워커 플러그인 추가
# metro.config.js 편집
const { getDefaultConfig } = require('@react-native/metro-config');
const { withWorkers } = require('@ammarahmed/react-native-workers/metro');

module.exports = withWorkers(getDefaultConfig(__dirname));
  1. babel.config.js에 Babel 플러그인 추가
# babel.config.js의 plugins 배열에 '@ammarahmed/react-native-workers/babel' 추가
  1. Android 네이티브 모듈 등록 (필요시)
# MainApplication.kt에서 ReactInstanceEventListener 구현 및 WorkerTurboModules.initialize() 호출
  1. 워커 코드 작성 및 사용
# workers/heavy-task.js 파일 생성
# 코드:
# self.onmessage = (e) => self.postMessage({ doubled: e.data * 2 });
#
# 호스트에서:
# import { Worker } from '@ammarahmed/react-native-workers';
# const worker = new Worker('./workers/heavy-task');
# worker.postMessage(21);
# worker.onmessage = (e) => console.log(e.data);

깃밥트라이로 맛보기

받아보기 귀찮고 살짝 불안했다면 — 안전 스캔부터 설치까지 터미널 한 줄로 끝나요.

터미널에 붙여넣으면 깃밥 안전 스캔 → 격리 폴더 clone → 설치 → 실행법 안내까지 자동이에요. 처음이어도 괜찮아요 — 이 한 줄이 전부예요.

npx gitbap-try ammarahm-ed/react-native-workers

Node.js만 있으면 설치 없이 실행돼요 · 깃밥트라이가 뭐예요? →

별 추이 · 7일

86+0 / 7일

활용성 · 따라 만들기 좋은가

샘플 점수 34/100
  • 관대한 라이선스
  • 테스트 있음
  • 예제 디렉토리
  • 최근 활동
  • AGENTS.md
  • llms.txt
  • 템플릿

🟢 최근 활동 있음 · 2026년 생성

「모바일」 이런 레포, 매주 받아보실래요?

매주 월요일 아침, 골라 담은 밥상만. 광고 없이 · 언제든 해지.

내 레포인가요? README에 깃밥 배지 달기
[![깃밥](https://www.gitbap.com/badge/ammarahm-ed/react-native-workers.svg)](https://www.gitbap.com/r/ammarahm-ed/react-native-workers)
🔌 클로드에서 바로 써보기 — 깃밥 연결하는 법

깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.

방법 ① 커넥터 URL

클로드 설정 → 커넥터에 이 주소를 붙여넣기.

https://www.gitbap.com/api/mcp
방법 ② 플러그인 (체험까지)

플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.

/plugin marketplace add jakeparkcolde/gitbap-cowork
/plugin install gitbap-cowork@gitbap
연결 방법 자세히 →

AI가 README 기반으로 요약했습니다 · 원문 보기