-
Notifications
You must be signed in to change notification settings - Fork 1
Home
sinyoung0403 edited this page Jul 8, 2025
·
53 revisions
- Cluvr는 온라인 스터디와 커뮤니티 중심의 클럽 기반 플랫폼입니다.
- 사용자는 관심 있는 클럽(스터디, 소모임 등)에 가입해, 실시간 채팅, 커뮤니티 게시판, 알림 기능 등을 통해 활발하게 소통할 수 있습니다.
- 클럽마다 비공개 설정, 가입 양식, 초대코드 등 맞춤형 설정이 가능하며, 커뮤니티 게시판(질문/자유)에는 채택 기능과 내공 시스템(클로버)을 도입해 지식 기반 소통과 활발한 커뮤니티 참여를 유도합니다.
- 또한, 포인트(젬) 기반의 결제 시스템을 적용하여, 클럽 생성 시 포인트 차감, 유료 기능 확장 등 지속 가능한 운영 모델도 함께 고려했습니다.
-
기존 오프라인 중심의 스터디/소모임 문화를 온라인 클럽 플랫폼으로 구조화하고 확장했습니다.
-
단순한 가입형 커뮤니티가 아닌, 참여 기반의 가치 보상 시스템(클로버/채택)을 통해 사용자의 지식 기여와 활동 유도합니다.
-
사용자의 활동 목적에 맞는 맞춤형 클럽 경험 제공합니다. (예: 비공개 클럽, 가입 양식 설정, 초대코드 기반 접근 제어 등)
서비스 플로우 다이어그램

Auth

| 영역 | 클래스 | 설명 |
|---|---|---|
| 컨트롤러 | 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, TilRepository, TilService
|
사용자가 작성한 TIL 관리 |
| 리뷰 |
TilReview, TilReviewRepository, TilReviewService
|
AI 기반 리뷰 결과 저장 및 조회 |
| 관계 | TilReview → Til |
각 리뷰는 특정 TIL에 종속됨 |
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 응답 포맷 제공 |
- https://documenter.getpostman.com/view/45603497/2sB2x8DqVq
Cluvr Git Convention, PR Strategy Guide
- 인증인가- Auth 도메인
- 유저- User 도메인
- 재화- Gem 도메인
- 결제- Payment 도메인
- 내공- Clover 도메인
- 클럽- Club 도메인
- 클럽- Application Form 도메인
- 클럽- Join Request 도메인
- 클럽- Notice 도메인
- 클럽- TIL 도메인
- 클럽- TIL Review 도메인
- 커뮤니티- Board 도메인
- 커뮤니티- Reply 도메인
- 커뮤니티- Reaction 도메인
- (추후 앱에 대한 비즈니스 규칙을 추가할 예정입니다.)
