대시보드를 열었더니 주문이 85건 더 있었다. 손님이 넣은 주문은 아니었다. 결제가 제대로 도는지 보려고 내가 넣어 놓고 치우지 않은 테스트 주문이었다. 매출 그래프와 주문 수가 그만큼 부풀어 있었다. 그 숫자를 믿고 무언가를 결정했다면 그 결정도 같이 틀렸을 것이다.
운영 서버에서 굳이 테스트하는 이유
먼저 진짜 서버에 왜 가짜 주문을 넣는지부터 적는다. 자몽에는 환경이 두 가지 있다. 하나는 손님이 실제로 접속하는 '운영 서버'이고, 다른 하나는 내 컴퓨터에서 이것저것 시험해 보는 개발 환경이다.
결제는 개발 환경에서만 확인해서는 안심이 안 된다. 실제 결제 흐름이 처음부터 끝까지 이어지는지는 진짜 길 위에서 한 번 달려 봐야 안다. 그래서 운영 서버에서 주문을 직접 넣어 본다. 이걸 '주행'이라고 부른다. 차를 고친 뒤 도로에 한 바퀴 몰고 나가 보는 것과 비슷하다.
문제는 주행이 끝나도 흔적이 남는다는 점이다. 테스트 주문도 진짜 주문과 똑같은 모양으로 데이터베이스(서비스의 모든 기록이 쌓이는 저장소)에 들어간다. 대시보드(매출과 주문 수를 한 화면에 모아 보여 주는 판)는 그게 테스트인지 모른다. 그냥 주문 한 건으로 센다.
85건은 한 번에 쌓이지 않았다
85건을 한꺼번에 넣은 게 아니다. 주행할 때마다 몇 건씩 넣었고, 확인이 끝나면 다음 일로 넘어갔다. 정리는 나중에 한꺼번에 하면 된다고 생각했는데, 그 '나중'은 끝내 오지 않았다.
돌아보면 원인은 두 가지였다. 첫째, 정리를 주행의 일부로 보지 않았다. 결제가 성공하는 걸 보면 주행이 끝났다고 여겼고, 치우는 일은 따로 할 일로 미뤄 두었다. 미뤄 둔 일은 잊힌다. 둘째, 테스트 주문에 붙이는 이름이 그때그때 달랐다. 이름이 제각각이면 나중에 모아서 지우려 해도 어느 게 테스트였는지 골라내기 어렵다. 실제 주문과 헷갈릴 만한 이름이면 더 위험하다. 잘못 지우면 손님 주문이 사라진다.
'0건 정리'라는 거짓 안심
이것과 닮은 실수가 하나 더 있었다. 정리 스크립트(정해진 순서대로 데이터를 찾아 지우는 작은 프로그램)를 돌렸더니 '0건 정리'라고 나왔다. 지울 테스트 주문이 없다는 뜻이니 안심했다.
그런데 그 스크립트를 돌린 곳이 내 컴퓨터의 개발 DB였다. 개발 DB는 운영 데이터를 복사해 둔 연습용 저장소인데, 그 복사본은 몇 주 전에 멈춰 있었다. 새 주문이 하나도 들어오지 않는 옛 사진을 들여다보고 깨끗하다고 말한 셈이다. 그 '0건'은 정리할 게 없다는 뜻이 아니었다. 내가 엉뚱한 곳을 보고 있다는 신호였다.
결과가 틀린 게 아니라 결과를 물어본 장소가 틀렸다. 이런 실수에는 오류 메시지도 뜨지 않는다. 숫자가 조용히, 그럴듯하게 나오니 더 오래 간다.
그래서 규칙 두 개를 정했다
첫째, 테스트 주문의 이름은 정확히 '점검'으로 한다. '점검1', '테스트', '확인용' 같은 변형은 쓰지 않는다. 이름이 하나로 정해지면 무엇을 지워야 하는지가 분명해지고, 손님 주문을 건드릴 걱정도 줄어든다. 그리고 주행이 끝나면 그 자리에서 정리한다. 결제 성공을 확인한 순간이 아니라 '점검' 주문을 지운 순간을 주행의 끝으로 친다.
둘째, 데이터를 조회하면 결과보다 가장 최근 행의 날짜를 먼저 본다. 행은 표의 한 줄로, 여기서는 주문 한 건이다. 마지막 주문의 날짜가 오늘 근처면 살아 있는 데이터를 보고 있는 것이고, 몇 주 전에 멈춰 있으면 그 결과는 믿지 않는다. 몇 건이 나왔는지 읽기 전에 내가 어디를 보고 있는지부터 확인하는 것이다. 작은 습관이지만 이것만으로 '0건'에 속는 일은 막을 수 있다.
다른 메이커에게 남기는 것
운영 서버에서 테스트하는 일은 피하기 어렵다. 진짜 길은 진짜 길에서만 확인된다. 그러니 테스트를 그만둘 게 아니라, 테스트가 남긴 흔적을 그 자리에서 치우는 걸 테스트의 마지막 단계로 넣어야 한다. 이름 하나를 정해 두고, 끝나면 바로 지운다. 그리고 '0건'이나 '이상 없음'처럼 안심되는 결과가 나올수록 그 결과가 언제 적 데이터에서 나왔는지부터 본다.
대시보드 숫자는 손님의 목소리다. 그런데 거기에 내 목소리가 85번 섞여 있었다. 이제는 섞이기 전에 지운다.
다음 글에서는 '18시간째 결제 0건'이라고 잘못 알렸던 날을 쓴다.
자몽 — 꿈해몽·사주·타로: https://jamongdream.com
구글 플레이: https://play.google.com/store/apps/details?id=com.dreamapp.jamong
자몽 — AI 꿈해몽·사주·타로
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.