백엔드 부트캠프/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
Database & Cache
Message Queue
Infra & DevOps
Monitoring
Test & Build
ERD
API 명세서
전체 시스템 구조
1. 시스템 아키텍처
2. 시스템 플로우
서비스 플로우 확인
주요 패키지 구조
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. 도메인 설명
- 인증인가- Auth 도메인
- 유저- User 도메인
- 재화- Gem 도메인
- 결제- Payment 도메인
- 내공- Clover 도메인
- 클럽- Club 도메인
- 클럽- Application Form 도메인
- 클럽- Join Request 도메인
- 클럽- Notice 도메인
- 클럽- TIL 도메인
- 클럽- TIL Review 도메인
- 커뮤니티- Board 도메인
- 커뮤니티- Reply 도메인
- 커뮤니티- Reaction 도메인
2. 기술적 의사결정 및 성능개선
- CI/CD 구조 개선 정리
- Cognito 기반 OAuth2 도입
- OpenAI API 연동 기술적 의사결정(ChatGPT연동)
- 시스템 아키텍처 전환 및 구조 개편
- 인증 아키텍처 (API Gateway & Cognito)
- 클럽 가입 로직 재설계 책임 주체 명확화와 도메인 분리
- 클럽 비공개 가입을 위한 초대코드 시스템
- OpenAI 배치 성능 개선
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 시연