상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 리액트 네이티브에서 네이티브 모듈을 만드는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
리액트 네이티브(React Native)는 <a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>스크립트로 모바일 애플리케이션을 개발할 수 있게 해주는 프레임워크입니다. 그러나 때때로 자바스크립트로는 구현하기 어려운 기능이나 성능이 필요한 경우가 있습니다. 이럴 때 네이티브 모듈을 만들어 리액트 네이티브와 네이티브 코드(안드로이드의 경우 자바/Kotlin, iOS의 경우 Objective-C/Swift)를 연결할 수 있습니다. 아래는 리액트 네이티브에서 네이티브 모듈을 만드는 방법에 대한 단계별 가이드입니다. 1. 프로젝트 설정 리액트 네이티브 프로젝트를 생성합니다. 아래 명령어를 사용하여 새로운 프로젝트를 생성할 수 있습니다. ```bash npx react-native init MyProject cd MyProject ``` 2. 네이티브 모듈 생성 안드로이드 1. <a href='https://sangseek.com/sangseeks/Java/ko'>Java</a>/Kotlin 파일 생성 : `android/app/src/main/java/com/myproject` 디렉토리 내에 새로운 Java/Kotlin 파일을 생성합니다. 예를 들어, `MyNativeModule.java` 또는 `MyNativeModule.kt`를 생성합니다. 2. 모듈 코드 작성 : ```java package com.myproject; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.Promise; public class MyNativeModule extends ReactContextBaseJavaModule { MyNativeModule(ReactApplicationContext context) { super(context); } @Override public String getName() { return "MyNativeModule"; } @ReactMethod public void myNativeMethod(String message, Promise promise) { // 네이티브 코드 로직 promise.resolve("Received: " + message); } } ``` 3. 패키지 등록 : `MyNativeModule`을 포함하는 패키지를 생성합니다. ```java package com.myproject; import com.facebook.react.ReactPackage; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.JavaScriptModule; import com.facebook.react.uimanager.ViewManager; import java.util.A<a href='https://sangseek.com/sangseeks/rrayList/ko'>rrayList</a>; import java.util.Collections; import java.util.List; public class MyNativeModulePackage implements ReactPackage { @Override public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { List<NativeModule> modules = new ArrayList<>(); modules.add(new MyNativeModule(reactContext)); return modules; } @Override public List<Class<? extends JavaScriptModule>> createJSModules() { return Collections.emptyList(); } @Override public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { return Collections.emptyList(); } } ``` 4. 패키지 등록 : `MainApplication.java` 파일에서 패키지를 등록합니다. ```java @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage(), new MyNativeModulePackage() // 추가 ); } ``` iOS 1. Objective-C/Swift 파일 생성 : `ios/MyProject` 디렉토리 내에 새로운 Objective-C 또는 Swift 파일을 생성합니다. 예를 들어, `MyNativeModule.m` 또는 `MyNativeModule.swift`를 생성합니다. 2. 모듈 코드 작성 : ```objective-c import <React/RCTBridgeModule.h> @interface RCT_EXTERN_MODULE(MyNativeModule, NSObject) RCT_EXTERN_METHOD(myNativeMethod:(NSString *)message resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) @end ``` Swift의 경우: ```swift import Foundation import React @objc(MyNativeModule) class MyNativeModule: NSObject { @objc func myNativeMethod(_ message: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) { resolver("Received: \(message)") } } ``` 3. 모듈 등록 : `MyProject-Bridging-Header.h` 파일을 생성하고 Objective-C와 Swift 간의 브리징을 설정합니다. 3. 자바스크립트에서 모듈 사용 이제 자바스크립트 코드에서 네이티브 모듈을 사용할 수 있습니다. ```javascript import { NativeModules } from 'react-native'; const { MyNativeModule } = NativeModules; MyNativeModule.myNativeMethod('Hello from React Native!') .then(response => { console.log(response); // "Received: Hello from React Native!" }) .catch(error => { console.error(error); }); ``` 4. 빌드 및 실행 모듈을 추가한 후, 프로젝트를 빌드하고 실행합니다. ```bash npx react-native run-android ``` 또는 ```bash npx react-native run-ios ``` 5. 디버깅 및 테스트 모듈이 정상적으로 작동하는지 확인하기 위해 콘솔 로그를 사용하여 디버깅합니다. 또한, 다양한 입력값을 테스트하여 모듈의 안정성을 확인합니다. 결론 리액트 네이티브에서 네이티브 모듈을 만드는 과정은 자바스크립트와 네이티브 코드 간의 상호작용을 가능하게 하여, 성능을 최적화하고 특정 기능을 구현할 수 있는 강력한 방법입니다. 위의 단계들을 따라하면 자신만의 네이티브 모듈을 쉽게 만들 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기