Skip to content
@SSAFY-BOOKKOO

SSAFY-BOOKKOO

SSAFY 11기 공통 프로젝트 '북끄북끄'

📚 북꾸북꾸 - 독서 큐레이션 SNS

🛠 프로젝트 소개

북꾸북꾸: 독서 큐레이션 SNS

나만의 서재를 가꾸고, 독서 기록을 쉽게 관리하세요!

로고

  • 개발 기간: 2024.07.02 ~ 2024.08.16 (약 6주)
  • 개발 인원: 6인 (프론트엔드 3인, 백엔드 3인)
  • 배포 URL: 북꾸북꾸

📖 프로젝트 개요

북꾸북꾸BOOK꾸미다의 합성어로, 사용자들이 자신의 독서 경험을 아름답게 꾸미고 공유할 수 있는 독서 큐레이션 SNS 플랫폼입니다. 독서 기록의 체계적인 관리부터 다른 독서가들과의 소통까지, 북꾸북꾸는 독서를 사랑하는 이들을 위한 종합 솔루션을 제공합니다.

🎯 목적

  • 독서 기록의 체계화: 단순한 책 목록을 넘어, 사용자의 감정과 생각을 담은 독서 기록을 손쉽게 관리할 수 있도록 지원합니다.
  • 독서 커뮤니티 활성화: 한줄평, 큐레이션 레터, 북톡 등 다양한 소통 수단을 통해 독서가들 간의 활발한 교류를 촉진합니다.
  • 독서 습관 형성: 독서 통계 등의 기능을 통해 사용자들이 지속적으로 독서에 관심을 가질 수 있도록 도와줍니다.

🎯 타겟

  • 독서를 사랑하는 모든 이들: 책을 좋아하고, 자신의 독서 경험을 남기고 공유하고 싶은 사람들.
  • 독서 습관을 기르고 싶은 분들: 독서 기록을 체계적으로 관리하며, 독서량을 늘리고 싶은 사용자.
  • 다른 독서가들과 소통하고 싶은 분들: 책에 대한 다양한 의견과 감상을 공유하고, 새로운 책을 추천받고 싶은 사람들.

📝 서비스 개요

  • 서재 관리: 사용자는 최대 3개의 서재를 생성하여 책을 분류하고, 각 서재를 자신만의 스타일로 꾸밀 수 있습니다.
  • 한줄평 기능: 읽은 책에 대한 간단한 감상을 남기고, 다른 사용자의 한줄평을 탐색하며 새로운 독서 아이디어를 얻을 수 있습니다.
  • 큐레이션 레터: 사용자들은 자신만의 독서 취향을 담은 큐레이션 레터를 작성하여 다른 사용자들과 공유할 수 있습니다.
  • 북톡(독서 커뮤니티): 실시간 채팅을 통해 책에 대한 다양한 의견을 나누고, 독서 모임을 진행할 수 있습니다.
  • 독서 통계: 자신의 독서 패턴을 시각화하여 파악하고, 독서 습관을 형성하는 데 도움을 줍니다.
  • 글귀 보관 : 사용자는 책에서 인상깊었던 글귀를 사진/텍스트를 통해 쉽게 보관할 수 있습니다.

🚀 타 서비스와의 차별성

  • 사용자 중심의 서재 커스터마이징: 단순한 책 목록이 아닌, 사용자의 개성을 담은 서재를 꾸밀 수 있습니다.
  • 큐레이션 기반 소통: AI 챗봇과의 대화를 통해 개인 맞춤형 책 추천을 받거나, 큐레이션 레터를 통해 사용자 간의 깊이 있는 소통이 가능합니다.
  • 손쉬운 독서 기록: 복잡한 절차 없이도 책을 등록하고, 감상을 남기며, 이를 다른 사용자들과 공유할 수 있습니다.
  • 독서 습관 강화 도구 제공: 독서 통계 등의 기능을 통해 사용자의 독서 패턴을 분석하고, 지속적인 독서 활동을 장려합니다.
  • 글귀 보관 : 사용자는 책에서 인상깊었던 글귀를 사진/텍스트를 통해 쉽게 보관할 수 있으며 배경 사진과 폰트 설정 등 다양한 커스터마이징을 할 수 있습니다.

