---
category: Frontend
tags: [auto-wikified, technical-documentation, frontend]
title: TurboModules
description: "TurboModules는 React Native의 새로운 아키텍처(New Architecture)를 구성하는 차세대 네이티브 모듈(Native Modules) 시스템이다 [1, 2]."
last_updated: 2026-05-04
---

# TurboModules

## 📌 Brief Summary
TurboModules는 React Native의 새로운 아키텍처(New Architecture)를 구성하는 차세대 네이티브 모듈(Native Modules) 시스템이다 [1, 2]. 자바스크립트가 네이티브 메서드를 직접적이고 동기적(synchronous)으로 호출할 수 있게 해주는 JSI(JavaScript Interface)를 기반으로 작동한다 [1, 2]. 기존 방식과 달리 필요한 시점에만 모듈을 불러오는 지연 로딩(Lazy Loading)을 지원하여, 앱의 초기 로딩 속도를 극적으로 개선하고 메모리 사용량을 줄여준다 [1, 2].

## 📖 Core Content
* **지연 로딩(Lazy Loading)을 통한 성능 최적화**
  기존의 구형 아키텍처에서는 앱을 시작할 때 모든 네이티브 모듈을 일괄적으로 초기화해야 했기 때문에 실행 시간이 지연되는 문제가 발생했다 [1]. TurboModules는 이 구형의 일괄 브릿지 모듈(batch-bridged modules) 시스템을 대체하여, 모듈이 실제로 처음 사용되는 시점에만 로드(Load on demand)되도록 설계되었다 [1, 2]. 이를 통해 앱의 초기 로드 시간과 초기 메모리 사용량(footprint)을 극적으로 감소시킨다 [1, 2].

* **동기적 네이티브 호출(Synchronous Native Calls) 지원**
  TurboModules는 기반 기술인 JSI를 활용하여 자바스크립트와 네이티브 코드 간의 직접적인 바인딩을 제공한다 [2, 3]. 이에 따라 기존의 비동기 통신 브릿지에서 발생하던 직렬화(Serialization) 오버헤드나 지연 시간(Latency) 없이, 자바스크립트에서 네이티브 메서드를 직접적이고 동기적으로 호출할 수 있다 [1-3]. 이는 성능에 민감한(performance-critical) 작업에서 브릿지가 병목으로 작용하던 문제를 완벽히 해결한다 [2].

* **새로운 아키텍처(New Architecture)의 핵심 요소**
  TurboModules는 Fabric(새로운 동기식 렌더링 시스템) 및 JSI(JavaScript Interface)와 함께 결합하여 React Native의 혁신적인 3대 기반을 형성한다 [4-7]. 네이티브 기능을 사용할 때 Swift/Objective-C 또는 Kotlin/Java로 모듈을 작성하고 최소한의 오버헤드로 JavaScript에서 이를 호출함으로써, 사실상 네이티브 앱과의 성능 격차를 크게 좁히는 핵심 역할을 수행한다 [5, 8].

## ⚖️ Trade-offs & Caveats
소스에 관련 정보가 부족합니다. 다만, TurboModules가 성능적 이점을 제공함에도 불구하고, 커스텀 네이티브 기능을 구현하기 위해서는 여전히 Swift/Objective-C나 Kotlin/Java와 같은 네이티브 언어로 모듈을 직접 작성해야 하므로 개발 팀 내에 네이티브 모바일 경험(Native mobile experience)을 갖춘 인력이 요구된다는 제약 사항이 있습니다 [8].

## 🔗 Knowledge Connections

### Related Concepts

#### [아키텍처/기반 기술]
- [[JSI (JavaScript Interface)]]
  - 연결 이유: TurboModules가 동기적 통신 및 지연 로딩을 수행할 수 있도록 만들어주는 기반 C++ 레이어이기 때문이다 [2, 3].
  - 이 개념을 통해 더 깊게 이해할 수 있는 부분: 직렬화 오버헤드가 어떻게 제거되며, JavaScript 스레드와 네이티브 스레드 간의 직접 참조가 기술적으로 어떻게 구현되는지 이해할 수 있다 [2, 3].

- [[Fabric]]
  - 연결 이유: TurboModules와 함께 React Native의 새로운 아키텍처를 이루는 양대 산맥으로, Fabric은 UI 렌더링을 담당하고 TurboModules는 로직/기능 모듈을 담당한다 [4, 6].
  - 이 개념을 통해 더 깊게 이해할 수 있는 부분: React Native의 전체적인 새로운 아키텍처(New Architecture)가 브릿지 병목 현상을 어떻게 종합적으로 제거하는지 파악할 수 있다 [6].

