Skip to content
sinyoung0403 edited this page Jul 8, 2025 · 53 revisions

1. 프로젝트 소개 (Project Overview)

1) 프로젝트 개요

  • Cluvr는 온라인 스터디와 커뮤니티 중심의 클럽 기반 플랫폼입니다.
  • 사용자는 관심 있는 클럽(스터디, 소모임 등)에 가입해, 실시간 채팅, 커뮤니티 게시판, 알림 기능 등을 통해 활발하게 소통할 수 있습니다.
  • 클럽마다 비공개 설정, 가입 양식, 초대코드 등 맞춤형 설정이 가능하며, 커뮤니티 게시판(질문/자유)에는 채택 기능과 내공 시스템(클로버)을 도입해 지식 기반 소통과 활발한 커뮤니티 참여를 유도합니다.
  • 또한, 포인트(젬) 기반의 결제 시스템을 적용하여, 클럽 생성 시 포인트 차감, 유료 기능 확장 등 지속 가능한 운영 모델도 함께 고려했습니다.

2) 기획 의도 및 해결 과제

  • 기존 오프라인 중심의 스터디/소모임 문화를 온라인 클럽 플랫폼으로 구조화하고 확장했습니다.

  • 단순한 가입형 커뮤니티가 아닌, 참여 기반의 가치 보상 시스템(클로버/채택)을 통해 사용자의 지식 기여와 활동 유도합니다.

  • 사용자의 활동 목적에 맞는 맞춤형 클럽 경험 제공합니다. (예: 비공개 클럽, 가입 양식 설정, 초대코드 기반 접근 제어 등)

2. 전체 구조 및 탐색 가이드

1) 서비스 플로우 (유저 플로우)

서비스 플로우 다이어그램

시스템 플로우

2) 클래스 다이어그램

Auth

Auth _ Mermaid Chart-2025-07-06-095959

영역 클래스 설명
컨트롤러 AuthController 인증 관련 API 처리
서비스 AuthService, AuthServiceImpl 인증 서비스 인터페이스 및 구현
유저 주입 AuthUser, AuthenticationArgumentResolver 로그인 유저 정보를 컨트롤러에 주입함
예외 처리 AuthenticationException 인증 실패 시 발생 예외
JWT 유틸 JwtUtil JWT 토큰 발급 및 유효성 검증
인증 필터 JwtAuthenticationFilter 요청에서 JWT 검증 및 인증 처리
시큐리티 설정 JwtDecoderConfig, SecurityConfig Spring Security 필터 체인 및 설정 구성
User

유저

영역 클래스 설명
도메인 User 시스템의 핵심 사용자 도메인
저장소 UserRepository JPA 기반 저장소 인터페이스
서비스 UserService, UserServiceImpl 유저 조회 및 업데이트 로직 처리
속성 Enum UserRole, Gender, CategoryType 사용자 속성에 사용되는 Enum 값들
Community

게시판

영역 클래스 설명
도메인 Board 게시판 도메인
서비스 BoardService, BoardServiceImpl 게시글 등록 및 조회/수정 처리
저장소 BoardRepository, BoardRepositoryCustom, Impl 게시글 커스텀 조회 등
Redis BoardViewCountRedisService, BoardReactionCountRedisService 조회수, 반응수 Redis 처리
추천 RecommendBoardRedisService 추천 게시글 캐싱 처리
Enum BoardType, CategoryType 게시판 유형, 카테고리 구분
Community Reply

댓글

영역 클래스 설명
도메인 Reply, ReplyChild 댓글 및 대댓글 구조
유틸 MentionInfo 멘션된 유저 정보 파싱 및 표시
반응 Reaction, ReactionType 댓글에 대한 좋아요/싫어요 처리
서비스 ReplyService*, ReactionService* 댓글 작성, 수정, 반응 처리 서비스
Redis ReplyReactionRedisService, ReactionCountRedisService 댓글 반응 수 Redis 캐싱
Club

클럽

영역 클래스 설명
도메인 Club, ClubMember 클럽 정보와 소속 멤버 구조 관리
Enum ClubType, JoinType, ClubMemberRole, ClubMemberStatus 클럽 속성 및 멤버 역할/상태 구분
서비스 ClubService, ClubMemberService (+Impl) 클럽 생성, 초대, 멤버 관리
유틸 ClubJoinValidator, ClubValidator, ClubRedisService 유효성 검증 및 초대코드 Redis 처리
Club Request & Application Form

