Expo ์‹œ์ž‘ํ•˜๊ธฐ๐Ÿ“ฑ

Graceยท2020๋…„ 7์›” 9์ผ
2

React-Native

๋ชฉ๋ก ๋ณด๊ธฐ
1/7
post-thumbnail

expo ๋งˆ์ฃผํ•˜๊ธฐ

์•ฑ์— ๊ด€๋ จ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ๋„ํ•ด๋ณด๊ธฐ ์œ„ํ•ด ์‹œ์ž‘ํ•œ expo
๋…ธ๋งˆ๋“œ์ฝ”๋”์˜ ์˜์ƒ์„ ๋ณด๊ณ  ๋‚˜๋‹ˆ ๋ฐ”๋กœ ์ดํ•ด๊ฐ€ ๋ฌ๋‹ค.
์„ค์น˜ํ•˜๋Š”๋ฐ ์กฐ๊ธˆ ์• ๋ฅผ ๋จน์–ด์„œ,, ์ •๋ฆฌํ•ด๋‘๊ธฐ!

expo๊ฐ€ ๋ญ์•ผ?๐Ÿค”

๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด 2๊ฐ€์ง€ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ,

  • Expo CLI
  • React Native CLI

๊ทธ์ค‘ ๋‚ด๊ฐ€ ๋ฐฐ์šฐ๋ฉด์„œ ์‚ฌ์šฉํ•ด๋ณผ 'expo'๋ž€ ์‰ฝ๊ฒŒ ๋งํ•ด
๋ฆฌ์—‘ํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ํ•˜๋Š” ๊ฐœ๋ฐœ์„ Xcode๋‚˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ ๋„
์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

expo์˜ ์žฅ์ 

๋…ธ๋งˆ๋“œ์ฝ”๋”์˜ ์˜์ƒ์„ ๋ณด๋ฉด
expo๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋  ๋•Œ ๋Š๋ผ๋Š” ์žฅ์ ๋“ค์ด ๋ช‡๊ฐ€์ง€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

  • xcode๋‚˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋ฅผ ๋”ฐ๋กœ ๋ฐฐ์šฐ์ง€ ์•Š๊ณ  expo๋งŒ์œผ๋กœ๋„ ์•ฑ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅ. expo๊ฐ€ ์ด ๋‘๊ฐ€์ง€๋ณด๋‹ค ์ƒ์œ„๋ฒ„์ „ ์ด๊ธฐ์—, ๋‚ด๋ถ€์ ์œผ๋กœ ๋‘๊ฐ€์ง€์˜ ์ž‘์—…์„ ํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • ์–‘์ชฝ ์†Œํ”„ํŠธ์›จ์–ด(์•ˆ๋“œ๋กœ์ด๋“œ/ios)๋ฅผ ์˜คํ”ˆํ•  ํ•„์š”๋„, ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํ”Œ๋žซํผ๋“ค์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น  ํ•„์š”๋„ ์—†๋‹ค.
  • ์œˆ๋„์šฐ์—์„œ ios ์•ฑ์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ
    -> ์ด๋Š” ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„์—์„œ ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ@!
    ์•ฑ ํ•˜๋‚˜๋กœ ์–‘์ชฝ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋””๋ฐ”์ด์Šค์—์„œ ์‹คํ–‰์ด ๊ฐ€๋Šฅ
  • ' over the air updates ' : ์•ฑ์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์—…ํ•˜๊ณ , ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ๋•Œ ๋”ฐ๋กœ ์•ฑ์Šคํ† ์–ด์— ์Šน์ธ์„ ์š”์ฒญํ•  ํ•„์š”๊ฐ€ ์—†์Œ
    -> ๋ณดํ†ต ์•ฑ ๊ฐœ๋ฐœ ์‹œ์—๋Š” new๋ฒ„์ ผ์„ ๋งŒ๋“ค์–ด ์•ฑ์Šคํ† ์–ด์— ํผ๋ธ”๋ฆฌ์‰ฌ ํ•œ ํ›„, ์ธ์ฆ์„ ๋ฐ›๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•˜์ง€๋งŒ expo๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—” ์ƒ๋žต๋จ.
    ๋˜ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์—…๋˜์–ด ๋‚ด๋ถ€์ ์œผ๋กœ ์ž๋™ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ด๋ค„์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ณ  ์—๋Ÿฌ๋ฅผ ๊ณ ์น˜๋Š” ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Œ!

์•„์ง ๋‚ด๊ฐ€ ์ง์ ‘ ๊ฐœ๋ฐœ์„ ํ•ด๋ณด์ง€ ์•Š์•„์„œ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ๋“ค์€ ์•„๋‹ˆ์ง€๋งŒ
์ •๋ฆฌํ•ด๋‘๋ฉด ๋‚˜์ค‘์— ๋Š๋‚„ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ - ํ•ด์„œ ์ •๋ฆฌํ•ด ๋‘๊ธฐ...ใ…Žใ…Žใ…Ž

โš™๏ธ expo ์„ค์น˜ํ•˜๊ธฐ

expo ์„ค์น˜ ์‹œํ–‰์ฐฉ์˜ค

1. npm์„ ํ†ตํ•œ ์„ค์น˜

์šฐ์„  ์„ค์น˜๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฒ€์ƒ‰์„ ํ•˜๋‹ค๋ณด๋‹ˆ
$ npm install -g expo-cli๋กœ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•ด์„œ ๋”ฐ๋ผํ–ˆ๋Š”๋ฐ...
์„ค์น˜๊ฐ€ ๋˜๋Š”๋“ฏ ์‹ถ๋‹ค๊ฐ€ ์—๋Ÿฌโš ๏ธ๊ฐ€ ๋œจ๋Š”๊ฑฐ๋‹คใ… ใ… 

๋˜๋‹ค์‹œ ๋ฆฌ์„œ์น˜๋ฅผ ํ•˜๋‹ค๋ณด๋‹ˆ ๋ฌด์Šจ root ..๊ถŒํ•œ... ์–˜๊ธฐํ•˜๋ฉด์„œ node ์„ค์น˜๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ
ํ•ด์•ผ ํ•œ๋‹ค๊ณ ...?
ํ•˜์ง€๋งŒ Moon๊ณผ ์–˜๊ธฐํ•˜๋‹ค ๋ณด๋‹ˆ ๋‚˜๋Š” ์ด๋ฏธ yarn์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์„œ
๊ทธ๋ƒฅ add๋งŒ ํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค ;)

2. yarn์„ ํ†ตํ•œ ์ถ”๊ฐ€

$ yarn -global add expo-cli ๋ฅผ ํ†ตํ•ด์„œ ์ถ”๊ฐ€ ์™„๋ฃŒ!
๊ทธ๋‹ค์Œ ์ž‘์—…์œผ๋กœ๋Š”, ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•ด์„œ
$ expo init [ํ”„๋กœ์ ํŠธ ํŒŒ์ผ๋ช…] ์ž…๋ ฅํ–ˆ๋Š”๋ฐ ์™ ๊ฑธ?

node ๋ฒ„์ „์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๊ฒƒ ๊ฐ™์•˜๋‹ค.
์•„์ง ๋ชจ๋“ ๊ฒŒ ๋‚ฏ์„ค๊ณ  ์–ด๋ ค์šด ๋‚˜๋Š” ์šฐ์„  ์ œ๋Œ€๋กœ ์„ค์น˜๋ฅผ ๋๋‚ธ moon๊ณผ ๋น„๊ตํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
๋ฒ„์ „์„ ๋ฌผ์–ด๋ดค๋”๋‹ˆ ๋‚˜๋ณด๋‹ค ์ƒ์œ„๋ฒ„์ „์˜ npm์—์„œ ์„ค์น˜ํ•œ ๊ฒƒ ๊ฐ™์•˜๋‹ค.
๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—” npm ์ตœ์‹ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๊ธฐ..!

  1. $ sudo npm cache clean -f : ๊ฐ•์ œ์บ์‹œ์‚ญ์ œ ์ž‘์—…
  2. $ sudo npm install -g n : n ๋ชจ๋“ˆ ์„ค์น˜ ์ž‘์—…
  3. $ sudo n stable or $ sudo n (๋ฒ„์ „๋ช…) : ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์„ค์น˜
  4. $ node -v : ๋ฒ„์ „ ํ™•์ธ

๋‚˜๋Š” $ sudo n stable๋ฅผ ์ž…๋ ฅํ•ด์„œ ๋ฒ„์ „์„ ๋ฐ”๊ฟจ๋Š”๋ฐ
์•„๋ฌด๋ž˜๋„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™์ง€๋งŒ...? $ expo init ์ž‘์—…์€ ์ œ๋Œ€๋กœ ๋ฌ๋‹ค :)

