-
Notifications
You must be signed in to change notification settings - Fork 0
[Release] v1.0.5 api 추가 + session clustering 기능 추가 #158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
[FEATURE] 운송장 번호 및 발송일 조회
[FEATURE] 회원 탈퇴 시 기존 회원 providerId 데이터 포맷
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @chanwonlee, 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은 애플리케이션의 인프라와 기능 확장을 목표로 합니다. Redis를 이용한 세션 클러스터링을 구현하여 서비스의 안정성과 확장성을 높였으며, 사용자에게 새로운 기능을 제공하기 위해 운송장 조회 및 회원 탈퇴 관련 API를 추가했습니다. 또한, 회원 탈퇴 시 데이터 처리 로직을 개선하여 보다 견고한 시스템을 구축했습니다.
Highlights
- 세션 클러스터링 기능 추가: Spring Session Data Redis를 활용하여 세션 클러스터링 기능을 도입했습니다. 이를 통해 애플리케이션의 확장성과 안정성을 향상시켰습니다.
- 새로운 API 엔드포인트 추가: 운송장 번호 및 발송일 조회 API와 회원 탈퇴 API를 추가하여 서비스 기능을 확장했습니다.
- 회원 탈퇴 로직 개선: 회원 탈퇴 시 providerId도 탈퇴일시와 함께 포맷되도록 변경하여 데이터 일관성을 강화했습니다.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| 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 issue 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
-
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. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
이번 PR은 Redis를 이용한 세션 클러스터링 기능과 배송 정보 조회 API를 추가하고, 회원 탈퇴 로직을 개선하는 변경 사항을 포함하고 있습니다. 전반적으로 잘 작성되었으나, 새로 추가된 API 응답 DTO에서 발생할 수 있는 NullPointerException 문제와 코딩 컨벤션 위반 사항이 발견되어 수정을 제안합니다. 자세한 내용은 각 파일의 리뷰 코멘트를 참고해주세요.
| public static TrackingNumberResponse of(String trackingNumber, LocalDateTime startAt) { | ||
| return new TrackingNumberResponse(trackingNumber, startAt.toLocalDate()); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚨 잠재적 NullPointerException 발생 가능성
심각도: High
문제점: shippingService.getTrackingNumber()에서 배송이 시작되지 않은 (startAt이 null인) Shipping 객체를 조회할 경우, 이 of 메서드가 호출되면서 startAt.toLocalDate()에서 NullPointerException이 발생할 수 있습니다.1 테스트 코드에서는 shipping.startShipping()을 호출하여 이 케이스를 발견하지 못하고 있습니다.
제안사항: startAt이 null인 경우를 안전하게 처리하도록 코드를 수정하는 것을 권장합니다.
| public static TrackingNumberResponse of(String trackingNumber, LocalDateTime startAt) { | |
| return new TrackingNumberResponse(trackingNumber, startAt.toLocalDate()); | |
| } | |
| public static TrackingNumberResponse of(String trackingNumber, LocalDateTime startAt) { | |
| return new TrackingNumberResponse(trackingNumber, startAt != null ? startAt.toLocalDate() : null); | |
| } |
Style Guide References
Footnotes
-
정확성 검토 항목 중 하나로, NullPointerException 발생 가능성을 항상 확인해야 합니다. ↩
| ) { | ||
| public static TrackingNumberResponse of(String trackingNumber, LocalDateTime startAt) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔍 코드 리뷰 요약
심각도: Medium
문제점: CHERRY 프로젝트 코딩 컨벤션을 위반했습니다. record 선언 후 본문 시작 전에 한 줄 띄어쓰기가 없습니다.1
제안사항: 가독성 향상을 위해 record 선언부와 of 정적 팩토리 메서드 사이에 빈 줄을 추가하는 것을 권장합니다.
// ✅ 개선된 코드:
public record TrackingNumberResponse(...) {
public static TrackingNumberResponse of(...) {
// ...
}
}| ) { | |
| public static TrackingNumberResponse of(String trackingNumber, LocalDateTime startAt) { | |
| ) { | |
| public static TrackingNumberResponse of(String trackingNumber, LocalDateTime startAt) { |
Style Guide References
Footnotes
-
모든 클래스, record, interface, enum은 선언 후 반드시 한 줄 띄어쓰기가 있어야 합니다. ↩
관련 Issue (필수)
주요 변경 사항 (필수)
리뷰어 참고 사항
없음
추가 정보
없음
PR 작성 체크리스트 (필수)