Skip to content

Refactor/KD-53 로그인 응답 필드 추가 및 논문,자격증 조회 API 추가,ScheduleQueryService 전체 조회시 일정 타입순서로 출력하도록 변경#300

Merged
dkdltm221 merged 10 commits intodevelopfrom
refactor/KD-53
Dec 23, 2025
Merged

Refactor/KD-53 로그인 응답 필드 추가 및 논문,자격증 조회 API 추가,ScheduleQueryService 전체 조회시 일정 타입순서로 출력하도록 변경#300
dkdltm221 merged 10 commits intodevelopfrom
refactor/KD-53

Conversation

@dkdltm221
Copy link
Copy Markdown
Contributor

@dkdltm221 dkdltm221 commented Dec 22, 2025

Summary

해당 PR에 대한 요약을 작성해주세요.
로그인 토큰을 보내줄때 role,graduationType값을 함께 보내도록 추가하였습니다.
논문 및 자격증 단건 조회 API를 구현하였습니다.
Schedule을 조회할때 수정할때마다 일정 순서가 변경하는 문제때문에 조회시 순서를 고정으로 보내도록 수정하였습니다.
기존 category에 'GRADUATION' 값을 추가해주었습니다.

Tasks

  • AuthService login메서드 토큰에 role,graduationType 값 추가 및 graduationQueryService에 getGraduationTypeByUserId메서드를 추가
  • ScheduleQueryService에서 일정 타입 list를 생성하여 해당 일정 타입 순서에 맞도록 반환해주는 로직을 추가
  • 논문,자격증 조회 api를 구현하기위해 각각 QueryService,Facade에 조회 로직 구현 및 Controller에 조회로직 추가,dto 구현 하였습니다.
  • 카테고리에 graduation 값 추가한 후에 schema.sql에 post테이블 수정하였습니다.

To Reviewer

논문,자격증 테스트 코드가없어 추후 추가 작업을 해야할거같습니다.

Screenshot

(없을 경우 삭제) 작업한 내용에 대한 스크린샷을 첨부해주세요.

@dkdltm221 dkdltm221 self-assigned this Dec 22, 2025
@dkdltm221 dkdltm221 added the 🔨refactor refactoring code label Dec 22, 2025
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Dec 22, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

Certificate와 Thesis의 상세 조회 API를 추가하고, 인증 토큰 응답에 역할과 졸업 유형을 포함시키며, 관련 쿼리 서비스와 도메인 엔티티를 확장합니다.

Changes

