[React Native] Native Modules


λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆ μ†Œκ°œ

πŸ‘‰Β λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ˜ ν•„μš”μ„±:

  • React Native μ•±μ—μ„œλŠ” λ•Œλ‘œ JavaScriptμ—μ„œ 기본적으둜 μ‚¬μš©ν•  수 μ—†λŠ” λ„€μ΄ν‹°λΈŒ ν”Œλž«νΌ API에 μ ‘κ·Όν•΄μ•Ό ν•  ν•„μš”κ°€ μžˆλ‹€.
  • 예λ₯Ό λ“€μ–΄, Apple λ˜λŠ” Google Pay에 μ•‘μ„ΈμŠ€ν•˜κΈ° μœ„ν•œ λ„€μ΄ν‹°λΈŒ API, 기쑴의 Objective-C, Swift, Java λ˜λŠ” C++ 라이브러리λ₯Ό μž¬μ‚¬μš©ν•˜κ±°λ‚˜ κ³ μ„±λŠ₯, λ©€ν‹°μŠ€λ ˆλ“œ μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•  κ²½μš°κ°€ μžˆλ‹€.

πŸ‘‰Β λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆ μ‹œμŠ€ν…œ:

  • λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆ μ‹œμŠ€ν…œμ€ Java/Objective-C/C++ (λ„€μ΄ν‹°λΈŒ) 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό JavaScript(JS)μ—κ²Œ JS 객체둜 λ…ΈμΆœμ‹œμΌœ, JS λ‚΄μ—μ„œ μž„μ˜μ˜ λ„€μ΄ν‹°λΈŒ μ½”λ“œλ₯Ό μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•œλ‹€.
  • 이 κΈ°λŠ₯은 일반적인 개발 ν”„λ‘œμ„ΈμŠ€μ˜ μΌλΆ€λ‘œ μ‚¬μš©λ˜μ§€λŠ” μ•Šμ§€λ§Œ, ν•„μš”μ„±μ€ μžˆλ‹€.
  • React Nativeκ°€ JS μ•±μ—μ„œ ν•„μš”ν•œ λ„€μ΄ν‹°λΈŒ APIλ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠλŠ” 경우 μ§μ ‘μ μœΌλ‘œ λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ„ 내보낼 수 μžˆλ‹€

λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆ μ„€μ •:

  • React Native μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—λŠ” 두 κ°€μ§€ λ°©λ²•μœΌλ‘œ λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ„ μž‘μ„±ν•  수 있음.
    1. React Native μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ iOS/Android ν”„λ‘œμ νŠΈ λ‚΄μ—μ„œ 직접 μž‘μ„±
    2. React Native μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ’…μ†μ„±μœΌλ‘œ μ„€μΉ˜ν•  수 μžˆλŠ” NPM νŒ¨ν‚€μ§€λ‘œ μž‘μ„±

πŸ‘‰Β λ‚΄μš© 정리:

  1. Android λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆ 생성: React Native μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ Android ν”„λ‘œμ νŠΈ λ‚΄μ—μ„œ λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ„ μƒμ„±ν•˜λŠ” 방법에 λŒ€ν•œ μ•ˆλ‚΄μž…λ‹ˆλ‹€. Android Studioλ₯Ό μ‚¬μš©ν•˜μ—¬ Java둜 λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ„ μž‘μ„±ν•˜κ³  React Native μ•±μ—μ„œ μ‚¬μš©ν•˜λŠ” 방법을 μ•ˆλ‚΄ν•©λ‹ˆλ‹€.
  2. iOS λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆ 생성: React Native μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ iOS ν”„λ‘œμ νŠΈ λ‚΄μ—μ„œ λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ„ μƒμ„±ν•˜λŠ” 방법에 λŒ€ν•œ μ•ˆλ‚΄μž…λ‹ˆλ‹€. Xcodeλ₯Ό μ‚¬μš©ν•˜μ—¬ Objective-C λ˜λŠ” Swift둜 λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ„ μž‘μ„±ν•˜κ³  React Native μ•±μ—μ„œ μ‚¬μš©ν•˜λŠ” 방법을 μ•ˆλ‚΄ν•©λ‹ˆλ‹€.
  3. JavaScriptμ—μ„œ λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆ μ‚¬μš©: μž‘μ„±ν•œ λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ„ React Native μ•±μ˜ JavaScript μ½”λ“œμ—μ„œ μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•œ μ•ˆλ‚΄μž…λ‹ˆλ‹€. λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ„ JavaScriptμ—μ„œ 뢈러였고 λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λŠ” 방법을 μ„€λͺ…ν•©λ‹ˆλ‹€.
  4. λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆ ν…ŒμŠ€νŠΈ: μž‘μ„±ν•œ λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ„ ν…ŒμŠ€νŠΈν•˜λŠ” 방법에 λŒ€ν•œ μ•ˆλ‚΄μž…λ‹ˆλ‹€. Jestλ₯Ό μ‚¬μš©ν•˜μ—¬ λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ˜ μœ λ‹› ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜κ³  μ‹€ν–‰ν•˜λŠ” 방법을 μ•ˆλ‚΄ν•©λ‹ˆλ‹€.

Β© 2021. All rights reserved.