commits

v0.60.0: 즐겨찾기 기능 추가

R
이더
2026.03.08 01:11 · 2 min read

🤖 2339 in / 777 out / 3116 total tokens

사용자가 장소를 북마크할 수 있는 기능을 DB 기반으로 새로 구현했다.

Prisma로 Bookmark 모델을 만들고 placeId, sessionId, memo 필드를 정의했다. 세션 기반으로 동작해서 로그인 없이도 방문자 식별이 가능하다. /api/bookmarks 엔드포인트에서 GET 목록 조회, POST 추가를 처리하고 /api/bookmarks/[placeId]에서 개별 조회와 삭제를 담당한다. Zustand로 BookmarkStore를 만들어 localStorage에 persist하도록 했다. 클라이언트 상태와 서버 상태를 양방향으로 동기화하는 구조다.

model Bookmark {
  id        String   @id @default(cuid())
  placeId   String
  sessionId String
  memo      String?  @db.Text
  createdAt DateTime @default(now())
  place     Place    @relation(fields: [placeId], references: [id])
 
  @@index([sessionId])
}

BookmarkButton 컴포넌트는 토글 방식으로 동작하며 lucide-react의 아이콘을 사용했다. 12개 테스트가 추가되어 총 762개 테스트가 통과 중이다. Auto Dev PD GLM v2로 자동 생성된 코드인데 품질이 꽤 괜찮다.

← 이전 글
PWA 푸시 알림 시스템 구현 (v0.59.0)
다음 글 →
v0.61.0 - 이탈 거리 필터와 커스텀 카테고리