퀘스트 / 파일 요약
Certificate 상세 조회 기능
aics-api/src/main/java/kgu/developers/api/certificate/application/CertificateFacade.java, aics-api/src/main/java/kgu/developers/api/certificate/presentation/CertificateController.java, aics-api/src/main/java/kgu/developers/api/certificate/presentation/CertificateControllerImpl.java, aics-api/src/main/java/kgu/developers/api/certificate/presentation/response/CertificateDetailResponse.java
Facade에 getById 메서드 추가(쿼리 서비스 활용), Controller에 GET /{id} 엔드포인트 추가, 새 CertificateDetailResponse 레코드 정의
Thesis 상세 조회 기능
aics-api/src/main/java/kgu/developers/api/thesis/application/ThesisFacade.java, aics-api/src/main/java/kgu/developers/api/thesis/presentation/ThesisController.java, aics-api/src/main/java/kgu/developers/api/thesis/presentation/ThesisControllerImpl.java, aics-api/src/main/java/kgu/developers/api/thesis/presentation/response/ThesisDetailResponse.java
Facade에 getById 메서드 추가, Controller에 GET /{id} 엔드포인트 추가, 새 ThesisDetailResponse 레코드 정의
인증 응답 확장
aics-auth/src/main/java/kgu/developers/auth/api/application/AuthService.java, aics-auth/src/main/java/kgu/developers/auth/api/presentation/response/TokenResponse.java
TokenResponse에 role과 graduationType 필드 추가, AuthService의 login/reissue에서 GraduationUserQueryService 활용
쿼리 서비스 확장
aics-domain/src/main/java/kgu/developers/domain/certificate/application/query/CertificateQueryService.java, aics-domain/src/main/java/kgu/developers/domain/thesis/application/query/ThesisQueryService.java, aics-domain/src/main/java/kgu/developers/domain/graduationUser/application/query/GraduationUserQueryService.java
Certificate/Thesis QueryService에 getById 메서드 추가, GraduationUserQueryService에 getGraduationTypeByUserId 추가
보안 및 도메인 설정
aics-common/src/main/config/SecurityConfig.java, aics-domain/src/main/java/kgu/developers/domain/post/domain/Category.java, aics-api/src/main/resources/db/schema.sql
PUBLIC_ENDPOINTS에 thesis/certificate 경로 추가, Category enum에 GRADUATION 상수 추가, post 테이블 제약 조건 업데이트
Schedule 쿼리 서비스 정렬 개선
aics-domain/src/main/java/kgu/developers/domain/schedule/application/query/ScheduleQueryService.java
getAllScheduleManagements에서 SubmissionType 순서에 따라 Schedule 항목 정렬
테스트 수정
aics-auth/src/testFixtures/java/auth/application/AuthServiceTest.java
AuthService 생성자에 GraduationUserQueryService 의존성 추가, 관련 import 업데이트

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • 추가 검토 필요 영역:
    • Certificate/Thesis 상세 조회 로직의 일관성 검증 (파일 경로 처리 방식)
    • TokenResponse 변경에 따른 기존 클라이언트 호환성 확인
    • ScheduleQueryService의 ORDER 정렬 로직이 모든 SubmissionType을 적절히 처리하는지 검증
    • 보안 설정에서 추가된 public 엔드포인트가 의도한 접근성을 제공하는지 확인

Possibly related issues

Possibly related PRs

Suggested reviewers

  • LeeHanEum
  • JangYeongHu

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 변경사항의 주요 내용을 명확하게 요약하고 있습니다: 로그인 응답 필드 추가, 논문/자격증 조회 API 추가, ScheduleQueryService 정렬 로직 변경.
Description check ✅ Passed PR 설명이 변경사항과 관련성이 있으며, 4가지 주요 작업(로그인 응답 필드 추가, 논문/자격증 조회 API, Schedule 조회 순서 고정, 카테고리 추가)을 명확히 설명하고 있습니다.

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.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Dec 22, 2025

Test Coverage Report

Overall Project 80.6% -1.2% 🍏
Files changed 68.07%

Module Coverage
aics-auth 100% 🍏
aics-admin 92.91% -1.74% 🍏
aics-api 81.99% 🍏
aics-domain 74.92% -1.3%
Files
Module File Coverage
aics-auth AuthService.java 100% 🍏
aics-admin ThesisAdminFacade.java 70% -30% 🍏
CertificateAdminFacade.java 70% -30% 🍏
aics-api CertificateFacade.java 0% 🍏
ThesisFacade.java 0% 🍏
aics-domain Category.java 100% 🍏
ScheduleQueryService.java 64% 🍏
GraduationUserQueryService.java 13.45% -5.85%
ThesisQueryService.java 0% -47.06%
CertificateQueryService.java 0% -47.06%

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (10)
aics-api/src/main/resources/db/schema.sql (2)

120-120: 배열 값 사이의 공백 일관성을 개선하세요.

'NEWS','GRADUATION' 부분에서 쉼표 뒤에 공백이 누락되었습니다. 같은 줄의 다른 값들('NOTIFICATION', 'NEWS')과의 일관성을 위해 공백을 추가하는 것이 좋습니다.

🔎 제안하는 수정
-                   (ARRAY ['NOTIFICATION', 'NEWS','GRADUATION'])),
+                   (ARRAY ['NOTIFICATION', 'NEWS', 'GRADUATION'])),

118-120: 데이터베이스 제약 조건 업데이트가 도메인 모델과 일치합니다.

