*์ทจ์ค์ ๊ด์ ์์ ์์ฑ๋ ๊ธ์ ๋๋ค
์ด๋ฒ์ ์๋ก์ด ํ๋ก์ ํธ์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๋ด๋น์ผ๋ก ํฉ๋ฅํ๊ฒ ๋์๋ค. ๊ทธ ๊ณผ์ ์์ ์ค๋กฏ์ด ๋ด๊ฐ ๊ธฐ์ ์คํ์ ๊ฒฐ์ ํด์ผ ํ๋ ์ผ์ด ์๊ฒจ์, ํ์ํ ๊ธฐ์ ์คํ ํ๋ณด๋ฅผ ์ง์ ์กฐ์ฌํด๋ณด๊ณ , ์ ์ ํ ํ ๊ฒฐ๋ก ์ ์ผ๋ก ์ ํด๋น ๊ธฐ์ ์คํ์ ์ ์ ํ๋์ง๋ฅผ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.
์ด๋ค ๋ฒ์ฃผ์ ๊ธฐ์ ์คํ์ด ํ์ํ๊ฐ?
์ด๋ฒ ํ๋ก์ ํธ๋ ํฌ๋ก์คํ๋ซํผ ์ฑ์ ๋ชฉํ๋ก ํ๋ฉฐ ์ผ๋ถ ์ธ๋ถ API ์ฌ์ฉ์ด ํ์์ ์ธ ํ๊ฒฝ์์ ๊ฐ๋ฐ์ด ์ด๋ค์ง๋ค. ๋ํ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ธ.. ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ฃผ๋ก ๋ด๋นํ๊ฒ ๋ ๋๋, React์ ๊ฐ์ฅ ์ต์ํ๋ค. ์ด๋ฌํ ์กฐ๊ฑด์ ์ข ํฉ์ ์ผ๋ก ๊ณ ๋ คํด, ์ ์ฒด ์ฑ์ ํฌ๋ก์คํ๋ซํผ ๊ฐ๋ฐ ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ๋, ์ผ๋ถ ํ๋ฉด์ WebView๋ฅผ ํตํด ์น ๊ธฐ์ ๋ก ๊ตฌ์ถํ๋ ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ์์ ๋ณํํ๋ ์ ๋ต์ ๊ตฌ์ํ๋ค.
๋ฐ๋ผ์ ์๋์ ๊ฐ์ ๊ธฐ์ ์คํ ๋ฒ์ฃผ๋ฅผ ์ถ๋ ค๋๋ค.
- ์ฑ ๊ฐ๋ฐ ํ๋ซํผ / ํ๋ ์์ํฌ : ํฌ๋ก์ค ํ๋ซํผ ๊ธฐ๋ฐ์ผ๋ก ์ฑ์ ๊ฐ๋ฐํ ์ ์๋ ๊ธฐ์
- ์น ํ๋ ์์ํฌ(WebView ๋์) : WebView์ ์ฝ์ ๋ ์น ์ฝํ ์ธ ๋ฅผ ์ ์ํ๊ธฐ ์ํ ์น ํ๋ก ํธ ๊ธฐ์
- ์ธ์ด : ์ผ๊ด๋ ์ฝ๋ ์์ฑ์ ์ํด ์ฌ์ฉ๋ ์ธ์ด
- ์ํ ๊ด๋ฆฌ ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ: ํด๋ผ์ด์ธํธ ์ํ ๋ฐ ์๋ฒ ์ํ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๋๊ตฌ
- UI ์ปดํฌ๋ํธ ๋ฐ ์คํ์ผ๋ง ๋๊ตฌ : ์ฑ ๋ฐ ์น ํ๊ฒฝ์์ UI๋ฅผ ์ผ๊ด๋๊ฒ ๊ตฌ์ฑํ๊ธฐ ์ํ ๋๊ตฌ
- ๋ผ์ฐํ /๋ด๋น๊ฒ์ด์ ์์คํ : ์ฑ ๋ฐ ์น ๋ด ํ์ด์ง ๊ฐ ์ ํ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ผ์ฐํ ๋๊ตฌ
- ์ฝ๋ ํ์ง ๋ฐ ์ผ๊ด์ฑ ๋๊ตฌ : ์ฝ๋ ์คํ์ผ์ ํต์ผํ๊ณ ์ ์ฌ์ ์ค๋ฅ๋ฅผ ์๋ฐฉํ๊ธฐ ์ํ ์ ์ ๋ถ์ ๋๊ตฌ
- ํ ์คํธ ๋ฐ ๋ฌธ์ํ ๋๊ตฌ : ๊ธฐ๋ฅ ํ ์คํธ์ UI ๋ฌธ์ํ๋ฅผ ํตํด ์์ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ด๋ ๋๊ตฌ
์ฑ ๊ฐ๋ฐ ํ๋ซํผ / ํ๋ ์์ํฌ
ํฌ๋ก์ค ํ๋ซํผ ์ฑ ๊ฐ๋ฐ์ ์ํด ๋ํ์ ์ผ๋ก React Native์ Flutter๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ฌ์ ํ ๋ ์ค ๋ญ๊ฐ ๋ซ๋๋ ์๊ฒฌ์ด ๋งค์ฐ ๋ถ๋ถํ๋ฏ ํ๋ค. ์ค์ ๋ก๋ ๋ ๊ธฐ์ ์ ์คํ์ค๋ฒํ๋ก์ฐ์ ์ ๋ฌธ ๊ฐ๋ฐ์ ๋์ ์กฐ์ฌ ๊ฒฐ๊ณผ์์๋ ๊ทผ์ํ ์ฐจ์ด์ ์ ์ ์จ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ์ด๋ ํ์ชฝ์ด ๋งค์ฐ ์ฐ์ธํ๋ค/์ ๋ฆฌํ๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ฆด ์ ์์ ๊ฒ ๊ฐ๋ค.
ํ์ง๋ง ๋๋ ์๋ก ํ๋ฏ์ด React์ ์ต์ํ๊ธฐ ๋๋ฌธ์ + React Native๋ฅผ ์ฌ์ฉํด๋ณธ ๊ฒฝํ์ด ์๊ธฐ ๋๋ฌธ์ ํฐ ๊ณ ๋ฏผ์์ด โ React Native๋ฅผ ์ ํํ๋ค. ๋น์ฅ ํ๋ก์ ํธ๋ฅผ ์์ํด์ผํ ๋ ์ ํด๋ณด์ง ๋ชปํ ๊ธฐ์ ์ ๋์ ํ๊ณ , ์กฐ๊ธ์ด๋ผ๋ ๋ ๋์ ๊ธฐ์ ์ ์ ํํ๋ ๊ฒ๋ ๋์์ง ์๊ฒ ์ง๋ง ๊ฐ๋ฐ์์ ์๋ จ๋ ๋ํ ๊ฐ์ฅ ์ค์ํ ํ๋จ ๊ธฐ์ค์ด๋ผ๊ณ ์๊ฐํ๋ค.
React Native CLI vs Expo
React Native๋ ํฌ๊ฒ React Native CLI์ Expo์ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐํ ์ ์๋ค.
- React Native CLI๋ ๋ชจ๋ ๋ค์ดํฐ๋ธ ๊ธฐ๋ฅ์ ์ง์ ๊ตฌ์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์์ด ๊ณ ๋์ ์ปค์คํฐ ๋ง์ด์ง์ด ๊ฐ๋ฅํ ๋ฐฉ์์ด๋ค.
- Expo๋ ์ค์ ์์ด ๋น ๋ฅด๊ฒ ์ฑ์ ๊ฐ๋ฐํ ์ ์๋ ํ๋ ์์ํฌ๋ค. ๋ค๋ง, Expo์ ๊ฒฝ์ฐ ๋ชจ๋ ๋ค์ดํฐ๋ธ ๊ธฐ๋ฅ์ ์์ ๋กญ๊ฒ ์ฌ์ฉํ๊ธฐ์ ์ ํ์ ์ผ ์ ์๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ๋๋ โ Expo๋ฅผ ์ ํํ๋ค. ๋ค์ดํฐ๋ธ ๊ธฐ์ ์ ์ผ๋ง๋ ์ฌ์ฉํ๊ฒ ๋ ์ง ์์ง ์ ๋ชฐ๋ผ์ ์๋ ์ ์์ฑ๋ ๋น๊ต๊ธ์ ์ฐพ์๋ณด๋ฉฐ ๊ณ ๋ฏผ์ด ๋ง์๋๋ฐ, React Native์ ๊ณต์ ๋ฌธ์์ 0.74๋ฒ์ ์์๋ถํฐ ์์ Expo๋ฅผ ๊ถ์ฅํ๊ณ ์๋ค๋ ๊ฒ์ ํ์ธํ๊ณ ๊ณ ๋ฏผ์ ์ค์ผ ์ ์์๋ค. ๋ํ ํฅํ ๋ณต์กํ ๋ค์ดํฐ๋ธ ๊ธฐ๋ฅ์ด ํ์ํ๋ค๋ฉด eject๋ฅผ ๊ณ ๋ คํด๋ณผ ์ฌ์ง๋ ์๊ธฐ ๋๋ฌธ์ ๋น์ฅ์ Expo๋ฅผ ์ ํํ์ฌ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ๊ฐ๋ฐํ๋ ๊ฒ์ด ์ ํฉํ ์ ํ์ด๋ผ ์๊ฐํ๋ค.
์น ํ๋ ์์ํฌ
WebView์ ๋์ํ๊ธฐ ์ํ ๊ธฐ์ ๋ก๋ React, Next.js, Vue.js(+ Nuxt.js)๋ฅผ ์๊ฐํด๋ณผ ์ ์๋ค.
์ฑ์ React Native ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐํ ์์ ์ด๊ธฐ ๋๋ฌธ์, ์น ์ญ์ React ์ํ๊ณ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด ์์ฐ์ค๋ฌ์ด ์ ํ์ด์๋ค. ์ด์ ๋ฐ๋ผ React ๊ธฐ๋ฐ์ ์น ํ๋ ์์ํฌ์ธ Next.js๋ฅผ ๋์ ํ ๊ฒ์ธ์ง๋ฅผ ๊ณ ๋ฏผํด๋ด์ผ ํ๋ค. ์ต๊ทผ Next.js๋ฅผ ํ์ตํ๋ฉด์, ํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํ , ์ ์ /๋์ ํผํฉ ์ง์, ์์ฌ์ด ์ฑ๋ฅ ์ต์ ํ ๋ฑ Next.js๊ฐ ๊ฐ๋ ๋ค์ํ ์ฅ์ ์ ์ฒด๊ฐํ ์ ์์๊ณ , ์ด๋ฒ ํ๋ก์ ํธ์์๋ ์ ์ฉํ๊ฒ ์ ์ฉํ ์ ์์ ๊ฒ์ด๋ผ ํ๋จํ๋ค. ๋ฐ๋ผ์ WebView์ ์ฝ์ ๋ ์น ์ฝํ ์ธ ๋ โ Next.js๋ก ๊ฐ๋ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
์ธ์ด
์ธ์ด๋ โ TypeScript๋ฅผ ์ฌ์ฉํ๋ค. JavaScript๋ก ๊ฐ๋ฐํ ๋๋ ๋ฐํ์์์์ผ ๋๋ฌ๋๋ ์์์น ๋ชปํ ์ค๋ฅ๊ฐ ์ข ์ข ๋ฐ์ํ๋ค. ๋ฐ๋ฉด, TypeScript๋ ์ปดํ์ผ ๋จ๊ณ์์ ํ์ ์ค๋ฅ๋ฅผ ์ฌ์ ์ ํ์ธํ ์ ์์ด ์์ ์ ์ธ ์ฝ๋ ์์ฑ์ ๋์์ค๋ค. ํนํ ์ด๋ฒ ํ๋ก์ ํธ๊ฐ ๊ฒฐ์ฝ ์์ ๊ท๋ชจ๋ ์๋๊ธฐ ๋๋ฌธ์ ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ด ๋์ฑ ํฌ๊ฒ ์์ฉํ ๊ฒ์ด๋ผ๊ณ ํ๋จํ๋ค.
์ํ ๊ด๋ฆฌ ๋ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
ํญ์ ๊ณ ๋ฏผ์ด ๋ง์ ์์ญ ์ค ํ๋๊ฐ ๋ฐ๋ก ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
Redux, Recoil, Zustand, Jotai, MobX ๋ฑ๋ฑ.. ์ ํ์ง๊ฐ ๊ฝค๋ ๋ง๊ณ , ํ์ฌ๋ค์ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ๋ด๋ ๊ฐ ํ์ฌ๋ง๋ค ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๊ฐ๊ฐ์ด๋ผ ํ๋ก์ ํธ์์๋ ์ด๋ค ๊ฑธ ์ ํํด์ผํ ์ง ๊ธฐ์ค์ ์ก๊ธฐ ์ด๋ ค์ ๋ค.
๋๋ Redux๋ฅผ ์ฒ์ ์ ํ์ ๋ ๋๊ผ๋ ๋ณต์กํ ์ฌ์ฉ ๋ฐฉ์๊ณผ ๋์ ๋ฌ๋ ์ปค๋ธ๋ฅผ ๊ณ๊ธฐ๋ก, ์ดํ ํ๋ก์ ํธ์์๋ '๊ฐ๋ณ๊ณ ์ง๊ด์ ์ธ ์ฌ์ฉ์ฑ'๋ฅผ ๊ธฐ์ค์ผ๋ก Zustand๋ฅผ ์ ํํด์๋ค. ์ค์ ๋ก๋ ์ด ๊ฐ๋ฒผ์๊ณผ ๊ฐํธํจ์ ํ๋ก์ ํธ ์งํ ์ ๊ฝค ๋ง์กฑ์ค๋ฌ์ ๋ค.
์ด๋ฒ ํ๋ก์ ํธ์์๋ ์ข ๋ ์ ์คํ๊ฒ ์ ๊ทผํด๋ณด๊ณ ์ ํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๋ฌด๊ฑฐ์ด redux์ ๋ณด์ผ๋ฌํ๋ ์ดํธ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ Redux Toolkit๊ณผ, zustand๋ฅผ ํ๋ณด๋ก ์ฌ๋ฆฌ๊ฒ ๋์๋ค. ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ต์ ์ ๋ฐ์ดํธ์ ๋ถ์ฌ๋, ํ์ต ๋ฆฌ์์ค ๋ถ์กฑ ๋ฑ์ ์ด์ ๋ก ํ๋ณด์์ ์ ์ธํ๋ค.
- Redux Toolkit์ Redux ๊ธฐ๋ฐ์ ๋์ ์์ ์ฑ๊ณผ ํ์ฅ์ฑ์ ๋ณด์ ํ๊ณ ์๊ณ , ๋ณต์กํ ์ํ ๊ด๋ฆฌ์ ์ ํฉํ๋ฉฐ, RTK Query๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ์ํ๋ ๊ฐ๊ฒฐํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค๋ ์ ์์ ๋งค๋ ฅ์ ์ด์๋ค. ํ์ง๋ง ์ฌ์ ํ ๋ณด์ผ๋ฌํ๋ ์ดํธ ์์ด ๋ง์ ํธ์ด๊ณ ๋ฌ๋ ์ปค๋ธ๊ฐ ์๋ ํธ์ด์๋ค.
- Zustand๋ ๋งค์ฐ ๊ฐ๋ฒผ์ฐ๋ฉฐ ์ฌ์ฉ๋ฒ๋ ๊ฐ๋จํ๋ค. ์ฆ, ์ง์ ์ฅ๋ฒฝ์ด ๋ฎ๋ค. ํ์ง๋ง ์ํ ๊ตฌ์กฐ๊ฐ ๋ณต์กํด์ง์๋ก ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง ์ ์๋ค๋ ๋จ์ ์ด ์์๊ณ , ์๋ฒ ์ํ ๊ด๋ฆฌ์๋ ์ ํฉํ์ง ์๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ ๋๊ตฌ๊ฐ ํ์ํ๋ค.
๊ทธ ๋ฐ์๋ ์ฌ๋ฌ๊ฐ์ง ๋ฌธ์๋ ๋น๊ต๊ธ์ ์ฐพ์๋ดค์ง๋ง, ๊ฒฐ์ ์ ์ธ ์ฐ์ด์ ๊ฐ๋ฆฌ๊ธฐ์๋ ํ๊ณ๊ฐ ์์๋ค. ๊ทธ๋์ npm trends์์ ๋ ํจํค์ง์ ๋ค์ด๋ก๋ ์๋ฅผ ๋น๊ตํด๋ณด์๋ค. ๊ฒฐ๊ณผ๋ ๋๋๊ฒ๋.. ์๋ ์ค์ ์ดํ๋ถํฐ Zustand๊ฐ Redux Toolkit์ ๋ค์ด๋ก๋ ์๋ฅผ ์์๋๋ ์ง๊ธ์ ๊ฒฉ์ฐจ๊ฐ ๊ฝค๋ ๋ฒ์ด์ง ๋ชจ์ต์ด๋ค. ๋ถ๋ช ๋ด๊ฐ ๋ง์ง๋ง์ผ๋ก ์ฐพ์๋ดค์ ๋ ์ฌ์ ํ redux-toolkit์ด ์์๊ณ ์์๋๋ฐ..!
๋ฌผ๋ก ๋ค์ด๋ก๋์๊ฐ ๋๋ค๊ณ '์ข์' ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ฑฐ๋, ๋ด ํ๋ก์ ํธ์ ์ ํฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๋ ๊ฒ์ ์๋๋ค. ํ์ง๋ง ์ ํ์ ์ฐธ๊ณ ํ ์ ์๋ ์งํ๋ก๋ ์ถฉ๋ถํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํ๋ค. ๊ฒ๋ค๊ฐ ํ์ชฝ์ด ๋ค์ณ์ง๋ค๊ฐ ์์ง๋ฅธ ์ํฉ์ด๋ผ๋ฉด? ๊ทธ ํ๋ฆ์ ๋ถ๋ช ์ด์ ๊ฐ ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ์ด๋ฒ ํ๋ก์ ํธ์์๋ โ Zustand๋ฅผ ํด๋ผ์ด์ธํธ ์ํ ๊ด๋ฆฌ์ ์ฌ์ฉํ๊ณ , ์๋ฒ ์ํ๋ โ TanStack Query๋ก ๋ถ๋ฆฌํ์ฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ๊ฒฐ์ ํ๋ค.
๋ํ React Native์์ ์๋ฒ์ ๋น๋๊ธฐ ํต์ ์ ์ํด์๋ โ Axios๋ฅผ ์ฌ์ฉํ๋ฉฐ, Next.js์์๋ Next.js์์ ์ ๊ณตํ๋ ๋ด์ฅ fetch ํจ์๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ์์ ์ด๋ค.
UI ์ปดํฌ๋ํธ ๋ฐ ์คํ์ผ๋ง ๋๊ตฌ
React(Next.js) ๊ธฐ์ค์ผ๋ก ์คํ์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ CSS-in-JS ๋ฐฉ์์ ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Styled Component, Emotion์, Atomic CSS ๋ฐฉ์์ Tailwind CSS๋ฅผ ๊ณ ๋ คํด๋ณผ ์ ์๋ค. ์๋๋ฉด ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์์ผ๋ก CSS Modules๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ ํ๋์ ์ ํ์ง๊ฐ ๋ ์ ์๋ค.
์ฐ์ Styled Component๋ 2025๋ 3์ 18์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ์ด์ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ํ์ง ์๋๋ค๊ณ ๋ฐํํ๋ค. ๋ฒ๊ทธ ์์ ์ด๋ ๊ธฐ๋ฅ ์ ์ง ๋ณด์๋ ์ด์ด๊ฐ๊ฒ ๋ค๊ณ ํ์ง๋ง, ๊ตณ์ด ์ง๊ธ ์์ ์์ Styled Components๋ฅผ ๋์ ํ ํ์๋ ์์ด๋ณด์ธ๋ค.(๊ธฐ๋ฅ๊ฐ๋ฐ ์ค๋จ ๊ธ์์๋ ์ฌ์ฉํ์ง ์๋๊ฒ ์ข๋ค๊ณ ๋งํ๊ณ ์๋ค..)
์ต๊ทผ ๋ด๊ฐ ํ๋ก์ ํธ์ ์ฃผ๋ก ์ฌ์ฉํ ๊ฒ์ Tailwind CSS์ธ๋ฐ, ์๋ ค์ ธ์๋ค์ํผ ๋งค์ฐ ํธ๋ถํธ๊ฐ ๊ฐ๋ฆฐ๋ค. ๋๋ ๋ฏธ๋ฆฌ ์ ์๋ ํด๋์ค๋ช ์ ํ์ฉํด ๊ฐ๋จํ๊ฒ ์คํ์ผ์ ์ ํ ์ ์๋์ , ์์ ํ๋ํ๋์ ํด๋์ค๋ช ์ ๊ณ ๋ฏผํ์ง ์์๋ ๋๋ค๋์ , ๋ ๋ณต์กํ CSS ์ ํ์๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๋ค๋ ์ ์ Tailwind CSS์ ํฐ ์ฅ์ ์ผ๋ก ๊ผฝ์ผ๋ฉฐ, ๊ทธ ์ด์ ๋ก Tailwind CSS๋ฅผ ์ ํธํด์๋ค.
ํ์ง๋ง ํํ๋ก์ ํธ์์ ๋ง์ฝ ํ์๋ค์ด ๋ด ์ฝ๋๋ฅผ ์์ ํ๊ฑฐ๋ ํจ๊ป ๊ฐ๋ฐํ๊ฒ ๋ ๊ฒฝ์ฐ, Tailwind CSS์ ์ต์ํ์ง ์๋ค๋ฉด ๊ทธ๊ฑด ๊ทธ๊ฑฐ๋๋ก ๋งค์ฐ ๊ณค๋ํ ๋ฌธ์ ๊ฐ ๋๋ค..
์ ์ฝ๋๋ ์ต๊ทผ ๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ๋ฐ ์ค์ธ ํ๋ก์ ํธ์์ ํน์ ์์๋ฅผ TailwindCSS๋ก ์คํ์ผ๋งํ ๋ถ๋ถ์ธ๋ฐ ๊ฝค๋ ๋์กํด ๋ณด์ด๊ธด ํ๋ค. (์ฐธ๊ณ ๋ก ์ ์ฝ๋๋ ์ ๋ ฌ ์ ์ํ์ด๊ธด ํ๋ค)
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ด๋ฒ ํ๋ก์ ํธ์ โ Tailwind CSS๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ๋ค. ์์ ๋งํ๋ฏ, Tailwind CSS์ ์์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ ๋ชธ์ ๊ฒช์ด๋ณด๊ธฐ๋ ํ๊ณ , ์ ์ ์ฌ์ฉ์๊ฐ ๋์ด๋๋ ๋งํผ ์ ์ฉํ ๋๊ตฌ์ ํ๋ฌ๊ทธ์ธ๋ ์ ๊ฐ์ถฐ์ ธ ์์ด ๋ฌ๋์ปค๋ธ๋ ๋ฎ์ถฐ์ค ์ ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฐธ๊ณ ๋ก ์ต๊ทผ Tailwind CSS์ v4 ๋ฒ์ ์ด ์ถ์๋๋ฉด์ ๋ง์ ๊ฐ์ ์ด ์์์ผ๋ ๋งค์ฐ ์ต๊ทผ์ ์ผ์ด๋ ๋ฉ์ด์ ๋ฒ์ ์ ๋ฐ์ดํธ์ด๋ฏ๋ก ์ด๋ฅผ React Native์์ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ด v3๋ฅผ ์ฌ์ฉํ ์์ ์ด๋ค๐คง
npm trends์์ emotion๊ณผ Tailwind CSS์ ์ต๊ทผ 2๋ ๊ฐ ๋ค์ด๋ก๋ ์ถ์ด๋ฅผ ๋น๊ตํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
๋ํ ์น๊ณผ ๋ชจ๋ฐ์ผ ๊ฐ ์คํ์ผ๋ง ๋ฐฉ์์ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๊ฒ์ด ํ์ ๊ณผ ์ ์ง๋ณด์ ์ธก๋ฉด์์ ์ค์ํ๋ค๊ณ ํ๋จํ๋ค. ๋ฐ๋ผ์ React Native ๊ฐ๋ฐ ํ๊ฒฝ์์๋ โ NativeWind๋ฅผ ์ฌ์ฉํ์ฌ TailwindCSS ๊ธฐ๋ฐ ์คํ์ผ๋ง ๋ฐฉ์์ ์ ์งํ๊ณ ์ ํ๋ค.
๋ผ์ฐํ / ๋ด๋น๊ฒ์ด์ ์์คํ
Next.js๋ v13๋ถํฐ ํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํ ์์คํ ์ธ App Router๋ฅผ ๋์ ํ๋ค. React Native ์ญ์ Expo๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ฐ๋ค, ํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํ ๋ฐฉ์์ ์ผ๊ด๋๊ฒ ๊ฐ์ ธ๊ฐ๊ธฐ ์ํด ๋ณ๋๋ก React Navigation ๋ฑ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , โ Expo Router๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ๋ค. Expo์ ๊ณต์ ๋ฌธ์์์๋ ์ด๋ฅผ ๊ถ์ฅํ๊ณ ์๋ค.
๊ธฐํ ๋๊ตฌ
๊ทธ ๋ฐ์ ์ฝ๋ ํ์ง ๋ฐ ์ผ๊ด์ฑ์ ์ํด ESLint, Prettier๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฐ๋ฅํ๋ค๋ฉด Jest, Testing Library, Playwright ๋ฑ์ ํ ์คํธ ๋๊ตฌ ๋์ ์ ๊ณ ๋ คํด๋ณผ ์์ ์ด๋ค.
๋ง๋ฌด๋ฆฌํ๋ฉฐ
๊ธฐ์ ์คํ์ ์กฐ์ฌํ๋ ๊ณผ์ ์์ ํ๋ก ํธ์๋์ ์ธ๊ณ, ์๋ ๊ฐ๋ฐ์ ์ธ๊ณ๋ ์ ๋ง ๋ฌด๊ถ๋ฌด์งํ๋ค๋ ๊ฑธ ์์ผ ๋๊ผ๋ค. ์์ง ํ๋ก์ ํธ์ ๊ธฐํ์ด ๊ตฌ์ฒดํ๋๊ธฐ ์ ์ธ๋ฐ๋ค, ๋ ๋ํ ๋ชจ๋ ๋ฐฐ๊ฒฝ ์ง์์ ์ถฉ๋ถํ ๊ฐ์ถ ๊ฒ์ ์๋์ง๋ง, ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ค์ค๋ก ํ๋จํด ์คํ์ ๊ณ ๋ฅด๊ณ ํ๊ฒฝ์ ๊ตฌ์ฑํด๋ณด๋ ๊ฒฝํ ์์ฒด๊ฐ ํฐ ์๋ฏธ๋ผ๊ณ ์๊ฐํ๋ค.
์ด์จ๋ ์ด๋ฐ ์ํฉ์ด๊ธฐ ๋๋ฌธ์ ๋ถ๋ช ๋น์ฅ ์ด ๊ธฐ์ ์คํ๋๋ก ํ๋ก์ ํธ๋ฅผ ์ธํ ํ๋ ๊ฒ๋ถํฐ ์ํ์ฐฉ์ค๊ฐ ์์ ํ ์ง๋ง๐ฅฒ ๊ฒฐ๊ตญ ์ค์ํ ๊ฑด ์ผ๋จ ์ง์ ๋ถ๋ชํ๋ณด๋ ๊ฒ ์๋๊น?..๋ผ๋ ์๊ฐ์ ํด๋ณธ๋ค!
์ฐธ๊ณ
https://www.nomtek.com/blog/flutter-vs-react-native
https://yong-nyong.tistory.com/94
https://velog.io/@teo/adorableCSS
https://www.youtube.com/watch?v=2Q7x3LNZPJs&ab_channel=%EC%88%98%EC%BD%94%EB%94%A9
https://ykss.netlify.app/devlog/start_with_RN/