[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๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ์˜ ์œ ๋‹› ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.