post_category_check 제약 조건에 GRADUATION 값이 추가되어 Category enum의 변경사항과 정확히 일치합니다.

참고: 이 파일은 전체 스키마 정의이므로, 기존 데이터베이스 환경에는 별도의 마이그레이션 스크립트가 필요할 수 있습니다. 제약 조건 수정을 위한 ALTER TABLE 문이 마이그레이션 계획에 포함되어 있는지 확인하시기 바랍니다.

aics-domain/src/main/java/kgu/developers/domain/schedule/application/query/ScheduleQueryService.java (1)

27-32: 정렬 로직이 올바르게 구현되었습니다.

일정 타입별 고정 순서로 정렬하는 로직이 정상적으로 동작합니다. 다만 ORDER 리스트에 모든 SubmissionType 값이 포함되어 있어야 올바르게 작동합니다.

선택적 성능 개선 제안

현재 구현은 정렬 시 매번 ORDER.indexOf()를 호출하여 O(n) 비용이 발생합니다. 일정 데이터가 많아질 경우, 위에서 제안한 EnumMap 방식을 사용하면 O(1) 조회로 성능을 개선할 수 있습니다.

현재 ORDER 크기(6개)와 예상 일정 개수를 고려할 때 성능상 큰 문제는 없지만, 향후 확장성을 위해 고려해볼 수 있습니다.

aics-api/src/main/java/kgu/developers/api/thesis/presentation/response/ThesisDetailResponse.java (2)

15-18: @Schema 어노테이션의 포맷팅 일관성 부족

example 속성 뒤에 쉼표 다음 공백이 누락되어 있습니다.

🔎 제안하는 수정
-        @Schema(description = "졸업 논문 관련 일정 ID",example = "2",requiredMode = REQUIRED)
+        @Schema(description = "졸업 논문 관련 일정 ID", example = "2", requiredMode = REQUIRED)
         Long scheduleId,
-        @Schema(description = "승인 여부", example = "false",requiredMode = REQUIRED)
+        @Schema(description = "승인 여부", example = "false", requiredMode = REQUIRED)
         boolean approval,

27-34: 메서드 시그니처 및 삼항 연산자 포맷팅

쉼표 뒤에 공백을 추가하면 가독성이 향상됩니다.

