4P by choigeon0501 | ★ favorite | 댓글 5개

서비스에 회원가입 본인인증을 붙일 때마다 SMS 발송 비용이 부담이라, 방향을 뒤집어서 만든 휴대폰 인증 API입니다.

기존 SMS 인증은 서비스가 사용자에게 인증 문자를 발송합니다(MT, Mobile Terminated). 건당 9~50원에 월 기본료까지 붙어서 사용자가 늘수록 비용이 커지고, 계약·심사 때문에 연동까지 1~2주가 걸리기도 합니다.

옥토모는 방향을 반대로 했습니다(MO, Mobile Originated). 사용자가 자기 휴대폰으로 지정된 번호에 인증코드를 문자로 보내고, 서비스는 수신된 문자를 API로 조회만 합니다. 문자를 보내는 주체가 사용자이므로 서비스 쪽에는 발송 비용이 발생하지 않고, 사용자가 실제로 그 기기에서 문자를 보냈다는 점에서 점유 인증이 됩니다.

흐름은 인증 버튼을 누르면 문자 앱이 수신번호와 인증코드가 이미 채워진 상태로 열리고, 사용자는 전송 버튼만 누르면 되는 방식을 권장합니다. (sms: 딥링크로 처리하므로 프론트에서 구현해야 하는 부분이지만, 모바일에선 이게 정석입니다.) 번호를 잘못 입력하거나 코드를 오타 내는 일이 없어서 실패율도 같이 낮아집니다.

API는 사실상 엔드포인트 하나입니다.
POST /octomo/v1/public/message/exists

  • 입력: 휴대폰 번호 + 사용자가 보낸 코드
  • 출력: 최근 5분 이내 해당 코드 문자가 수신됐는지 여부 (verified: true/false)

연동 흐름은 "버튼 탭 → 문자 앱 자동 실행(번호·코드 자동 입력) → 사용자가 전송 → 이 API를 호출해서 true가 되면 통과" 정도라 단순합니다. 별도 앱 설치나 SDK 없이 REST 호출만 하면 되고, Node/Java/Python 예제를 문서에 넣어뒀습니다.

솔직한 한계도 적어둡니다.

  • 딥링크로 입력 수고는 없앴지만, 사용자가 전송 버튼을 한 번 더 눌러야 하는 행동 단계는 남습니다(발송 비용 0원·점유 인증 강화와의 트레이드오프).
  • 국내 휴대폰 번호 기반이라 해외 사용자는 대상이 아닙니다.
  • 사용자에게는 본인 요금제 문자요금이 적용됩니다(무제한 요금제면 사실상 무료).

특히 "이 흐름이면 사용자 이탈이 크지 않을까" 같은 UX 우려나 보안 관점 지적을 듣고 싶습니다. 피드백 환영합니다.

댓글과 토론

본인인증과 점유인증이 서로 충족하는 법적 요건이 다르기에 본인인증을 써야만 하는 경우가 있다고 알고있는데, 어떤 경우에 이 점유인증만 써도 되는지 더 잘 쓰여있어도 좋겠네요.

피드백 감사합니다!
말씀하신 대로 본인인증과 점유인증이 충족하는 요건이 달라서,
어떤 경우에 점유인증만으로 충분한지 그 기준을 문서에 더 명확히 정리해 추가하겠습니다.
정확히 짚어주셔서 감사합니다!

오 한 번쯤 있었으면 바랬던건데 API가 완전 쓰기 편하게 되어있군요...!
"사용자가 자기 휴대폰으로 지정된 번호에 인증코드를 문자로 보내고"
이 부분이 약간 헷갈리는데, 옥토모에서 제공하는 번호에 문자를 보내게 안내하는 것이죠?

넵, 맞습니다! 옥토모에서 제공하는 번호로 인증코드를 문자로 보내도록 안내해 주시면 됩니다.

앱 환경에서는 sms: 딥링크를 활용해서, 사용자가 인증 버튼을 눌렀을 때 문자 애플리케이션이 자동으로 열리도록 구현하시는 걸 권장드립니다!

웹 환경에서는 현재 인증코드 문자 발송 방식을 제공하고 있고, 추가로 QR 코드 방식을 개발 중입니다.
사용자가 QR 코드를 찍으면 자동으로 문자 애플리케이션으로 전환되도록 구현하고 있습니다!

감사합니다!

와 너무 좋네요.. 사이드에 잘 쓰겠읍니다 ㅎㅎ