백엔드 부트캠프/TIL

[내일배움캠프Spring-97일차] 최종 프로젝트 - Readme

sintory-04 2025. 7. 8. 20:51

Cluvr API

Cluvr API는 사용자들이 다양한 클럽을 생성하고 참여할 수 있는 소셜 플랫폼의 백엔드 API입니다. 스터디, 프로젝트, 커뮤니티 등 다양한 목적의 클럽을 운영하고, 멤버들과 소통할 수 있는 종합적인 플랫폼을 제공합니다.


개발 기간

2025.05.27 ~ 2025.07.04

개발 팀 소개

역할 리더 부리더 팀원 팀원 팀원 팀원
이름 나원준 박신영 박선영 이용환 정승원 정은세
GitHub dnjs5024 sinyoung0403 Tcimel YongLeeCode alpomjeong escomputer
기술블로그 나원준 tistory 박신영 tistory 박선영 tistory 이용환 vlog 정승원 tistory 정은세 tistory

기술 스택

Backend

JavaSpring BootSpring SecuritySpring WebFluxSpring Data JPAQueryDSL

Database & Cache

MySQLRedisRedisson

Message Queue

RabbitMQSpring AMQP

Infra & DevOps

AWS CognitoAWS S3DockerDocker ComposeJenkins

Monitoring

PrometheusSpring Boot ActuatorMicrometer

Test & Build

GradleLombokJUnit5TestContainers


ERD

cluvr (1)_pages-to-jpg-0002


API 명세서


전체 시스템 구조

1. 시스템 아키텍처

시스템아키텍처

2. 시스템 플로우

Auth _ Mermaid Chart-2025-07-07-010106

서비스 플로우 확인

시스템 플로우


주요 패키지 구조

src/main/java/com/example/cluvrapi/domain/
├── auth/            인증 및 권한 관리
├── board/           게시판 시스템
├── category/        카테고리 관리
├── club/            클럽 관리
├── clubMember/      클럽 멤버 관리
├── clover/          클로버(내공 시스템)
├── common/          공통 유틸리티
├── gem/             Gem(포인트) 시스템
├── image/           이미지 업로드
├── join/            가입 프로세스
├── notice/          공지사항
├── notification/    알림 시스템
├── payment/         결제 시스템
├── reaction/        좋아요 및 반응
├── reply/           댓글
├── replyChild/      대댓글
├── til/             TIL
├── tilReview/       TIL 리뷰 시스템
├── user/            사용자 정보

주요 기능 요약

✅ 클럽 관리

  • 클럽 생성/조회/수정/삭제
  • 공개/비공개 설정, 가입 방식 커스터마이징
  • 클럽 멤버 관리 (클럽장/관리자/일반)

✅ 가입 시스템

  • 문제제출형, 신청서형, 초대코드, 즉시가입 등 다양한 방식 지원
  • 클럽별 양식 관리 및 통계 제공

✅ Gem & 결제

  • 활동 보상 기반 포인트 시스템
  • 클럽 확장, 가입비, 아이템 구매 등 Gem 사용
  • 포인트 구매 및 결제 내역 관리

✅ 게시판/댓글/반응

  • 게시글 작성, 수정, 삭제, 페이징 조회
  • 댓글 및 대댓글 지원
  • 좋아요 및 반응 기능

✅ 인증 및 보안

  • AWS Cognito + JWT 기반 인증
  • OAuth2 로그인 지원
  • 역할 기반 접근 제어

✅ 모니터링/분석

  • Prometheus 및 Actuator 기반 모니터링
  • 사용자 활동 로그 및 통계 수집

✅ 알림 시스템

  • 실시간 알림 (RabbitMQ 기반)
  • 이메일 발송 및 사용자 설정 지원

Wiki 문서

  • 프로젝트를 진행하며 남긴 기술적 선택의 근거, 구조 설계 과정, 주요 도메인 설명 등을 아래 문서에 정리했습니다.
  • WIKI HOME LINK: 📖 WIKI HOME

1. 도메인 설명

2. 기술적 의사결정 및 성능개선

3. 트러블 슈팅


프로젝트 실행

# 실행 순서
1. git clone https://github.com/your-username/cluvr-api.git
2. cp .env.example .env
3. docker-compose up -d
4. ./gradlew bootRun 또는 java -jar build/libs/cluvr-api.jar

🔐 환경 변수 (.env)

# Database
DB_HOST=localhost
DB_PORT=3306
DB_NAME=cluvr
DB_PASSWORD=your-db-password

# Redis
REDIS_HOST=localhost
REDIS_PORT=6379

# AWS Cognito
USER_POOL_ID=your-pool-id
CLIENT_ID=your-client-id
CLIENT_SECRET=your-secret

# RabbitMQ
RMQ_USERNAME=admin
RMQ_PASSWORD=pwd

# JWT
JWT_SECRET_KEY=your-jwt-secret

# AWS S3
ACCESS_AWS=your-access-key
SECRET_AWS=your-secret-key

시연된 내용 기록

Cluvr 시연

Cluvr 시연