Skip to content

โœจ Syncronize event registration state without refresh - #187

Merged
young-52 merged 6 commits into
devfrom
fix/event-reg-sync
Jun 16, 2026
Merged

young-52 merged 6 commits into
devfrom
fix/event-reg-sync

Conversation

@jun-0411

Copy link
Copy Markdown
Collaborator

๐Ÿ“ ์ž‘์—… ๋‚ด์šฉ

์ฐธ์—ฌ ์‹ ์ฒญ/์ทจ์†Œ/๊ฐ•์ œ์ทจ์†Œ ์ดํ›„ ์ƒˆ๋กœ๊ณ ์นจํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ์ผ์ •์˜ ๋ฐ์ดํ„ฐ๋“ค์ด ๊ฐฑ์‹ ๋˜๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด์—๋Š” ๊ฐฑ์‹ ํ•ด์•ผ ํ•˜๋Š” ์„œ๋ฒ„ ์ƒํƒœ๊ฐ€ ์—ฌ๋Ÿฌ ๊ณณ์— ํฉ์–ด์ ธ ์žˆ๊ณ , ๊ฐ ํ™”๋ฉด์ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋“ค๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • EventMain.tsx๋Š” ๋ชจ์ž„ ์ƒ์„ธ ๋ฐ์ดํ„ฐ๋ฅผ useEventDetail ๋‚ด๋ถ€ useState๋กœ ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • Guests.tsx๋Š” ์ฐธ์—ฌ์ž ๋ชฉ๋ก์„ TanStack Query์˜ ['guests', eventId, filters] ์บ์‹œ๋กœ ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™ˆ์˜ ์ฐธ์—ฌ/์ƒ์„ฑ ๋ชฉ๋ก์€ ['myRegistrations'], ['myEvents'] ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ํŽ˜์ด์ง€์—์„œ TanStack Query ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ•˜๊ฒŒ ์ˆ˜์ •ํ•˜๊ณ , mutation ์„ฑ๊ณต ํ›„ ๊ด€๋ จ query key๋ฅผ ํ•œ ๊ณณ์—์„œ ๊ฐ™์ด ๋ฌดํšจํ™”ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. MSW์— ์ฐธ์—ฌ์— ๊ด€ํ•œ ๋กœ์ง์„ ์ž‘์„ฑํ•˜์—ฌ ๋กœ์ปฌ ์„œ๋ฒ„์—์„œ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐฑ์‹ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์ฒด์ ์ธ ์ž‘์—…๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์ด๋ฒคํŠธ ์ƒ์„ธ/์ฐธ์—ฌ์ž ๋ชฉ๋ก query key๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ •๋ฆฌ
  2. useEventDetail์˜ ์ƒ์„ธ ์กฐํšŒ๋ฅผ TanStack Query ๊ธฐ๋ฐ˜์œผ๋กœ ์ „ํ™˜
  3. ์ฐธ์—ฌ ์‹ ์ฒญ/์ทจ์†Œ/๊ฐ•์ œ์ทจ์†Œ mutation์„ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌ
  4. Guests.tsx๋Š” refetch() ๋Œ€์‹  query invalidation ์‚ฌ์šฉ
  5. MSW handler์™€ mock DB ๋™๊ธฐํ™”

๐Ÿ“ธ ์Šคํฌ๋ฆฐ์ƒท (์„ ํƒ)

๐Ÿš€ ๋ฆฌ๋ทฐ ์š”๊ตฌ์‚ฌํ•ญ (์„ ํƒ)

  • TanStack Query ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜์ •ํ•˜๋Š” ๊ณผ์ •์—์„œ, ๊ธฐ์กด์— ์ด๋ฏธ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋˜ query key์ธ ํ™ˆ์˜ ๋‚ด ์‹ ์ฒญ ๋ชฉ๋ก ['myRegistrations']๊ณผ ๋‚ด๊ฐ€ ๋งŒ๋“  ๋ชจ์ž„ ๋ชฉ๋ก ['myEvents']์€ constants/queryKeys.ts์—์„œ legacy๋กœ ๋ฌถ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด query key๋„ ๊ด€๋ฆฌ๋ฅผ ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ queryKeys.registrations.me()๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ์šฐ์„  ์ด๋ฒˆ ์ž‘์—…์—์„œ๋Š” ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์œ ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์žฅ๊ธฐ์ ์œผ๋กœ TanStack Query๋ฅผ ์ด์šฉํ•œ๋‹ค๋ฉด ๋‹ค๋ฅธ pr๋กœ ์ˆ˜์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์•ˆํ‹ฐ๊ทธ๋ž˜๋น„ํ‹ฐ -> ์ฝ”๋ฑ์Šค๋กœ ai ํˆด์„ ๋ณ€๊ฒฝํ–ˆ๋Š”๋ฐ, ์ฝ”๋ฑ์Šค์—์„œ๋Š” AGENTS.md ํŒŒ์ผ์„ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— ์œ„์น˜์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊นƒํ—ˆ๋ธŒ์— ์˜ฌ๋ฆด๊นŒ์š”? ์•„๋‹ˆ๋ฉด .gitignore๋กœ ์ฒ˜๋ฆฌํ• ๊นŒ์š”?

  • ๐Ÿ’„ Fix double header in mobile uiย #171 pr ๋จผ์ € ๋จธ์ง€ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”? ์ด pr ๋จผ์ € ๋จธ์ง€ํ•˜๋ฉด 171์—์„œ conflict๊ฐ€ ์–ด๋งˆ์–ด๋งˆ ํ•  ๊ฒƒ ๊ฐ™์•„์„œ์š”...