북꾸북꾸는 독서 경험을 더 풍부하게 만들고, 사용자가 자신의 독서 취향을 공유하며 다른 사용자들과 교류할 수 있는 플랫폼을 목표로 합니다.

🌟 주요 기능

회원 관리

  • 이메일 가입:
    • 사용자는 이메일, 비밀번호, 닉네임을 입력하여 회원으로 가입할 수 있습니다.
    • 추가 정보(연령, 성별, 선호 카테고리)를 필수로 입력하여 더욱 개인화된 경험을 제공합니다.
  • 소셜 회원가입/로그인:
    • 카카오, 네이버, 구글 등의 소셜 로그인으로 간편하게 회원가입 및 로그인이 가능합니다.
    • 이를 통해 사용자는 복잡한 절차 없이 서비스에 접근할 수 있습니다.
  • 비밀번호 초기화:
    • 사용자는 이메일 인증을 통해 비밀번호를 손쉽게 초기화할 수 있습니다.

서재 관리

  • 서재 생성:
    • 사용자는 개인 맞춤형 서재를 생성할 수 있습니다.
    • 최대 3개의 서재를 생성하여 관리할 수 있습니다.
  • 서재 커스터마이징:
    • 사용자는 드래그 앤 드롭(drag-and-drop) 기능을 통해 서재 내 책을 쉽게 이동할 수 있습니다.
    • 서재의 이름과 색상, 폰트 설정, 책의 색상 테마를 설정할 수 있습니다
  • 책 등록 및 관리:
    • 사용자는 서재에 책을 등록하고, 읽은 상태 등을 기록할 수 있습니다.
    • 이렇게 등록된 책은 서재에 저장되어 쉽게 관리됩니다.
    • 한 서재에 최대 21권의 책을 등록할 수 있습니다.

한줄평 기능

  • 한줄평 등록:
    • 사용자는 최대 70자까지의 한줄평을 작성하여 책에 대한 감상을 공유할 수 있습니다.
  • 한줄평 삭제:
    • 등록된 한줄평을 삭제할 수 있습니다.
    • 이는 사용자가 자신의 독서 경험을 자유롭게 표현하고 관리할 수 있도록 돕습니다.
  • 한줄평 파도타기:
    • 다른 사용자의 한줄평을 탐색하며, 마음에 드는 사용자의 서재를 방문할 수 있는 기능입니다.
    • 이를 통해 새로운 책과 사용자와의 연결이 가능합니다.

큐레이션

  • 큐레이션 챗봇:
    • 사용자는 자신의 선호 장르나 현재 기분에 따라 큐레이션 챗봇으로부터 책 추천을 받을 수 있습니다. 이는 개인화된 독서 경험을 제공합니다.
  • 큐레이션 레터:
    • 사용자는 자신의 선호 카테고리가 비슷한 사용자에게 큐레이션 레터를 전송할 수 있습니다.
    • 레터는 무작위로 3명의 사용자와 팔로워에게 전송되어 새로운 독서 기회를 제공합니다.
  • 큐레이션 보관:
    • 받은 큐레이션 레터를 보관하고 관리할 수 있는 기능입니다. 이를 통해 사용자는 가치 있는 추천서를 지속적으로 참고할 수 있습니다.

마이페이지

  • 개인정보 수정:
    • 사용자는 프로필 사진, 닉네임, 비밀번호, 연령, 성별, 선호 카테고리 등을 쉽게 수정할 수 있습니다.
    • 이를 통해 지속적으로 자신의 계정을 최신 상태로 유지할 수 있습니다.
  • 독서 통계:
    • 도넛 차트를 통해 카테고리별 독서량을 시각적으로 확인할 수 있습니다.
    • 이는 사용자가 자신의 독서 습관을 분석하고 개선하는 데 도움을 줍니다.
  • 내 글귀:
    • 사용자는 책에서 인상적인 글귀를 사진이나 텍스트 형태로 저장하여 보관할 수 있습니다.
    • 이는 독서 중 발견한 소중한 글귀를 쉽게 관리할 수 있게 합니다.
  • 친구 관리:
    • 팔로잉, 팔로워 관리 및 닉네임을 통한 사용자 검색 기능을 제공합니다.
    • 이를 통해 사용자는 자신의 네트워크를 확장하고 관리할 수 있습니다.

북톡(독서 커뮤니티)

  • 커뮤니티 메인화면:
    • 사용자는 자신이 참여한 도서와 최근 인기 도서를 확인할 수 있습니다. 이를 통해 커뮤니티 활동을 활성화할 수 있습니다.
  • 채팅방 생성 및 관리:
    • 책 검색을 통해 채팅방을 생성하고, 다른 사용자들과 책에 대해 소통할 수 있는 기능입니다. 이는 독서 경험을 공유하는 데 중점을 둡니다.
  • 다른 사용자 서재 구경:
    • 사용자는 채팅방 내에서 다른 사용자의 서재를 탐색하고 그들의 독서 목록을 확인할 수 있습니다. 이를 통해 새로운 책과 사용자를 발견하는 기회를 제공합니다.

👨‍👩‍👧‍👧 팀원 소개

역할 이름 담당
Frontend 김지윤 팀장, UI 디자인, 프론트엔드 개발
김혁 UI 디자인, 프론트엔드 개발
송예진 UI 디자인, 프론트엔드 개발
Backend 김인엽 서재 서버 개발(서재, 통계), 책 서버 개발(책, 카테고리, 한줄평)
김종호 큐레이션 서버 개발, 북톡 서버 개발(채팅 서비스), 인프라 설정
왕승철 유저/인증 서버 개발, 알림 서버 개발, 글귀 기능 개발

⚙ 개발환경

Management Tool

Git-F05032.svg GitLab-FC6D26.svg Jira Software-0052CC.svg Mattermost-0058CC.svg Notion-000000.svg Figma-F24E1E.svg

IDE

VS-CODE IntelliJ

Infra

AWS Amazon_EC2 nginx nginx docker jenkins postgresql Redis Prometheus Grafana

Frontend

HTML5 CSS3 JavaScript React Vite Axios TailwindCSS ReactQuery Jotai

Backend

Java SpringBoot SpringSecurity SpringCloud SpringJPA SpringCloudGateway SpringCloudEureka QueryDSL

외부 API

Google GoogleCloud Kakao Naver OpenAI Aladin

기술적 차별점

북꾸북꾸는 최신 기술 스택을 활용하여 사용자 경험을 극대화하고, 안정적이고 확장 가능한 서비스를 제공하기 위해 다음과 같은 기술적 차별점을 가지고 있습니다:

프론트엔드

  • React DnD: 서재 관리에서 직관적인 드래그 앤 드롭 경험을 제공하여 사용자 인터페이스의 편리성을 높였습니다.
  • 애니메이션 효과: Swiper와 React Transition Group을 활용해 부드러운 전환 효과와 UI 상호작용을 구현했습니다.
  • 상태 관리: Jotai와 React Query를 통해 효율적인 상태 관리를 구현하고, 서버와의 데이터 동기화를 실시간으로 유지합니다.
  • 무한 스크롤: React Intersection Observer를 활용해 성능 최적화된 무한 스크롤 기능을 구현했습니다.
  • 실시간 통신: SockJS와 StompJS를 통해 사용자 간 실시간 메시지 교환 및 알림 기능을 제공합니다.
  • 시각적 통계 제공: Chart.js와 react-chartjs-2를 사용하여 사용자의 독서 데이터를 시각적으로 표현해줍니다.

백엔드

  • 마이크로서비스 아키텍처: 각 서비스가 독립적으로 배포되고 관리될 수 있는 마이크로서비스 구조를 채택하여 확장성과 유지보수성을 강화했습니다.
  • RESTful API: Spring Boot를 기반으로 한 RESTful API를 통해 클라이언트와 서버 간의 효율적인 데이터 통신을 지원합니다.
  • 데이터베이스 최적화: 각 마이크로서비스는 자체 데이터베이스(PostgreSQL, Redis)를 보유하고 있으며, 서비스에 맞게 최적화되었습니다.
  • Eureka 서비스 디스커버리: 서비스 간의 통신과 로드 밸런싱을 위해 Eureka를 사용하여 동적 서비스 디스커버리를 구현했습니다.

인프라

  • 컨테이너화: Docker와 Docker Compose를 사용해 각 서비스를 컨테이너화하여 일관성 있는 개발 환경과 효율적인 배포를 구현했습니다.
  • 리버스 프록시: Nginx를 활용해 리버스 프록시를 구성, 트래픽을 효과적으로 분산 처리하고 보안을 강화했습니다.
  • CI/CD 파이프라인: Jenkins와 GitLab을 통해 CI/CD 파이프라인을 구축하여 코드의 품질을 보장하고 자동 배포를 실현했습니다.
  • 모니터링 및 로그 관리: Prometheus와 Grafana를 통해 시스템 모니터링 및 알림을 설정하고, Loki와 Promtail을 사용해 로그를 수집 및 분석합니다.

