개발 slecs

재고 현황을 구글시트로 자동 동기화한 경험

목차

구글시트를 팀 전체의 실시간 대시보드로 만들어야 한다는 요청이 들어왔다. 그동안 재고 현황은 관리 시스템 내부 페이지에만 있었는데, PM과 마케팅팀이 별도 분석이나 리포트 작성을 위해 매번 데이터를 받아가야 하는 문제가 있었다. 그래서 서버의 실제 재고 상태를 주기적으로 구글시트로 내보내는 inventory_export.py 스크립트를 만들게 됐다.

왜 데이터 export가 필요했나

이런 상황, 많은 팀에서 겪을 것 같다. 비즈니스팀과 엔지니어링팀이 각각 다른 도구를 쓰는데, 데이터를 공유하고 싶을 때마다 수동으로 뽑아주는 게 아니라, 자동화된 파이프라인으로 만들어놓으면 여러 이점이 생긴다:

  • 의사결정 속도: 의사결정이 필요할 때마다 엔지니어에게 데이터를 요청할 필요 없음
  • 팀 간 신뢰: 모두가 같은 출처의 최신 데이터를 본다는 확신
  • 반복 업무 제거: 누군가 매번 CSV 다운로드 → 구글시트 복붙하는 작업 없음
  • 감시(Observability): 운영팀이 실시간으로 현황을 모니터링할 수 있음

특히 재고 관리 같은 영역은 시간에 민감하기 때문에 몇 시간 전 데이터가 아닌 현재 서버 상태가 중요했다.

inventory_export.py의 역할

이 스크립트는 간단한 목표를 가진다:

담당 역할 내용
데이터 추출 서버 DB에서 현재 재고 데이터를 조회
변환 내부 형식을 구글시트 호환 포맷으로 정리
동기화 Google Sheets API를 통해 기존 시트를 업데이트
에러 처리 네트워크 실패, API 할당량 등에 대응

일반적으로 이런 export 스크립트를 구성할 때 고려해야 할 포인트들:

# 1. 멱등성(Idempotency) — 같은 데이터를 여러 번 export해도 문제없어야 함
# 2. 부분 실패 복구 — 일부 행이 실패했을 때 전체가 롤백되지 않아야 함
# 3. 타임아웃 처리 — 데이터가 크면 API 요청이 언제 끝날지 알 수 없음
# 4. 인증 관리 — Google Sheets API 키 관리와 권한 검증
# 5. 스케줄링 — 크론 작업으로 주기적 실행할 준비

특히 Google Sheets API를 직접 다룰 때는 할당량 제한(quota)을 항상 염두에 두어야 한다. 과도한 read/write 요청은 API 기한 초과로 일시적 차단될 수 있으니, 배치(batch) 요청으로 묶거나 요청 간 지연을 두는 식으로 설계해야 한다.

팀 입장에서 본 이 작업의 의미

처음엔 "데이터 내보내기"라는 기술적 업무처럼 보일 수 있지만, 실제론 팀의 정보 비대칭을 줄이는 작업이었다.

  • 개발팀은 시스템 내부만 봤는데, PM은 외부 데이터(경쟁사, 시장 동향)와 비교 분석 필요
  • 운영팀은 실시간 문제 감지를 위해 대시보드 필요
  • 마케팅팀은 캠페인 효과 측정을 위해 재고 변화를 추적 필요

이걸 일일이 설명하지 않고 스크립트 한 줄로 자동화해놓으면, 다들 필요한 데이터에 빠르게 접근할 수 있다. 이게 좋은 리더십이라 생각한다.

배운 점과 주의할 것들

이런 export 작업을 여러 번 해보니 느낀 게 몇 가지 있다:

  1. "일단 돌아가는 버전"과 "운영 가능한 버전"은 다르다
    초기엔 에러 로깅 없이 조용히 실패하는 스크립트로 끝낼 수도 있지만, 며칠 뒤 구글시트가 stale 데이터로 가득 찬 걸 발견하게 된다. 실패했을 때 누가 알 수 있는 구조(로그, 알림)가 필수다.

  2. 데이터 포맷은 소비자(사용팀)와 함께 정의
    엔지니어 입장에선 DB 스키마 그대로 내보내고 싶지만, 실제로 구글시트를 쓸 팀은 다른 컬럼 순서, 다른 단위(초 → 분), 다른 이름(internal_id → SKU)을 원한다. 일회성이 아니라면 초반에 함께 설계하자.

  3. 버전 관리
    스크립트도 코드다. 어느 날 갑자기 "작년 4월 데이터 다시 내보내줄 수 있냐"는 요청이 올 수 있다. git에 커밋해두고, 필요하면 특정 버전을 replay할 수 있게 해두면 나중에 수고가 줄어든다.

이 경험을 통해 느낀 게 하나 더 있다면, 자동화된 데이터 파이프라인은 조직 전체의 속도를 올린다는 것. 작은 스크립트 하나가 의사결정 사이클을 앞당기고, 팀 간 협업을 부드럽게 만들 수 있다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.