- [[Codegen]]
  - 연결 이유: JavaScript의 동적 타입 세계와 네이티브 플랫폼의 정적 타입 세계를 안전하게 연결하기 위해 C++ 보일러플레이트 코드를 생성하는 역할을 한다 [9].
  - 이 개념을 통해 더 깊게 이해할 수 있는 부분: TurboModules를 통한 통신 시 런타임 오류를 줄이고 컴파일 타임에 타입 안정성(Type safety)을 어떻게 보장하는지 이해할 수 있다 [9].

#### [구현/활용 도구]
- [[React Native]]
  - 연결 이유: TurboModules 패러다임이 전면적으로 도입된 크로스 플랫폼 모바일 개발 프레임워크이다 [6, 10].
  - 이 개념을 통해 더 깊게 이해할 수 있는 부분: 모바일 개발 프레임워크들이 네이티브 성능에 근접하기 위해 아키텍처를 어떻게 혁신하고 있는지 거시적 관점에서 파악할 수 있다 [6, 7].

### Deeper Research Questions
- 기존 비동기 브릿지(Bridge) 모델 대비 TurboModules 적용 시 초기 구동 시간(Startup time)과 메모리 절약 효과는 구체적으로 어느 정도의 성능 지표 차이를 보여주는가?
- 커스텀 모듈 작성 시, JSI 및 Codegen을 활용하여 Swift/Kotlin 네이티브 코드와 JavaScript 간의 타입 안정성(Type Safety)은 컴파일 타임에 정확히 어떤 메커니즘으로 검증되는가?
- 지연 로딩(Lazy Loading) 방식이 앱 실행 도중 최초로 특정 모듈을 호출할 때 일시적인 렌더링 지연(Jank)을 발생시킬 위험성은 없는가?
- React Native 생태계의 수많은 서드파티 라이브러리들이 기존 모듈 시스템에서 TurboModules로 마이그레이션하는 데 있어 직면하는 기술적 진입 장벽은 무엇인가?
- Flutter의 네이티브 통신 방식(Platform Channels 및 Dart FFI)과 React Native의 TurboModules는 동기적 네이티브 기능 접근 관점에서 성능적으로 어떤 차이를 지니는가?

### Practical Application Contexts
- **Implementation:** 커스텀 카메라, 생체 인식 등 특수한 네이티브 API 접근이 필요할 때, Swift나 Kotlin으로 작성된 로직을 TurboModules를 통해 JavaScript 환경에서 동기적으로 호출하여 지연 없이 하드웨어 기능을 제어한다 [8, 11].
- **System Design:** 초기 로딩 속도가 핵심 비즈니스 지표인 애플리케이션의 경우, 수십 개의 네이티브 기능이 한 번에 로드되던 기존 구조에서 벗어나 TurboModules 기반의 새로운 아키텍처를 채택함으로써 병목을 제거하는 설계적 결정을 내린다 [1, 2].
- **Operation / Maintenance:** 앱 업데이트 시마다 모듈 초기화로 인한 시작 시간 지연을 모니터링하고, 자주 사용하지 않는 기능에 대해 TurboModules의 요구 기반 로딩(Load on demand)이 제대로 작동하여 메모리 풋프린트가 줄어들었는지 추적한다 [1, 2].
- **Learning Path:** React Native 개발자는 레거시 비동기 브릿지의 한계를 이해한 후 -> JSI의 직접 통신 개념을 학습하고 -> TurboModules와 Fabric이 결합된 'New Architecture' 환경에서의 개발 패러다임을 익히는 방향으로 나아간다.
- **My Project Relevance:** 소스에 관련 정보가 부족합니다.

### Adjacent Topics
- [[Dart FFI (Foreign Function Interface)]]
  - 확장 방향: React Native가 JSI와 TurboModules로 네이티브와 동기적 소통을 구현한 것처럼, 경쟁 프레임워크인 Flutter가 고성능 C/C++ 네이티브 연산을 위해 직접적인 메모리 접근 및 동기적 호출을 수행하는 방식(Dart FFI)과 비교 연구할 수 있다 [12, 13].

---
*Last updated: 2026-05-03*