@young-52 young-52 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” TanStack Query ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ต์ผํ•˜๋Š” ๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๊ธฐ๋Š” ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํŒฉํ† ๋งํ•  ๊ฒŒ ์Œ“์—ฌ ๊ฐ€๋„ค์š”โ€ฆ
  • AGENTS.md ์˜ฌ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํžˆ ์“ฐ๊ฒ ์Šต๋‹ˆ๋‹ค ใ…Žใ…Ž

@young-52
young-52 merged commit 1d1403f into dev Jun 16, 2026
1 check passed
@young-52
young-52 deleted the fix/event-reg-sync branch June 16, 2026 12:47
young-52 added a commit that referenced this pull request Jun 26, 2026
### ๐Ÿ“ ์ž‘์—… ๋‚ด์šฉ

๋น„๋กœ๊ทธ์ธ ์œ ์ €์˜ ์ผ์ • ์ฐธ์—ฌ ์‹ ์ฒญ์œผ๋กœ ์ธํ•ด ์ƒ๊ธด `regId`๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด `regId`์˜
์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ๋๋‚˜๋ฉด ์‚ญ์ œํ•˜๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ `regId` ์‚ญ์ œ ๊ธฐ์ค€์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

- ๋กœ๊ทธ์ธ / ๋กœ๊ทธ์•„์›ƒ์‹œ ๋ชจ๋“  `regId`๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ ๋กœ๊ทธ์ธ ์ƒํƒœ์—์„œ๋Š” ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์™€ Url์˜ `regId`๋ฅผ
๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
- ๋น„๋กœ๊ทธ์ธ ์œ ์ €๊ฐ€ ์‹ ์ฒญ์„ ์ทจ์†Œํ•˜๋ฉด ํ•ด๋‹น ์ด๋ฒคํŠธ์˜ `regId`๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , Url์˜ `?regId=`๋„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
- `getRegistrationDetail(regId)`๊ฐ€ `401`, `403`, `404`๋กœ ์‹คํŒจํ•˜๋ฉด ์˜ค๋ž˜๋œ ๋กœ์ปฌ ์ƒํƒœ๋ฅผ
๋ง‰๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์™€ Url์˜ `regId`๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
- ํ•œ ์ด๋ฒคํŠธ์—์„œ 2๊ฐœ ์ด์ƒ์˜ ๋น„๋กœ๊ทธ์ธ ์‹ ์ฒญ์ด ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ, ๊ธฐ์กด `regId`๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ฐ€์žฅ ์ตœ์‹ ์˜ `regId`๋งŒ
์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
- ์ฃผ์ตœ์ž์˜ ๊ฐ•์ œ์ทจ์†Œ๋กœ ์ธํ•ด `BANNED`๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋‹ค์‹œ ์‹ ์ฒญ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด `regId`๋ฅผ
์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

### ๐Ÿ“ธ ์Šคํฌ๋ฆฐ์ƒท (์„ ํƒ)

### ๐Ÿš€ ๋ฆฌ๋ทฐ ์š”๊ตฌ์‚ฌํ•ญ (์„ ํƒ)

- dev๊ฐ€ ์•„๋‹Œ #187 ์˜ ๋ธŒ๋žœ์น˜ ์œ„์—์„œ ์ž‘์—…ํ•˜์—ฌ ์ด pr ๋จธ์ง€ ์ด์ „ 187์„ ์šฐ์„ ์ ์œผ๋กœ ๋จธ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
- #171 pr์ด ๋จธ์ง€๋˜๋ฉด 187๊ณผ ์ด pr ๋จธ์ง€ ์ปจํ”Œ๋ฆญํŠธ ํ•ด๊ฒฐํ•˜๊ณ  ๋‹ค์‹œ ๋ฆฌ๋ทฐ์š”์ฒญ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!

---------

Co-authored-by: Park Junyoung <bloomwayz@snu.ac.kr>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

โœจ Syncronize event registration state without refresh

2 participants