๐ŸŽ€ ํ”„๋กœ์ ํŠธ/์ธ์‚ฌ์ดํŠธ์•„์›ƒ

    [์ธ์‚ฌ์ดํŠธ์•„์›ƒ] Next.js์˜ parallel route๋ฅผ ์ด์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ์„ฑ๋Šฅ ๊ฐœ์„ ํ•˜๊ธฐ

    ๋ฐฐ๊ฒฝ ๋งค์šฐ ๋Š๋ฆฌ๋˜ ์ž๊ธฐ์†Œ๊ฐœ์„œ ํŽ˜์ด์ง€์˜ ๋กœ๋”ฉ ์†๋„๋ฅผ ๊ฐœ์„ ํ•œ ์‚ฌ๋ก€๋ฅผ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค. Next.js์˜ parallel route๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์†๋„๋ฅผ ์•ฝ 94% ๊ฐœ์„ ํ•œ ๋‚ด์šฉ์„ ๊ณต์œ ํ•œ๋‹ค. ์ธ์‚ฌ์ดํŠธ์•„์›ƒ์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์œ„ํ•ด ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ํŽ˜์ด์ง€๋ฅผ ์ ‘์†ํ•˜๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ž‘์„ฑํ–ˆ๋˜ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ์ด ํŽ˜์ด์ง€๋ฅผ ์ ‘์†ํ•˜๊ธฐ๊นŒ์ง€๋Š” ์•ฝ 10์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ์น˜๋ช…์ ์ธ ๋ฌธ์ œ์ ์ด ์žˆ์—ˆ๋‹ค. ์›์ธ ๋ฌธ์ œ์˜ ์›์ธ์€ ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ๋ผ์šฐํŒ… ๋ฐฉ์‹๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑํ•˜๊ธฐ ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญํ•˜๋ฉด /resumes/${questionId}๋กœ ์ด๋™ํ•œ๋‹ค. questionId๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ž‘์„ฑํ–ˆ๋˜ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋กœ, ์ž๊ธฐ์†Œ๊ฐœ์„œ ๋ชฉ๋ก ์กฐํšŒ API ์กฐํšŒ ํ›„ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์ž๊ธฐ์†Œ๊ฐœ์„œ ์งˆ๋ฌธ ํ•ญ๋ชฉ์ด questionId์ด๋‹ค. ์ž๊ธฐ์†Œ๊ฐœ์„œ ๋ ˆ์ด์•„์›ƒ์€ ์•„๋ž˜์™€ ๊ฐ™..

    [์ธ์‚ฌ์ดํŠธ์•„์›ƒ] React-Query ๋ฌดํ•œ์Šคํฌ๋กค ์ ์šฉ๊ธฐ

    TL;DR - ๋ฌดํ•œ์Šคํฌ๋กค - Intersection Observer API - React-Query์™€ Intersection Observer API๋ฅผ ์‚ฌ์šฉํ•ด ๋ฌดํ•œ์Šคํฌ๋กค ๊ตฌํ˜„ํ•˜๊ธฐ - ์‹ค์ œ ์„œ๋น„์Šค์— ์ ์šฉํ•˜๊ธฐ ๋ฐฐ๊ฒฝ ์ธ์‚ฌ์ดํŠธ์•„์›ƒ์—์„œ๋Š” ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๊ฒฝํ—˜์„ ์ •๋ฆฌํ•˜๊ณ  ์ด๋ฅผ '๊ฒฝํ—˜ ์นด๋“œ'๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฒฝํ—˜์นด๋“œ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ, ํ•œ ํŽ˜์ด์ง€์—์„œ ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๊ฒฝํ—˜์นด๋“œ์˜ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ณ  ์ด๋ฅผ ํ† ๋Œ€๋กœ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์ž‘์„ฑ์„ ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐํšํ•˜์˜€๋‹ค. ๋ฌดํ•œ์Šคํฌ๋กค ๋ฌดํ•œ์Šคํฌ๋กค์€ ์‚ฌ์šฉ์ž๊ฐ€ ์Šคํฌ๋กค์„ ์•„๋ž˜๋กœ ๋‚ด๋ฆฌ๋ฉด ์ƒˆ๋กœ์šด ์ฝ˜ํ…์ธ ๊ฐ€ ์ž๋™์œผ๋กœ ๋กœ๋“œ๋˜์–ด ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•˜์ง€ ์•Š์•„๋„ ๊ณ„์†ํ•ด์„œ ์ƒˆ๋กœ์šด ์ฝ˜ํ…์ธ ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์–ด ํŽธ๋ฆฌํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค..