서비스에 회원가입 본인인증을 붙일 때마다 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 우려나 보안 관점 지적을 듣고 싶습니다. 피드백 환영합니다.

댓글과 토론

오 일종의 MO인증 이군요. 이런 본인인증이나 휴대폰 점유인증과 같은 서비스는 금감원 등 주요 관계기관의 법적 요구사항을 만족하여 효력을 가지는가에 대해 언급이 되면 더욱 좋을 것 같습니다. 응원합니다!

응원 감사합니다!

좋은 서비스 만들어주셔서 감사합니다!
문자 수신 여부가 최근 5분 이내로 고정되어있는데,
이보다 더 짧거나 길게 가져가고 싶은 경우가 있을 수도 있을테니
수신 여부 확인 시간을 API의 파라미터 내에서 지정해줄 수 있도록 하는 것도
괜찮을 것 같다는 생각이 듭니다!

좋은 의견 감사합니다! 말씀해주신 부분을 검토해서 더 나은 서비스로 개선하겠습니다!

내부적으로 해당 기능을 만들어 쓰다보니, 유사한 형태의 SaaS를 함께 운영해볼까 고민한 적이 있었는데,
이게 법적인 이슈가 좀 있지 않나 싶었습니다.

내 회사 명의로 계약된 전화번호를 사용할 권리를 고객에게 판매하는 형태가 되어버리니,
이거 전기통신법 위반이 되는거 아닌가? 하는 생각이 들더라구요...

피처폰 시절 땐 발신번호를 맘대로 바꿀 수 있던게 생각나네요
당시였다면 효력이 없던 기술 이였겠지만 시대가 바뀌면서 활용할 수 있는 기술이 된 게 재미있네요

관심 감사합니다!

오 좋은아이디어

구 공인인증서 발급 시에 말씀하신 방법대로 특정 숫자를 sms로 답신하는 형태의 인증을 하고 있죠.

이미 해당 방식으로 사용자가 발송하도록 하는 인증 방식도 적지만 쓰이고 있어서 특별히 개념에 대한 피드백은 불필요 할거 같네요.
개인적으론 인증번호 받아서 입력하는 것 보다 선호하는 방식입니다.
어차피 법적인 본인인증이 필요한건 pass를 탑재해야 할거라 논외로 보고...

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

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

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

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

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

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

감사합니다!

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