๐Ÿ–‹๏ธ ํ•™์Šต ์ผ์ง€ (๊ณ ๋ฏผ๊ณผ ํ•ด๊ฒฐ) - codesquad-masters2025-team01/issue-tracker GitHub Wiki

์ฃผ์š” ๊ณ ๋ฏผ(๋ฌธ์ œ)๊ณผ ํ•ด๊ฒฐ๊ณผ์ •

์„ค๊ณ„ ๋ฐ ์ดˆ๊ธฐ ์„ธํŒ…

  • ๐Ÿค” ๊ณ ๋ฏผ: ์—์ž์ผ์—์„œ ์‚ฌ์šฉํ•˜๋Š” Epic - Story - Task ๋ฐฉ์‹์œผ๋กœ ํ•  ์ผ์„ ๋‚˜๋ˆ„์–ด ์ •๋ฆฌํ•˜์˜€๋‹ค. ๋ฐฑ์—”๋“œ์™€ ํ†ตํ•ฉํ•ด์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ?
  • โœ… ํ•ด๊ฒฐ: ์ตœ์ข…์ ์œผ๋กœ๋Š” ๋ฐฑ๊ณผ ํ”„๋ก ํŠธ ๋”ฐ๋กœ ์ž‘์—…ํ•˜์˜€๋‹ค.
    ์ฒ˜์Œ์—๋Š” ์—ํ”ฝ๊ณผ ์Šคํ† ๋ฆฌ๋ฅผ ๊ฐ™์ด ๊ณต์œ ํ•˜๊ณ  Task๋งŒ ๋ฐฑ๊ณผ ํ”„๋ก ํŠธ ๋”ฐ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜๊ธฐ๋กœ ํ–ˆ์œผ๋‚˜, ๋‹น์‹œ ์—ํ”ฝ์€ ํ™”๋ฉด ๋‹จ์œ„์˜€๋Š”๋ฐ
    ๋ฐฑ์—”๋“œ ํŒ€์›์„ ํ†ตํ•ด ์—ํ”ฝ์€ ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ ์—ํ”ฝ๊ณผ ์Šคํ† ๋ฆฌ๋ฅผ ๊ฐˆ์•„์—Ž๊ณ  ๋‹ค์‹œ ์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
    ๊ทธ๋Ÿฐ๋ฐ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ด๋Œ€๋กœ Task๋ฅผ ์ •๋ฆฌํ•œ๋‹ค๋ฉด ๋‚˜์ค‘์— ๋‚ด๊ฐ€ ์ž‘์—…ํ•  ๋•Œ ์–ด๋ ค์›€์„ ๊ฒช์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
    (Task๊ฐ€ ํ™”๋ฉด ๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋‹ค ๋ณด๋‹ˆ ์ฃผ์–ด์ง„ ๊ธฐํš์„œ์™€ Task์˜ ํ†ต์ผ์„ฑ์ด ๋–จ์–ด์ ธ ๋‚ด ์ž‘์—… ํŒŒ์•…์— ์–ด๋ ค์›€์„ ๊ฒช์„ ์šฐ๋ คโ†‘)
    ๊ทธ๋ž˜์„œ ํ”„๋ก ํŠธ์—”๋“œ๋Š” Epic - Story - Task์„ ๋”ฐ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.





  • ๐Ÿค” ๊ณ ๋ฏผ: ์œ„ ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ํ™”๋ฉด์„ ๋„์› ๋Š”๋ฐ ์ฝ˜์†”์— ์ฒ˜์Œ ๋ณด๋Š” ๊ฒฝ๊ณ ๊ฐ€ ์ฐํ˜€์žˆ๋‹ค. A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used: ...
  • โœ… ํ•ด๊ฒฐ: <์—๋Ÿฌ์˜ ์ •์ฒด โ€• SSR Hydration Mismatch ๊ฒฝ๊ณ >
    Next.js(React 18โ€†+)์—์„œ SSR (์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง) โ†’ ํด๋ผ์ด์–ธํŠธ Hydration ๋‹จ๊ณ„์—์„œ, ์„œ๋ฒ„๊ฐ€ ๋งŒ๋“  HTML๊ณผ ๋ธŒ๋ผ์šฐ์ €-์ธก React๊ฐ€ ๊ณ„์‚ฐํ•œ ๊ฐ€์ƒ DOM์ด ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด React๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ๊ณ ๋ฅผ ๋„์šด๋‹ค.
    A tree hydrated but some attributes of the server rendered HTML didnโ€™t match the client properties. This wonโ€™t be patched up โ€ฆ
    ์ฆ‰ โ€œ์ด๋ฏธ ๋‚ด๋ ค๋ณด๋‚ธ ๋งˆํฌ์—…๊ณผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋งŒ๋“  ๋งˆํฌ์—…์ด ๋‹ฌ๋ผ์„œ React๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ณ ์ณ ์ค„ ์ˆ˜ ์—†๋‹คโ€ ๋Š” ๋œป์ด๋ฉฐ, ์ด ์ฐจ์ด๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” UI ๊นœ๋นก์ž„ยท์ด๋ฒคํŠธ ๋ถˆ๋ฐœ ๋“ฑ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ด๋ฒˆ ์ผ€์ด์Šค๋Š” cz-shortcut-listen ์†์„ฑ ํƒ“์ผ ํ™•๋ฅ ์ด ๋†’๋‹ค๊ณ  ํ•˜๋Š”๋ฐ, ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์—ฐ๊ด€์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์ •ํ™•ํ•œ ์›์ธ ํŒŒ์•…์ด ์•ˆ๋˜์„œ, ์ผ๋‹จ์€ ์ด ์ƒํƒœ๋กœ ๊ฐœ๋ฐœ์„ ํ•ด๋ด์•ผ๊ฒ ๋‹ค.



  • ๐Ÿค” ๊ณ ๋ฏผ: Emotion์œผ๋กœ theme์„ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, theme์ด ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. (background-color: ${({ theme }) => theme.colors.surface.default};์—์„œ colors ์†์„ฑ์„ ์ฝ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์—๋Ÿฌ)
  • โœ… ํ•ด๊ฒฐ: ํƒ€์ž…์„ ์ฝ์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ. emotion.d.ts ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ํ•ด๊ฒฐํ•˜์˜€๋‹ค.
    import "@emotion/react";
    import type { ThemeType } from "@/styles/theme";
    
    declare module "@emotion/react" {
    export interface Theme extends ThemeType {}
    }