📜 설계 문서

아키텍처 구조

MSA와 Event Driven Architecture를 적용하여 확장성과 유지보수성을 확보. 아키텍처도

ERD

관계형 데이터베이스(PostgreSQL)와 NoSQL (MongoDB)를 활용한 데이터 모델 설계. erd

보안 및 성능 최적화

북꾸북꾸는 사용자 정보의 보호와 빠른 서비스 제공을 위해 다음과 같은 보안 및 성능 최적화 기술을 적용했습니다:

보안

  • JWT (JSON Web Token): 사용자 인증을 위해 JWT를 사용하며, 클라이언트와 서버 간의 안전한 통신을 보장합니다. JWT 토큰은 HTTP 헤더에 포함되어 사용자의 요청을 인증합니다.
  • OAuth 2.0: 소셜 로그인(Kakao, Naver, Google)을 통해 간편하면서도 안전하게 로그인할 수 있습니다.
  • 비밀번호 암호화: 사용자 비밀번호는 안전하게 암호화되어 저장되며, 탈취된 경우에도 안전하게 보호됩니다.

성능

  • 캐싱: Redis를 활용하여 자주 사용되는 데이터를 캐싱함으로써 서버 부하를 줄이고 응답 속도를 개선했습니다.
  • 무한 스크롤: React Intersection Observer를 사용하여 사용자 경험을 향상시키기 위한 무한 스크롤을 구현했습니다.
  • 실시간 통신: SockJS와 StompJS를 사용하여 사용자의 액션에 실시간으로 반응할 수 있는 실시간 통신 기능을 구현했습니다.
  • GIN 인덱스 사용: 책 제목, 저자, 출판사에 대한 LIKE 검색 최적화
  • 스케일 아웃 : 사용자 정보 조회, 책 검색에 대한 요청이 빈번하여 Member, Book 서비스에 대한 컨테이너 스케일 아웃을 진행하여 성능 향상을 이끌었습니다.

쿼리 성능 최적화 적용 결과

  • 사용자 정보 조회 : 대략 55% 향상
  • 책 검색 : 대략 78% 향상

🎥 기능 시연

회원 가입 및 로그인

  • 이메일 회원 가입

    • 사용자는 이메일, 비밀번호, 닉네임을 입력하여 회원 가입을 완료할 수 있습니다.
    • 가입 후 추가 정보(연령, 성별, 선호 카테고리)를 입력합니다.
  • 소셜 로그인

    • 카카오, 네이버, 구글 계정을 통해 소셜 로그인이 가능합니다.
    • 소셜 계정과 연동하여 빠르게 가입 및 로그인할 수 있습니다.

    회원 가입 GIF

서재 관리

  • 서재 생성

    • 사용자는 최대 3개의 서재를 생성할 수 있으며, 서재 이름과 색상 테마, 폰트를 설정할 수 있습니다. 서재 생성 GIF

    • 변경 가능한 서재 색상

      서재 생성 GIF

    • 변경 가능한 서재 폰트

      서재 생성 GIF

  • 책 등록

    • 책의 기본 정보(제목, 저자, 출판사)를 입력하고, 읽은 상태를 기록합니다.

    • 사용자는 서재에 책을 저장하여 체계적으로 관리할 수 있습니다.

    • 최대 21권의 책을 등록할 수 있습니다. 책 등록 이미지

    • 거의 채워진 서재 모습

      책 등록 이미지

  • 서재 내 책 이동

    • 사용자는 드래그 앤 드롭을 통해 서재 내 책의 순서를 변경할 수 있습니다. 책 이동 이미지
  • 한줄평 작성

    • 사용자는 서재 내 책에 대한 한줄평을 작성할 수 있습니다. 한줄평 이미지
  • 파도 타기

    • 사용자는 서재 내 책을 조회하여 한줄평 파도타기를 할 수 있습니다.
    • 사용자는 다른 사람의 한줄평을 refresh 할 수 있습니다.

    파도타기 이미지

큐레이션

  • 큐레이션 챗봇을 통한 추천

    큐레이션 챗봇 이미지

    • 사용자는 큐레이션 챗봇과 대화를 나누며 현재 기분에 맞는 책을 추천받을 수 있습니다.
    • 예를 들어, "우울할 때 읽을 만한 책"을 추천받을 수 있습니다.
  • 큐레이션 레터 보내기

    큐레이션 레터 이미지 큐레이션 레터 이미지

    • 사용자는 큐레이션 레터를 작성하여 다른 사용자에게 보낼 수 있습니다.
    • 팔로워와 일반 사용자들에게 무작위로 레터가 전송됩니다.
  • 큐레이션 레터 보관

    큐레이션 레터 이미지 큐레이션 레터 이미지 큐레이션 레터 이미지

    • 사용자는 받은레터, 보낸레터, 보관레터를 확인할 수 있습니다.

북톡 (독서 커뮤니티)

  • 북톡 생성 및 소통

    북톡 이미지 북톡 이미지

    • 사용자는 책 제목으로 채팅방을 생성하고, 다른 사용자들과 책에 대한 의견을 나눌 수 있습니다.
    • 생성된 채팅방에서 독서에 대한 대화를 이어나갈 수 있습니다.

알림

  • 알림

    알림 이미지

    • 사용자는 큐레이션, 팔로우 등에 대한 알람을 확인할 수 있습니다.

마이페이지

  • 독서 기록 통계 시각화

    독서 기록 통계 이미지

    • 도넛 차트를 통해 사용자의 독서 기록을 시각적으로 확인할 수 있습니다.
    • 카테고리별 독서량을 분석하여 사용자의 독서 취향을 파악할 수 있습니다.
  • 내 글귀

    • 텍스트

      내 글귀 텍스트 이미지 내 글귀 텍스트 이미지 내 글귀 텍스트 이미지

    • 이미지(OCR 적용)

      내 글귀 OCR 이미지 내 글귀 OCR 이미지

    • 사용자는 책에서 인상깊었던 글귀를 사진/텍스트로 저장할 수 있습니다.

    • 사용자는 사진 업로드 시 OCR을 통해 텍스트를 추출하여 어울리는 배경과 함께 저장할 수 있습니다.

    • 사용자는 직접 텍스트를 입력하여 저장할 수 있습니다.

  • 사용자 설정

    • 프로필 설정

      프로필 이미지

    • 공개 설정

      공개설정 이미지

    • 사용자는 프로필과 공개설정을 변경할 수 있습니다.

팔로우 및 친구 관리

  • 팔로우 및 팔로워 관리

    팔로우 관리 이미지 팔로워 관리 이미지

    • 사용자는 관심 있는 다른 사용자를 팔로우하여 그들의 독서 활동을 팔로우 피드에서 확인할 수 있습니다.
    • 팔로우한 사용자의 서재 업데이트, 큐레이션 레터 등을 실시간으로 확인할 수 있습니다.
    • 팔로워 목록과 팔로잉 목록을 통해 서로의 독서 활동을 공유하고 소통할 수 있습니다.

Popular repositories Loading

  1. backend backend Public

    📚 북꾸북꾸: 독서 큐레이션 SNS 나만의 서재를 가꾸고, 독서 기록을 쉽게 관리하세요!

    Java 3 1

  2. frontend frontend Public

    📚 북꾸북꾸: 독서 큐레이션 SNS 나만의 서재를 가꾸고, 독서 기록을 쉽게 관리하세요!

    JavaScript

  3. .github .github Public

Repositories

Showing 3 of 3 repositories
  • .github Public
    SSAFY-BOOKKOO/.github’s past year of commit activity
    0 0 0 0 Updated Sep 10, 2024
  • backend Public

    📚 북꾸북꾸: 독서 큐레이션 SNS 나만의 서재를 가꾸고, 독서 기록을 쉽게 관리하세요!

    SSAFY-BOOKKOO/backend’s past year of commit activity
    Java 3 1 0 0 Updated Sep 10, 2024
  • frontend Public

    📚 북꾸북꾸: 독서 큐레이션 SNS 나만의 서재를 가꾸고, 독서 기록을 쉽게 관리하세요!

    SSAFY-BOOKKOO/frontend’s past year of commit activity
    JavaScript 0 0 0 0 Updated Sep 8, 2024

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…