Skip to content

Conversation

@eeun1225
Copy link

@eeun1225 eeun1225 commented Dec 15, 2025

📌 Related Issue

🚨 해결하려는 문제가 무엇인가요?

  • Oracle 이관 후 일정 조회 API에서 500 에러가 발생했습니다.

⭐️ 어떻게 해결했나요?

ScheduleFindService.findSchedulesBetween() 메서드를 JDSL을 사용하도록 변경했습니다.

🤔 어떤 부분에 집중하여 리뷰해야 할까요?

🗒️ 참고자료

RCA 룰

  • R: 꼭 반영해 주세요. 적극적으로 고려해 주세요. (Request changes)
  • C: 웬만하면 반영해 주세요. (Comment)
  • A: 반영해도 좋고 넘어가도 좋습니다. 그냥 사소한 의견입니다. (Approve)

Summary by CodeRabbit

릴리스 노트

  • Refactor
    • 일정 조회 로직을 내부적으로 재구성하여 성능과 유지보수성을 개선했습니다.
    • 날짜 범위 기반 일정 검색 구현을 변경하여 동일한 범위 결과를 보다 안정적으로 반환합니다.

✏️ Tip: You can customize this high-level summary in your review settings.

@eeun1225 eeun1225 self-assigned this Dec 15, 2025
@coderabbitai
Copy link

coderabbitai bot commented Dec 15, 2025

Walkthrough

저장소의 findScheduleEntitiesByDateBetween 메서드를 제거하고, ScheduleFindService에서 Exposed DSL로 날짜 범위(greaterOrEqualTo(from), lessThanOrEqualTo(toInclusive)) 쿼리를 직접 수행하도록 변경했습니다.

Changes

Cohort / File(s) 요약
쿼리 로직 이관
src/main/kotlin/co/yappuworld/schedule/infrastructure/ScheduleFindService.kt
저장소 메서드 호출을 제거하고 Exposed DSL select/from/where로 날짜 범위 필터링 쿼리를 직접 수행하도록 변경 (from ≤ date ≤ toInclusive), 결과에서 null 필터링 적용
공개 API 제거
src/main/kotlin/co/yappuworld/schedule/infrastructure/ScheduleRepository.kt
메서드 findScheduleEntitiesByDateBetween(from: LocalDate, to: LocalDate): List<ScheduleEntity>java.time.LocalDate 임포트 제거

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 분

  • 검토 포인트:
    • Exposed DSL 쿼리의 날짜 경계 처리(특히 toInclusive 포함)가 기존 구현과 정확히 일치하는지 확인
    • ScheduleRepository에서 제거한 공개 메서드를 호출하는 다른 코드 경로(컴파일/런타임 영향) 존재 여부 점검
    • 쿼리 결과 매핑 및 null 필터링(filterNotNull)이 도메인 엔티티 일관성을 유지하는지 검증
    • 성능 및 인덱스 사용(대량 레코드에서의 쿼리 성능) 검토

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
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 일정 조회 API의 Oracle 호환성 개선에 대한 버그 수정으로, 변경사항의 핵심 목표와 일치합니다.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/oracle-date-query

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e16948c and bbd970b.

📒 Files selected for processing (1)
  • src/main/kotlin/co/yappuworld/schedule/infrastructure/ScheduleFindService.kt (1 hunks)
🔇 Additional comments (1)
src/main/kotlin/co/yappuworld/schedule/infrastructure/ScheduleFindService.kt (1)

17-28: JDSL을 사용한 날짜 범위 쿼리 구현을 승인합니다.

구현이 적절합니다. filterNotNull()은 JDSL의 findAll() 메서드가 List<T?>를 반환하기 때문에 필요하며, 코드베이스 전역에서 일관되게 사용되는 패턴입니다. 날짜 범위 필터링 로직도 올바르게 구현되어 있습니다.


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.

@eeun1225 eeun1225 added the 🐞 bug Something isn't working label Dec 15, 2025
Copy link

@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: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d167d5d and e16948c.

📒 Files selected for processing (2)
  • src/main/kotlin/co/yappuworld/schedule/infrastructure/ScheduleFindService.kt (2 hunks)
  • src/main/kotlin/co/yappuworld/schedule/infrastructure/ScheduleRepository.kt (0 hunks)
💤 Files with no reviewable changes (1)
  • src/main/kotlin/co/yappuworld/schedule/infrastructure/ScheduleRepository.kt
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (1)
src/main/kotlin/co/yappuworld/schedule/infrastructure/ScheduleFindService.kt (1)

18-29: LGTM - JDSL을 활용한 쿼리 구현이 적절합니다.

JDSL을 사용하여 타입 안전한 날짜 범위 쿼리를 구성한 것은 Oracle 호환성 문제 해결에 좋은 접근 방식입니다. greaterThanOrEqualTolessThanOrEqualTo를 사용한 inclusive 범위 필터링 로직이 정확합니다.

filterNotNull() 호출이 실제로 필요한지 확인해 보시기 바랍니다. JDSL findAll의 반환 타입이 nullable element를 포함하지 않는다면 불필요한 연산일 수 있습니다.

@eeun1225 eeun1225 requested a review from devmizz December 15, 2025 09:07
@eeun1225 eeun1225 closed this Dec 15, 2025
@eeun1225 eeun1225 deleted the fix/oracle-date-query branch December 15, 2025 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐞 bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants