home icon
back to works
나만의 책 리스트를 만들고 공유하는 커뮤니티 서비스

bookisgood은 플레이리스트처럼 나의 책 컬렉션(보따리)을 만들고 공유하는 커뮤니티 서비스입니다. 유저는 Google OAuth를 통한 회원가입/로그인 후 원하는 테마에 맞게 책 보따리를 만들고, 다른 유저의 책 보따리에 좋아요를 누르거나 댓글을 달 수 있습니다. 링크를 통한 페이지 SNS(카카오톡, 인스타그램, etc) 공유 시 포함된 책을 배열한 썸네일과 제목, 요약 정보를 확인할 수 있습니다.

기술적 주안점

toggle description
기능 구현 - Next.js App Router + Supabase 인증을 적용해, 로그인 사용자만 보따리 생성/수정/삭제와 댓글 작성이 가능하도록 권한을 안전하게 처리했습니다. - Naver Book API를 적용해 책 검색 기능을 만들고, 검색 결과를 선택해 보따리에 바로 추가할 수 있게 했습니다. - dnd-kit을 적용해 추가한 책의 순서를 드래그로 직관적으로 바꿀 수 있게 했습니다. - 댓글/대댓글, 좋아요, 프로필(내 보따리/좋아요한 보따리) 기능을 연결해 커뮤니티 흐름을 완성했습니다. 성능/반응성 개선 - React Query를 적용해 댓글/좋아요에 낙관적 업데이트를 구현, 클릭 즉시 화면이 반응하도록 만들었습니다. - 실패 시 롤백 처리까지 넣어 빠른 반응성과 데이터 정확성을 함께 유지했습니다. - Promise.all, useQueries 기반 병렬 로딩으로 홈/프로필의 초기 대기 시간을 줄였습니다. - 서버 캐시 무효화(revalidateTag/revalidatePath)로 수정 후 최신 데이터가 빠르게 반영되도록 구성했습니다. 사용자 경험 개선 - 검색 입력 디바운스(500ms), 중복 도서 방지, 최소 1권 검증으로 작성 실수를 줄였습니다. - 모바일은 공유 시트, 데스크톱은 링크 복사로 분기해 공유 동선을 단순화했습니다. - 컬렉션별 동적 OG 이미지를 생성해 링크 공유 시 시각적으로 더 명확한 미리보기를 제공했습니다.

Skills

  • Next.js App Router
  • TypeScript
  • Supabase
  • React Query
  • Tailwind CSS
  • dnd-kit
  • Naver Book API
  • Vercel OG