React Native 브리징 기법: 네이티브 모듈 통합하기

작성일 :

React Native 브리징 기법: 네이티브 모듈 통합하기

React Native는 JavaScript와 네이티브 모듈 간 상호작용을 통해 강력한 모바일 애플리케이션을 개발할 수 있도록 도와줍니다. 이러한 상호작용을 가능하게 하는 것이 바로 '브리징(Bridging)' 기법입니다. 이 글에서는 React Native에서 네이티브 모듈을 통합하는 브리징 기법에 대해 상세하게 설명합니다.

브리징 개요

브리징은 JavaScript 코드와 네이티브 코드(iOS, Android)를 연결하는 기술입니다. React Native는 이 브리징을 통해 JavaScript와 네이티브 간의 데이터 교환을 가능하게 합니다. 기본적인 개념은 간단하지만, 실제 적용에는 여러 단계가 필요합니다. 네이티브 모듈은 주로 성능 최적화나 특정 플랫폼 기능에 접근할 때 유용합니다. 예를 들어, GPS 모듈, 카메라 모듈, 네이티브 UI 컴포넌트 등이 있습니다.

브리징 단계

브리징을 구현하는 과정은 크게 두 가지로 나눌 수 있습니다: iOS와 Android. 이 두 플랫폼의 구현 방식은 상당히 다릅니다. 여기서는 각 플랫폼에서의 브리징 단계를 설명합니다.

iOS에서의 브리징

  1. 네이티브 모듈 작성: Xcode를 열고 새 파일을 추가한 후 Objective-C 또는 Swift로 네이티브 모듈을 작성합니다.

    objective
    #import <React/RCTBridgeModule.h>
    
    @interface RCT_EXTERN_MODULE(MyModule, NSObject)
    RCT_EXTERN_METHOD(doSomething:(NSString *)stringArg)
    @end
  2. 팩토리 메소드 추가: RCTBridgeModule 프로토콜을 준수하는 팩토리 메소드를 추가합니다.

  3. JavaScript 호출 구현: JavaScript 코드에서 네이티브 모듈을 호출할 수 있도록 합니다.

    js
    import { NativeModules } from 'react-native';
    const { MyModule } = NativeModules;
    
    MyModule.doSomething('Hello from JavaScript');

Android에서의 브리징

  1. 네이티브 모듈 작성: Android Studio를 열고 Java 또는 Kotlin으로 네이티브 모듈을 작성합니다.

    java
    package com.myapp;
    
    import com.facebook.react.bridge.ReactApplicationContext;
    import com.facebook.react.bridge.ReactContextBaseJavaModule;
    import com.facebook.react.bridge.ReactMethod;
    
    public class MyModule extends ReactContextBaseJavaModule {
        MyModule(ReactApplicationContext context) {
            super(context);
        }
    
        @Override
        public String getName() { return