📝 기능 설명
링크 카드의 북마크 버튼을 빠르게 여러 번 누를 때 북마크 토글 API가 중복 호출되는 문제를 방지합니다.
현재 구조상 북마크 버튼을 누르면 toggleBookmark가 실행되고, 매번 PATCH /api/v1/saved-links/{id}/bookmark 요청이 바로 발생합니다.
사용자가 짧은 시간 안에 북마크 버튼을 여러 번 누르면 서버 상태와 화면 상태가 서로 어긋나거나, 불필요한 API 요청이 여러 번 발생할 수 있습니다.
북마크 토글은 홈 화면, 저장 링크 전체보기, 폴더 상세 화면에서 모두 사용되므로 동일한 기준으로 동작하도록 정리합니다.
📋 구현할 Task
📎 우선 확인 대상
-
북마크 상태 관리
context/saved-links-context.tsx
api/saved-links.ts
-
링크 카드
components/ui/card-link.tsx
-
북마크 사용 화면
app/(tabs)/(home)/index.tsx
app/(tabs)/(home)/saved-links.tsx
app/(tabs)/(folder)/[id].tsx
📎 추가 내용
- 이번 이슈에서는 북마크 토글 API의 중복 호출 방지를 우선 처리합니다.
- 전체 버튼 중복 입력 방지는 별도 이슈에서 진행합니다.
- 단순 debounce보다 “같은 링크 요청 중 재요청 방지” 방식이 현재
toggle API 구조에서는 더 안전한지 함께 검토합니다.
📝 기능 설명
링크 카드의 북마크 버튼을 빠르게 여러 번 누를 때 북마크 토글 API가 중복 호출되는 문제를 방지합니다.
현재 구조상 북마크 버튼을 누르면
toggleBookmark가 실행되고, 매번PATCH /api/v1/saved-links/{id}/bookmark요청이 바로 발생합니다.사용자가 짧은 시간 안에 북마크 버튼을 여러 번 누르면 서버 상태와 화면 상태가 서로 어긋나거나, 불필요한 API 요청이 여러 번 발생할 수 있습니다.
북마크 토글은 홈 화면, 저장 링크 전체보기, 폴더 상세 화면에서 모두 사용되므로 동일한 기준으로 동작하도록 정리합니다.
📋 구현할 Task
context/saved-links-context.tsx의toggleBookmark호출 흐름을 확인했는가?PATCH /api/v1/saved-links/{id}/bookmark요청이 연속 터치 시 여러 번 발생하는지 확인했는가?toggleAPI 특성상 debounce 처리 시 사용자 의도와 서버 상태가 어긋나지 않는지 검토했는가?📎 우선 확인 대상
북마크 상태 관리
context/saved-links-context.tsxapi/saved-links.ts링크 카드
components/ui/card-link.tsx북마크 사용 화면
app/(tabs)/(home)/index.tsxapp/(tabs)/(home)/saved-links.tsxapp/(tabs)/(folder)/[id].tsx📎 추가 내용
toggleAPI 구조에서는 더 안전한지 함께 검토합니다.