🔗 서비스 접속하기: https://www.booktri.site
🎥 서비스 영상 보기: YouTube 링크
독서 입문자와 다독가 모두를 위한 독서 기록 플랫폼
BookTree는 단순한 독서 기록을 넘어서, 책을 카테고리별로 정리하고 공유하며, 다시 쉽게 꺼내볼 수 있는 공간을 제공합니다.
나만의 블로그를 통해 독서의 즐거움을 더 풍부하게 경험해보세요!
- Backend: Java (Spring Boot)
- Frontend: JavaScript, HTML
- 기타: OAuth2 (Kakao, GitHub)
- 카테고리를 자유롭게 생성하여 독서 기록을 체계적으로 분류
- 독서 후기를 공유하고, 사람들과 소통하는 블로그 운영 가능
- 작성한 게시글을 최신순 / 좋아요순으로 정렬하여 손쉽게 탐색 가능
- 자주 찾는 글을 빠르게 다시 꺼내볼 수 있도록 구성
- 메인 페이지에서 실시간 인기 게시글 확인 (조회수 기준)
- 월간 인기 게시글 기능으로 분야별 트렌디한 책 추천
- 게시글 및 댓글 기능으로 자유로운 정보 교류
- 좋아요, 댓글 좋아요 기능으로 유익한 글과 반응 높은 댓글을 쉽게 탐색
- 관심 있는 사용자를 팔로우하고, 마음에 드는 글은 스크랩하여 따로 모아보기
- OAuth2 기반 소셜 로그인 지원
- Kakao, GitHub 계정으로 한 번의 클릭으로 로그인 및 회원가입 가능
독서 기록을 단순히 모으는 것을 넘어, 종류별로 정리하고 다시 꺼내보기 쉬운 공간이 필요하다고 느꼈습니다.
BookTree는 책을 더 오래, 더 깊이 기억할 수 있는 독서 공간을 목표로 개발되었습니다.
| 장지현 | 백선영 | 김건호 | 이현석 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| BE,FE(팀장) | BE,FE | BE,FE | BE,FE |
| GitHub | GitHub | GitHub | GitHub |
-
회원 관리:
- 일반 로그인 및 OAuth2 로그인을 통해 사용자 인증을 지원합니다.
- 일반 로그인: 사용자 이메일과 비밀번호를 통한 로그인
- OAuth2 로그인: Kakao 및 GitHub 계정을 통한 간편 로그인
- 일반 로그인 및 OAuth2 로그인을 통해 사용자 인증을 지원합니다.
-
게시글 관리:
- 사용자는 게시글을 생성하고 수정, 삭제할 수 있고 비사용자는 조회할 수 있습니다.
-
카테고리 관리:
- 카테고리 생성, 수정, 삭제 기능을 제공합니다.
-
블로그 관리:
- 블로그 생성, 수정, 삭제 기능을 제공합니다.
-
댓글 관리:
- 사용자는 게시글에 댓글을 달거나, 수정 삭제할 수 있고 비사용자는 조회할 수 있습니다.
-
대댓글 관리:
- 사용자는 댓글에 답 댓글을 달거나 수정, 삭제할 수 있고 비사용자는 조회할 수 있습니다.
-
인기 게시글 기능 :
- 카테고리별 가장 많이 조회된 책 TOP5 을 조회할 수 있습니다.
- 실시간 월간 일기 게시글을 조회할 수 있습니다.
-
팔로우 관리:
- 로그인 한 사용자끼리 팔로우하거나 팔로우를 취소하거나 내가 팔로우, 팔로잉한 사람들과 그들의 게시글을 확인할 수 있습니다.
-
좋아요 관리:
- 게시글, 댓글, 답글에 좋아요를 누르거나 좋아요를 취소할 수 있고 내가 좋아요를 한 게시글들을 확인할 수 있습니다.
| 장지현 |
|
| 백선영 |
|
| 김건호 |
|
| 이현석 |
|
| 장지현 |
|
| 백선영 |
|
| 김건호 |
|
| 이현석 |
|
📦main
┣ 📂java
┃ ┗ 📂com
┃ ┃ ┗ 📂example
┃ ┃ ┃ ┗ 📂booktree
┃ ┃ ┃ ┃ ┣ 📂auditable
┃ ┃ ┃ ┃ ┣ 📂blog
┃ ┃ ┃ ┃ ┣ 📂category
┃ ┃ ┃ ┃ ┣ 📂comment
┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┣ 📂email
┃ ┃ ┃ ┃ ┣ 📂enums
┃ ┃ ┃ ┃ ┣ 📂exception
┃ ┃ ┃ ┃ ┣ 📂follow
┃ ┃ ┃ ┃ ┣ 📂image
┃ ┃ ┃ ┃ ┣ 📂jwt
┃ ┃ ┃ ┃ ┣ 📂likecomment
┃ ┃ ┃ ┃ ┣ 📂likepost
┃ ┃ ┃ ┃ ┣ 📂likereply
┃ ┃ ┃ ┃ ┣ 📂maincategory
┃ ┃ ┃ ┃ ┣ 📂oauth
┃ ┃ ┃ ┃ ┣ 📂popularpost
┃ ┃ ┃ ┃ ┣ 📂post
┃ ┃ ┃ ┃ ┣ 📂reply
┃ ┃ ┃ ┃ ┣ 📂role
┃ ┃ ┃ ┃ ┣ 📂security
┃ ┃ ┃ ┃ ┣ 📂user
┃ ┃ ┃ ┃ ┣ 📂utils
┃ ┃ ┃ ┃ ┗ 📜BookTreeApplication.java
┗ 📂resources
┃ ┣ 📂static
┃ ┣ 📂templates
┃ ┃ ┗ 📜password.html
┃ ┣ 📜application-dev.yml
┃ ┣ 📜application-prod.yml
┃ ┣ 📜application-secret.yml
┃ ┣ 📜application-test.yml
┃ ┣ 📜application.yml
┃ ┣ 📜application.yml.default
┃ ┗ 📜data.sql
📦src
┣ 📂app
┃ ┣ 📂account
┃ ┃ ┣ 📂edit
┃ ┃ ┣ 📂editPassword
┃ ┃ ┣ 📂findAccount
┃ ┃ ┃ ┣ 📂findId
┃ ┃ ┃ ┗ 📂findPassword
┃ ┃ ┣ 📂login
┃ ┃ ┣ 📂signup
┃ ┃ ┗ 📂withdraw
┃ ┣ 📂blog
┃ ┃ ┣ 📂[id]
┃ ┃ ┃ ┣ 📂search
┃ ┃ ┣ 📂create
┃ ┃ ┣ 📂edit
┃ ┃ ┗ 📂post
┃ ┣ 📂category
┃ ┃ ┣ 📂[categoryId]
┃ ┣ 📂components
┃ ┣ 📂follow
┃ ┃ ┗ 📂[id]
┃ ┣ 📂main
┃ ┃ ┗ 📂category
┃ ┃ ┃ ┣ 📂[slug]
┃ ┣ 📂mypage
┃ ┃ ┣ 📂[id]
┃ ┃ ┗ 📂editCategory
┃ ┃ ┃ ┗ 📂[userId]
┃ ┣ 📂post
┃ ┃ ┣ 📂[postId]
┃ ┃ ┃ ┗ 📂detail
┃ ┃ ┃ ┃ ┗ 📂get
┃ ┃ ┗ 📂write
┃ ┣ 📂search
┃ ┣ 📜.prettierrc
┃ ┣ 📜ClientLayout.tsx
┃ ┣ 📜favicon.ico
┃ ┣ 📜globals.css
┃ ┣ 📜layout.tsx
┃ ┗ 📜page.tsx
┗ 📂stores
┃ ┗ 📂auth
📦infra
┣ 📜.gitignore
┣ 📜.terraform.lock.hcl
┣ 📜main.tf
┣ 📜secrets.tf
┣ 📜secrets.tf.default
┣ 📜terraform.tfstate
┣ 📜terraform.tfstate.1745779507.backup
┣ 📜terraform.tfstate.backup
┗ 📜variables.tf
우리의 브랜치 전략은 Git Flow를 기반으로 하며, 다음과 같은 브랜치를 사용합니다.
-
Main Branch
main- 배포 가능한 상태의 코드를 유지합니다.
- 모든 배포는 이 브랜치에서 이루어집니다.
-
프론트 단독 개발
front/#이슈번호-브랜치이름- 프론트엔드(html, css 등) 단독 작업 시 사용합니다.
- 배포 가능한 상태의 코드를 유지해야 하며, 배포는 이 브랜치에서 직접 이루어집니다.
-
프론트 + 백엔드 기능 연결
front/[type]/#이슈번호-브랜치이름- 프론트와 백엔드 기능이 함께 연결되는 작업 시 사용합니다.
- 팀원 각자의 기능 개발용 브랜치입니다.
- 기능 개발, 테스트, UI/서버 연동 등이 이 브랜치에서 이루어집니다.
- 완료 시 main 혹은 다른 상위 브랜치에 병합합니다.
-
백엔드 기능 개발
[type]/#이슈번호-브랜치이름- 백엔드 API, 서비스 로직, DB 처리 등 백엔드 중심 작업 시 사용합니다.
- 팀원 각자의 기능 개발용 브랜치입니다.
- 모든 기능 개발은 이 브랜치에서 진행되며, 완료 시 병합 요청합니다.
[ 브랜치 앞 명명 type ] : [ # 이슈 번호 ] subject
feat : 새로운 기능 추가
fix : 버그 수정
refact : 코드 리펙토링
add : 파일 추가
delete : 파일 삭제
docs : 문서 수정
[ type ] : subject
- 작업 목적 + 대상 + 내용을 포함해 작성합니다.
예시:
- [ front / refact ] : 메인페이지 인기 게시글, 블로그 페이지 팔로우, 팔로우 페이지 블로그 연동
- [ front / feat ] 댓글버튼 숨기기
- [ feat ] : 이메일 인증 구현




