Skip to content

feat: 멘토 승격 요청 횟수 제한 추가#720

Open
sukangpunch wants to merge 1 commit into
developfrom
feat/667-mentor-application-limit
Open

feat: 멘토 승격 요청 횟수 제한 추가#720
sukangpunch wants to merge 1 commit into
developfrom
feat/667-mentor-application-limit

Conversation

@sukangpunch
Copy link
Copy Markdown
Contributor

유저당 멘토 승격 요청을 최대 5회까지만 가능하도록 제한

관련 이슈

작업 내용

MentorApplicationService

  • MENTOR_APPLICATION_COUNT_LIMIT = 5 상수 추가
  • 신청 시 누적 횟수가 한도에 도달하면 예외를 던지는 ensureApplicationCountNotExceeded() 메서드 추가
  • submitMentorApplication() 호출 흐름에 횟수 검증 추가

ErrorCode

  • MENTOR_APPLICATION_LIMIT_EXCEEDED 에러 코드 추가
    • HTTP 400 Bad Request
    • 메시지: "멘토 승격 요청은 5회까지만 가능합니다."
    • 한도 변경 시 상수만 수정하면 메시지도 자동 반영되도록 MENTOR_APPLICATION_COUNT_LIMIT 참조

MentorApplicationServiceTest

  • 멘토_승격_신청_횟수가_최대_횟수에_도달하면_예외가_발생한다 테스트 추가

검증 흐름

신청 시 아래 순서로 검증합니다.

  1. PENDING 또는 APPROVED 상태의 신청이 존재하는지 확인 (기존)
  2. 누적 신청 횟수가 5회 이상인지 확인 (신규)

countBySiteUserId()는 MentorApplicationRepository에 기존에 존재하는 메서드를 재사용했습니다.

특이 사항

리뷰 요구사항 (선택)

유저당 멘토 승격 요청을 최대 5회까지만 가능하도록 제한
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 20, 2026

Review Change Stack

🎯 변경사항 안내

이 PR은 멘토 승격 신청의 횟수를 최대 5회로 제한하는 기능을 구현합니다. 다음 세 부분으로 구성되어 있습니다:

  1. 에러 코드 정의
    • ErrorCode enum에 MENTOR_APPLICATION_LIMIT_EXCEEDED 상수를 추가했습니다.
    • 오류 메시지에 한도 수치(5)를 동적으로 포함하도록 설정했습니다.
  1. 서비스 검증 로직 구현
    • MentorApplicationServiceMENTOR_APPLICATION_COUNT_LIMIT = 5 상수를 정의했습니다.
    • submitMentorApplication() 호출 전에 ensureApplicationCountNotExceeded() 메서드를 실행하여 신청 건수를 확인합니다.
    • 한도 초과 시 MENTOR_APPLICATION_LIMIT_EXCEEDED 예외를 발생시킵니다.
  1. 테스트 케이스 추가
    • 한도에 도달했을 때 신청이 예외를 발생시키는지 검증하는 테스트를 추가했습니다.
    • 거절 상태의 신청 5개를 생성한 후, 추가 신청 시도 시 올바른 예외 메시지를 반환하는지 확인합니다.

📋 Walkthrough

이 변경사항은 사용자가 멘토 승격을 요청할 때 동일한 사용자로부터의 신청 횟수를 추적하고 제한하는 기능입니다. 먼저 ErrorCode에 새로운 오류 코드를 정의한 후, 서비스 계층에서 데이터베이스 조회를 통해 현재 신청 건수를 확인하고 한도(5회)를 초과하면 예외를 발생시킵니다. 마지막으로 이 검증 로직이 정상 동작하는지 검증하는 단위 테스트를 추가했습니다.

🎯 코드 리뷰 난이도

🎯 2 (Simple) | ⏱️ ~10 분

👥 검토 권장 인원

  • 멘토 기능 담당 개발자
  • 서비스 계층 검증 로직 담당 개발자
  • 테스트 작성 담당 개발자
  • 공통 예외 처리 담당 개발자
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning PR은 사용자당 멘토 승격 신청을 5회로 제한하는 기능을 구현했으나, 이슈 #667의 핵심 요구사항인 '승인/거절 시 요청 횟수 차감' 로직이 미구현상태입니다. 이슈 #667에서 요구하는 승인/거절 시 횟수 차감 로직과 사용자에게 남은 신청 기회를 전달하는 기능을 추가로 구현하세요.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed PR 설명이 작업 내용, 변경된 파일들, 검증 흐름을 상세히 기술하고 있으며 템플릿의 필수 항목을 충족합니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 멘토 승격 신청 횟수 제한이라는 명확한 범위 내에 있으며, 불필요한 외부 변경은 없습니다.
Title check ✅ Passed PR 제목이 변경사항의 핵심을 명확하게 반영합니다. 멘토 승격 요청 횟수 제한이라는 주요 기능을 간결하고 구체적으로 설명하고 있습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/667-mentor-application-limit

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sukangpunch sukangpunch changed the title feat: 멘토 승격 요청 횟수 제한 추가 (#667) feat: 멘토 승격 요청 횟수 제한 추가 May 20, 2026
@sukangpunch sukangpunch added the 진행 중 자유롭게 merge 가능 label May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

기능 진행 중 자유롭게 merge 가능

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor: 멘토 요청 승인/거절 시 요청 횟수 차감 로직 추가

1 participant