비활성화와 삭제 구분하기

2024년 9월 10일 화요일

Today I Learned

날짜

2024년 9월 10일 화요일

내용

비활성 샵과 삭제한 샵

비활성화된 스토어들을 캐시에서 삭제했었다. 리뷰서버에서 샵 데이터를 Redis 캐시에서 받아 쓰는데, 캐시에 올라가있지 않으면 애초에 처리하지 않을 거라고 생각했기 떄문이다. 그럼에도 불구하고 몇일 간격으로 오류가 발생한다.

처음 몇번은 비활성화 된 샵인데도 캐시에 남아있는 경우가 있었다. 왜인지는 모르곘으나, Redis 관련 요청이 성공률이 높지 않다. 그래서 기존 코드에도 3회 정도 반복하는 코드가 있었구나 싶었다. 별 수 없어서 열심히 처리했는데 또 난다.

계속 반복되고 있는걸 보니 내가 뭔갈 놓치고 있다는 생각이 들어 오류 로그를 열심히 들여다봤다. 계속 문제되는 요청은 상품의 메타필드에 리뷰 갯수와 평점을 업데이트해주는 크론작업이었다. 문제가 된 상품의 shop_id로 데이터베이스를 조회해보니 안나온다. 원인은 샵 서버에서 삭제된 샵임에도 상품 데이터가 남겨져 있었기 때문이었다.

내 기억이 맞다면 내가 있었을 때 데이터 삭제 기능을 추가하는 태스크가 진행되었으니 리뷰서버에 꽤 오래된 불필요한 데이터가 많이 쌓여있을 거란 생각이 들었다. 조회해보니 삭제되었으나 불순물(?)을 남기고 떠난 샵이 300~400개 정도 되었다. 말끔히 제거.

회고

대기업의 API 그만 만지고 싶다.