더미 리뷰가 생성안되는 이슈 처리

2024년 4월 26일 금요일

Today I Learned

날짜

2024년 4월 26일 금요일

내용

더미리뷰

프로덕트 리뷰 서비스에 처음 가입하는 스토어에게 더미 리뷰를 생성해준다. 리뷰가 있어야 위젯을 어떻게 이용할 수 있는지 확실히 알 수 있기 때문이다. 최근 가입한 스토어 몇개에 더미리뷰가 생성되지 않는 문제가 발견됐다.

관련 로직을 살펴보았다. 처음 서비스에 가입하여, 샵과 관련된 데이터를 생성할 때 리뷰서버로 요청을 보내 더미 리뷰를 만들어달라는 요청을 보낸다. 이 요청의 결과는 boolean 값으로 반환되는데 True면 샵 데이터에 check_demo_review 가 False값으로 저장된다. 문제가 된 샵들은 모두 True로 저장되어 있었다. 만약 요청이 잘못되었더라면, elastic apm에 에러나 로그가 남았을텐데 그렇진 않았다. 나는 요청자체는 작동하지만 응답으로 False값이 오는 것 같다고 예상했다.

그럼 리뷰 서버쪽에서 어떻게 저장하고 응답을 보내는지 확인했다.

  1. 요청이 오면
  2. ‘active’ 상태인 상품을 찾아서
  3. 그 상품에 더미 리뷰 2개를 달아준다.

가 전부였다. 상품이 있어야 리뷰가 있을 수 있으니 당연하다. 근데 내가 테스트를 위해 방금 만들었던 샵은 상품이 없었다. 예전엔 샵을 만들기만해도 쇼피파이쪽에서 스노우보드 같은 더미 상품을 추가해줬던 것 같은데.. 상품이 없어서 더미리뷰가 생성되지 않았을 수 있다고 생각했다.

확인해보니 쇼피파이에서 생성할때 옵션을 체크해야 더미 상품이 만들어진다. 굳이 더미상품 안만들고, 내가 임의로 active 상태인 상품을 하나 만들어서 서비스에 가입했더니 더미 리뷰가 잘 만들어진다.

이 과정에서 ,로컬내에서만 Sweggar의 API만 호출해보고 로깅문을 추가하면서 상황을 파악했다. 만약 테스트 서버에 내 맘대로 병합할 수 있는 권한이 있었으면 그냥 로깅문 잔뜩 추가해서 생성해보고 어디가 문제인가~ 들여다봤을 것같다. 지금 당장에야 그게 빠르기야 하겠다만 그게 정말 올바른 혹은 최선의 방법인지 최근 고민이 든다.

아무리 테스트서버라고 해도 배포하는데 시간이 걸리고, 이로 인해 혹시 테스트 서버에 문제가 생기면 다른 팀원들 업무에 지장을 줄 수도 있고, 테섭 배포 자체도 비용이 드는 문제니까.. 코드의 논리적인 흐름을 파악하고 가능하다면 로컬 수준에서 테스트해서 원인을 찾아내는데 좀 더 익숙해질 필요성을 요즘 느낀다.

계정 미삭제 문제

하나의 알파리뷰 계정은 여러개의 샵을 가질 수 있다. 따라서 샵을 삭제한다고, 무조건 관련된 계정을 삭제해선 안된다. 어떤 샵들은 주인없이 덩그러니 남겨져 있을 수도 있으니까.. 반면 샵을 삭제할 때 그 계정이 더이상 연결된 샵이 없다면? 삭제해주는게 맞다.

앱을 삭제해주는 태스크를 진행하면서, 테스트를 위해 우리 서비스에 내 여러가지 개인 이메일을 이용한 계정을 만들었다. 설치와 삭제를 반복하다가, 어떤 계정이 샵도 없이 덩그러니 놓여있는 경우가 발생했다. 샵을 삭제할 때, 연결된 계정이 더이상 샵이 없다면 계정도 삭제해야하는데 계정은 살아있었다. 하지만 연결된 샵이 없으니 로그인은 안된다. 그 아이디는 데이터 상으로 있는 계정이긴 하니, 그 이메일을 이용해 재가입도 할 수 없다. 죽은 것도아니고, 산것도 아닌 좀비같은 데이터들이 생성되고 있었다.

열심히 문제점을 파악해봤는데, 코드를 변경하면서 생긴 문제였다. 점차 서비스가 늘어나면서 여러 서비스의 사용 상태를 표시하는 형식이 데이터베이스에서 변경되었는데,, 이 부분은 반영되지 않아서 옛날 코드를 사용하고 있었다. 코드를 바꿀땐 구석구석 꼼꼼히 확인해야겠다.

회고

이슈관리는 참 어렵다.