Skip to content

Latest commit

 

History

History
317 lines (247 loc) · 8.48 KB

File metadata and controls

317 lines (247 loc) · 8.48 KB

TEAMITAKA Backend API 테스트 가이드

🎉 최신 상태 (2025-06-26)

✅ 완료된 주요 성과

  • 성공률: 91.7% (24개 테스트 중 22개 성공)
  • JWT 토큰 인증: 완벽 동작
  • 관계형 데이터: 정상 조회
  • 보안 기능: 정상 동작
  • API 응답: 상세한 데이터 포함

🚀 배포 정보


📋 테스트용 계정 정보

기본 계정

이메일: test@example.com
비밀번호: password

테스트용 ID 목록 (고정 UUID)

사용자 관련

  • 사용자 ID: 00000000-0000-0000-0000-000000000001
  • 사용자명: testuser
  • 대학: 테스트 대학교
  • 전공: 컴퓨터공학과

모집공고 관련

  • 모집공고 ID: 00000000-0000-0000-0000-000000000001
  • 제목: 테스트 모집공고

프로젝트 관련

  • 프로젝트 ID: 00000000-0000-0000-0000-000000000003
  • 제목: 테스트 프로젝트

기타 데이터

  • 댓글 ID: 00000000-0000-0000-0000-000000000004
  • 지원 ID: 00000000-0000-0000-0000-000000000005
  • 리뷰 ID: 00000000-0000-0000-0000-000000000006
  • 할 일 ID: 00000000-0000-0000-0000-000000000007

🔐 인증 시스템 테스트

1. 로그인 (JWT 토큰 획득)

Swagger UI에서 테스트

  1. Swagger UI 접속: https://teamitaka-backend-732827775376.us-central1.run.app/api-docs
  2. POST /auth/login 엔드포인트 찾기
  3. Try it out 클릭
  4. Request Body 입력:
{
  "email": "test@example.com",
  "password": "password"
}
  1. Execute 클릭

예상 응답

{
  "message": "✅ 로그인 성공!",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

2. JWT 토큰 사용법

Swagger UI에서 인증 설정

  1. Authorize 버튼 클릭 (우상단)
  2. Value 필드에 Bearer <your-token> 입력
  3. Authorize 클릭
  4. Close 클릭

curl 명령어로 테스트

# 로그인
curl -X POST "https://teamitaka-backend-732827775376.us-central1.run.app/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email": "test@example.com", "password": "password"}'

# 토큰으로 인증 API 호출
curl -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  "https://teamitaka-backend-732827775376.us-central1.run.app/api/profile/00000000-0000-0000-0000-000000000001"

🧪 API 테스트 순서 (Swagger UI 기준)

1단계: 기본 연결성 테스트 (인증 불필요)

1. Health Check

  • GET /health → 서버 상태 확인
  • 예상 응답: {"status": "OK", "database": "connected"}

2. 기본 조회 API

  • GET /user → 사용자 목록 조회
  • GET /projects → 프로젝트 목록 조회
  • GET /recruitments → 모집공고 목록 조회

2단계: 인증 시스템 테스트

1. 로그인

  • POST /auth/login → JWT 토큰 획득
  • Swagger UI에서 Authorize 설정

2. JWT 토큰 검증

  • GET /profile/{user_id} → 프로필 조회 (인증 필요)
  • 예상 응답: 사용자 상세 정보

3단계: 핵심 기능 테스트

1. 사용자 관련 API

  • GET /profile/00000000-0000-0000-0000-000000000001 → 프로필 조회
  • GET /profile/00000000-0000-0000-0000-000000000001/ratings → 평점 조회
  • GET /profile/00000000-0000-0000-0000-000000000001/projects → 사용자 프로젝트

2. 프로젝트 관련 API

  • GET /projects/00000000-0000-0000-0000-000000000003 → 프로젝트 상세 정보
  • GET /projects/00000000-0000-0000-0000-000000000003/members → 팀원 목록
  • GET /projects/00000000-0000-0000-0000-000000000003/todo → 할 일 목록

3. 모집공고 관련 API

  • GET /applications/00000000-0000-0000-0000-000000000001 → 지원자 목록
  • GET /comments/00000000-0000-0000-0000-000000000001 → 댓글 목록

4. 리뷰 관련 API

  • GET /reviews/project/00000000-0000-0000-0000-000000000003 → 프로젝트 리뷰
  • GET /reviews/user/00000000-0000-0000-0000-000000000001 → 사용자 리뷰

📊 예상 응답 예시