클럽 신청 및 양식

영역 클래스 설명
도메인 JoinRequest, JoinRequestAnswer 클럽 가입 요청 및 양식 응답 저장
양식 ProblemForm, SubmissionForm 문제 출제 및 제출 템플릿 관리
Enum JoinType, JoinStatus, FormFieldType 가입 유형, 상태, 양식 필드 타입 구분
서비스 JoinService, JoinServiceImpl 가입 요청 처리 비즈니스 로직
저장소 JoinRequestRepository, JoinRequestAnswerRepository 가입 요청 및 답변 저장소
쿼리 JoinRequestRepositoryQuery QueryDSL 기반 고급 조회
유틸 JoinRedisService, ClubJoinValidator Redis 락 처리, 중복 가입 방지 유효성 검증
TIL

TIL

영역 클래스 설명
TIL Til, TilRepository, TilService 사용자가 작성한 TIL 관리
리뷰 TilReview, TilReviewRepository, TilReviewService AI 기반 리뷰 결과 저장 및 조회
관계 TilReview → Til 각 리뷰는 특정 TIL에 종속됨
Notice

Notice

영역 클래스 설명
도메인 Notice 클럽 내 공지사항 도메인 구조
저장소 NoticeRepository 공지사항 저장, 조회 및 삭제 처리
서비스 NoticeService, NoticeServiceImpl 공지사항 생성/수정/삭제/조회 처리
관계 Club, User 공지는 특정 클럽 및 작성자와 연결됨
Gem / Clover

포인트 및 내공

영역 클래스 설명
Clover Clover, CloverLog, CloverServiceImpl 활동 내공 적립/소비 및 로그 관리
Gem GemLog, GemServiceImpl, GemRedisService 포인트 충전/소비/이벤트 적립 처리
Enum GemActionType, CloverActionType, GemUserActivityType 활동 및 이벤트 유형 구분
이벤트 GemEvent, CloverEvent 사용자 활동 트리거에 의한 포인트 처리
핸들러 GemMethodHandler 및 구현체들 액션 타입별 젬 처리 로직 분리
Global Utils

전역 유틸 구성

영역 클래스 설명
인증/보안 JwtUtil, JwtAuthenticationFilter, OAuth2LoginSuccessHandler, SecurityConfig 인증 토큰 처리 및 Spring Security 설정
인증 해석기 AuthenticationArgumentResolver 컨트롤러에서 로그인 유저 자동 주입
예외 처리 GlobalExceptionHandler, BusinessException, ResponseCode, ErrorResponse 전역 예외 코드 및 응답 구조 처리
공통 응답 ApiResponse, PageResponse 일관된 API 응답 포맷 제공

3) API 명세서

https://documenter.getpostman.com/view/45603497/2sB2x8DqVq

4) 도메인 모델 및 ERD

ERD Diagram

Cluvr ERE Diagram

5) 기술 스택 (API 서버 기준)

(1) Backend

Java Spring Boot Spring JPA MySQL Redis OAuth QueryDSL

(2) Infrastructure

AWS EC2 AWS S3 AWS RDS AWS ElastiCache AWS Load Balancer AWS Route 53 AWS CodeDeploy AWS IAM AWS Certificate Manager Docker Docker Compose

(3) Monitoring & Testing

Postman Prometheus Grafana JMeter

‍(4) Collaboration Tools

GitHub Slack Notion Figma Draw.io ERD Cloud Google Slides

(5) Build Tools & IDE

IntelliJ IDEA Gradle GitHub Actions

6) 협업 가이드

(1) Code Convention

(2) Git Convention

Cluvr Git Convention, PR Strategy Guide

3. 도메인 개요 및 주요 기능 정리

4. 비즈니스 규칙 (Business Rule)

  • (추후 앱에 대한 비즈니스 규칙을 추가할 예정입니다.)

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

기술적 의사결정

성능개선 사례

6. 트러블 슈팅

ddfdsaf

Clone this wiki locally