Skip to content

ssu-capstone-bookstar/server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📖 BookStar: 당신의 독서 습관을 만들어가는 여정

BookBook은 단순히 책을 기록하는 것을 넘어, 챌린지를 통해 꾸준한 독서 습관을 형성하고 다른 사용자들과의 소통을 통해 독서의 즐거움을 공유하는 소셜 리딩 플랫폼입니다.

AI 추천 시스템과 실시간 채팅 기능을 통해 독서 경험을 더욱 풍부하게 만들고, 사용자가 독서의 세계에 더 깊이 빠져들 수 있도록 돕는 것을 목표로 합니다.

✨ 주요 기능

기능 상세 설명
📚 독서 챌린지 및 일기 특정 책에 대한 독서 챌린지를 생성하고, 매일의 독서 기록을 일기로 남길 수 있습니다. 페이지 수, 내용, 관련 이미지를 첨부하여 나만의 독서 히스토리를 만듭니다.
🔍 책 검색 및 정보 알라딘 API와 연동하여 국내외 도서를 실시간으로 검색하고, 상세 정보, 평점, 다른 사용자들의 독서 일기 목록을 확인할 수 있습니다.
❤️ 소셜 및 커뮤니티 다른 사용자를 팔로우하고, 독서 일기에 '좋아요'나 댓글을 남기며 소통할 수 있습니다. 인기 일기를 통해 새로운 책과 관점을 발견할 수 있습니다.
💬 실시간 채팅 Ably 기반의 실시간 채팅 기능을 통해 책이나 특정 주제에 대해 다른 사용자들과 자유롭게 대화할 수 있습니다.
🤖 AI 도서 추천 사용자가 남긴 독서 키워드를 분석하여, 취향에 맞는 새로운 책을 추천해주는 AI 추천 시스템을 제공합니다.
🔔 실시간 알림 FCM(Firebase Cloud Messaging)을 통해 새로운 팔로워, 댓글, 좋아요 등 중요한 활동을 놓치지 않도록 실시간 푸시 알림을 제공합니다.
📈 통계 및 인기 점수 모든 독서 일기는 조회수, 좋아요, 댓글 수를 기반으로 자체적인 인기 점수가 계산됩니다. 스케줄러를 통해 주기적으로 업데이트되며, 이를 통해 인기 독서 일기를 정렬하여 보여줍니다.

🏛️ 아키텍처

BookBook 서비스는 확장성과 안정성을 고려하여 스프링 서버 내에서 이벤트 기반 비동기 아키텍처를 적극적으로 도입했습니다. 사용자의 핵심 요청(e.g., 검색, 조회)은 최대한 빠르게 처리하고, 부가적인 작업(e.g., 통계 집계, 검색어 저장)은 비동기 이벤트 리스너를 통해 처리하여 시스템의 응답성과 장애 격리 수준을 높였습니다.

image

🛠️ 기술 스택

Backend

  • Java 17
  • Spring Boot 3.x
  • Spring Data JPA & QueryDSL
  • Spring Security & JWT
  • Spring Web, Validation

Database

  • MySQL (or other RDBMS)
  • Redis (캐시, 실시간 통계, 분산 락)

External APIs & Services

  • Aladin Open API: 도서 정보 검색
  • Ably: 실시간 채팅 기능
  • Firebase Cloud Messaging (FCM): 푸시 알림
  • AWS S3: 이미지 등 정적 파일 저장

DevOps & Tools

  • Gradle
  • JUnit 5 & Mockito
  • Git & GitHub

🚀 시작하기

1. 환경 설정

*/application.yml 파일은 노션에 기입해두었습니다.

firebase-account.json 파일은 노션에 기입해두었습니다.

2. 테스트 실행 (Running Tests)

우리 프로젝트는 통합 테스트의 독립성과 편의성을 위해 Testcontainers를 사용합니다.

  • 테스트 실행 시, Redis는 Testcontainers가 자동으로 Docker 컨테이너를 띄워 관리합니다. 따라서 로컬에 별도로 Redis를 설치할 필요가 없습니다.
  • 가장 중요: 테스트를 실행하기 전, 반드시 로컬 머신에서 Docker Desktop이 실행 중인 상태인지 확인해주세요. Docker가 실행되지 않으면 Testcontainers가 컨테이너를 생성하지 못해 테스트가 실패합니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages