크론 전수검사

2024년 11월 19일 화요일

Today I Learned

날짜

2024년 11월 19일 화요일

내용

크론 총 점검

네이버와 쇼피파이에서 제공하는 서비스에는 여러 크론이 돌아간다. 우선 현재는

  1. 매일 인스타그램 계정, 미디어, 댓글 상태를 업데이트
  2. 매일 인스타그램 미디어 URL이 만료되면 최신화
  3. 매일 네이버 배너이미지에 포함될 댓글을 최신화
  4. 매주 월요일 네이버 배너이미미지를 상품 상세페이지에 업로드
  5. 구글 스프레드시트에 현재 사용 데이터를 업로드

가 돌아간다. 이 중 1,2는 같이 돌아가는데 미디어 데이터와 댓글 데이터가 워낙 많아서 그런지 벌써부터 4~5시간 씩 걸린다. 서비스가 더 커지기 전에 조치를 내려야겠다 싶어 QA 기간에 이것저것 수정했다.

업데이트할 필요가 없는 스토어

현재 데이터를 업데이트 해주는 계정은, 스토어가 연동한 계정 뿐이다. 이 계정들 중에서라도 업데이트 할 필요가 없다면 연동하지 않으려 했다. 예를 들어, 우리 서비스를 이용하는 쇼피파이 스토어 중 대부분은 초기거나 규모가 작은 스토어들이다. 따라서 스토어가 닫히는 경우가 상당히 많다. 앱 삭제와는 별개로, 더 이상 운영하지 않는 스토어의 데이터를 굳이 업데이트 해줄 필요는 없다. 따라서 스토어의 활성화 상태를 확인하여 비활성화 된 스토어의 인스타그램 계정은 모두 연동 상태를 해제로 바꾸어주어 해결했다.

댓글 데이터

사실, 로직이 가장 오래걸리는데는 댓글 데이터가 치명적이다. 인스타그램 댓글이 워낙 많기 때문에… 인스타그램에선 다행히 댓글을 웹훅으로 작성될 때마다 가져와준다. 그렇다면, 굳이 크론작업으로 모든 포스트의 댓글을 가져와서 댓글들이 잘 있는지 확인할 필요는 없다. 처음 계정을 연동하고 데이터를 가져오는 함수와, 크론에서 사용하는 함수가 동일해서 발생한 문제였는데 이를 경우에 따라 다르게 처리하도록 바꾸었다.

미디어 만료시간

주기적으로 만료되는 인스타그램 미디어의 만료시간을 알기 때문에 더이상 모든 미디어를 처리할 필요가 없었다. 쿼리를 통해, 어떤 인스타그램 계정의 미디어 중 가장 만료시간이 적게 남은 것을 확인했다. 이게 하루도 남지 않았을 떄만 업데이트해주었다. 별 차이가 없다고 생각이 들수도 있지만, 만료기간이 3~4일이라면 각 계정은 3~4일 중 한번만 업데이트에 포함된다. 쓸데없는 로직과 리소스 낭비가 1/4로 감소한다는 뜻이다.

회고

아껴야 산다.