Skip to content

Refactor/#207 멘토 지도 활동 API를 ContestMember 도메인으로 통합 - #212

Open
pykido wants to merge 1 commit into
developfrom
Refactor/#207_멘토-담당-프로젝트-조회-API-컨벤션-수정

Hidden character warning

The head ref may contain hidden characters: "Refactor/#207_\uba58\ud1a0-\ub2f4\ub2f9-\ud504\ub85c\uc81d\ud2b8-\uc870\ud68c-API-\ucee8\ubca4\uc158-\uc218\uc815"
Open

Refactor/#207 멘토 지도 활동 API를 ContestMember 도메인으로 통합#212
pykido wants to merge 1 commit into
developfrom
Refactor/#207_멘토-담당-프로젝트-조회-API-컨벤션-수정

Conversation

@pykido

@pykido pykido commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

🔥 연관된 이슈

close: #207

📜 작업 내용

#206 리뷰 코멘트 반영입니다. (ContestMentor 엔티티가 없는데 단독 컨트롤러를 가지는 설계는 컨벤션 위반, 멘토 기능은 ContestMember와 연관)

  • MentorController · MentorQueryService를 삭제하고 멘토 지도 활동 조회 API를 ContestMember 도메인으로 통합했습니다.
    • 멘토 API 3개(GET /mentors/me/contests, GET /mentors/me/contests/{contestId}/teams, GET /mentors/me/contests/{contestId}/teams/{teamId}/submissions)를 ContestMemberController로 이동
    • 조회 로직은 수정 없이 ContestMemberQueryService로 그대로 이동
  • ContestMemberController는 클래스 레벨 @RequestMapping을 제거하고 메서드별 전체 경로를 사용하도록 변경했습니다. (MemberController와 동일한 방식, 기존 관리자용 staff API URL은 모두 동일)
  • URL·요청/응답 스펙·권한(ROLE_외부멘토/ROLE_교수) 변경 없음 — 프론트 영향과 기능 변화가 없는 순수 구조 리팩터링입니다.
  • 테스트도 컨벤션에 맞춰 통합했습니다.
    • MentorQueryServiceTestContestMemberQueryServiceTest, MentorApiDocsTestContestMemberApiDocsTest
    • RestDocs 스니펫 ID가 동일해서 mentor.adoc 문서는 변경이 없습니다.

💬 리뷰 요구사항

  • 통합 테스트 픽스처를 합치면서 멘토링 조회 테스트의 액터를 두 팀을 담당하는 교수로 변경했습니다. (기존 스태프 조회 테스트의 검증값을 보존하기 위함이며, #208에서 교수도 해당 API 접근이 허용되어 의미상 유효합니다) 기존 검증값(담당 팀 2개 집계·검토 대기 3건 등)은 그대로 유지됩니다.

✨ 기타

  • 감사합니다-!

Copilot AI review requested due to automatic review settings July 10, 2026 09:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@pykido pykido added ‼️P1 우선순위 매우 높음 🔍 기능 수정 기능 일부 수정 (오류 수정, 기획 변경 등) labels Jul 10, 2026
@pykido pykido self-assigned this Jul 10, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@sjmoon00 sjmoon00 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다~
전체적으로 로직은 그대로 옮긴 순수 리팩터링이라 기능적으로 문제는 없어 보이네요

Comment on lines +242 to +245
private Map<Long, String> trackNameMap(final Long contestId) {
return contestTrackConvenience.getValidateExistTracks(contestId).stream()
.collect(Collectors.toMap(ContestTrack::getId, ContestTrack::getTrackName));
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 트랙명 매핑 로직이 ContestQueryService.getTeamSubmissions()에도 거의 그대로 있던데 convenience쪽에 하나 만들면 어떨까요?

Comment on lines +243 to +248
void 선택한_대회의_담당_팀_목록을_조회한다() {
final List<MentorProjectResponse> teams =
contestMemberQueryService.getMentorContestTeams(contest.getId(), professor);

assertThat(teams).hasSize(2);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

멘토 관련 조회 테스트들이 병합되면서 다 professor 로 호출되는것 같습니다.
멘토로 도는 테스트 케이스 다시 추가하면 좋을것 같습니다~

@myeowon myeowon left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

@JJimini JJimini left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 성재님 리뷰 반영하신 후에 머지하시면 될 것 같아요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

‼️P1 우선순위 매우 높음 🔍 기능 수정 기능 일부 수정 (오류 수정, 기획 변경 등)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REFACTOR] 멘토 담당 프로젝트 조회 API 컨벤션 수정

5 participants