init์ž‘์—…์„ ๋๋‚ด๋ฉด template์„ ๊ณ ๋ฅด๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋œฌ๋‹ค.
๋งจ ์ƒ๋‹จ์— ์žˆ๋Š” blank๋ฅผ ์„ ํƒํ•ด์„œ ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด

์„ค์น˜ ๋“œ๋””์–ด ์™„๋ฃŒ ๐Ÿ˜

โš™๏ธ expo ์‹คํ–‰ํ•˜๊ธฐ

๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ ๊ธ€๋“ค์„ ์ฐธ๊ณ ํ–ˆ๋Š”๋ฐ๋„
์™œ๊ทธ๋ฆฌ ๋จธ๋ฆฌ์— ์ •๋ฆฌ๊ฐ€ ์•ˆ๋˜๋Š”์ง€... ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹
๊ทธ๋ž˜์„œ ๊ณ„์† '์—ฅ ์™œ์•ˆ๋ผ? ๋ญ๋ฅผ ์•ˆํ–ˆ๋‚˜?'๋ผ๋Š” ๋ง์„ ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.
๊ทธ๋ž˜์„œ ์ •๋ฆฌํ•ด๋‘๊ธฐ...

  1. ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ์ ํŠธ์—์„œ $ yarn start๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ทธ๋™์•ˆ ์ž‘์—…ํ•˜๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ ์›นํŽ˜์ด์ง€๊ฐ€ ๋œจ๋Š”๋ฐ, expo dev tool ์ฐฝ์ด๋‹ค.
  2. ์ด์™€ ๋™์‹œ์— ๋ชจ๋ฐ”์ผ(๋‚ด ๊ฒฝ์šฐ์—๋Š” ios) ์•ฑ์Šคํ† ์–ด๋ฅผ ํ†ตํ•ด 'expo' ์–ดํ”Œ์„ ์„ค์น˜ํ•œ๋‹ค.
  3. expo์—์„œ ์ƒˆ๋กœ ๊ณ„์ •์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋•Œ vs code๋‚ด์˜ ํ„ฐ๋ฏธ๋„์—์„œ
    $ expo login์„ ํ†ตํ•ด ๋กœ๊ทธ์ธ์„ ํ•ด์•ผ ํ•œ๋‹ค. ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” expo ์›นํŽ˜์ด์ง€์—์„œ ๊ณ„์ •์„ ๋งŒ๋“ค์—ˆ๋‹ค.
  4. ๋งŒ๋“  ๊ณ„์ •์œผ๋กœ ๋ชจ๋ฐ”์ผ์— ๋กœ๊ทธ์ธ์„ ํ•˜๊ณ , vs code ํ„ฐ๋ฏธ๋„์—์„œ login ์ž‘์—…์„ ๋งˆ์น˜๋ฉด ์‹คํ–‰ํ•˜๊ธฐ ์ „ ๋ฒ ์ด์Šค ์ž‘์—… ์™„๋ฃŒ!

vs code๋กœ ๊ฐ€๋ณด๋ฉด

์ด๋Ÿฐ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ, ์ € <Text>ํƒœ๊ทธ์˜ ๋‚ด์šฉ์ด ์‹ค์ œ๋กœ ๊ตฌํ˜„๋˜๋Š” ๊ฒƒ์ด๋‹ค.
์ด์ œ test๋ฅผ ์œ„ํ•ด ๋‚ด์šฉ์„ ๋ฐ”๊ฟ”์„œ ๋กœ๊ทธ์ธ๋œ ๋ชจ๋ฐ”์ผ์„ ํ™•์ธํ•ด๋ณด๋ฉด

๐Ÿ“Œ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค

profile
์‰ฝ๊ฒŒ ์‚ฌ๋Š”๊ฑด ์žฌ๋ฏธ๊ฐ€ ์—†๋”๊ตฐ์š”, ์ƒˆ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค๐Ÿค“

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

comment-user-thumbnail
2020๋…„ 9์›” 12์ผ

์ž˜ ์ฝ๊ณ ๊ฐ‘๋‹ˆ๋‹ค~

1๊ฐœ์˜ ๋‹ต๊ธ€