#운영 #프로덕트
DB 데이터 공유, CSV로 다운받아서 전달해야할까? 어드민을 만들어야할까?

DB 데이터 공유, CSV로 우선 처리하다가 어드민까지 만들게 되는 상황.
운영하다 보면 이린 요청이 너무 익숙합니다.

"이번 달 결제 실패 데이터 볼 수 있을까요?"
"지난주 신규 가입자 목록 구글 시트로 공유해주실 수 있어요?"

기술적으로 어려운 일이 아니라는 걸 알지만, 이런 요청이 하루에 세 번씩 있다면 문제가 시작됩니다.

처음엔 다들 CSV로 시작합니다. 그러다 요청이 쌓이면 Sheets API를 활용하거나 어드민을 새로 짜게 됩니다. 여러 내부 도구 운영 방식을 보면서 느낌 건, 이 선택이 애매해지는 지점이 있다는 겁니다.

단순 내보내기가 필요한데 어드민을 새로 짜거나, 팀원이 직접 조회해야 하는데 Sheets API 자동화만 만들어두는 식입니다. 용도를 먼저 구분하면 선택이 훨씬 단순해지는데, 그 구분이 생각보다 언급되지 않는 경우가 많습니다.

"데이터를 공유해주세요" 뒤에는 실제로 세 가지 다른 니즈가 숨어 있습니다.

첫 번째는 조회입니다. 최신 데이터를 직접, 반복적으로 확인해야 하는 경우입니다. CS팀이 특정 주문을 검색해야 하거나, 오늘 가입자 현황을 매일 아침마다 확인하는 경우입니다.
두 번째는 내보내기입니다. 특정 시점의 스냅샷을 추출해서 월간 보고서나 파트너사에 전달하는 경우입니다. 
세 번째는 동기화입니다. 시트나 데이터가 자동화 파이프라인의 인풋으로 쓰이는 경우입니다.

이 세 가지는 해결 방법이 다릅니다.

방법별로 정리하면 이렇습니다.

CSV 수동 내보내기: 
DB 클라이언트에서 쿼리 결과를 CSV로 내보내고 구글 드라이브에 올리면 됩니다. 구현 비용이 없고 가장 빠릅니다. 다만 요청이 주 2~3회를 넘기 시작하면 반복 처리 비용이 자동화 구축 비용을 넘어서게 됩니다. 간헐적인 1~2회 수준에서만 활용하는 게 맞습니다.

Google Sheets API는 두 가지 패턴으로 나뉩니다. 
첫 번째는 하나의 시트를 고정해두고 주기적으로 데이터를 덮어쓰는 동기화 패턴입니다. 시트가 자동화 파이프라인의 인풋이 되는 구조에 적합합니다. 
두 번째는 매일 / 매주 새 파일을 생성해 Drive 폴더에 쌓는 자동 내보내기 패턴입니다. 주간 리포트나 월정산처럼 이력 관리가 필요한 경우에 맞습니다. 다만 스크립트가 멈춰도 아무도 모를 수 있으니 별도 알림을 붙여두는 게 좋습니다.

Redash / Metabase 같은 BI 툴은 이미 운영 중인 팀에게 최선입니다. 쿼리 하나 저장하면 비개발자가 직접 조회하고 CSV를 다운로드할 수 있습니다. 다만 단순 데이터 공유 목적만으로 새로 Metabase를 세팅한다면 과잉 투자가 될 수 있습니다.

어드민 직접 개발은 관련 워크플로우까지 양식이 있을 때 유의미합니다. 주변 작업이 예상보다 오래 걸린다는 게 리스크지만, 지불 / 승인 / 별도 업무 연동이 필요한 경우에는 직접 만드는 게 답입니다.

사내 도구 빌더(저희는 셀렉트 어드민을 만들고 쓰고 있습니다)는 어드민이 없거나 레거시 어드민을 대체하고 싶을 때 선택지입니다. 셀렉트는 YAML 선언만으로 조회 + 내보내기 + 권한 제어를 한 번에 설정할 수 있고, 코드 수정이나 배포 없이 컨피그 변경만으로 업데이트가 됩니다.

지금 팀이 어느 단계에 있는지가 선택의 핵심입니다. 간헐적 요청이면 CSV, 주기적 스냅샷이면 Sheets API, 팀원이 직접 조회해야 하는 시점이 오면 어드민입니다. 기술 선택 전에 용도부터 먼저 생각해보면 불필요한 개발을 피할 수 있습니다.

자세한 비교 내용은 링크를 참고해주세요.
https://blog.selectfromuser.com/share-db-data/

링크 복사

김학범 셀렉트 어드민 · 기타

댓글 1
추천 아티클
김학범 셀렉트 어드민 · 기타

1