Skip to content

docs: API 컨트롤러 Swagger 설명 보강 - #19

Merged
hgeniee merged 1 commit into
mainfrom
feature/#17-fix
Jun 6, 2026
Merged

hgeniee merged 1 commit into
mainfrom
feature/#17-fix

Conversation

@hgeniee

@hgeniee hgeniee commented Jun 6, 2026 •

Copy link
Copy Markdown
Contributor

✨ 관련된 이슈

🙌 작업 내용

스웨거

  • 회원, 프로젝트 세션, 면접 답변, 리포트, 최종 제출 API 설명 추가
  • 요청 본문, 경로 변수, 주요 응답 코드 문서화
  • 면접 답변 중복 저장 방지 로직 수정
  • 답변 수정 및 최종 제출 상태 처리 테스트 추가
    버그 예상해서 로직 강화
  • 피드백 & 최종 답변 db 중복 저장 이슈 해결
  • 스킵 최종 답변에서 답변해서 skipped = true로 남을 수 있었던 이슈 해결

📸 스크린샷 (선택)

🤔 리뷰 요구사항(선택)

Summary by CodeRabbit

릴리스 노트

  • 문서화

    • API 엔드포인트에 대한 상세 문서화 추가로 API 사용성 향상
  • 개선사항

    • 동일한 질문에 대한 기존 답변을 자동으로 업데이트하는 로직 개선
    • 답변 유효성 검사 강화
  • 테스트

    • 답변 업데이트 및 제출 기능에 대한 테스트 케이스 추가

- 회원, 프로젝트 세션, 면접 답변, 리포트, 최종 제출 API 설명 추가
- 요청 본문, 경로 변수, 주요 응답 코드 문서화
- 면접 답변 중복 저장 방지 로직 수정
- 답변 수정 및 최종 제출 상태 처리 테스트 추가
@hgeniee hgeniee self-assigned this Jun 6, 2026
@hgeniee hgeniee linked an issue Jun 6, 2026 that may be closed by this pull request
@coderabbitai

coderabbitai Bot commented Jun 6, 2026 •

Copy link
Copy Markdown

Linter diff in the way? Review this PR in Change Stack to focus on meaningful changes and expand context only when needed.

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: d27e1ff0-0e3d-4e77-9746-abc2cbcf6c1f

📥 Commits

Reviewing files that changed from the base of the PR and between c6e4eb6 and 3d45ffd.

📒 Files selected for processing (8)
  • src/main/java/com/example/trouble_log/domain/interview/controller/InterviewController.java
  • src/main/java/com/example/trouble_log/domain/interview/controller/InterviewSubmissionController.java
  • src/main/java/com/example/trouble_log/domain/interview/entity/InterviewAnswer.java
  • src/main/java/com/example/trouble_log/domain/interview/service/InterviewService.java
  • src/main/java/com/example/trouble_log/domain/projectSession/controller/ProjectSessionController.java
  • src/main/java/com/example/trouble_log/domain/user/controller/MemberController.java
  • src/test/java/com/example/trouble_log/domain/interview/service/InterviewServiceTest.java
  • src/test/java/com/example/trouble_log/domain/interview/service/InterviewSubmissionServiceTest.java

📝 Walkthrough

Walkthrough

이 PR은 인터뷰 답변 저장 시 기존 답변을 새로 생성하지 않고 업데이트하도록 변경하고, 여러 컨트롤러에 상세한 Swagger 문서화를 추가합니다. 핵심은 InterviewAnswer 엔티티의 update() 메서드와 InterviewService의 찾기-또는-생성-후-업데이트 패턴입니다.

Changes

인터뷰 답변 저장/업데이트 및 API 문서화

Layer / File(s) Summary
답변 업데이트 엔티티 계약
src/main/java/com/example/trouble_log/domain/interview/entity/InterviewAnswer.java
update(answer, isSkipped, feedback) 메서드를 추가하여 복합 필드를 원자적으로 갱신하고, updateAnswer(answer)가 내부에서 이를 호출하도록 변경했습니다.
서비스 답변 저장 로직 리팩토링
src/main/java/com/example/trouble_log/domain/interview/service/InterviewService.java
saveAnswer()에 요청 null 검증 로직을 추가하고, findByInterviewQuestionId로 기존 답변을 조회한 후 없으면 생성하고 update()로 갱신하는 방식으로 변경했습니다.
답변 업데이트 동작 검증
src/test/java/com/example/trouble_log/domain/interview/service/InterviewServiceTest.java, InterviewSubmissionServiceTest.java
기존 답변의 중복 생성 방지(answerId 유지), 스킵된 답변의 최종 답변으로의 전환(isSkipped → false), 그리고 피드백 설정을 검증하는 테스트를 추가했습니다.
API 컨트롤러 Swagger 문서화
src/main/java/com/example/trouble_log/domain/interview/controller/InterviewController.java, InterviewSubmissionController.java, src/main/java/com/example/trouble_log/domain/projectSession/controller/ProjectSessionController.java, src/main/java/com/example/trouble_log/domain/user/controller/MemberController.java
모든 공개 엔드포인트에 @Operation 요약/설명, @ApiResponses 응답 코드, @Parameter 경로/쿼리 변수, @RequestBody 스키마를 추가하여 OpenAPI 문서를 확장했습니다.

🎯 코드 검토 난이도

🎯 3 (Moderate) | ⏱️ ~25 minutes

관련된 이슈

  • #17: API 테스트 후 Swagger 문서 상세 기술 및 버그 수정 작업과 일치합니다.

관련된 PR

Poem

🐰 답변을 저장할 때는
새것만 만들지 말고,
옛것을 찾아 다독여주고
Swagger 문서는 밝게 빛나며
API는 더욱 또렷해졌어요! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 5.26% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 'docs: API 컨트롤러 Swagger 설명 보강'으로 변경 내용의 주요 부분(Swagger 문서 보강)을 명확히 요약하고 있습니다.
Linked Issues check ✅ Passed PR이 #17의 요구사항인 Swagger 문서 설명 보강과 API 테스트 후 버그 수정을 모두 구현했습니다. InterviewAnswer에 update 메서드 추가, 중복 저장 방지 로직 적용, 테스트 케이스 추가 등으로 요구사항을 충족합니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 #17의 목표(Swagger 문서 보강, 버그 수정, 테스트 추가)와 직접 관련이 있으며, 범위를 벗어난 변경은 없습니다.

✏️ 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 feature/#17-fix

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

@hgeniee
hgeniee merged commit d5e83e4 into main Jun 6, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[fix]: api 테스트 후 수정사항

1 participant