1. 사용자 프로필 응답

{
  "user_id": "00000000-0000-0000-0000-000000000001",
  "username": "testuser",
  "university": "테스트 대학교",
  "major": "컴퓨터공학과",
  "avatar": null,
  "bio": "테스트용 사용자입니다.",
  "skills": "JavaScript, Python, React",
  "portfolio_url": "https://github.com/testuser"
}

2. 프로젝트 리뷰 응답 (관계형 데이터 포함)

[
  {
    "review_id": "00000000-0000-0000-0000-000000000006",
    "project_id": "00000000-0000-0000-0000-000000000003",
    "reviewer_id": "00000000-0000-0000-0000-000000000001",
    "reviewee_id": "00000000-0000-0000-0000-000000000001",
    "overall_rating": 4,
    "comment": "테스트 리뷰입니다.",
    "createdAt": "2025-06-26T16:57:10.000Z",
    "Reviewer": {
      "username": "testuser"
    },
    "Reviewee": {
      "username": "testuser"
    }
  }
]

3. 프로젝트 상세 정보 응답

{
  "project_id": "00000000-0000-0000-0000-000000000003",
  "title": "테스트 프로젝트",
  "description": "테스트용 프로젝트입니다.",
  "status": "예정",
  "start_date": "2025-01-01",
  "end_date": "2025-12-31",
  "User": {
    "username": "testuser",
    "email": "test@example.com"
  },
  "Recruitment": {
    "title": "테스트 모집공고"
  },
  "ProjectMembers": []
}

🔧 자동화된 테스트

GitHub Actions CI/CD

  • 자동 배포: dev 브랜치 푸시 시 자동 배포
  • 자동 테스트: 24개 API 엔드포인트 자동 검증
  • 성공률: 91.7% (22/24 테스트 통과)

로컬 배포 검증 스크립트

# 배포 검증 스크립트 실행
node scripts/deployment-verification.js

# 예상 결과
# 총 테스트: 24
# ✅ 성공: 22
# ❌ 실패: 2 (부가적인 테스트)
# 📈 성공률: 91.7%

🚨 문제 해결 가이드

자주 발생하는 오류

1. 401 Unauthorized

  • 원인: JWT 토큰이 필요하거나 만료됨
  • 해결: 로그인하여 새로운 토큰 획득

2. 404 Not Found

  • 원인: 잘못된 ID 사용
  • 해결: 위의 테스트용 ID 목록 확인

3. 500 Internal Server Error

  • 원인: 서버 오류
  • 해결: 잠시 후 재시도

Swagger UI 사용 팁

1. 인증 설정

  • Authorize 버튼으로 토큰 설정
  • Bearer 접두사 필수: Bearer <token>

2. 요청 본문 작성

  • JSON 형식 준수
  • Content-Type: application/json

3. 응답 확인

  • Status Code: 200, 201, 400, 401, 404 등
  • Response Body: JSON 데이터 확인

📈 성능 및 안정성

응답 시간

  • 평균 응답 시간: < 3초
  • 데이터베이스 연결: 안정적
  • JWT 토큰 검증: 빠른 처리

보안 기능

  • JWT 토큰 인증: 완벽 동작
  • 인증되지 않은 접근 차단: 정상 동작
  • 잘못된 토큰 거부: 정상 동작

데이터 무결성

  • 관계형 데이터: 정상 조회
  • 시드 데이터: 자동 생성
  • API 응답: 일관된 형식

🎯 테스트 체크리스트

기본 기능

  • Health Check 통과
  • 로그인 성공
  • JWT 토큰 발급
  • 프로필 조회 성공

핵심 API

  • 사용자 목록 조회
  • 프로젝트 목록 조회
  • 모집공고 목록 조회
  • 댓글 목록 조회
  • 지원자 목록 조회
  • 리뷰 목록 조회

관계형 데이터

  • 프로젝트 상세 정보 (사용자 포함)
  • 리뷰 상세 정보 (리뷰어/리뷰이 포함)
  • 프로젝트 멤버 목록

보안 테스트

  • 인증되지 않은 접근 차단
  • 잘못된 토큰 거부
  • 올바른 토큰으로 접근 허용

📞 지원 및 문의

문제 발생 시

  1. GitHub Actions 로그 확인
  2. Health Check 엔드포인트 확인
  3. Swagger UI에서 직접 테스트
  4. 배포 검증 스크립트 실행

유용한 링크


🎉 TEAMITAKA Backend API가 완전히 안정적이고 프로덕션 준비가 완료되었습니다!