์๋ ๊ฐ์์ผ๋ฉด ์ด์ ํฌ์คํธ ๋ค์์ผ๋ก ๋ฐ๋ก ์ฑ๋ฅ ๊ฐ์ ์ ๊ดํ ์ด์ผ๊ธฐ๋ฅผ ๋ค๋ฃจ๋ ค๊ณ ํ๋๋ฐ, ์ด๋ ํ ๊ธฐ์ ์์ RN์ผ๋ก ์ค์๊ฐ ๊ณผ์ ๋ฅผ ๋ณธ๋ค๊ณ ํด์ ํธ๋ค๋ฅ ๊ณต๋ถํด ๋ด์ผ๋๊ธฐ์ ๋ค์์ผ๋ก ๋ฏธ๋ฃจ๊ฒ ์ต๋๋ค ; (
์์์ ์งง๊ฒ ๋งํ๋ฏ์ด ์ค๋์ ์ฒ์์ผ๋ก ๋ง๋ณด๋ React Native ์ด๊ธฐ ์ค์ ์ ๊ดํด์ ๊ฒช์๋ ์ด์ผ๊ธฐ๋ฅผ ์จ๋ด๋ ค๊ฐ๋ ค๊ณ ํ๋ค.
React๋ก ์ดํ์ ๋ง๋ค ์ ์๋ ํ๋ ์์ํฌ์ด๋ค. ์๋๋ก์ด๋์ Kotiln
, IOS์ Swift
์ฒ๋ผ ์ฑ์ ๋ง๋ค ์ ์๋๋ฐ, ์๋ฐ์คํฌ๋ฆฝํธ ํ๊ฒฝ์ผ๋ก ๋ ๊ธฐ์ข
๋ชจ๋ ๊ตฌ๋ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค ์ ์๋ค๋ ๊ฒ์ด ํฐ ์ฅ์ ์ธ๋ฏ ํ๋ค.
react์์ ์ผ๋ ๊ฒ ์ฒ๋ผ ํ์ ์คํฌ๋ฆฝํธ๋ ์ ์ฉํ ์ ์์ผ๋ฉฐ, ์คํ์ผ๋ ์ปดํฌ๋ํธ๋ก CSS ์ฝ๋๋ฅผ ์์ฑํ ์๋ ์๋ค.
๋
ธ๋ง๋ ์ฝ๋ ์,
React๋ฅผ ํ ์ค ์๋ค๋ฉด? ๊ทธ๊ฒ๋ useState, useEffect ์ ๋๋ง ์ ์ฐ๋ฉด 3%์ ์ถ๊ฐ ์ง์๋ง ๋ฐฐ์ฐ๋ฉด ๋๋ค. ๋ผ๊ณ ํ๋๋ผ
์ด๋ฒ ํฌ์คํธ์์ React Native์ ๊ตฌ์กฐ๋ฅผ ๋ค๋ฃจ๊ธฐ๋ณด๋ค๋ ์ค์น ํ๊ฒฝ์ ์กฐ์ฑํ๋ฉด์, ๋๋ ๊น์ ๋นก์นจ๐คฌ์ ๋ค๋ฃจ๋ ค๊ณ ํ๋ฉฐ, ๋์ ๊ฐ์ ํผํด์ ๋ถ๋ค์ด ๋ฐ์ํ์ง ์๊ฒ ์กฐ๊ธ์ด๋๋ง ํ์ ๋ณดํ๋ ค๊ณ ํ๋ค.
๋ณธ ํธ์ผ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ฑํ๋๋ฐ์ ์์ด ์์์ผ๋๋ ๊ฐ๋จํ ์ค๋ช ์ ๋จผ์ ํ๋ ค๊ณ ํ๋ค.
React ๊ธฐ๋ฐ์ด๊ธด ํ์ง๋ง, ์ฌ์ค์ ์น์ฑ๋ณด๋ค๋ ์ฑ์ ๋ํ ์ฑํฅ์ด ํ๊ณ ํ๊ธฐ๋ ํ๊ณ , ๋ค๋ฅธ OS๋ค ๋ผ๋ฆฌ ํธํ์ ์ํด Build ๋ ํ๋ก์ ํธ๋ JAVA
๊ธฐ๋ฐ์ด๋ค. ์, ๋ฌผ๋ก ์ฐ๋ฆฌ๊ฐ ์์ฑํ๋ ์ฝ๋๋ ๋ฌผ๋ก JS ํน์ TS ์ด๋ค.
์์ ์ฌ์ง์ RN ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ์ฒ์์ผ๋ก Github์ ์ฌ๋ฆฐ Repo์ ๊ธฐ์ ์คํ ๋ถํฌํ๋ค.
JAVA.. ๋ผ๋ ์ฃผํฉ์ ์น๊ตฌ๊ฐ 43.9%๋ฅผ ์ฐจ์งํ๊ณ ์๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ, ์ด๊ฒ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก JS ์ธํ
ํ๋ ๊ฒ๋ณด๋ค ์ด๋ฒ์ ํ๋ฒ ๊ฑฐ์ณ์ค์ผ๋๋ค.
์์ ์ฌ์ง์ ๋ณด๋ฉด APK, IPA ๊ฐ์ native app์ ๊ฐ๊ฐ Swift & Objective-C
, java & C/C++ (Kotlin)
์ผ๋ก ์ด๋ฃจ์ด์ ธ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๊ฐ์ด ์๋ฐ๋ ์ด์ง ๊ฑฐ๋ฆฌ๊ฐ ๋จผ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ค์ด ์ฝ๊ฒ ์ฑ์ ๊ฐ๋ฐํ ์ ์๊ฒ JS ์ฝ๋์ CSS ์ฝ๋ ๋ฑ์ผ๋ก ๊ตฌ์กฐ๋ฅผ ์ค๊ณํด ๋์ผ๋ฉด Bridge ์ญํ ์ RN ๋ด์์ ๊ธฐ๋ฅํ์ฌ ์ถํ์ ๋น๋ ๋ฑ์ ์ผ๋ จ์ ์์ ์ ๊ฑฐ์น๋ฉด ํด๋น ๊ธฐ๋ฅ๋ค์ ๊ฐ OS์ ์ต์ ํ ๋์ด์๋ ์ฝ๋๋ก ๋ณํ์ ํด์ค๋ค๋ ์ด์ผ๊ธฐ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ฅ ํํ ์ฐ๋ VSCode ๋ก ์์
ํ๋ฉด ์์์ ํด์ฃผ๋๋.. ๊ทธ๊ฒ์ ์๋๋ค.
ํ์ํ ๋ด๋ถ ํจํค์ง ๋ฑ์ ๊ธฐ์กด์ ์ดํ์ ๋ง๋๋๋ฐ ์ฌ์ฉํ๋ Tool์ ์ด์ฉ์ ํด์ผ ํ๊ฒฝ์ ์กฐ์ฑํ ์ ์๋ค. IOS๋ Xcode
, ์๋๋ก์ด๋๋ Android Studio
์์ ๊ฐ๋ฅํ๋ค.
์๋ฌดํผ.. ๋ค์ ์ด ๋ณธ๋ฌธ์ ์ฃผ์ ๋ด์ฉ์ผ๋ก ๋์ด๊ฐ์ React Native ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ 2๊ฐ๊ฐ ์๋ค.
์ผ๋จ ์ด๋ฆ์ด React Native Cli ์ด๋๊น ์ด๊ฒ ์ฐ ์๋๊ฐ์? ๋ผ๊ณ ํ ์๋ ์๋๋ฐ React Native ๊ณต์ ํํ์ด์ง์ ์ค์น๊ด๋ จ ๋ถ๋ถ ์ ๋ณด๋ฉด Expo๊ฐ ๋งจ์ฒ์์ผ๋ก ๋์์๋ค.
์ด๋ฒ ์ผ๋ จ์ ๊ฒฝํ์ ๊ฒช์์ผ๋ก์จ Expo๊ฐ ๋งจ์ฒ์์ผ๋ก ์ธ๊ธ๋๋ฐ์๋ ํธ์์ฑ ์ ์ฅ์ ์ด ํฌ๊ธฐ์ ๊ทธ๋ ๊ฒ ํด๋์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ ๋ค.
Expo CLI๋ React Native๋ก ์ดํ์ ๋ง๋๋ ค๋ ๊ฐ๋ฐ์๋ค์๊ฒ ํธ๋ฆฌํจ์ ์ต์ฐ์ ์ผ๋ก ์ ๊ณตํด์ค๋ค. ์ด ํด์ ํฐ ์ฅ์ ์ด๋ผ๊ณ ๋งํ ์ ์๋๋ฐ, ์ ๊ทธ๋ฌ๋..! ์ฐ๋ฆฌ๊ฐ JS ์ฝ๋๋ฅผ ์งค ๋ ์ฌ์ฉํ๋ VScode๋ ์ธํ ๋ฆฌ์ ์ด์์ ์์ ์ ์ค๋นํ๋ ๊ฒ๊ณผ ํฌ๊ฒ ์ฐจ์ด๋์ง ์์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ํ, ์๋๋ก์ด๋ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์๋๋ก์ด๋ ์คํ๋์ค๋ฅผ ํตํด์๋ง ๊ฐ๋ฐ ์๋ฒ๋ฅผ ์ด์ด ์์ ๋ฌผ์ด ์ด๋ป๊ฒ ๊ตฌํ๋๊ณ ์๋์ง ํ์ธ์ ํ ์ ์๋๋ฐ, Expo ์ฑ์ ์์ ํฐ์ ๊น์์ฃผ๋ฉด ์ฐ๋๋์ด ์ค์๊ฐ์ผ๋ก ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
์ด๋ฌํ ์ฅ์ ๋ค๋ก ์ธํด ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ฑํ๋๋ฐ ์์ด ํฐ ์ด๋ ค์ ์์ด ์งํํ๊ณ ๊ฐ๋ฐํ ์ ์๊ฒ ๋๋ค.
๋ฌผ๋ก ๋จ์ ๋ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๋๋ค์ด RN client๋ฅผ ๋ง์ด ์ฐ๋ ๊ฐ์ฅ ํฐ ์ด์ ์ธ ๊ฐ๋ฐ์ ํ ๋ ์์ ๋๊ฐ ๋จ์ด์ง๋ค ์ ๋จ์ ์ ์ง๋๊ณ ์๋ค.
๊ทธ๋ฌ๋ฏ๋ก Expo๋ ๊ท๋ชจ๊ฐ ์ ์ผ๋ฉฐ, ๋น ๋ฅธ ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ถํ ๋ ์ฉ์ดํ๊ฒ ์ฌ์ฉ๋๋ค.
react ๋ฐ react native๋ฅผ ๊ฐ๋ฐํ ๋ฉํ์ ๊ณต์์ ์ธ ์ค์น ํด์ด๋ค. ์ธ๋ถ ํด์ธ Expo์ ๋ค๋ฅด๊ฒ ๊ณต์๋งํฌ๊ฐ ๋ฐํ ์ ๋ ์์ ๊ฐ๋ฐ์ ์์ ๋๊ฐ ๋์ผ๋ฉฐ, ์ด๋ฏธ ์กด์ฌํ๊ณ ์๋ RN Cli๋ก ๋ง๋ ๋ ํผ๋ฐ์ค๋ฅผ ์ฐธ๊ณ ํ๊ธฐ ์ฉ์ดํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ถํ์ JAVA ํ์ผ์ ์์ ๋์ผ๋๋ค๋ฉด, Expo์ ๋ค๋ฅด๊ฒ ์ ์ด๊ฐ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋จ์ ์ ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ์ธ๋ฐ ์ ๊ทธ๋ฐ์ง ๋ด๊ฐ ๊ทผ 2์ผ๊ฐ ๊ฒช์ ์ํฉ์ ๋์ดํ๋ฉฐ ์ค๋ช
ํ๋๋ก ํ๊ฒ ๋ค.
์์ ๋งํ๋ฏ์ด React Native Cli๋ Android Studio์์ ์ค์ ์ 8ํ ์ด์ ๊ตฌ์ฑํด์ผ๋๋ค.
์์ธํ ๊ฐ๋ฐํ๊ฒฝ์ ์กฐ์ฑํ๋ ๊ฒ์ ์๋์ ์ธ๊ธ์ ํ์ฉํ๊ธธ ๋ฐ๋๋ค.
์ ๋ง ์ด๋ ค์์ ์ฌ๋ฌ ๋ธ๋ก๊ทธ, ์ง๋ฌธ๊ธ ๋ฑ์ ํ์ฉํ๊ธฐ์ ๋์กํ ์๋ ์๋ค.. ใ
๐ก์ฐธ๊ณ ํด๋ณด์ธ์
1. ๊ตญ๋ฐฅ : React Native ๊ณต์ ํํ์ด์ง
2. ๋ฐ์ฐฌ (๊น์น) : ์๋๋ก์ด๋ ์คํ๋์ค ๋ฐ ํ๊ฒฝ๋ณ์ ์ค์
3. ํ์ ๋ถ์ฌ๋ฃ (๋ค๋๊ธฐ ๊ฐ์ ์กด์ฌ) : Java 11 ๋ฒ์ ์ค์น
4. ๊ฐ์ด ๊ณ๋ค์ฌ ๋จน์ผ๋ฉด ์ ๋ง ๋์์ด ๋๋ ๋ธ๋ก๊ทธ
์๋จ์ ๊ธ๋ค์ ์ฐธ๊ณ ํ์ฌ react native cli๋ฅผ ์ค์น ํ, sdk (ํ์ฌ 13๋ฒ์ ผ์ ํฐ๋ผ๋ฏธ์) ๋ฐ ํ๊ฒฝ๋ณ์ ์ค์ ์ ๋ชจ๋ ๋ง์น๊ณ , npm run start
-> a
ํค๋ก ์๋๋ก์ด๋ ํ๊ฒฝ์ ์ด์ด์ฃผ์๋ค.
๊ทธ๋ฌ์ ๋น๋ ์๋ฌ๋ฅผ ๋ง์ฃผํ๊ฒ ๋๋๋ฐ..
BUILD FAILED in 3s
error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081
:ReactNative:Unexpected empty result of running '[node, C:\Users\๋ฒ๋ค?๏ฟฝ๏ฟฝ\Documents\Project\AwesomeProject\node_modules\@react-native-community\cli\build\bin.js, config]' command.
:ReactNative:Running '[node, C:\Users\๋ฒ๋ค?๏ฟฝ๏ฟฝ\Documents\Project\AwesomeProject\node_modules\@react-native-community\cli\build\bin.js, config]' command failed.
์ฒ์์ ์๋ฌ ๋ด์ฉ์ ๋ฌด์ธ๊ฐ Config ํ์ผ์ด ์๋ชป ๋์ด ๋น๋๊ฐ ์๋ ๊ฒ์ด๋ผ ์๊ฐํ์๋ค.
ํ์ง๋ง ์ฌ๋ฌ ๊ธ๋ค์ ๋น๊ตํด๋ณธ ๊ฒฐ๊ณผ, ๋ฐ๋ก npx react-native@latest init ํ๋ก์ ํธ๋ช
์ผ๋ก ๋ง๋ค์ด๋ธ ์งํ๋ผ์ ์์ธ์ด ์๋๊ฒ์ผ๋ก ํ๋ช
๋ฌ๋ค.
๊ทธ๋ฆฌ๊ณ ์์๋ธ ๋ค๋ฅธ ๊ฐ๋ฅ์ฑ์ ๋ฐ๋ก ํ๋ก์ ํธ ๊ฒฝ๋ก์ ํ๊ธ์ด ๋ค์ด๊ฐ ๊ฒ์ด๋ค.
๋ด ์๋์ฐ user name์ ํ๊ธ๋ก ๋์ด์์ผ๋ฉฐ, ํ๋ก์ ํธ๋ค์ ๋ด ๋ฌธ์์์ ๋ชจ์๋๊ณ ์์๊ธฐ์, ์ด ๊ฒฝ๋ก ๋ํ ํ๊ธ๋ก ๋ ์ด๋ฆ\document\projects
๋ก ์ด๋ฃจ์ด์ ธ ์์ ์ ๋ฐ์ ์๋ค.
React Native๋ฅผ ์คํํ ๋๋ ๊ฒฝ๋ก์ ํ๊ธ์ด ์์ผ๋ฉด ์๋๋ค๊ณ ํ๋ค. ๋ฐ๋ผ์ ๊ฒฝ๋ก๋ฅผ ๋ค์ ์ง์ ํ์ฌ ํ๋ก์ ํธ๋ฅผ ์ค์น ํ ์คํํ์๋๋, ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค.๐ค
๋ค์ ํด๋ผ์ด์ธํธ ์๋ฒ๋ฅผ ์คํํ๋ ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
FAILURE: Build failed with an exception.
* Where:
Build file 'D:\RN\android\app\build.gradle' line: 1
* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin 'com.android.internal.application'.
> Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
Your current JDK is located in C:\Program Files\Java\jdk1.8.0_211\jre
You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changing `org.gradle.java.home` in `gradle.properties`.
๋ฌธ์ ์ ์๋ฌ ์ฝ๋๋ ์ด๋ฌํ๋ค.
์ฒ์์ ๋๋ SDK๊ฐ ์ ์ธ์์ด ๋์ง ์์ ๋ฐ์ํ ๋ฌธ์ ๋ผ ์๊ฐํ๊ณ ๋ช ์๊ฐ์ ์ฝ์ง์ ํ๊ฒ ๋์๋๋ฐ..
์์์ฒ๋ผ Sdk๋ผ๋ ํด๋๋ ๋ฐ๋ก ์์ฑํด์ฃผ๊ณ ์ฌ๊ธฐ์ ํ๊ฒฝ ๋ณ์๋ ๋ค ์ฐ๊ฒฐํด์ฃผ๊ณ ์ด๋ฌ๋ค..
ํ์ง๋ง ํด๊ฒฐ์ ๋์ง ์์๊ณ , ํฐ๋ฏธ๋ ๋ก๊ทธ๋ฅผ ์์ธํ ๋์ดํด๋ณด๋ ์ด๋ฐ ๊ตฌ์ ์ ๋ณด๊ฒ๋์๋ค.
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
๐ ์๋ฐ ๋ฒ์ ์ด ๋ฎ์ผ๋ 11๋ก ์จ์ฃผ์ธ์~ ์ ๋ป์ด๊ฒ ์ง.
๊ทธ๋์ ์๋จ ์ธ์ฉ์์ ์ธ๊ธํ๋ ํ์ ๋ถ์ฌ๋ฃ (๋ค๋๊ธฐ ๊ฐ์ ์กด์ฌ) : Java 11 ๋ฒ์ ์ค์น ๋ฅผ ์ฐธ๊ณ ํ์ฌ JAVA 11์ ์ค์นํ์ฌ ๊ธฐ์กด JAVA๊ฐ ๋ชจ์ฌ์๋ ํด๋์ ์์น์์ผฐ๋ค.
๊ธฐ์กด JAVA ํด๋์์ ํ๊ฒฝ๋ณ์ ๋ฐ Path ์ค๊ณ๊ฐ ๋์ด์์ผ๋ฏ๋ก ๊ฐ์ ์์น์ ๋๋ฉด ํ๊ฒฝ๋ณ์๋ฅผ ํฌ๊ฒ ๊ฑด๋ค์ด์ง ์์๋ ๋์ ๊ทธ๋ ๊ฒ ํด๋จ๋ค.
ํฐ๋ฏธ๋์์ java -version
์ผ๋ก ์๋ฐ ๋ฒ์ ์ด 11๋ก ๋์ด์๋ ๊ฒ์ ํ์ธํ๊ณ ๋ค์ VSCode์์ ์๋ฒ๋ฅผ ์คํํ์๋ค.
๊ฒฐ๊ณผ๋ ์คํจ์๋ค.
์ฌ๊ธฐ ๋ธ๋ก๊ทธ๋ฅผ ํตํด์ jdk 11 ์ค์ ์ ์ถ๊ฐ๋ก Gradle์ ๋ฃ์ด์ค์ผํ๋ค๋ ๊ฒ์ ์์๋ด๊ณ ๋๊ฐ์ด ํ๋ ค๊ณ ํ์ผ๋...
์๋ค ๐คฏ
์์ ์๋ ์ฌ์ง์ด ๋ฌด์์ด ๋ค๋ฅผ๊น?
๊ฐ์ Settings ์์ Gradle projects ์์ JDK๋ฅผ ๋ฐ๋ก ์ง์ ํด์ค ์ ์๋ ์นธ์ด ์๋ค๋ ๊ฒ์ด๋ค.
๋ฌผ๋ก ๋ด ์๋๋ก์ด๋ ์คํ๋์ค๋ ์ต. ์ ๋ฒ์ ์์๋ ๋ถ๊ตฌํ๊ณ ๋ง์ด์ง.
๊ทธ๋ฐ๋ฐ ๋ ์๊ธด ๊ฒ์ ๊ฐ์๊ธฐ ๋๋ค?
์ ํํ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์๋ง ํ๊ฒฝ๋ณ์๊ฐ ์ ์ฉ๋๋๋ฐ ๊น์ง ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ฆฐ๊ฒ ์๋๊ฐ... ๋ผ๋ ์ถ์ธก์ ํด๋ณธ๋ค.
์ด์จ๋ ์ฑ๊ณต์ด๊ธด ํ์ง๋ง, ์ ๋๋์ง.. app/src/build.gradle
ํ์ผ์์ import com.android.build.OutputFile
๊ตฌ์ ์ unable to resolve class com.android.build.OutputFile
์ด๋ผ๋ ์๋ฌ๊ฐ ๋ฐ์ํ์์๋ ์ ์๋๋์ง๊ฐ ๊ถ๊ธํ๊ธด ํ๋ค.
ํ ์ผ์ด ์ง๊ธ ๋ง๊ธฐ์ ์ถํ์ ์๊ฒ๋๋ฉด ์ถ๊ฐ๋ก ๋ฌ์๋์ผ๋ ค๊ณ ํ๋ค.
reference:
https://reactnative.dev/docs/environment-setup?guide=quickstart