๐Ÿš 61. Expo Router ์™„์ „ ์ž…๋ฌธ - React Native ์•ฑ ๋ผ์šฐํŒ… ํ˜์‹ 

JM_Devยท2025๋…„ 7์›” 10์ผ
0
post-thumbnail

React Native์—์„œ ๋ผ์šฐํŒ…์€ ๊ฝค๋‚˜ ๋ฒˆ๊ฑฐ๋กœ์šด ์ผ์ด์—ˆ๋‹ค.
react-navigation์„ ์ง์ ‘ ์„ค์ •ํ•˜๊ณ , stack/screen ๋“ฑ์„ ์ผ์ผ์ด ๋“ฑ๋กํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ.
ํ•˜์ง€๋งŒ! Expo์—์„œ Next.js์˜ ํŒŒ์ผ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…์„ ๊ฐ€์ ธ์˜จ Expo Router๋ฅผ ํ†ตํ•ด,
๋ผ์šฐํŒ… ๊ตฌ์กฐ๊ฐ€ ํ›จ์”ฌ ๋‹จ์ˆœํ•˜๊ณ , ์ง๊ด€์ ์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค! ๐Ÿ˜Ž


๐Ÿ“‚ ํด๋” ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…

Expo Router๋Š” app/ ํด๋”์˜ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž๋™ ๋ผ์šฐํŒ…์„ ์„ค์ •ํ•œ๋‹ค.

๐Ÿ“ app/
 โ”ฃ ๐Ÿ“ index.tsx        โ†’ '/'
 โ”ฃ ๐Ÿ“ about.tsx        โ†’ '/about'
 โ”ฃ ๐Ÿ“ profile/
 โ”ƒ โ”— ๐Ÿ“ [id].tsx       โ†’ '/profile/:id'
 โ”— ๐Ÿ“ settings/
   โ”ฃ index.tsx         โ†’ '/settings'
   โ”— notifications.tsx โ†’ '/settings/notifications'

ํŒŒ์ผ/ํด๋” ๊ตฌ์กฐ = URL ๊ฒฝ๋กœ
๐Ÿ‘‰ ์ง„์งœ๋กœ Next.js ๋А๋‚Œ์ด ๊ทธ๋Œ€๋กœ!


๐Ÿงช ์„ค์น˜ & ๊ธฐ๋ณธ ์‚ฌ์šฉ

npx create-expo-app my-app -t with-router

์„ค์น˜ ํ›„์—๋Š” ๋ฐ”๋กœ app/ ํด๋”๋กœ ๋ผ์šฐํŒ…์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

// app/index.tsx
import { Link } from 'expo-router';

export default function Home() {
  return (
    <Link href="/about">About ํŽ˜์ด์ง€๋กœ ์ด๋™</Link>
  );
}

Link ์ปดํฌ๋„ŒํŠธ๋กœ ๋„ค๋น„๊ฒŒ์ด์…˜๋„ ์‹ฌํ”Œํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ!


๐Ÿงญ ๋„ค๋น„๊ฒŒ์ด์…˜ ๊ตฌ์กฐ

// app/_layout.tsx
import { Stack } from 'expo-router';

export default function Layout() {
  return <Stack />;
}
  • _layout.tsx๋ฅผ ํ†ตํ•ด ๊ณตํ†ต Stack, Tab ๋“ฑ์„ ์ •์˜ํ•˜๊ณ 
  • app/ ๋‚ด๋ถ€์˜ ํŒŒ์ผ ๊ตฌ์กฐ๋กœ ํ™”๋ฉด์ด ์ž๋™ ์—ฐ๊ฒฐ๋œ๋‹ค.

โš™๏ธ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ

๊ธฐ๋Šฅ์„ค๋ช…
๋™์  ๋ผ์šฐํŒ…[id].tsx, [...slug].tsx ๋“ฑ Next.js์™€ ์œ ์‚ฌ
์ค‘์ฒฉ ๋„ค๋น„๊ฒŒ์ด์…˜Tab, Stack, Drawer ์ค‘์ฒฉ ๊ฐ€๋Šฅ
Layout ๊ทธ๋ฃน(group)/screen.tsx์œผ๋กœ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ
๋ฆฌ๋””๋ ‰์…˜redirect() ํ•จ์ˆ˜ ์‚ฌ์šฉ
๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋‹ฌmodal.tsx๋กœ ์„ค์ •ํ•˜๋ฉด ์ž๋™ ๋ชจ๋‹ฌ ์ฒ˜๋ฆฌ

๐Ÿง  ๋А๋‚€ ์ 

์ฒ˜์Œ์—” "๋ผ์šฐํ„ฐ๊ฐ€ ๋ฐ”๋€Œ์–ด์„œ ๋ญ๊ฐ€ ์ข‹์ง€?" ์‹ถ์—ˆ๋Š”๋ฐ,
๋ง‰์ƒ ์จ๋ณด๋ฉด ๋ผ์šฐํŒ… ๊ตฌ์กฐ๊ฐ€ ๋„ˆ๋ฌด ๊น”๋”ํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธํ•จ.
ํ™”๋ฉด์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์ด ๊ตฌ์กฐ๊ฐ€ ์ง„๊ฐ€๋ฅผ ๋ฐœํœ˜ํ•จ์„ ๋А๋‚€๋‹ค.

ํŒŒ์ผ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…์— ์ต์ˆ™ํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด
React Native ์ง„์ž… ์žฅ๋ฒฝ์ด ํฌ๊ฒŒ ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ผ ๋А๊ผˆ์Œ! ๐Ÿ™Œ


๐Ÿ”ฅ "Expo Router๋Š” ๋‹จ์ˆœํ•œ ๋ผ์šฐํŒ… ๋„๊ตฌ๋ฅผ ๋„˜์–ด์„œ, React Native ์•ฑ ๊ตฌ์กฐ ์ž์ฒด๋ฅผ ํ˜์‹ ํ•œ๋‹ค!"


profile
๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—…์„ ์ค€๋น„ ์ค‘ ์ด๋ฉฐ, ์—ด์‹ฌํžˆ ๊ณต๋ถ€ ์ค‘ ์ž…๋‹ˆ๋‹ค!

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