Epic 2: ์ด์Šˆ ๋ชฉ๋ก (๋ฉ”์ธ ํ™”๋ฉด) ์ž‘์—…

  • ๐Ÿค” ๊ณ ๋ฏผ: /frontend/public/mockDatas/issueMockData.json ๊ฒฝ๋กœ์— ์œ„์น˜ํ•œ mock ๋ฐ์ดํ„ฐ๋ฅผ fetch๋กœ ๊ฐ€์ ธ์˜ค๋ ค ํ•˜๋Š”๋ฐ, console ์ฐฝ์— ์•„๋ฌด๊ฒƒ๋„ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค. ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ ๋„คํŠธ์›Œํฌ ํƒญ์„ ํ™•์ธํ•ด๋ณด๋‹ˆ 404 Not Found ์—๋Ÿฌ์ด๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผ ํ• ๊นŒ?
  • โœ… ํ•ด๊ฒฐ: ๐Ÿ“š fetch ๊ฒฝ๋กœ 404 ์—๋Ÿฌ ๋Œ€์‘ ์ •๋ฆฌ



  • ๐Ÿค” ๊ณ ๋ฏผ: mock ๋ฐ์ดํ„ฐ๊ฐ€ ๋กœ์ปฌ์— ์ œ๋Œ€๋กœ ์—ฐ๊ฒฐ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ž‘์—… ์ค‘ Error: A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:์ด๋Ÿฐ ์—๋Ÿฌ๋ฅผ ๋งˆ์ฃผํ–ˆ๋‹ค. โ€œ์„œ๋ฒ„๊ฐ€ ๊ทธ๋ฆฐ HTMLโ€๊ณผ โ€œํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฒ˜์Œ ๋ Œ๋”๋งํ•œ DOMโ€์ด ์„œ๋กœ ๋‹ค๋ฅผ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ธ ๊ฒƒ์€ ์•Œ๊ฒ ๋Š”๋ฐ, ์–ด๋””๊ฐ€ ๋ฌธ์ œ์ธ ๊ฒƒ์ด๋ฉฐ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผ ํ• ๊นŒ?
  • โœ… ํ•ด๊ฒฐ: ๐Ÿ“š hydration mismatch ๋Œ€์‘ ์ •๋ฆฌ



โš ๏ธ **GitHub.com Fallback** โš ๏ธ