๐ŸŽ‰ berenickt ๋ธ”๋กœ๊ทธ์— ์˜จ ๊ฑธ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๐ŸŽ‰
Front
NextJs
11-Intercepting Routes

Intercepting(์ธํ„ฐ์…‰ํŒ…) Routes

์ธํ„ฐ์…‰ํŒ… ๋ผ์šฐํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ˜„์žฌ ๋ ˆ์ด์•„์›ƒ ๋‚ด์—์„œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์˜ ๊ฒฝ๋กœ๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ผ์šฐํŒ… ํŒจ๋Ÿฌ๋‹ค์ž„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์ปจํ…์ŠคํŠธ๋กœ ์ „ํ™˜ํ•˜์ง€ ์•Š๊ณ , ๊ฒฝ๋กœ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ.

์˜ˆ๋ฅผ ๋“ค์–ด ํ”ผ๋“œ ์•ˆ์— ์žˆ๋Š” ์‚ฌ์ง„์„ ํด๋ฆญํ•  ๋•Œ, ์‚ฌ์ง„์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ๋ชจ๋‹ฌ์ด ํ”ผ๋“œ ์œ„์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์— Next.js๋Š” /feed ๊ฒฝ๋กœ๋ฅผ ๊ฐ€๋กœ์ฑ„๊ณ  URL์ด /photo/123์œผ๋กœ ๋ณด์ด๋„๋ก โ€œ๋งˆ์Šคํ‚นโ€ํ•ฉ๋‹ˆ๋‹ค.

Intercepting Routes

๊ทธ๋Ÿฌ๋‚˜, ๊ณต์œ  ๊ฐ€๋Šฅํ•œ URL์„ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ•˜์—ฌ ์‚ฌ์ง„์œผ๋กœ ์ด๋™ํ•  ๋•Œ, ๋ชจ๋‹ฌ ๋Œ€์‹  ์ „์ฒด ์‚ฌ์ง„ ํŽ˜์ด์ง€๊ฐ€ ๋ Œ๋”๋ง๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ ์ฐจ๋‹จ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Intercepting Routes


1. Convention(๊ทœ์น™)

์ธํ„ฐ์…‰ํŒ… ๋ผ์šฐํŠธ๋Š” ์ƒ๋Œ€ ๊ฒฝ๋กœ ๊ทœ์น™ ../๊ณผ ์œ ์‚ฌํ•œ (..) ๊ทœ์น™์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (..) ๊ทœ์น™์€ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • (.) ๋™๋“ฑํ•œ ๋ ˆ๋ฒจ์˜ ์„ธ๊ทธ๋จผํŠธ์™€ ์ผ์น˜
  • (..) ํ•œ ๋‹จ๊ณ„ ์ƒ์œ„ ๋ ˆ๋ฒจ์˜ ์„ธ๊ทธ๋จผํŠธ์™€ ์ผ์น˜
  • (..)(..) ๋‘ ๋‹จ๊ณ„ ์ƒ์œ„ ๋ ˆ๋ฒจ์˜ ์„ธ๊ทธ๋จผํŠธ์™€ ์ผ์น˜
  • (...) ๋ฃจํŠธ app ๋””๋ ‰ํ† ๋ฆฌ์˜ ์„ธ๊ทธ๋จผํŠธ์™€ ์ผ์น˜

์˜ˆ๋ฅผ ๋“ค์–ด, (..)photo ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ feed ์„ธ๊ทธ๋จผํŠธ ์•ˆ์—์„œ photo ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

Intercepting Routes

Note : (..) ์ปจ๋ฒค์…˜์€ file-system์ด ์•„๋‹Œ route segments๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.


2. ์˜ˆ์‹œ

2.1 Modals

๋ชจ๋‹ฌ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ธํ„ฐ์…‰ํŒ… ๋ผ์šฐํŠธ๋ฅผ ๋ณ‘๋ ฌ ๋ผ์šฐํŠธ์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŒจํ„ด์„ ์‚ฌ์šฉํ•ด์„œ ๋ชจ๋‹ฌ์„ ์ƒ์„ฑํ•˜๋ฉด ๋ชจ๋‹ฌ ์ž‘์—… ์‹œ ํ”ํžˆ ๊ฒฉ๋Š” ์—ฌ๋ ค์›€์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์•„๋ž˜์™€ ๊ฐ™์€ ๋™์ž‘์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • URL์„ ํ†ตํ•ด์„œ ๊ณต์œ  ๊ฐ€๋Šฅํ•œ ๋ชจ๋‹ฌ ์ปจํƒ ์ธ ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ ๋  ๋•Œ ๋ชจ๋‹ฌ์„ ๋‹ซ์ง€ ์•Š๊ณ  ์ปจํƒ ์ธ ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋’ค๋กœ ๊ฐ€๊ธฐ ์ƒํ™ฉ์—์„œ ์ด์ „ ํŽ˜์ด์ง€๋กœ ๊ฐ€์ง€ ์•Š๊ณ  ๋ชจ๋‹ฌ์„ ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•ž์œผ๋กœ ๊ฐ€๊ธฐ ์ƒํ™ฉ์—์„œ ๋ชจ๋‹ฌ์„ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Modals

์œ„์˜ ์˜ˆ์—์„œ, @modal์€ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ์Šฌ๋กฏ์ด๋ฏ€๋กœ, photo ์„ธ๊ทธ๋จผํŠธ ๊ฒฝ๋กœ์— (..) ์ผ์น˜์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, photo ๊ฒฝ๋กœ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ ˆ๋ฒจ์ด ๋‘ ๊ฐœ ๋” ๋†’์ง€๋งŒ, ์„ธ๊ทธ๋จผํŠธ ๋ ˆ๋ฒจ์€ ํ•œ ๊ฐœ๋งŒ ๋” ๋†’์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋ณ„ ์˜ˆ์‹œ๋Š” ๋ณ‘๋ ฌ ๊ฒฝ๋กœ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜, ์ด๋ฏธ์ง€ ๊ฐค๋Ÿฌ๋ฆฌ ์˜ˆ์‹œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค:

๋‹ค๋ฅธ ์˜ˆ๋กœ๋Š” ์ƒ๋‹จ ํƒ์ƒ‰ ๋ชจ์Œ์—์„œ ๋กœ๊ทธ์ธ ๋ชจ๋‹ฌ์„ ์—ด๋ฉด์„œ, ์ „์šฉ /login ํŽ˜์ด์ง€๋„ ํ•จ๊ป˜ ์—ด๊ฑฐ๋‚˜ ์‚ฌ์ด๋“œ ๋ชจ๋‹ฌ์—์„œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์—ฌ๋Š” ๊ฒƒ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.