🔎 제안하는 수정
-        public static ThesisDetailResponse from(Thesis thesis,String physicalPath) {
+        public static ThesisDetailResponse from(Thesis thesis, String physicalPath) {
                 return ThesisDetailResponse.builder()
                         .id(thesis.getId())
                         .scheduleId(thesis.getScheduleId())
                         .approval(thesis.isApproved())
-                        .thesisFile(thesis.getThesisFileId() != null
-                                ? FilePathResponse.of(thesis.getThesisFileId(),physicalPath): null)
+                        .thesisFile(thesis.getThesisFileId() != null
+                                ? FilePathResponse.of(thesis.getThesisFileId(), physicalPath) : null)
                         .build();
         }
aics-auth/src/testFixtures/java/auth/application/AuthServiceTest.java (2)

16-16: 명시적인 임포트 사용을 고려하세요.

와일드카드 임포트(import mock.repository.*)는 사용되는 구체적인 Mock 리포지토리들을 숨겨 코드 가독성을 저하시킵니다. 테스트 픽스처에서 여러 Mock 리포지토리를 사용하는 경우이긴 하지만, 명시적인 임포트를 사용하면 의존성 추적이 더 명확해집니다.

🔎 명시적 임포트로 변경하는 제안
-import mock.repository.*;
+import mock.repository.FakeUserRepository;
+import mock.repository.FakeRefreshTokenRepository;
+import mock.repository.FakeGraduationUserRepository;
+import mock.repository.FakeThesisRepository;
+import mock.repository.FakeCertificateRepository;

65-80: 테스트에서 새로운 TokenResponse 필드를 검증하도록 개선하세요.

login_Success 테스트가 예외가 발생하지 않는지만 확인하고 있습니다. TokenResponse에 새롭게 추가된 rolegraduationType 필드의 존재와 정확성을 검증하는 어서션을 추가하는 것이 좋습니다.

🔎 TokenResponse 필드 검증을 추가하는 제안
 @Test
 @DisplayName("login은 토큰을 발급할 수 있다")
 public void login_Success() {
 	// given
 	String userId = "202411345";
 	String password = "password1234";
 
-	// when
-	// then
-	assertThatCode(() -> authService.login(
+	// when
+	TokenResponse response = authService.login(
 		LoginRequest.builder()
 			.userId(userId)
 			.password(password)
-			.build())
-	).doesNotThrowAnyException();
+			.build());
+
+	// then
+	assertThat(response).isNotNull();
+	assertThat(response.accessToken()).isNotBlank();
+	assertThat(response.refreshToken()).isNotBlank();
+	assertThat(response.role()).isEqualTo("USER");
+	assertThat(response.graduationType()).isNull(); // 또는 예상되는 값으로 설정
 }
aics-auth/src/main/java/kgu/developers/auth/api/application/AuthService.java (2)

42-44: 코드 포맷팅을 개선하세요.

TokenResponse.of 호출 시 파라미터 사이에 공백이 누락되어 있습니다. 일관된 코드 포맷팅을 위해 쉼표 뒤에 공백을 추가하세요.

🔎 포맷팅 개선 제안
 	GraduationType graduationType = graduationUserQueryService.getGraduationTypeByUserId(userId);
 	refreshTokenRepository.save(RefreshToken.of(userId, refreshToken));
-	return TokenResponse.of(accessToken, refreshToken,role,graduationType);
+	return TokenResponse.of(accessToken, refreshToken, role, graduationType);

60-61: 코드 포맷팅을 개선하세요.

TokenResponse.of 호출 시 파라미터 사이에 공백이 누락되어 있습니다. 일관된 코드 포맷팅을 위해 쉼표 뒤에 공백을 추가하세요.

🔎 포맷팅 개선 제안
 	GraduationType graduationType = graduationUserQueryService.getGraduationTypeByUserId(userId);
-	return TokenResponse.of(accessToken, refreshToken,role,graduationType);
+	return TokenResponse.of(accessToken, refreshToken, role, graduationType);
aics-auth/src/main/java/kgu/developers/auth/api/presentation/response/TokenResponse.java (1)

18-22: 포맷팅 수정이 필요하지만 전반적으로 좋습니다.

role과 graduationType 필드가 적절하게 추가되었습니다. graduationType을 NOT_REQUIRED로 표시한 것은 null 값이 가능하다는 점에서 올바른 결정입니다.

그러나 21번 라인에 포맷팅 문제가 있습니다.

🔎 포맷팅 개선 제안
-	@Schema(description = "졸업타입", example = "THESIS", requiredMode =NOT_REQUIRED)
+	@Schema(description = "졸업타입", example = "THESIS", requiredMode = NOT_REQUIRED)
📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5ba321f and a1fbfc0.

📒 Files selected for processing (18)
  • aics-api/src/main/java/kgu/developers/api/certificate/application/CertificateFacade.java
  • aics-api/src/main/java/kgu/developers/api/certificate/presentation/CertificateController.java
  • aics-api/src/main/java/kgu/developers/api/certificate/presentation/CertificateControllerImpl.java
  • aics-api/src/main/java/kgu/developers/api/certificate/presentation/response/CertificateDetailResponse.java
  • aics-api/src/main/java/kgu/developers/api/thesis/application/ThesisFacade.java
  • aics-api/src/main/java/kgu/developers/api/thesis/presentation/ThesisController.java
  • aics-api/src/main/java/kgu/developers/api/thesis/presentation/ThesisControllerImpl.java
  • aics-api/src/main/java/kgu/developers/api/thesis/presentation/response/ThesisDetailResponse.java
  • aics-api/src/main/resources/db/schema.sql
  • aics-auth/src/main/java/kgu/developers/auth/api/application/AuthService.java
  • aics-auth/src/main/java/kgu/developers/auth/api/presentation/response/TokenResponse.java
  • aics-auth/src/testFixtures/java/auth/application/AuthServiceTest.java
  • aics-common/src/main/java/kgu/developers/common/config/SecurityConfig.java
  • aics-domain/src/main/java/kgu/developers/domain/certificate/application/query/CertificateQueryService.java
  • aics-domain/src/main/java/kgu/developers/domain/graduationUser/application/query/GraduationUserQueryService.java
  • aics-domain/src/main/java/kgu/developers/domain/post/domain/Category.java
  • aics-domain/src/main/java/kgu/developers/domain/schedule/application/query/ScheduleQueryService.java
  • aics-domain/src/main/java/kgu/developers/domain/thesis/application/query/ThesisQueryService.java
🧰 Additional context used
🧬 Code graph analysis (3)
aics-domain/src/main/java/kgu/developers/domain/thesis/application/query/ThesisQueryService.java (1)
aics-domain/src/main/java/kgu/developers/domain/thesis/exception/ThesisNotFoundException.java (1)
  • ThesisNotFoundException (7-11)
aics-auth/src/main/java/kgu/developers/auth/api/presentation/response/TokenResponse.java (1)
aics-auth/src/main/java/kgu/developers/auth/api/presentation/AuthControllerImpl.java (1)
  • Builder (16-40)
aics-domain/src/main/java/kgu/developers/domain/certificate/application/query/CertificateQueryService.java (1)
aics-domain/src/main/java/kgu/developers/domain/certificate/exception/CertificateNotFoundException.java (1)
  • CertificateNotFoundException (7-11)
🔇 Additional comments (17)
aics-domain/src/main/java/kgu/developers/domain/post/domain/Category.java (1)

11-11: 졸업 카테고리 추가가 올바르게 구현되었습니다.

새로운 GRADUATION enum 상수가 기존 패턴과 일관되게 추가되었으며, 문법적으로도 정확합니다.

aics-domain/src/main/java/kgu/developers/domain/schedule/application/query/ScheduleQueryService.java (2)

10-13: LGTM!

정렬 로직 구현에 필요한 import 문들이 올바르게 추가되었습니다.


19-26: ORDER 리스트에 모든 SubmissionType enum 값이 포함되어 있습니다. 검증 결과 SubmissionType 열거형의 6개 값(SUBMITTED, MIDTHESIS, FINALTHESIS, CERTIFICATE, APPROVED, OTHER) 모두가 ORDER 리스트에 정확히 동일한 순서로 정의되어 있습니다. 따라서 indexOf()가 -1을 반환하는 상황은 발생하지 않으며, 현재 구현은 올바르게 작동합니다.

Likely an incorrect or invalid review comment.

aics-domain/src/main/java/kgu/developers/domain/certificate/application/query/CertificateQueryService.java (1)

3-3: 구현이 깔끔하고 일관성이 있습니다.

기존 isApproved 메서드와 동일한 패턴을 따르며, 적절한 예외 처리가 되어 있습니다.

Also applies to: 18-21

aics-api/src/main/java/kgu/developers/api/thesis/presentation/ThesisControllerImpl.java (1)

5-5: REST API 엔드포인트가 올바르게 구현되었습니다.

Facade 계층으로의 위임이 적절하며, 기존 POST 엔드포인트와 일관된 구조를 가지고 있습니다.

Also applies to: 9-9, 31-35

aics-domain/src/main/java/kgu/developers/domain/thesis/application/query/ThesisQueryService.java (1)

3-3: 구현이 CertificateQueryService와 일관성 있게 작성되었습니다.

동일한 패턴을 따르며, 적절한 예외 처리와 소프트 삭제 체크가 구현되어 있습니다.

Also applies to: 18-21

aics-api/src/main/java/kgu/developers/api/certificate/presentation/CertificateController.java (1)

5-7: API 인터페이스가 적절하게 정의되었습니다.

Swagger 문서화가 완료되어 있으며, ThesisController와 일관된 패턴을 따릅니다.

Also applies to: 40-49

aics-api/src/main/java/kgu/developers/api/certificate/presentation/CertificateControllerImpl.java (1)

6-8: 엔드포인트 구현이 깔끔하고 인터페이스 계약을 올바르게 따릅니다.

Facade 계층으로의 위임이 적절하며, ThesisControllerImpl과 동일한 패턴을 유지합니다.

Also applies to: 33-37

aics-api/src/main/java/kgu/developers/api/thesis/presentation/ThesisController.java (1)

5-7: API 인터페이스 정의가 적절합니다.

Swagger 문서화가 완료되어 있고, CertificateController와 일관된 구조를 가지고 있습니다.

Also applies to: 39-49

aics-api/src/main/java/kgu/developers/api/certificate/presentation/response/CertificateDetailResponse.java (1)

11-27: 응답 객체 구조가 잘 설계되었습니다.

Builder 패턴과 정적 팩토리 메서드를 적절히 활용하고 있으며, null 처리도 올바르게 구현되어 있습니다.

Also applies to: 29-38

aics-api/src/main/java/kgu/developers/api/certificate/application/CertificateFacade.java (1)

34-40: LGTM!

getById 메서드의 로직이 올바르게 구현되었습니다. certificateFileId에 대한 null 체크와 조건부 파일 경로 조회 패턴이 적절합니다.

메서드 시그니처의 쉼표 뒤에 공백 추가를 권장합니다: getById(Long id) → 이미 괜찮음, 단 일관성을 위해 코드 전반의 포맷팅 스타일 통일을 고려해 주세요.

aics-api/src/main/java/kgu/developers/api/thesis/application/ThesisFacade.java (1)

40-46: LGTM!

CertificateFacade.getById와 동일한 패턴을 따르고 있어 코드 일관성이 좋습니다. thesisFileId null 체크 및 조건부 파일 경로 조회 로직이 적절합니다.

aics-auth/src/testFixtures/java/auth/application/AuthServiceTest.java (2)

4-5: 새로운 의존성 임포트가 적절합니다.

GraduationUserQueryService와 GraduationUserExcelImpl 임포트가 테스트 픽스처 설정에 필요하며 올바르게 추가되었습니다.


42-47: GraduationUserQueryService 의존성 주입이 올바릅니다.

모든 필요한 Fake 리포지토리들(FakeGraduationUserRepository, FakeThesisRepository, FakeCertificateRepository)과 GraduationUserExcelImpl을 포함하여 GraduationUserQueryService가 적절하게 구성되었습니다.

aics-auth/src/main/java/kgu/developers/auth/api/application/AuthService.java (1)

8-9: 새로운 GraduationUserQueryService 의존성이 적절하게 추가되었습니다.

졸업 유형 정보를 조회하기 위한 GraduationUserQueryService 의존성이 올바르게 추가되었습니다.

Also applies to: 28-28

aics-auth/src/main/java/kgu/developers/auth/api/presentation/response/TokenResponse.java (2)

4-4: 새로운 임포트가 적절합니다.

GraduationType과 NOT_REQUIRED 임포트가 새로운 필드를 위해 올바르게 추가되었습니다.

Also applies to: 7-7


25-31: 팩토리 메서드 업데이트가 올바릅니다.

TokenResponse.of 메서드가 새로운 role과 graduationType 파라미터를 받도록 올바르게 업데이트되었으며, 빌더를 통해 모든 필드를 적절하게 설정하고 있습니다.

requiredMode = NOT_REQUIRED)
FilePathResponse certificateFile
) {
public static CertificateDetailResponse from(Certificate certificate,String physicalPath) {
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.

⚠️ Potential issue | 🟡 Minor

메서드 시그니처의 포맷을 수정해주세요.

파라미터 사이에 공백이 누락되었습니다. certificate,Stringcertificate, String으로 수정해주세요.

🔎 포맷 수정 제안
-    public static CertificateDetailResponse from(Certificate certificate,String physicalPath) {
+    public static CertificateDetailResponse from(Certificate certificate, String physicalPath) {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
public static CertificateDetailResponse from(Certificate certificate,String physicalPath) {
public static CertificateDetailResponse from(Certificate certificate, String physicalPath) {
🤖 Prompt for AI Agents
In
aics-api/src/main/java/kgu/developers/api/certificate/presentation/response/CertificateDetailResponse.java
around line 28, the method signature has a missing space after the comma
("certificate,String"); update the signature to include a space between
parameters ("certificate, String") so it follows standard Java formatting
conventions.

@RequestPart ThesisSubmitRequest request
);
@Operation(summary = "졸업 논문 개별 조회 API", description = """
- Description :논문 id로 조회합니다.
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.

⚠️ Potential issue | 🟡 Minor

문서화 형식을 일관되게 수정해주세요.

"Description :논문" 부분에서 콜론 뒤에 공백이 없습니다. 24-25번 줄의 다른 설명과 일관성을 위해 "Description : 논문"으로 수정해주세요.

🔎 형식 수정 제안
-        - Description :논문 id로 조회합니다.
+        - Description : 논문 id로 조회합니다.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Description :논문 id로 조회합니다.
- Description : 논문 id로 조회합니다.
🤖 Prompt for AI Agents
In
aics-api/src/main/java/kgu/developers/api/thesis/presentation/ThesisController.java
around line 40, the documentation line reads "Description :논문 id로 조회합니다." and is
missing a space after the colon; update it to "Description : 논문 id로 조회합니다." so
it matches the formatting used on lines 24-25 (colon + single space).

Copy link
Copy Markdown
Contributor

@JangYeongHu JangYeongHu left a comment

Choose a reason for hiding this comment

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

조회api가 aics-admin이 아닌 aics-api에 만들어져 있어 비로그인 사용자가 임의로 접근 가능합니다. 이 부분의 수정이 필요해 보입니다.

그 외의 두 가지 수정은 크게 문제 없어 보입니다

@codecov
Copy link
Copy Markdown

codecov bot commented Dec 23, 2025

Codecov Report

❌ Patch coverage is 71.42857% with 4 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...ertificate/application/CertificateAdminFacade.java 60.00% 1 Missing and 1 partial ⚠️
...rs/admin/thesis/application/ThesisAdminFacade.java 60.00% 1 Missing and 1 partial ⚠️

Impacted file tree graph

@@              Coverage Diff              @@
##             develop     #300      +/-   ##
=============================================
- Coverage      87.50%   86.56%   -0.94%     
- Complexity        65       67       +2     
=============================================
  Files             22       24       +2     
  Lines            256      268      +12     
  Branches          15       17       +2     
=============================================
+ Hits             224      232       +8     
- Misses            19       21       +2     
- Partials          13       15       +2     
Files with missing lines Coverage Δ Complexity Δ
...api/certificate/application/CertificateFacade.java 0.00% <ø> (ø) 0.00 <0.00> (ø)
...evelopers/api/thesis/application/ThesisFacade.java 0.00% <ø> (ø) 0.00 <0.00> (ø)
...u/developers/auth/api/application/AuthService.java 100.00% <100.00%> (ø) 2.00 <0.00> (ø)
...ertificate/application/CertificateAdminFacade.java 60.00% <60.00%> (ø) 1.00 <1.00> (?)
...rs/admin/thesis/application/ThesisAdminFacade.java 60.00% <60.00%> (ø) 1.00 <1.00> (?)

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5ba321f...fc05df4. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Contributor

@JangYeongHu JangYeongHu left a comment

Choose a reason for hiding this comment

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

LGTM 👍👍

작업이 많았을텐데 수고 많으셨습니다!

@dkdltm221 dkdltm221 merged commit 2a3e3aa into develop Dec 23, 2025
5 checks passed
@dkdltm221 dkdltm221 deleted the refactor/KD-53 branch December 23, 2025 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🔨refactor refactoring code

Projects

None yet

2 participants