Conversation
Summary of ChangesHello @Yang-Chaeyeon, 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 캐싱을 적용하여 애플리케이션의 성능을 최적화하는 것을 목표로 합니다. 데이터 조회 속도를 향상시키고, 계좌 생성이나 송금과 같은 변경 사항 발생 시 캐시를 적절히 무효화하여 데이터의 최신성을 보장합니다. Highlights
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
Code Review
이번 PR은 모든 계좌의 잔액 합산 조회 기능에 Redis 캐싱을 적용하여 성능을 개선하는 것을 목표로 하고 있습니다. 캐싱 로직의 도입과 캐시 무효화 구현은 좋은 방향입니다. 다만, 몇 가지 개선점을 제안합니다. RedisTemplate의 사용법을 설정에 맞게 최적화하고, DB 조회 효율성을 높이며, 테스트 코드의 안정성을 확보하는 방향으로 코드를 수정하면 더 완성도 높은 기능이 될 것입니다. 또한, 설정 값과 캐시 키 같은 부분은 상수를 사용하거나 외부 설정으로 분리하여 유지보수성을 높이는 것이 좋습니다. 자세한 내용은 각 파일에 남긴 코멘트를 참고해주세요.
src/main/java/org/creditto/core_banking/domain/account/service/AccountService.java
Show resolved
Hide resolved
src/main/java/org/creditto/core_banking/domain/account/service/AccountService.java
Outdated
Show resolved
Hide resolved
src/test/java/org/creditto/core_banking/domain/account/AccountServiceCacheTest.java
Outdated
Show resolved
Hide resolved
|
/gemini review |
There was a problem hiding this comment.
Code Review
이 PR은 모든 계좌의 잔액 합산 조회 기능에 Redis 캐싱을 적용하여 성능을 개선하는 것을 목표로 하고 있습니다. 전반적으로 캐시 적용 및 무효화 로직의 구현 방향은 좋으나, 몇 가지 중요한 수정이 필요합니다. 특히, 캐시 조회 로직에 치명적인 버그가 있어 캐시가 전혀 동작하지 않는 문제가 있습니다. 또한, 테스트 코드의 견고성을 높이고 설정 값 관리를 개선할 수 있는 부분을 발견하여 관련 의견을 남겼습니다. 자세한 내용은 각 파일의 리뷰 코멘트를 참고해주세요.
src/main/java/org/creditto/core_banking/domain/account/service/AccountService.java
Show resolved
Hide resolved
src/test/java/org/creditto/core_banking/domain/account/AccountServiceCacheTest.java
Show resolved
Hide resolved
|
/gemini review |
There was a problem hiding this comment.
Code Review
이 PR은 모든 계좌의 잔액 합산 조회 기능에 Redis 캐싱을 적용하여 성능을 개선하는 것을 목표로 합니다. 전반적으로 캐시 읽기, 쓰기, 무효화 로직이 잘 구현되었습니다. 특히 계좌 생성 및 해외 송금 시 캐시를 무효화하는 로직이 추가된 점이 좋습니다. 또한, 캐싱 로직을 검증하기 위한 통합 테스트를 추가한 점도 훌륭합니다.
다만, 몇 가지 개선할 점이 보입니다.
AccountService.processTransaction메서드에서 잔액 변경이 발생함에도 캐시 무효화 로직이 누락되어 데이터 정합성 문제가 발생할 수 있습니다. (critical)- 기존 단위 테스트(
AccountServiceTest)가 비활성화되었습니다. 새로운 의존성을 Mocking하여 테스트를 유지하는 것이 좋습니다. (high) RedisConfig에서 Spring이 관리하는ObjectMapper를 사용하도록 개선하면 더 일관성 있는 JSON 직렬화를 보장할 수 있습니다. (medium)AccountService내 사용되지 않는ObjectMapper필드를 제거하여 코드의 명확성을 높일 수 있습니다. (medium)- 캐시 무효화 로직의 완전성을 보장하기 위해, 잔액 변경 트랜잭션 발생 후 캐시가 올바르게 무효화되는지에 대한 테스트 케이스 추가를 고려해야 합니다. (medium)
자세한 내용은 각 파일의 개별 코멘트를 참고해주세요.
| import static org.mockito.BDDMockito.willDoNothing; | ||
| import static org.mockito.Mockito.*; | ||
|
|
||
| @Disabled |
There was a problem hiding this comment.
시도해봤는데 도저히 안짜져요 추후에 수정하고싶어요...
src/main/java/org/creditto/core_banking/domain/account/service/AccountService.java
Show resolved
Hide resolved
| @DisplayName("총 잔액 조회 캐싱 및 무효화 전체 시나리오 테스트") | ||
| void testTotalBalanceCachingScenario() { |
There was a problem hiding this comment.
🗞️ 연관된 이슈
🔥 이슈번호
✅ 작업 내용
📸 스크린샷 (선택)
체크리스트 ✅
기타