본문 바로가기
회고

[항해 플러스 백엔드-7주차] Redis 활용

코동이 2024. 11. 12.

이번 챕터를 시작하며 꼭 해내고 싶었던 목표

Redis를 활용하여 멱등성 결제 개선하기

 

이번 챕터를 마무리하며 가장 기억에 남는 성취

 Redis를 활용해 트랜잭션의 사용 범위도 줄이고 성능을 대폭 강화했습니다. 멱등성 키를 DB에서 관리하다가 Redis로 관리하니 훨씬 부하가 줄었습니다. 만약 멱등성 키 검증이 제대로 되지 않아도 주문에서 락을 활용해 유효성을 검증하기 때문에 중복 결제를 막을 수 있습니다. 하지만 결제 실패 시 재시도를 처리하는 등의 예외 전략은 더 고도화 해야 합니다.

 

이번 챕터에서 반드시 이뤘으면 했는데 이루지 못한 것(아쉬운 점)

 Redis 테스트를 위한 인메모리 레디스, 테스트 컨테이너를 확실하게 구분하지 못한 것. Redis를 사용하다가 테스트를 하고 싶었는데 어떻게 레디스를 테스트하는지 고민했습니다. 인메모리 레디스와 테스트 컨테이너 모두 셋팅을 했지만 완벽하게 2가지 버전을 사용하지 못했습니다. 아무래도 로컬에 레디스가 있다보니 내부 인메모리 레디스를 사용하고 싶은데 로컬 레디스로 연결됩니다. 레디스가 다양한 설정파일이 있기 때문에 어느 부분에서 의도치 않은 동작을 하는지 확인해야 합니다.

 

내가 강화해야 할 강점 중 가장 중요하다고 생각하는 한 가지

  기존에 있던 코드나 시스템 기반에서 추가 개선을 고민한 것. 회사에서 사용하고 있던 Redis의 설정을 참고해 진행했습니다. TTL 시간별로 cacheManager를 만들어 기능에 따라 여러 시간을 편하게 사용할 수 있었습니다. 직렬화/역직렬화는 개선된 버전을 사용했는데 generic이 아닌 jackson을 사용했습니다. 패키지를 옮긴다면 Redis 데이터에 문제가 생길 수 있다고 합니다. 따라서 한번에 모든 것을 다 바꾸는 것이 아닌 개선 할 수 있는 부분을 하나씩 하나씩 개선하다보면 투자 대비 직접적인 효율을 얻을 수 있습니다.

 

내가 개선해야 할 개선점 중 가장 중요하다고 생각하는 한 가지

    

반응형