Skip to content

Comments

feat: 송금 내역 redis 캐싱#123

Open
wo-oaw wants to merge 5 commits intomainfrom
feat/#116
Open

feat: 송금 내역 redis 캐싱#123
wo-oaw wants to merge 5 commits intomainfrom
feat/#116

Conversation

@wo-oaw
Copy link
Collaborator

@wo-oaw wo-oaw commented Dec 6, 2025

🗞️ 연관된 이슈

🔥 이슈번호

✅ 작업 내용

  • RegularRemittanceService 변경
  • 정기 송금 내역 캐싱 및 테스트코드 작성

📸 스크린샷 (선택)

체크리스트 ✅

  • 코드가 정상적으로 컴파일되나요?
  • merge할 브랜치의 위치를 확인했나요?
  • 테스트 코드를 작성하셨나요?

기타

TODO: 일회 송금 해야 함..

@wo-oaw wo-oaw self-assigned this Dec 6, 2025
@wo-oaw wo-oaw linked an issue Dec 6, 2025 that may be closed by this pull request
3 tasks
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @wo-oaw, 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 캐싱을 도입하여 송금 내역 조회 성능을 최적화하는 것을 목표로 합니다. Spring Data Redis를 통합하고, 정기 및 일회성 송금 내역 조회에 캐싱을 적용하며, 데이터 변경 시 캐시가 적절히 무효화되도록 로직을 구현했습니다. 이를 통해 사용자 경험을 개선하고 시스템 부하를 줄일 수 있습니다.

Highlights

  • Redis 통합: 해외 송금 내역 캐싱을 위해 spring-boot-starter-data-redis 의존성을 추가하고 Redis 설정을 통합했습니다.
  • 송금 내역 캐싱 구현: 정기 송금 내역 조회(getRegularRemittanceHistoryByRegRemId) 및 일회성 송금 내역 조회(getRemittanceList)에 Redis 캐싱 로직을 적용하여 성능을 향상시켰습니다.
  • 캐시 무효화 로직 추가: 송금 처리 완료 시(RemittanceProcessorService) 또는 정기 송금 설정 변경/삭제 시(RegularRemittanceService) 관련 캐시를 자동으로 무효화하도록 구현했습니다.
  • DTO 및 직렬화 개선: RemittanceHistoryDto에 보호된 접근 수준의 기본 생성자를 추가하고 필드를 private으로 변경하여 Jackson 직렬화/역직렬화 호환성을 높였습니다. 또한, RedisConfig에서 ObjectMapperJavaTimeModule을 등록하여 LocalDate와 같은 시간 객체의 직렬화를 지원합니다.
  • 테스트 코드 추가: 정기 송금 내역 조회 시 캐시 히트 및 캐시 미스 시나리오를 검증하는 테스트 코드를 추가하여 캐싱 로직의 정확성을 확인했습니다.
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
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은 송금 내역 조회 성능 향상을 위해 Redis 캐싱을 도입하는 중요한 변경을 포함하고 있습니다. 캐싱 로직 추가는 좋은 방향이지만, 리뷰 결과 몇 가지 심각한 문제점을 발견했습니다. 특히, 캐시 히트 시 권한 검사를 우회하는 보안 취약점과, 런타임에 ClassCastException을 유발할 수 있는 버그가 존재합니다. 또한, Redis 및 ObjectMapper 사용 방식에 있어 코드의 명확성과 효율성을 개선할 수 있는 부분이 있습니다. 자세한 내용은 각 파일에 남긴 코멘트를 참고하여 수정해 주시길 바랍니다.

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.

feat: 송금 내역 redis 캐싱

2 participants