Skip to content

πŸ› :: (#104) - νŠΉμ • ν•™κ΅μ—μ„œ μ‹œκ°„ν‘œ 쑰회 μ•ˆλ˜λŠ” 이슈 μˆ˜μ •#122

Merged
khs3994 merged 13 commits intodevelopfrom
feature/104-fix-time-table-issue
Feb 4, 2026
Merged

πŸ› :: (#104) - νŠΉμ • ν•™κ΅μ—μ„œ μ‹œκ°„ν‘œ 쑰회 μ•ˆλ˜λŠ” 이슈 μˆ˜μ •#122
khs3994 merged 13 commits intodevelopfrom
feature/104-fix-time-table-issue

Conversation

@khs3994
Copy link
Copy Markdown
Collaborator

@khs3994 khs3994 commented Feb 4, 2026

πŸ’‘ κ°œμš”

  • νŠΉμ • ν•™κ΅μ—μ„œ μ‹œκ°„ν‘œ μ‘°νšŒκ°€ λ˜μ§€ μ•ŠλŠ” 이슈λ₯Ό μˆ˜μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

πŸ“ƒ μž‘μ—…λ‚΄μš©

  • μž¬μ‹œλ„ 둜직 κ΅¬ν˜„
try {
    request(
        userInfo = userInfo,
        schoolType = schoolType,
        targetDate = targetDate,
        department = department
    )
} catch (e: NeisException) {
    // ν•™κ³Ό 정보가 있고, DATA_NOT_FOUND μ—λŸ¬μΈ κ²½μš°μ—λ§Œ ν•™κ³Ό 정보 μ œμ™Έν•˜κ³  μž¬μ‹œλ„
    if (department != null && e.result == NeisResult.DATA_NOT_FOUND) {
        request(
            userInfo = userInfo,
            schoolType = schoolType,
            targetDate = targetDate,
            department = null
        )
    } else throw e
}

πŸ”€ 변경사항

  • 학ꡐ νƒ€μž… String -> Enum으둜 관리 방식 λ³€κ²½
  • ν•™κ³Ό 정보 μ œμ™Έν•˜κ³  API μš”μ²­ν•  수 μžˆλ„λ‘ νƒ€μž… μˆ˜μ •
  • ktor client λ³€κ²½

🎸 기타

  • 이전

  • 이후

2026-02-05.12.21.47.mov

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 4, 2026

Warning

Rate limit exceeded

@khs3994 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 21 minutes and 42 seconds before requesting another review.

βŒ› How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

✨ Finishing touches
πŸ§ͺ Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/104-fix-time-table-issue

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.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @khs3994, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 νŠΉμ • ν•™κ΅μ—μ„œ μ‹œκ°„ν‘œ μ‘°νšŒκ°€ μ œλŒ€λ‘œ λ˜μ§€ μ•Šλ˜ 문제λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€. μ£Όμš” λ³€κ²½ μ‚¬ν•­μœΌλ‘œλŠ” μ‹œκ°„ν‘œ 쑰회 μ‹€νŒ¨ μ‹œ ν•™κ³Ό 정보λ₯Ό μ œμ™Έν•˜κ³  μž¬μ‹œλ„ν•˜λŠ” λ‘œμ§μ„ λ„μž…ν•˜μ—¬ μ•ˆμ •μ„±μ„ λ†’μ˜€μœΌλ©°, 학ꡐ νƒ€μž… 관리λ₯Ό Stringμ—μ„œ Enum으둜 λ³€κ²½ν•˜μ—¬ μ½”λ“œμ˜ 가독성과 μœ μ§€λ³΄μˆ˜μ„±μ„ κ°œμ„ ν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, Ktor HTTP ν΄λΌμ΄μ–ΈνŠΈ 엔진을 Android ν™˜κ²½μ— 더 μ ν•©ν•œ κ²ƒμœΌλ‘œ κ΅μ²΄ν–ˆμŠ΅λ‹ˆλ‹€.

Highlights

  • μ‹œκ°„ν‘œ 쑰회 μž¬μ‹œλ„ 둜직 μΆ”κ°€: νŠΉμ • ν•™κ΅μ—μ„œ μ‹œκ°„ν‘œ μ‘°νšŒκ°€ μ‹€νŒ¨ν•  경우, ν•™κ³Ό 정보λ₯Ό μ œμ™Έν•˜κ³  μž¬μ‹œλ„ν•˜λŠ” 둜직이 GetTimeTableUseCase에 μΆ”κ°€λ˜μ–΄ μ•ˆμ •μ„±μ„ λ†’μ˜€μŠ΅λ‹ˆλ‹€.
  • 학ꡐ νƒ€μž… Enum으둜 λ³€κ²½: 학ꡐ νƒ€μž…μ„ Stringμ—μ„œ enum class SchoolType으둜 λ³€κ²½ν•˜μ—¬ νƒ€μž… μ•ˆμ •μ„±κ³Ό μ½”λ“œμ˜ 가독성을 κ°œμ„ ν–ˆμŠ΅λ‹ˆλ‹€.
  • Ktor ν΄λΌμ΄μ–ΈνŠΈ μ—”μ§„ λ³€κ²½: Ktor HTTP ν΄λΌμ΄μ–ΈνŠΈ 엔진을 CIOμ—μ„œ Android둜 λ³€κ²½ν•˜μ—¬ Android ν™˜κ²½μ— 더 μ ν•©ν•˜λ„λ‘ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • data/src/main/java/com/onmi/data/datasource/TimeTableDataSource.kt
    • getTimeTable λ©”μ„œλ“œμ˜ schoolType λ§€κ°œλ³€μˆ˜ νƒ€μž…μ„ Stringμ—μ„œ SchoolType으둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
    • department λ§€κ°œλ³€μˆ˜λ₯Ό String? (nullable)둜 λ³€κ²½ν•˜κ³ , λ°˜ν™˜ νƒ€μž…μ„ Listμ—μ„œ List?으둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
  • data/src/main/java/com/onmi/data/datasourceimpl/TimeTableDataSourceImpl.kt
    • SchoolType enum을 importν•˜κ³ , getTimeTable λ©”μ„œλ“œμ˜ μ‹œκ·Έλ‹ˆμ²˜λ₯Ό TimeTableDataSource μΈν„°νŽ˜μ΄μŠ€μ— 맞좰 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
    • department λ§€κ°œλ³€μˆ˜κ°€ null이 아닐 λ•Œλ§Œ DDDEP_NM νŒŒλΌλ―Έν„°λ₯Ό μΆ”κ°€ν•˜λ„λ‘ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.
    • schoolType을 SchoolType.key둜 μ‚¬μš©ν•˜μ—¬ URL을 κ΅¬μ„±ν•˜λ„λ‘ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
    • 기쑴의 fetchTimeTable 헬퍼 ν•¨μˆ˜λ₯Ό μ œκ±°ν•˜κ³  λ‘œμ§μ„ ν†΅ν•©ν–ˆμŠ΅λ‹ˆλ‹€.
  • data/src/main/java/com/onmi/data/network/KtorClient.kt
    • Ktor HTTP ν΄λΌμ΄μ–ΈνŠΈ 엔진을 CIOμ—μ„œ Android둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
  • data/src/main/java/com/onmi/data/repository/TimeTableRepositoryImpl.kt
    • SchoolType enum을 importν•˜κ³ , getTimeTable λ©”μ„œλ“œμ˜ μ‹œκ·Έλ‹ˆμ²˜λ₯Ό TimeTableDataSource μΈν„°νŽ˜μ΄μŠ€μ— 맞좰 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
  • domain/src/main/java/com/onmi/domain/model/school/SchoolType.kt
    • SchoolTypeμ΄λΌλŠ” μƒˆλ‘œμš΄ enum classλ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 이 enum은 Elementary, Middle, High, Special 학ꡐ νƒ€μž…μ„ μ •μ˜ν•˜λ©°, 각 νƒ€μž…μ— ν•΄λ‹Ήν•˜λŠ” key λ¬Έμžμ—΄μ„ κ°€μ§‘λ‹ˆλ‹€.
    • String νƒ€μž…μ˜ 학ꡐ 이름을 SchoolType enum으둜 λ³€ν™˜ν•˜λŠ” convertSchoolTypeToKey μ»΄νŒ¨λ‹ˆμ–Έ ν•¨μˆ˜λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
  • domain/src/main/java/com/onmi/domain/repository/TimeTableRepository.kt
    • getTimeTable λ©”μ„œλ“œμ˜ schoolType λ§€κ°œλ³€μˆ˜ νƒ€μž…μ„ Stringμ—μ„œ SchoolType으둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
    • department λ§€κ°œλ³€μˆ˜λ₯Ό String? (nullable)둜 λ³€κ²½ν•˜κ³ , λ°˜ν™˜ νƒ€μž…μ„ Listμ—μ„œ List?으둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
  • domain/src/main/java/com/onmi/domain/usecase/timetable/GetTimeTableUseCase.kt
    • SchoolTypeκ³Ό UserInfoModel을 importν–ˆμŠ΅λ‹ˆλ‹€.
    • invoke μ—°μ‚°μž ν•¨μˆ˜ λ‚΄μ—μ„œ departmentλ₯Ό userInfo.department.takeIf { it.isNotEmpty() }둜 μ²˜λ¦¬ν•˜μ—¬ 빈 λ¬Έμžμ—΄μΌ 경우 null이 λ˜λ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.
    • schoolType을 SchoolType.convertSchoolTypeToKeyλ₯Ό μ‚¬μš©ν•˜μ—¬ λ³€ν™˜ν•˜λ„λ‘ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
    • μ‹œκ°„ν‘œ 쑰회 μ‹œ NeisException이 λ°œμƒν•˜κ³  departmentκ°€ null이 μ•„λ‹ˆλ©° DATA_NOT_FOUND μ—λŸ¬μΌ 경우, departmentλ₯Ό null둜 μ„€μ •ν•˜μ—¬ μž¬μ‹œλ„ν•˜λŠ” λ‘œμ§μ„ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.
    • 기쑴의 convertSchoolTypeToKey ν•¨μˆ˜λ₯Ό μ œκ±°ν•˜κ³ , requestλΌλŠ” private suspend ν•¨μˆ˜λ₯Ό μƒˆλ‘œ μ •μ˜ν•˜μ—¬ μ‹œκ°„ν‘œ 쑰회 λ‘œμ§μ„ μΊ‘μŠν™”ν–ˆμŠ΅λ‹ˆλ‹€.
  • feature/main/src/main/java/khs/onmi/main/viewmodel/MainViewModel.kt
    • android.util.Logλ₯Ό importν•˜κ³ , getTimeTableUseCase 호좜 ν›„ 응닡을 Log.d둜 좜λ ₯ν•˜λŠ” 디버그 μ½”λ“œλ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.
  • gradle/libs.versions.toml
    • Ktor ν΄λΌμ΄μ–ΈνŠΈ λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ ktor-client-cioλ₯Ό ktor-client-android둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.
Activity
  • khs3994 λ‹˜μ΄ νŠΉμ • ν•™κ΅μ—μ„œ μ‹œκ°„ν‘œ μ‘°νšŒκ°€ μ•ˆ λ˜λŠ” 이슈λ₯Ό μˆ˜μ •ν•˜κΈ° μœ„ν•΄ 이 PR을 μƒμ„±ν–ˆμŠ΅λ‹ˆλ‹€.
  • μ‹œκ°„ν‘œ 쑰회 μ‹œ μž¬μ‹œλ„ λ‘œμ§μ„ κ΅¬ν˜„ν•˜κ³ , 학ꡐ νƒ€μž… 관리 방식을 κ°œμ„ ν•˜λ©°, Ktor ν΄λΌμ΄μ–ΈνŠΈλ₯Ό λ³€κ²½ν•˜λŠ” μž‘μ—…μ„ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with πŸ‘ and πŸ‘Ž on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

이번 PR은 νŠΉμ • ν•™κ΅μ—μ„œ μ‹œκ°„ν‘œκ°€ μ‘°νšŒλ˜μ§€ μ•ŠλŠ” 이슈λ₯Ό μž¬μ‹œλ„ λ‘œμ§μ„ κ΅¬ν˜„ν•˜μ—¬ μ„±κ³΅μ μœΌλ‘œ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. 특히 schoolType을 Stringμ—μ„œ νƒ€μž…-μ„Έμ΄ν”„ν•œ Enum으둜 λ¦¬νŒ©ν† λ§ν•œ 점은 μ½”λ“œ 가독성과 μœ μ§€λ³΄μˆ˜μ„±μ„ 크게 ν–₯μƒμ‹œν‚€λŠ” 쒋은 λ³€κ²½μž…λ‹ˆλ‹€. DATA_NOT_FOUND μ—λŸ¬ λ°œμƒ μ‹œ ν•™κ³Ό 정보λ₯Ό μ œμ™Έν•˜κ³  μž¬μš”μ²­ν•˜λŠ” λ‘œμ§μ€ API λ°μ΄ν„°μ˜ λΆˆμΌμΉ˜μ„±μ„ λ‹€λ£¨λŠ” κ²¬κ³ ν•œ μ ‘κ·Ό λ°©μ‹μž…λ‹ˆλ‹€. λ˜ν•œ Ktor ν΄λΌμ΄μ–ΈνŠΈ 엔진을 Android둜 μ—…λ°μ΄νŠΈν•œ 것은 μ•ˆλ“œλ‘œμ΄λ“œ ν”Œλž«νΌμ—μ„œμ˜ μ„±λŠ₯κ³Ό μ•ˆμ •μ„±μ„ μœ„ν•œ 쒋은 κ²°μ •μž…λ‹ˆλ‹€. μ½”λ“œμ˜ 견고함과 λͺ…확성을 λ”μš± ν–₯μƒμ‹œν‚€κΈ° μœ„ν•œ λͺ‡ κ°€μ§€ μ œμ•ˆ 사항이 μžˆμŠ΅λ‹ˆλ‹€.

Comment thread domain/src/main/java/com/onmi/domain/usecase/timetable/GetTimeTableUseCase.kt Outdated
Comment thread domain/src/main/java/com/onmi/domain/model/school/SchoolType.kt Outdated
Comment thread domain/src/main/java/com/onmi/domain/usecase/timetable/GetTimeTableUseCase.kt Outdated
Comment thread feature/main/src/main/java/khs/onmi/main/viewmodel/MainViewModel.kt Outdated
khs3994 and others added 5 commits February 5, 2026 00:24
…TableUseCase.kt

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…TableUseCase.kt

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@khs3994 khs3994 merged commit d357e85 into develop Feb 4, 2026
1 check passed
@khs3994 khs3994 deleted the feature/104-fix-time-table-issue branch February 4, 2026 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant