๐Ÿš€ 50. React Native ์•ฑ ๋นŒ๋“œ์™€ ๋ฐฐํฌ ์™„์ „ ์ •๋ฆฌ โ€” Debug/Release, APK/AAB, OTA๊นŒ์ง€

JM_Devยท2025๋…„ 6์›” 17์ผ
0
post-thumbnail

์•ฑ ๊ฐœ๋ฐœ์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๋Š” ๋นŒ๋“œ(build)์™€ ๋ฐฐํฌ(deployment)๋‹ค.
ํ•˜์ง€๋งŒ ์‹ค์ œ ์•ฑ์„ ๋ฐฐํฌํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์ฒ˜์Œ ๋งˆ์ฃผํ•˜๋Š” ๊ฐœ๋…๋“ค์ด ๊ต‰์žฅํžˆ ๋‚ฏ์„ค๋‹ค.

  • Debug vs Release ๋นŒ๋“œ?
  • APK์™€ AAB์˜ ์ฐจ์ด?
  • Expo๋Š” ์–ด๋–ป๊ฒŒ ๋ฐฐํฌํ•˜์ง€?
  • ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ๋Š” ์–ด๋–ป๊ฒŒ ํ•˜์ง€?

์ด๋ฒˆ ๊ธ€์€ React Native ์•ฑ์„ ๋นŒ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ์•Œ์•„์•ผ ํ•  ํ•„์ˆ˜ ๊ฐœ๋…๋“ค์„ ์ •๋ฆฌํ•œ ๊ธ€์ด๋‹ค.


โœ… 1. Debug vs Release ๋นŒ๋“œ

ํ•ญ๋ชฉDebugRelease
๋ชฉ์ ๊ฐœ๋ฐœ์šฉ๋ฐฐํฌ์šฉ
์„ฑ๋Šฅ๋А๋ฆผ (๋””๋ฒ„๊น… ํ™œ์„ฑํ™”)์ตœ์ ํ™”๋จ
๋กœ๊น…console.log ํ™œ์„ฑ๋น„ํ™œ์„ฑ (๊ธฐ๋ณธ)
์•ฑ ์„ค์น˜์ง์ ‘ ๊ฐ€๋Šฅ (adb, Expo Go)์Šคํ† ์–ด ๋“ฑ๋ก์šฉ

โ—์ฃผ์˜

Release ๋นŒ๋“œ์—์„œ๋Š” console.log๋‚˜ ๋””๋ฒ„๊ฑฐ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—
Sentry ๊ฐ™์€ ์—๋Ÿฌ ์ถ”์  ๋„๊ตฌ๊ฐ€ ํ•„์ˆ˜์•ผ!


๐Ÿ“ฆ 2. APK vs AAB (Android)

ํฌ๋งท์„ค๋ช…์‚ฌ์šฉ์ฒ˜
.apkAndroid ํŒจํ‚ค์ง€ (์ง์ ‘ ์„ค์น˜ ๊ฐ€๋Šฅ)ํ…Œ์ŠคํŠธ, ์‚ฌ๋‚ด ๋ฐฐํฌ
.aabAndroid App Bundle (์Šคํ† ์–ด ์ตœ์ ํ™”)Google Play ๊ณต์‹ ๋ฐฐํฌ์šฉ
  • AAB๋Š” ์Šคํ† ์–ด์—์„œ ์‚ฌ์šฉ์ž ๊ธฐ๊ธฐ์— ๋งž๊ฒŒ ์ž๋™ ์ตœ์ ํ™”๋จ
  • 2021๋…„ ์ดํ›„ Google Play๋Š” AAB๋งŒ ํ—ˆ์šฉ

๐Ÿ 3. iOS ๋นŒ๋“œ

ํ•ญ๋ชฉ๋ฐฉ์‹์„ค๋ช…
.app๊ฐœ๋ฐœ์šฉ ์‹คํ–‰ ํŒŒ์ผ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์‹คํ–‰
.ipa์‹ค์ œ ๋ฐฐํฌ์šฉ ํŒŒ์ผTestFlight, ์•ฑ์Šคํ† ์–ด ์—…๋กœ๋“œ์šฉ
  • iOS๋Š” Xcode + Apple Developer ๊ณ„์ • ํ•„์š”
  • ์•ฑ ์Šคํ† ์–ด ๋ฐฐํฌ ์ „์—๋Š” TestFlight๋กœ ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ ์ง„ํ–‰

โš™๏ธ 4. Expo ๋นŒ๋“œ ์ „๋žต (EAS)

Expo ์‚ฌ์šฉ์ž๋Š” EAS Build๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ๋นŒ๋“œ ๊ฐ€๋Šฅ

npx expo install eas-cli
eas build -p android
eas build -p ios
  • Expo ์„œ๋ฒ„์—์„œ ๋นŒ๋“œ ์ง„ํ–‰
  • eas.json์œผ๋กœ ํ™˜๊ฒฝ ์„ค์ • ๊ฐ€๋Šฅ
  • iOS๋„ Mac ์—†์ด ๋นŒ๋“œ ๊ฐ€๋Šฅ (๋‹จ, ๋ฐฐํฌ์—” ๊ฐœ๋ฐœ์ž ๊ณ„์ • ํ•„์š”)

๐ŸŒ 5. OTA ์—…๋ฐ์ดํŠธ (Over The Air)

์•ฑ์Šคํ† ์–ด ์‹ฌ์‚ฌ ์—†์ด JS ์ฝ”๋“œ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ์‹

๋Œ€ํ‘œ ์„œ๋น„์Šค

  • Expo OTA (๊ธฐ๋ณธ ๋‚ด์žฅ๋จ)
  • CodePush (Microsoft App Center)

โœ… ํ…์ŠคํŠธ, ์Šคํƒ€์ผ, ๋กœ์ง ์ˆ˜์ • ๊ฐ€๋Šฅ
โŒ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ ๋ณ€๊ฒฝ์€ ๋ถˆ๊ฐ€
โœ… ์•ฑ ์‹ฌ์‚ฌ ์—†์ด ๋ฐฐํฌ ๊ฐ€๋Šฅ โ†’ ๊ธด๊ธ‰ ํŒจ์น˜์— ๋งค์šฐ ์œ ์šฉ


๐Ÿง  ๋นŒ๋“œ/๋ฐฐํฌ ์„ค๊ณ„ ํŒ

์ƒํ™ฉ์ „๋žต
๋‚ด๋ถ€ ํ…Œ์ŠคํŠธAPK ์ง์ ‘ ์„ค์น˜ or TestFlight
์ •์‹ ๋ฐฐํฌAndroid: AAB, iOS: IPA
๋น ๋ฅธ ํ•ซํ”ฝ์ŠคOTA ์—…๋ฐ์ดํŠธ (CodePush, Expo OTA)
CI/CD ์ ์šฉGitHub Actions + EAS CLI ์กฐํ•ฉ ์ถ”์ฒœ
๋ฐฐํฌ ๋ฒ„์ „ ๊ด€๋ฆฌapp.json, build.gradle์—์„œ ๋ฒ„์ „ ๋ถ„๋ฆฌ ๊ด€๋ฆฌ

๐Ÿ“ ๋‚ด๊ฐ€ ๋А๋‚€ ์ 

์ฒ˜์Œ์—๋Š” ๊ทธ๋ƒฅ npm run build ๊ฐ™์€ ๋ช…๋ น์–ด๋งŒ ์žˆ๊ฒ ๊ฑฐ๋‹ˆ ํ–ˆ๋Š”๋ฐ,
์‹ค์ œ ์•ฑ์€ ํ”Œ๋žซํผ, ํŒŒ์ผ ํ˜•์‹, ์ธ์ฆ์„œ, ์‹ฌ์‚ฌ ์ ˆ์ฐจ ๋“ฑ ์‹ ๊ฒฝ ์จ์•ผ ํ•  ๊ฒŒ ์—„์ฒญ ๋งŽ์•˜๋‹ค.

ํŠนํžˆ OTA ์—…๋ฐ์ดํŠธ๋Š”
"์•ฑ์Šคํ† ์–ด ์‹ฌ์‚ฌ ๊ธฐ๋‹ค๋ฆด ํ•„์š” ์—†์ด ์ˆ˜์ •์‚ฌํ•ญ์„ ๋ฐ”๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค"๋Š” ์ ์—์„œ
์ •๋ง ์œ ์šฉํ–ˆ๊ณ , ์ง€๊ธˆ๋„ ์‹ค์„œ๋น„์Šค์—์„œ ์ ๊ทน ํ™œ์šฉ ์ค‘์ด๋‹ค.


๐Ÿš€ โ€œ์•ฑ ๊ฐœ๋ฐœ์˜ ๋์€ ๋ฐฐํฌ๋‹ค. ๋ฐฐํฌ๋ฅผ ์•Œ์•„์•ผ ์ง„์งœ ๊ฐœ๋ฐœ์ž๋‹ค.โ€


profile
๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—…์„ ์ค€๋น„ ์ค‘ ์ด๋ฉฐ, ์—ด์‹ฌํžˆ ๊ณต๋ถ€ ์ค‘ ์ž…๋‹ˆ๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€