Skip to content

260630_14_이인준#96

Open
eadel0521 wants to merge 2 commits into
SurvivalCodingCampus:student/14_이인준from
eadel0521:master
Open

260630_14_이인준#96
eadel0521 wants to merge 2 commits into
SurvivalCodingCampus:student/14_이인준from
eadel0521:master

Conversation

@eadel0521

Copy link
Copy Markdown

260630_14_이인준

📝 과제 정보

  • 교육 주제: instance control

📋 체크리스트

  • 코드 컨벤션 준수 (Formatter 적용)
  • 모든 테스트 케이스 통과 (JUnit)

📷 실행 결과 (또는 테스트 결과)

image

❓질문 및 어려웠던 점

  • 날짜 데이터 'Date' 가 부등호로 대소 비교가 되지 않아 compareTo의 if문을 짜는데 어려움이 있었음.

🔄 자체 평가 & 회고

  • instanceof 타입 체크 후 'Book book = (Book) o;' 와 같은 캐스팅 없이 바로 변수 활용이 가능한 패턴변수 라는것이 있다는 것을 알게 되었다.

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@eadel0521, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 38 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 36f2cf22-eacf-4e3f-bd96-7268fe9a42c9

📥 Commits

Reviewing files that changed from the base of the PR and between 025d53a and e7cb35e.

📒 Files selected for processing (2)
  • day07-instance_control/src/main/java/com/survivalcoding/Book.java
  • day07-instance_control/src/test/java/com/survivalcoding/BookTest.java

워크스루

day07-instance_control Gradle 서브프로젝트가 추가되어 Book 도메인 클래스(equals/hashCode/compareTo/clone)와 JUnit 테스트가 포함된다. settings.gradle에 서브프로젝트가 등록되고, 관련 TIL 문서와 day06 테스트 파일의 중괄호 오류도 수정된다.

변경 사항

day07 인스턴스 제어 서브프로젝트 추가

Layer / File(s) 요약
Book 도메인 클래스 구현
day07-instance_control/src/main/java/com/survivalcoding/Book.java
title·publishDate·comment 필드와 생성자/getter·setter, equals·hashCode(title·publishDate 기준), compareTo(publishDate epoch 내림차순), clone(super.clone() + AssertionError 변환), toString이 구현된다.
테스트 및 빌드·프로젝트 등록
day07-instance_control/src/test/java/com/survivalcoding/BookTest.java, day07-instance_control/build.gradle, day07-instance_control/src/main/java/com/survivalcoding/Main.java, settings.gradle, day07-instance_controll/build.gradle, day07-instance_controll/src/main/java/com/survivalcoding/Main.java
BookTestequals·compareTo·clone 동작을 검증한다. build.gradle에서 JUnit Jupiter 의존성과 useJUnitPlatform()을 설정하고, settings.gradleday07-instance_control이 추가된다. day07-instance_controll(오타 디렉터리) 빌드 파일과 Main도 함께 포함된다.
TIL 문서 및 day06 테스트 수정
TIL/sample/2026-06-30-instance control, day06-generic/src/test/java/com/survivalcoding/StrongBoxTest.java
equals-hashCode 연동, 얕은/깊은 복사, Date.getTime() 비교 방법을 정리한 TIL 문서가 추가되고, StrongBoxTest의 누락된 닫는 중괄호가 수정된다.

추정 코드 리뷰 노력

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
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.
Title check ❓ Inconclusive 제목이 변경 내용을 설명하지 않고 과제 식별자만 있어 PR의 핵심 변경을 파악하기 어렵습니다. 예: 'instance control 학습용 Book equals/hashCode/clone 구현'처럼 주요 변경을 드러내는 제목으로 바꾸세요.
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed 템플릿의 필수 섹션을 대부분 갖추고 있으며, 과제 정보·체크리스트·실행 결과·질문·회고가 포함되어 있습니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
TIL/sample/2026-06-30-instance control (1)

14-18: 📐 Maintainability & Code Quality | 🔵 Trivial

Date.compareTo() 활용을 함께 정리하면 좋습니다.

Date.getTime()으로 long 값을 비교하는 방식도 잘 동작합니다. 다만 Date는 이미 Comparable을 구현하고 있으므로, newDate.compareTo(oldDate) > 0 형태로 직접 비교하는 방법도 존재합니다. 두 방식의 차이점을 함께 정리하면 compareTo() 구현 패턴을 더 넓게 이해할 수 있습니다.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@TIL/sample/2026-06-30-instance` control around lines 14 - 18, The note
currently explains only Date.getTime()-based comparison, but it should also
mention that Date implements Comparable and can be compared directly with
compareTo(); update the content around compareTo() and Date comparison to
include both patterns, using the Date and compareTo() examples in the snippet so
readers understand when to use each approach.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@day07-instance_controll/build.gradle`:
- Around line 1-20: The Gradle module under day07-instance_controll is not being
picked up because settings.gradle includes only the correctly spelled module
name, so this build file is currently excluded from CI. Either rename the
directory to match the included module or update the include entry so the module
name matches exactly; check the module declaration in settings.gradle and the
directory containing the build.gradle for consistency.

---

Nitpick comments:
In `@TIL/sample/2026-06-30-instance` control:
- Around line 14-18: The note currently explains only Date.getTime()-based
comparison, but it should also mention that Date implements Comparable and can
be compared directly with compareTo(); update the content around compareTo() and
Date comparison to include both patterns, using the Date and compareTo()
examples in the snippet so readers understand when to use each approach.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b2589b56-032a-4d30-8fc3-8b00166f2c37

📥 Commits

Reviewing files that changed from the base of the PR and between 4870eaf and 025d53a.

📒 Files selected for processing (9)
  • TIL/sample/2026-06-30-instance control
  • day06-generic/src/test/java/com/survivalcoding/StrongBoxTest.java
  • day07-instance_control/build.gradle
  • day07-instance_control/src/main/java/com/survivalcoding/Book.java
  • day07-instance_control/src/main/java/com/survivalcoding/Main.java
  • day07-instance_control/src/test/java/com/survivalcoding/BookTest.java
  • day07-instance_controll/build.gradle
  • day07-instance_controll/src/main/java/com/survivalcoding/Main.java
  • settings.gradle

Comment on lines +1 to +20
plugins {
id 'java'
}

group = 'com.survivalcoding'
version = '1.0-SNAPSHOT'

repositories {
mavenCentral()
}

dependencies {
testImplementation platform('org.junit:junit-bom:6.0.0')
testImplementation 'org.junit.jupiter:junit-jupiter'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

test {
useJUnitPlatform()
} No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

오탈자 디렉터리 모듈이 Gradle에 등록되지 않았습니다.

이 파일은 day07-instance_controll 아래에 있는데, settings.gradle에는 day07-instance_control만 포함돼 있습니다. 지금 상태로는 이 모듈은 빌드/테스트 대상이 아니라서, 여기에 추가된 코드는 CI에서 전혀 검증되지 않습니다. 오탈자 디렉터리를 제거하거나 디렉터리명과 include 값을 일치시켜 주세요.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@day07-instance_controll/build.gradle` around lines 1 - 20, The Gradle module
under day07-instance_controll is not being picked up because settings.gradle
includes only the correctly spelled module name, so this build file is currently
excluded from CI. Either rename the directory to match the included module or
update the include entry so the module name matches exactly; check the module
declaration in settings.gradle and the directory containing the build.gradle for
consistency.

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.

1 participant