Old architecture: JS ↔ Native 가 async JSON bridge. 큰 데이터 / 자주 호출 = 병목. New Architecture (JSI / TurboModules / Fabric) 는 동기 ref 호출 — 속도 차이 큼. 0.74+ 부터 default 권장.
📖 핵심 개념
JSI (JavaScript Interface): JS 가 native 메서드를 직접 invoke. 동기 가능.
TurboModules: 지연 로딩 + 타입 정의 (codegen) + JSI 기반 호출.
Fabric: 새 renderer. UI 트리를 host platform 직접.
Hermes: RN 의 JS engine. JSC 보다 startup / 메모리 우수.
💻 코드 패턴
큰 list — FlatList → FlashList
import{FlashList}from'@shopify/flash-list';<FlashListdata={items}estimatedItemSize={80}renderItem={({item})=><Rowitem={item}/>}keyExtractor={item=>item.id}/>// FlatList 보다 메모리 / 스크롤 부드러움
무거운 작업 — 별도 thread
import{runOnJS,runOnUI}from'react-native-reanimated';// Reanimated worklet — UI thread 에서 실행
consttap=Gesture.Tap().onEnd(()=>{runOnJS(setActive)(true);});
Native 모듈 호출 batching
// ❌ 1000번 개별 호출
for(leti=0;i<1000;i++)NativeMod.compute(i);// ✅ 한 번에
NativeMod.computeBatch(Array.from({length: 1000},(_,i)=>i));