
React Native๋ React.js์ Native ํ๋ซํผ์ ์ฐ๊ฒฐํ์ฌ ์ค์ ๋ค์ดํฐ๋ธ ๋ชจ๋ฐ์ผ ์ฑ(iOS, Android)์ ๋ง๋ค ์ ์๋๋ก ํด์ฃผ๋ ํ๋ ์์ํฌ์ ๋๋ค.
์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๋ง๋ค๊ธฐ ์ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
๋ณดํต ์น ๊ฐ๋ฐ์ ์ฌ์ฉ๋ฉ๋๋ค.
์น ์ง์์ react-dom์ด ์ถ๊ฐํด์ฃผ๋ ๊ธฐ๋ฅ์
๋๋ค.
๐ React ์์ฒด๋ ํ๋ซํผ์ ๊ตฌ์ ๋ฐ์ง ์๋(agnostic) ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ์ ์ํ React ์ปดํฌ๋ํธ ๋ชจ์์ ๋๋ค.
iOS๋ Android์์ ์ ๊ณตํ๋ ๊ธฐ๊ธฐ์ ๊ธฐ๋ฅ๋ค(์: ์นด๋ฉ๋ผ, ์์น ์ ๋ณด, ์ง๋ ๋ฑ)์ JavaScript ์ฝ๋๋ก ๋ค๋ฃฐ ์ ์๊ฒ ํด์ค๋๋ค.(๋ด๋ถ์ ์ผ๋ก๋ Java, Swift ์ฝ๋๋ ์ฐ๊ฒฐํด์ค์)
์ปดํฌ๋ํธ๋ค์ ๋ค์ดํฐ๋ธ ๋ชจ๋ฐ์ผ UI ์์๋ก ์ปดํ์ผ๋ฉ๋๋ค.
์ปดํฌ๋ํธ๋ค์ ์ค์ ๋ก๋ iOS์ Android๊ฐ ๊ฐ๊ฐ ์ ๊ณตํ๋ ๋ค์ดํฐ๋ธ UI๋ก ๋ฐ๋์ด ๋ ๋๋ง๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด,
<Text>Hello</Text>
๋ผ๊ณ ์์ฑํ๋ฉด, Android์์ TextView, iOS์์ UILabel๋ก ๋ฐ๋์ด ์ค์ ํ๋ฉด์ ๋ํ๋ฉ๋๋ค.
์ฆ, React ๋ฌธ๋ฒ์ผ๋ก ์ง์ง ๋ค์ดํฐ๋ธ ์ฑ์ ๋ง๋ค ์ ์๋ ๊ฒ์ด์ฃ .
๐ ์ฆ, React Native๋ react-dom๊ณผ ๋น์ทํ๊ฒ, ํน์ ํ๋ซํผ์ React๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ์ญํ ์ ํฉ๋๋ค.
React Native๋ฅผ ์ฌ์ฉํ๋ฉด, React์ ๋ฌธ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก iOS์ Android์์ ์คํ ๊ฐ๋ฅํ ์ง์ง ๋ค์ดํฐ๋ธ ์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค.
React Native์์ UI๋ ๋ค์ดํฐ๋ธ๋ก ์ปดํ์ผ๋์ง๋ง, ์ฐ๋ฆฌ๊ฐ ์์ฑํ๋ ๋ก์ง(Logic) ๋ถ๋ถ์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค.
React Native๋ ํฌ๊ฒ ๋ ์์ญ์ผ๋ก ๋๋ฉ๋๋ค:
| ์์ญ | ์ค๋ช |
|---|---|
| UI Elements | ํ๋ฉด์ ๋ณด์ด๋ ๋ฒํผ, ํ ์คํธ ๋ฑ UI ๊ตฌ์ฑ ์์๋ค |
| Logic | ์ด๋ฒคํธ ์ฒ๋ฆฌ, ์ํ ๊ด๋ฆฌ, API ํธ์ถ ๋ฑ ์ฐ๋ฆฌ๊ฐ ์์ฑํ๋ ์ฑ์ ๋์ ๋ ผ๋ฆฌ |
<View>, <Text>, <Button> ๋ฑ)์<Text> โ Android์์ TextView, iOS์์ UILabel๋ก ๋ณํ๋จ๐ ์ฆ, UI๋ ๋ค์ดํฐ๋ธ๋ก ์ปดํ์ผ๋์ง๋ง, ๋ก์ง์ ๊ทธ๋๋ก JS๋ก ์คํ๋ฉ๋๋ค.