1주차 | ERD 설계 및 API 명세 작성

Faithful Dev·2025년 5월 22일
0

머니버디

목록 보기
1/1
post-thumbnail

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

// WebSocket 연결
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주차)

profile
Turning Vision into Reality.

0개의 댓글