Skip to content

[ Refactor ] API ์—๋Ÿฌ ํ•ธ๋“ค๋ง(ํ† ์ŠคํŠธ) ํ†ต์ผ ์ž‘์—…ย #112

@hyun907

Description

@hyun907

๐Ÿ“ ๋ฆฌํŒฉํ† ๋ง ์„ค๋ช…

  • ํ˜„์žฌ API ์—๋Ÿฌ ์ฒ˜๋ฆฌ(ํŠนํžˆ ํ† ์ŠคํŠธ)๊ฐ€ ํ™”๋ฉด/์ปดํฌ๋„ŒํŠธ๋งˆ๋‹ค ์ œ๊ฐ๊ฐ์ž…๋‹ˆ๋‹ค.

    • ExpenseEditBottomSheet๋Š” useMutation({ onError }) ๋‚ด๋ถ€์—์„œ ํ† ์ŠคํŠธ๋ฅผ ๋„์›๋‹ˆ๋‹ค.
    • ExpenseRecordFunnel์€ mutate(..., { onError }) ํ˜ธ์ถœ๋ถ€์—์„œ ํ† ์ŠคํŠธ๋ฅผ ๋„์›๋‹ˆ๋‹ค.
  • ์ด๋กœ ์ธํ•ด ๋‹ค์Œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๋™์ผํ•œ ์‹คํŒจ ์ƒํ™ฉ์ธ๋ฐ๋„ ํ† ์ŠคํŠธ ๋ฌธ๊ตฌ/ํ†ค์ด ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋…ธ์ถœ๋จ
    • ์–ด๋–ค ๊ณณ์€ console.error๋ฅผ ์ฐ๊ณ , ์–ด๋–ค ๊ณณ์€ ์ƒ๋žต๋˜๋Š” ๋“ฑ ๋””๋ฒ„๊น… ๊ฒฝํ—˜์ด ๋ถˆ๊ท ์ผ
    • ์ถ”ํ›„ โ€œ๊ณตํ†ต ์—๋Ÿฌ ์ •์ฑ…(์˜ˆ: ์ธ์ฆ ๋งŒ๋ฃŒ ์‹œ ๋กœ๊ทธ์•„์›ƒ/๋ฆฌ๋‹ค์ด๋ ‰ํŠธ, ์„œ๋ฒ„ ๋ฉ”์‹œ์ง€ ์šฐ์„  ๋…ธ์ถœ, ํŠน์ • ์ฝ”๋“œ๋ณ„ ๋ฉ”์‹œ์ง€ ๋งคํ•‘)โ€์„ ์ ์šฉํ•˜๋ ค๋ฉด ์ˆ˜์ • ํฌ์ธํŠธ๊ฐ€ ๋ถ„์‚ฐ๋จ
  • ๋”ฐ๋ผ์„œ API ์—๋Ÿฌ โ†’ ๊ณตํ†ต ํ•ธ๋“ค๋Ÿฌ(ํ† ์ŠคํŠธ ์ •์ฑ…) ๋กœ ์ˆ˜๋ ด์‹œ์ผœ, ์„ฑ๊ณต/์‹คํŒจ ๋ฉ”์‹œ์ง€์™€ ์ฒ˜๋ฆฌ ํ๋ฆ„์„ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.


๐ŸŒฟ To-do (์ž‘์„ฑ ์˜ˆ์‹œ)

  • ๊ณตํ†ต ์—๋Ÿฌ ํ† ์ŠคํŠธ ์ •์ฑ… ์ •์˜

    • ๊ธฐ๋ณธ ์‹คํŒจ ๋ฌธ๊ตฌ(์˜ˆ: โ€œ๋‹ค์‹œ ์‹œ๋„ํ•ด ์ฃผ์„ธ์š”.โ€) ํ†ต์ผ
    • ์„œ๋ฒ„ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋…ธ์ถœ ์šฐ์„ ์ˆœ์œ„/์˜ˆ์™ธ ์ผ€์ด์Šค(๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜, 401/403 ๋“ฑ) ์ •๋ฆฌ
  • ๊ณตํ†ต ์œ ํ‹ธ/ํ›… ์ถ”๊ฐ€

    • ์˜ˆ: handleApiError(error, { fallbackMessage }) ๋˜๋Š” useApiToast() ํ˜•ํƒœ
  • React Query ์ ์šฉ ๋ฐฉ์‹ ํ†ต์ผ

    • ์˜ต์…˜ ์œ„์น˜๋ฅผ ํ†ต์ผ:

      • (๋…ผ์˜ ํ•„์š”) mutationFn์€ ์ˆœ์ˆ˜ํ•˜๊ฒŒ ๋‘๊ณ , onSuccess/onError๋Š” mutation ์„ ์–ธ๋ถ€์— ๊ณ ์ •
      • ๋˜๋Š” ๋ฐ˜๋Œ€๋กœ mutate ํ˜ธ์ถœ๋ถ€์—์„œ๋งŒ ์ฒ˜๋ฆฌ (ํ”„๋กœ์ ํŠธ ์ปจ๋ฒค์…˜์œผ๋กœ 1๊ฐœ ์„ ํƒ)
  • ๊ธฐ์กด ์ฝ”๋“œ ๊ต์ฒด

    • ExpenseEditBottomSheet์˜ update/delete onError โ†’ ๊ณตํ†ต ํ•ธ๋“ค๋Ÿฌ๋กœ ์น˜ํ™˜
    • ExpenseRecordFunnel์˜ submit onError โ†’ ๊ณตํ†ต ํ•ธ๋“ค๋Ÿฌ๋กœ ์น˜ํ™˜
  • ๋ฉ”์‹œ์ง€/๋กœ๊น… ์ผ์›ํ™”

    • console.error ํฌ๋งท ํ†ต์ผ(๊ธฐ๋Šฅ๋ช… prefix ๋“ฑ) ๋˜๋Š” ๊ณตํ†ต logger ์‚ฌ์šฉ

๐Ÿ“š ETC

  • ๋Œ€์ƒ ์˜ˆ์‹œ
    • ExpenseEditBottomSheet: updateMutation, deleteMutation์˜ onError์—์„œ ํ† ์ŠคํŠธ ์ฒ˜๋ฆฌ
    • ExpenseRecordFunnel: submitExpense(..., { onError })์—์„œ ํ† ์ŠคํŠธ ์ฒ˜๋ฆฌ
  • ๊ธฐ๋Œ€ํšจ๊ณผ
    • ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(ํ† ์ŠคํŠธ ๋ฉ”์‹œ์ง€/ํ†ค) ์ผ๊ด€์„ฑ ํ™•๋ณด
    • ์—๋Ÿฌ ์ •์ฑ… ๋ณ€๊ฒฝ ์‹œ ์ˆ˜์ • ๋ฒ”์œ„ ์ถ•์†Œ
    • ์ค‘๋ณต ์ฝ”๋“œ ์ œ๊ฑฐ ๋ฐ ๋””๋ฒ„๊น… ํŽธ์˜ ํ–ฅ์ƒ

Metadata

Metadata

Assignees

Labels

๐Ÿ”จ Refactor์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions