룸톤 Roomtone TIL 21
승인이 났는데 아직 아무 일도 안 일어났다
심사 통과 소식이 왔다. 그런데 스토어에 가 보니 아무것도 없었다.
승인과 공개가 다른 단계였다. 심사를 통과해도 출시 버튼을 따로 눌러야 사람들이 받을 수 있다. 그 사이에는 앱이 승인된 채로 가만히 있다.
그 틈이 중요하다. 심사가 끝났다고 생각하고 심사용 계정 설정을 되돌리려던 참이었는데, 아직 공개 전이라 심사자가 다시 볼 수도 있는 상태였다. 건드렸으면 그때 막혔을 것이다.
- 「통과」와 「나갔다」 사이에 내가 눌러야 할 것이 있는지 확인한다. 자동으로 이어지지 않는 단계가 있다.
- 그 틈에서는 심사에 쓴 것을 원래대로 돌리지 않는다. 아직 끝난 게 아니다.
버튼을 누르기 전에 물어본 것
누르기 직전에 한 가지가 걸렸다. 지금 돌고 있는 서버가 심사에 낸 앱과 같은 판인가.
앱은 며칠 전에 만들어 제출했고, 그 뒤로도 서버를 여러 번 고쳤다. 앱이 기대하는 응답과 서버가 주는 응답이 어긋나 있으면, 공개하는 순간 받는 사람마다 깨진 앱을 쓰게 된다.
확인해 보니 맞았다. 제출한 번들을 만든 시점 이후로 서버 코드가 한 줄도 안 바뀌어 있었다.
- 앱과 서버는 따로 나간다. 앱은 심사 기간만큼 시간이 멈춰 있고 서버는 그동안 계속 움직인다.
- 공개는 되돌리기 어려운 조작이다. 되돌리기 어려운 것 앞에서는 한 번 더 묻는 게 싸다.
기뻤는데, 그다음에 할 일이 없었다
눌렀고, 페이지가 열렸다. 기뻤다.
그리고 바로 「이걸 어떻게 알리지」가 왔다. 할 수 있는 게 없었다. 주소가 생겼다는 것 말고는 준비해 둔 게 하나도 없었다.
몇 달 동안 잡은 일정이 전부 만드는 일정이었다. 곡을 몇 곡까지 채우고, 결제를 붙이고, 심사를 통과하고. 알리는 일은 「출시하면 그때」로 미뤄 뒀는데, 막상 그때가 되니 그 자리에 아무것도 없었다.
- 만드는 일정과 알리는 일정은 따로 잡아야 한다. 하나가 끝나면 다른 하나가 시작되는 게 아니라, 둘 다 미리 있어야 한다.
- 출시일은 끝나는 날이 아니라 다른 일이 시작되는 날이다. 그날 할 일이 비어 있으면 준비가 덜 된 것이다.
되돌리기로 적어 둔 일을 되돌리지 않기로 했다
심사용 계정에는 전곡을 들을 수 있게 권한을 열어 뒀었다. 심사자가 미리듣기 30초만 듣고 「반쪽짜리 앱」이라고 판단하면 안 되기 때문이다.
그리고 「심사 끝나면 되돌린다」고 적어 뒀다. 운영에 권한 열린 시험 계정을 남기지 않는다는 원칙이었다.
그런데 막상 그 시점이 되니 전제가 달라져 있었다. 심사는 한 번이 아니었다. 앱을 고쳐 올릴 때마다 다시 받는다. 그때도 심사자는 같은 계정으로 들어와 전곡을 들어야 한다. 지금 끄면 다음 판 낼 때 켜는 걸 잊기 쉽고, 잊으면 「앱에 접근할 수 없다」로 반려된다.
켜 둔 채 통계에서만 빼기로 했다. 실제 돈이 오가는 것도 아니고 표시 하나다.
- 적어 둔 규칙도 전제가 바뀌면 다시 본다. 「끝나면 되돌린다」는 끝이 한 번일 때 맞는 말이었다.
- 잊어서 사고가 나는 구조는 피한다. 사람이 매번 기억해야 도는 절차는 언젠가 안 돌아간다.
안 한다고 적은 것도 약속이다
판매 페이지에 「세금계산서는 발행되지 않는다」는 문장이 있었다. 읽다가 걸렸다.
결제를 대신 처리하는 업체가 판매자 역할을 맡는 구조라, 매장 입장에서 거래 상대가 우리가 아닐 수 있다. 그러면 서류도 그쪽이 낸다. 우리가 「발행하지 않는다」고 못 박아 두면, 실제로는 받을 수 있는 서류가 있을 때 우리 페이지만 틀린 말을 하게 된다.
게다가 대부분의 매장에겐 필요 없는 정보였다. 카드 결제 기록만으로도 비용 처리가 된다.
문장을 뺐다. 「영수증은 결제를 처리하는 곳에서 발급된다」만 남겼다.
- 안 한다고 적는 것도 약속이다. 지킬 수 있는지 모르면 지키겠다는 말도, 안 하겠다는 말도 하지 않는다.
- 파는 글에서 「~하지 않습니다」는 사실이어도 손해를 보게 한다. 사실이 아니면 더 나쁘다.
두 가지가 각각은 괜찮고 겹치면 나빴다
판매 페이지가 검색에 잡히는 상태였다. 그리고 웹 결제가 열려 있었다.
각각은 문제가 아니다. 검색에 잡히는 건 팔려면 당연하고, 결제가 열린 것도 팔려면 당연하다.
그런데 결제 경로를 우리가 아직 한 번도 끝까지 안 밟아 봤다. 그러면 「처음 밟는 사람이 손님」이 된다. 검색으로 누가 들어와 결제를 눌렀다가 실패하면 첫 손님을 그렇게 잃는다.
결제를 닫았다. 검색 노출은 그대로 둬도 앱은 정상으로 받을 수 있으니 손해가 적다.
- 위험은 항목마다 보면 안 보인다. 두 상태가 겹쳤을 때 무슨 일이 생기는지를 본다.
- 겹침을 풀 때는 손해가 적은 쪽을 끊는다. 둘 다 끄는 게 아니라 하나만 끊어도 된다.
되니까 옛길을 걷어냈다
비밀번호 재설정을 인증번호 방식으로 바꿔 끝까지 돌려 봤다. 되는 걸 확인하고 옛 링크 방식을 전부 지웠다.
남겨 둘까 잠깐 생각했다. 새 방식이 잘못되면 돌아갈 데가 있으니까. 그런데 길이 둘이면 고칠 때도 둘이고, 문제가 생겼을 때 어느 길로 들어온 건지부터 가려야 한다.
지운 건 새 길을 실제로 한 바퀴 돌아 본 뒤였다. 그 전에 지웠으면 안전망 없이 걷는 셈이었다.
- 새 길이 되는 걸 확인하기 전에 옛길을 지우지 않는다. 확인한 뒤에는 미루지 않는다.
- 안전망으로 남겨 둔 것은 쓰이지 않으면서 관리 비용만 낸다. 언제 걷을지 정해 두고 남긴다.
합치자는 말에 이유를 물었다
메일 설정을 정리하다가, 받는 것까지 한 곳으로 합칠까 생각했다. 이미 한쪽에 돈을 내고 있으니 거기로 모으는 게 깔끔해 보였다.
따져 보니 그 이유가 약했다. 옮겨도 돈이 안 굳는다 — 양쪽 다 이 용도로는 공짜다. 얻는 건 한 군데서 본다는 정돈감뿐이었다.
그런데 잃는 게 있었다. 지금은 메일함이 있어서 받은 게 거기 쌓이는데, 옮기면 전달만 하고 보관은 안 한다. 받는 쪽에 문제가 생기면 그 메일은 사라진다. 게다가 옮기는 순간이 유일한 위험 구간인데 하필 출시 직후였다.
안 옮기기로 하고, 대신 조건을 달아 뒀다 — 한쪽이 유료로 바뀌거나 관리가 실제로 번거로워지면 그때.
- 합치는 이유가 정돈감뿐이면 합치지 않는다. 비용이 줄거나 못 하던 일이 되어야 옮길 이유다.
- 「이미 돈을 내고 있으니」는 이유처럼 들리지만 이유가 아니다. 이미 낸 돈은 어느 쪽을 골라도 그대로다.
시험 계정 하나가 손님 수를 늘린다
재생 통계에서 우리 쪽 계정을 빼기로 했다. 손님이 아닌 것들을 골라 제외 목록에 넣었다.
그런데 그날 시험하려고 계정을 하나 더 만들어 뒀었다. 그건 목록에 없었다. 남겨 두기로 한 계정이라 그대로 두면 손님으로 세어진다.
넣었다. 그러면서 알았다 — 시험 계정을 만들 때마다 이 목록에 더해야 한다. 안 그러면 시험할 때마다 가짜 손님이 하나씩 는다.
- 「우리 것 빼기」는 한 번 하고 끝나는 일이 아니다. 우리 것이 늘어날 때마다 같이 해야 한다.
- 잊기 쉬운 자리는 코드와 문서 양쪽에 적어 둔다. 한 군데만 적으면 다른 걸 보는 사람이 놓친다.
새 기능이 오래된 고장을 꺼냈다
인증번호를 보내려고 메일 발송을 켰다. 그 과정에서 우리 도메인에 발신 서버 목록이 아예 없다는 걸 알았다. 그래서 업무 메일을 보내면 받는 쪽이 통째로 거부하고 있었다.
오늘 생긴 문제가 아니다. 계속 그랬고, 아무도 몰랐다. 우리가 그 주소로 메일을 자주 보낼 일이 없어서 눈에 안 띈 것이다.
새 기능을 붙이려고 같은 자리를 건드리자 그제야 드러났다.
- 새 기능을 붙일 때 옆에 있던 것이 원래 고장 나 있는 경우가 있다. 내가 방금 깨뜨린 건지 원래 그랬던 건지부터 가른다.
- 자주 안 쓰는 경로는 고장 나도 조용하다. 조용한 건 멀쩡한 것과 다르다.
요약
- 「통과」와 「나갔다」 사이에 내가 눌러야 할 단계가 있는지 본다. 그 틈에서는 심사에 쓴 것을 되돌리지 않는다.
- 앱과 서버는 따로 나간다. 되돌리기 어려운 조작 앞에서는 같은 판인지 한 번 더 묻는다.
- 만드는 일정과 알리는 일정은 따로 잡는다. 출시일은 끝나는 날이 아니라 다른 일이 시작되는 날이다.
- 적어 둔 규칙도 전제가 바뀌면 다시 본다. 사람이 매번 기억해야 도는 절차는 언젠가 안 돌아간다.
- 안 한다고 적는 것도 약속이다. 지킬 수 있는지 모르면 아무 말도 하지 않는다.
- 위험은 항목마다 보면 안 보인다. 겹쳤을 때를 보고, 풀 때는 손해가 적은 쪽을 끊는다.
- 새 길을 한 바퀴 돌기 전에 옛길을 지우지 않고, 돌아 본 뒤에는 미루지 않는다.
- 합치는 이유가 정돈감뿐이면 합치지 않는다. 「이미 돈을 내고 있으니」는 이유가 아니다.
- 「우리 것 빼기」는 우리 것이 늘 때마다 같이 해야 한다.
- 자주 안 쓰는 경로는 고장 나도 조용하다. 조용한 건 멀쩡한 것과 다르다.