포인토

전화번호 하나만 받기로 한 이유

3분 분량

한 줄 답

포인토는 고객에게서 전화번호 외에 아무것도 받지 않습니다. 모으지 않은 데이터는 유출될 수 없고, 계산대 앞에서 손님을 3초 이상 붙잡지 않기 때문입니다. 대신 전화번호를 신원으로 쓰기로 한 결정은 번호 정규화, 대량 열거 차단, 기기 신원 증명이라는 세 가지 문제를 저희 몫으로 남겼습니다.

적립 서비스를 만들면 개인정보를 모으고 싶은 유혹이 굉장히 큽니다.

생일을 받으면 생일 쿠폰을 보낼 수 있습니다. 성별과 나이를 받으면 매장에 "20대 여성 고객이 늘었습니다" 같은 리포트를 줄 수 있습니다. 이름을 받으면 "○○님 안녕하세요"라고 부를 수 있습니다. 전부 그럴듯하고, 전부 팔기 좋은 기능입니다.

저희는 전부 안 받기로 했습니다. 전화번호 하나입니다.

이유 1. 계산대에서 3초는 아주 긴 시간입니다

가장 현실적인 이유입니다.

포인토가 이기려는 상대는 경쟁 앱이 아니라 종이 쿠폰입니다. 종이 쿠폰의 진짜 강점은 싸다는 게 아니라 설명이 필요 없다는 것입니다. 도장을 내밀면 끝입니다.

그걸 이기려면 종이보다 단계가 적어야 합니다. 그런데 입력 항목을 하나 늘릴 때마다 뒤에 줄 선 손님이 늘어납니다. 생일 입력란 하나 때문에 사장님이 "그냥 안 쓸게요"라고 하시면, 생일 쿠폰 기능은 아무 의미가 없습니다.

기능을 넣을지 말지 고민할 때 저희가 쓰는 질문은 늘 같습니다.

계산대 앞에 선 손님이 이것 때문에 3초 더 서 있어야 하는가?

이유 2. 모으지 않은 데이터는 유출될 수 없습니다

두 번째는 더 단순합니다.

작은 팀이 운영하는 서비스에 매장 데이터를 맡기는 건 사장님 입장에서 결심이 필요한 일입니다. 저희가 할 수 있는 가장 정직한 대답은 "안전하게 지키겠습니다"가 아니라 **"애초에 갖고 있지 않습니다"**입니다.

이름·생일·성별이 없으면 그 데이터에 대한 사고는 정의상 일어나지 않습니다. 보안에서 가장 확실한 방어는 언제나 수집하지 않는 것입니다.

대가: 전화번호를 신원으로 쓰면 생기는 문제들

"전화번호만 받는다"는 건 뒤집으면 전화번호가 곧 계정이라는 뜻입니다. 비밀번호도 로그인도 없는 신원입니다. 편의를 손님에게 준 만큼, 문제는 저희 몫으로 남습니다.

같은 번호가 여러 얼굴로 들어옵니다

010-1234-5678, 01012345678, 010 1234 5678. 사람에게는 같은 번호지만 문자열로는 셋 다 다릅니다. 이걸 그대로 두면 한 사람의 적립이 세 군데로 갈라지고, 손님은 "제 도장 어디 갔어요"라고 묻습니다.

그래서 번호는 입력되는 즉시 숫자만 남긴 형태로 정규화하고, 화면에 하이픈을 넣는 건 표시할 때만 합니다. 검증도 조회도 저장도 전부 한 가지 표현만 다루게 했습니다. 사소해 보이지만, 이걸 나중에 고치려면 이미 갈라진 데이터를 손으로 합쳐야 합니다.

번호 목록 자체가 가장 민감한 자산입니다

적립 기록은 사실 별로 안 민감합니다. 누가 커피를 몇 잔 마셨는지는 유출돼도 큰일이 아닙니다.

진짜 자산은 전화번호 목록입니다. 매장 단골 1,000명의 번호는 그 자체로 값이 나가는 물건이고, 스팸·보이스피싱의 재료가 됩니다.

그래서 저희가 보안 작업에서 가장 먼저 닫은 건 적립 위조가 아니라 컬렉션 전체를 훑어 내려받는 경로였습니다. 한 건씩 조회하는 것과 목록을 통째로 긁는 것은 완전히 다른 위협입니다. 후자가 먼저입니다.

매장 기기를 어떻게 믿을 것인가

마지막이 가장 어렵습니다.

매장 태블릿에는 사장님이 로그인해 있지 않습니다. 손님이 쓰는 화면이니까요. 그러면 서버 입장에서 "지금 적립을 요청한 게 진짜 그 매장의 태블릿인가"를 어떻게 아느냐는 문제가 남습니다.

이건 한 번에 끝나는 작업이 아니라 단계로 좁혀 가는 일입니다. 저희는 지금 그 단계를 밟는 중이고, 어디까지 왔고 무엇이 남았는지를 코드 주석에 그대로 적어 두고 있습니다. 다만 아직 닫히지 않은 부분을 공개 글에 적는 건 그 자체로 안내문이 되기 때문에, 진행 상황은 여기 쓰지 않습니다.

정리하면

전화번호 하나만 받는 건 기능을 덜 만든 게 아니라 먼저 고른 제약입니다.

그 대가로 만들지 못하는 기능이 있고, 대신 저희가 풀어야 하는 문제가 늘었습니다. 그래도 이 교환은 계속 유효하다고 생각합니다. 손님은 번호만 누르면 되고, 사장님은 "우리 손님 정보 괜찮은 거죠?"라는 질문에 짧게 답할 수 있기 때문입니다.

자주 묻는 질문

포인토는 고객의 어떤 정보를 수집하나요?

전화번호와 그 번호에 붙은 적립·사용 기록만 수집합니다. 이름, 생년월일, 성별, 이메일, 주소는 받지 않습니다. 매장에서 고객을 부를 이름이 필요하면 매장이 별칭을 붙일 수 있지만 이 역시 필수가 아닙니다.

고객이 탈퇴하면 데이터는 어떻게 되나요?

고객 화면에서 직접 탈퇴할 수 있고, 탈퇴하면 개인정보가 즉시 삭제됩니다. 점주 계정은 실수로 지운 매장을 되살릴 수 있도록 30일 유예 후 삭제되는 방식이라 처리가 다릅니다.

다른 매장의 사장님이 우리 매장 고객을 볼 수 있나요?

볼 수 없습니다. 매장 데이터는 그 매장에 연결된 계정에서만 열립니다. 한 계정에 매장이 여러 개 붙어 있어도 매장별 적립과 고객은 서로 분리됩니다.

이어서 읽을 만한 글

이야기2

사내 카페의 종이 쿠폰에서 시작했습니다

팔려고 만든 제품이 아니었습니다. 매일 가던 사내 카페의 도장 실랑이를 없애려고 만들었고, 그게 1,500명이 쓰는 서비스가 되기까지 있었던 일을 적었습니다.

사용법3

스탬프 몇 개에 무엇을 드려야 할까

10개에 한 잔은 관습이지 정답이 아닙니다. 재방문 주기와 원가율 두 숫자로 우리 매장에 맞는 개수를 직접 계산하는 방법을 정리했습니다.

사용법2

스탬프로 할까, 포인트로 할까

열 잔에 한 잔이 맞는 매장이 있고, 금액만큼 쌓아 두는 편이 맞는 매장이 있습니다. 객단가와 방문 주기 두 가지만 보면 우리 매장에 맞는 쪽이 정해집니다.