ERD 설계

핵심 서비스
- 1:1 전문가 상담
- 금융 카드뉴스
- 금융 챌린지
- 개인화된 대시보드
ERD 구조
📈 머니버디 ERD 구조
├── 👤 사용자 관리
│ ├── users (사용자)
│ ├── user_settings (사용자 설정)
│ ├── user_favorites (즐겨찾기)
│ ├── user_points (포인트)
│ └── user_activity_logs (활동 로그)
├── 👨💼 전문가 관리
│ ├── experts (전문가)
│ └── expert_specializations (전문분야)
├── 💬 상담 시스템
│ ├── consultations (상담)
│ ├── reviews (리뷰)
│ ├── chat_rooms (채팅방)
│ └── chat_messages (채팅 메시지)
├── 📰 컨텐츠 관리
│ ├── card_news (카드뉴스)
│ ├── card_news_likes (좋아요)
│ ├── daily_contents (오늘의 컨텐츠)
│ └── banners (배너)
├── 🏆 챌린지 시스템
│ ├── challenges (챌린지)
│ ├── challenge_participants (참여자)
│ └── challenge_records (기록)
└── 🔔 지원 시스템
├── notifications (알림)
└── faq (FAQ)
엔티티 상세
Users
- 회원가입 시 일반 사용자/전문가 선택 가능
is_active
플래그로 탈퇴 사용자 관리
Experts
- 관리자가 전문가 자격을 검증 후 승인
- 리뷰 기반 실시간 평점 계산
- 전문가별 차별화된 상담료 설정
Consultations
1. 요청 → 2. 승인 → 3. 진행중 → 4. 완료
↓
취소 (언제든 가능)
그외
API 설계
🌐 API 엔드포인트 구조
├── /api/auth/* (인증)
├── /api/experts/* (전문가)
├── /api/consultations/* (상담)
├── /api/chat/* (채팅)
├── /api/reviews/* (리뷰)
├── /api/card-news/* (카드뉴스)
├── /api/challenges/* (챌린지)
├── /api/daily-contents/* (오늘의 컨텐츠)
├── /api/banners/* (배너)
├── /api/favorites/* (즐겨찾기)
├── /api/notifications/* (알림)
├── /api/users/* (사용자)
├── /api/faq/* (FAQ)
├── /api/admin/* (관리자)
└── /api/analytics/* (분석)
API 상세
사용자 인증 API
POST /api/auth/register
{
"email": "suming@example.com",
"password": "password123",
"name": "수밍킴",
"user_type": "USER"
}
POST /api/auth/register
{
"email": "jhpark@example.com",
"password": "password123",
"name": "박재현",
"user_type": "EXPERT",
"expert_info": {
"specialization": "투자 전문가",
"experience_years": 10,
"certification": "투자상담사, 재무설계사",
"hourly_rate": 30000,
"specializations": [
{"category": "주식", "sub_category": "ETF"},
{"category": "부동산", "sub_category": "부동산투자"}
]
}
}
전문가 검색 & 필터링 API
GET /api/experts?category=주식&rating_min=4.0&sort=rating&page=1&size=10
{
"success": true,
"data": {
"experts": [
{
"expert_id": 1,
"name": "박재현",
"specialization": "투자 전문가",
"rating": 4.8,
"total_consultations": 150,
"hourly_rate": 30000,
"profile_image_url": "https://...",
"specializations": ["주식", "부동산"],
"is_favorited": false
}
],
"pagination": {
"current_page": 1,
"total_pages": 5,
"total_count": 47,
"has_next": true
}
}
}
챌린지 참여 API
POST /api/challenges/1/join
POST /api/challenges/1/record
{
"amount": 5000,
"memo": "매일 5천원 씩 소수점 투자 챌린지",
"proof_image_url": "https://...",
"record_date": "2025-05-22"
}
GET /api/challenges/my-participations
{
"success": true,
"data": {
"participations": [
{
"challenge_title": "주린이 주식 입문 스터디 모임",
"current_amount": 45000,
"goal_amount": 100000,
"progress_percentage": 45.0,
"status": "진행중",
"days_left": 15,
"ranking": 23
}
]
}
}
실시간 채팅 API
ws://api.moneybuddy.com/ws/chat/{consultation_id}
{
"type": "message",
"content": "안녕하세요",
"message_type": "text"
}
{
"message_id": 123,
"sender_id": 1,
"sender_name": "수밍킴",
"content": "안녕하세요",
"message_type": "text",
"created_at": "2025-05-22T21:06:00Z",
"is_read": false
}
{
"type": "read",
"message_ids": [123, 124, 125]
}
개발 로드맵
핵심 MVP (2주차)
- 사용자 인증 시스템
- 전문가 조회 및 필터링
- 기본 상담 신청/관리
- 카드뉴스 기본 기능
- 오늘의 컨텐츠 시스템
주요 기능 (3주차)
- 실시간 채팅 시스템
- 전문가 승인 프로세스
- 챌린지 참여/기록 시스템
- 즐겨찾기 기능
- 기본 알림 시스템
고도화 (4주차)
- 프로필 관리 고도화
- 리뷰 시스템 구축
- 카드뉴스 작성/관리
- 챌린지 생성/관리
- 배너 시스템
완성도 향상 (5주차)
- 결제 시스템 연동
- 포인트 시스템 구축
- FAQ 시스템
- 고도화된 알림
- 관리자 대시보드
- 사용자 분석 시스템
발표 준비 (6주차)