React๋ฅผ ๊ณต๋ถํ๋ค ๋ณด๋ฉด ์ด๋ ์๊ฐ,
โ์ด๊ฑธ๋ก ๋ชจ๋ฐ์ผ ์ฑ๋ ๋ง๋ค ์ ์์๊น?โ๋ผ๋ ์๊ฐ์ด ๋ ๋ค.
๊ทธ๋ ๋ฑ์ฅํ๋ ๊ธฐ์ ์ด ๋ฐ๋ก React Native๋ค.
React๋ก ๋ค์ดํฐ๋ธ ์ฑ(Android, iOS)์ ๋ง๋ค ์ ์๊ฒ ํด์ฃผ๋ ํ๋ ์์ํฌ๋ค.
๊ทผ๋ฐ ๋ง์ ์์ํ๋ ค๊ณ ๋ณด๋ฉด ๋ ๊ฐ์ง ๊ธธ์ด ๋์จ๋ค.
์ด๋ฒ ๊ธ์์๋ ๋ ๋ฐฉ์์ ์ฐจ์ด์
์ด๋ค ์ํฉ์์ ์ด๋ค ๋๊ตฌ๋ฅผ ์ ํํด์ผ ํ๋์ง,
๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์ ์คํ ๋ฐฉ๋ฒ๊น์ง ์ ๋ฆฌํด๋ดค๋ค.
React๋ฅผ ์ด์ฉํด iOS/Android ์ฑ์ ๋์์ ๊ฐ๋ฐํ ์ ์๋ ํ๋ ์์ํฌ
ํญ๋ชฉ | Expo | React Native CLI |
---|---|---|
์ค์ | ๋งค์ฐ ๊ฐ๋จ | ๋ณต์ก (Android/iOS ํ๊ฒฝ ์ง์ ์ธํ ) |
์คํ | ์น์ฒ๋ผ ๋ฐ๋ก ์คํ ๊ฐ๋ฅ (npx expo start ) | Android Studio / Xcode ํ์ |
๋น๋ | Expo ์๋ฒ์์ ๋น๋ ๊ฐ๋ฅ | ์ง์ ๋น๋ ์ค์ ํ์ |
๋ค์ดํฐ๋ธ ์ฝ๋ ์์ | โ ์ ๋จ (eject ํ์) | โ ์์ ๋กญ๊ฒ ๊ฐ๋ฅ |
์ฑ ํฌ๊ธฐ | ์ฝ๊ฐ ํผ | ์ต์ ํ ๊ฐ๋ฅ |
โ
๋น ๋ฅด๊ฒ ์ฑ์ ๋ง๋ค์ด๋ณด๊ณ ์ถ์ ๋
โ
๋์์ธ ์์ฃผ, ๊ธฐ๋ฅ์ด ๊ฐ๋ฒผ์ด ์ฑ
โ
ํ์์ด ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ ๊ฒฝํ์ด ์ ์ ๋
โ
Expo SDK ์์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ๋ง์ผ๋ก ์ถฉ๋ถํ ๋
โ
๋ค์ดํฐ๋ธ ๋ชจ๋์ ์ง์ ์ฐ๊ฒฐํด์ผ ํ ๋
โ
๊ธฐ์กด ์ฑ์ RN์ ๋ถ์ด๋ ค๋ ์ํฉ (Hybrid ์ฑ)
โ
Android/iOS ํ๋ซํผ์ ํนํ๋ ๊ธฐ๋ฅ์ด ํ์ํ ๋
โ
์ฑ ์ฌ์ด์ฆ, ์ฑ๋ฅ ์ต์ ํ๊ฐ ์ค์ํ ์ํฉ
npm install -g expo-cli
npx create-expo-app myApp
cd myApp
npx expo start
myApp/
โโโ App.tsx // ๋ฉ์ธ ์ปดํฌ๋ํธ
โโโ assets/ // ์ด๋ฏธ์ง, ํฐํธ ๋ฑ ์ ์ ์์ฐ
โโโ components/ // UI ์ปดํฌ๋ํธ
โโโ screens/ // ํ์ด์ง ๋จ์ ํ๋ฉด
โโโ app.json // ์ฑ ์ค์
<View>
, <Text>
, <ScrollView>
, <Button>
๋ฑ์ฒ์์ CLI๋ก ์์ํ๋ ค๋ค ์ค์น๋ถํฐ ๋๋ฌด ์ด๋ ต๊ณ ๋ณต์กํด์ ์ข์ ํ๋ค.
๊ทธ๋ฐ๋ฐ Expo๋ฅผ ์จ๋ณด๋ ๋ฐ๋ก ์ฑ ํ๋ฉด์ด ๋ณด์ด๊ณ
React ๊ฐ๋ฐ์๋ผ๋ฉด ์ต์ํ ๋ฐฉ์์ผ๋ก ๋น ๋ฅด๊ฒ MVP๋ฅผ ๋ง๋ค ์ ์๋ค๋ ์ ์ด ๋๋ฌด ์ข์๋ค.
๋์ค์ ๋ค์ดํฐ๋ธ ๊ธฐ๋ฅ์ด ํ์ํ ๋๋ eject๋ ๊ฐ๋ฅํ๋
์ผ๋จ์ Expo๋ก ์์ํ๋ ๊ฑธ ๊ฐ๋ ฅ ์ถ์ฒ!
๐ฆ โ๋ชจ๋ฐ์ผ ์ฑ๋ ์ด์ ๋ React์ฒ๋ผ ๊ฐ๋ฐํ์. ์์์ Expo๋ก!โ