인증번호 1건의 실제 비용: 카카오 알림톡 vs 문자(SMS)

K-OTP 팀
2026. 10. 28.

인증번호 발송 방법을 비교할 때는 보통 메시지 1건의 단가를 비교합니다. 중요한 숫자지만, 인증번호 1건에 드는 비용의 일부일 뿐입니다. 이 글에서는 나머지를 살펴봅니다. 메시지가 도착하지 않았을 때 생기는 일, 그리고 "메시지 보내기"를 "휴대폰 번호 확인"으로 바꾸기 위해 직접 만들어야 하는 코드입니다. 비용 구조가 다른 휴대폰 본인확인과는 무엇이 다른지도 함께 정리합니다.

메시지 자체: 알림톡과 문자

국내 휴대폰으로 인증번호를 보내는 대표적인 방법은 두 가지입니다.

  • 카카오 알림톡: 기업의 카카오톡 채널이 미리 검수받은 템플릿으로 보내는 정보성 메시지입니다. 많은 사용자가 평소 메시지를 확인하는 카카오톡으로 도착합니다.
  • 문자(SMS): 발신번호로 보내는 문자 메시지입니다. 국내에서는 발신번호를 미리 등록해야 보낼 수 있습니다.

국내 메시지 발송 사업자들이 공개한 건당 단가는 VAT 별도 기준으로 대략 10원대에서 수십 원 수준이고, 발송량이 많으면 할인됩니다. 알림톡은 문자보다 낮게 책정되는 경우가 많습니다. 단가는 사업자마다 다르고 수시로 바뀌므로, 결정하기 전에 최신 요금표를 확인하세요.

알림톡을 직접 보내려면 첫 메시지 전에 준비할 것이 있습니다. 카카오톡 채널, 발송 사업자에 등록하는 발신 프로필, 검수를 통과한 템플릿입니다. 문자를 직접 보내려면 발신번호를 등록해야 합니다.

메시지가 도착하지 않을 때

알림톡이 모든 사람에게 전달되지는 않습니다. 수신자가 카카오톡을 쓰지 않거나, 다른 이유로 전달에 실패할 수 있습니다. 로그인 화면은 거기서 멈출 수 없으므로, 대부분 알림톡이 실패하면 같은 인증번호를 문자로 다시 보냅니다.

발송 사업자를 직접 쓰면 이 대체 문자는 별도의 메시지이고, 보통 문자 단가로 따로 과금됩니다. 그래서 인증번호 1건의 실제 단가는 대부분의 사용자에게 드는 알림톡 단가와, 대체 발송으로 넘어간 비율만큼의 문자 단가를 섞은 값이 됩니다. 인증번호를 끝내 받지 못한 사용자도 비용입니다. 다시 요청하고, 고객센터에 문의하고, 가입을 포기합니다.

메시지 주변에 만들어야 하는 코드

메시지 API는 글자를 보냅니다. 휴대폰 번호를 확인하려면 그 이상이 필요하고, 아래는 모두 직접 작성하고 테스트하고 운영해야 하는 코드입니다.

  1. 인증번호 생성과 저장. 안전한 난수로 만든 6자리 인증번호를 평문이 아니라 해시로 저장합니다.
  2. 만료와 시도 제한. 몇 분 동안만 유효하고 몇 번 틀리면 잠겨야 추측으로 맞힐 수 없습니다.
  3. 교체. 사용자가 새 인증번호를 요청하면 이전 번호는 더 이상 통하지 않아야 합니다.
  4. 멱등성. 요청이 타임아웃되면 메시지가 나갔는지 알 수 없습니다. 무작정 재시도하면 메시지가 두 번 나가고 두 번 비용을 내며, 재시도하지 않으면 사용자는 인증번호를 받지 못합니다. 발송 시도마다 키를 두고 첫 결과를 다시 돌려주는 장치가 필요합니다.
  5. 요청 한도. 휴대폰 번호, IP, 키별 한도가 없으면 누군가 스크립트로 가입 폼을 이용해 대량 발송을 일으키고, 그 비용은 서비스가 냅니다.
  6. 발송 상태 추적. 인증번호가 도달했는지, 실패했는지, 아직 모르는지 알아야 사용자에게 보여 줄 내용과 재발송 시점을 정할 수 있습니다.
  7. 개인정보. 로그, 데이터베이스, 발송 기록에 남는 휴대폰 번호와 그 보관 기간입니다.
  8. 테스트. 실제 메시지를 보내지 않고 CI에서 전체 흐름을 돌려 볼 방법이 필요합니다.

하나하나는 어렵지 않지만, 제대로 만들려면 며칠은 걸리고 그 뒤로도 계속 손이 갑니다. 4번이나 5번의 버그는 발송 요금 청구서에 바로 드러납니다.

공정하게 비교하는 법

메시지 1건의 단가 대신 완료된 인증 1건의 비용을 비교해 보세요.

  • 알림톡과 대체 문자를 섞은 메시지 단가
  • 아무것도 얻지 못한 메시지(재시도로 생긴 중복 발송, 막지 못한 어뷰징, 끝내 도착하지 않은 인증번호)
  • 위의 기능을 만들고 유지하는 개발 시간을 발송량으로 나눈 값

발송량이 아주 많고, 인증 로직을 이미 갖췄고, 발송 사업자와 계약이 있다면 건당 단가가 가장 크고, 사업자와 직접 계약하는 편이 더 저렴할 수 있습니다. 발송량이 작거나 중간 규모이거나, 인증 로직을 직접 만들고 운영하고 싶지 않다면 나머지 두 줄이 더 중요해집니다.

휴대폰 본인확인과는 확인하는 것이 다릅니다

휴대폰을 쓰는 확인에는 두 가지가 있고, 확인하는 것이 서로 다릅니다.

휴대폰 본인확인은 주민등록번호를 쓰지 않고 본인을 확인하는 대체수단 중 하나입니다. 정보통신망법 제23조의3에 따라 방송미디어통신위원회가 지정한 본인확인기관만 이 업무를 할 수 있고, 지정받은 이동통신사업자도 여기에 포함됩니다(같은 법 제23조의2). KISA 본인확인 지원포털에 따르면 2026년 6월 기준 23개 기관이 지정되어 있습니다. 확인이 끝나면 서비스는 이름, 생년월일 같은 결과정보와 연계정보(CI), 중복가입 방지정보(DI)를 받습니다(용어 정리).

K-OTP의 휴대폰 인증번호는 사용자가 그 휴대폰 번호로 보낸 인증번호를 받을 수 있는지, 즉 지금 그 번호를 쓰고 있는지를 확인합니다. 이름, 생년월일, CI 같은 실명 정보는 받지도 돌려주지도 않습니다. K-OTP는 본인확인기관이 아니며, 인증번호 검증은 본인확인이 아닙니다.

  • 증명하는 것: 본인확인은 사용자가 누구인지를 증명하고 결과정보와 CI·DI를 돌려줍니다. 인증번호는 그 번호로 메시지가 닿는다는 것을 증명하고 검증 성공 여부만 돌려줍니다.
  • 도입과 비용: KISA의 사업자 안내에 따르면 본인확인은 필요 여부를 판단하고, 수단을 고르고, 본인확인기관과 계약한 뒤 이용합니다. 이용료와 조건은 그 계약으로 정해집니다. K-OTP는 API 키를 발급받아 호출하고, 발송 1건에 1 크레딧입니다.
  • 개인정보 관리: 본인확인 결과는 필요한 정보만 동의를 받아 저장하고 목적을 이루면 폐기해야 합니다(같은 안내). CI를 받은 이용기관에는 주민등록번호와 분리 보관하는 등의 안전조치 의무가 있습니다(정보통신망법 제23조의6).
  • 사용자 흐름: KISA가 안내하는 휴대폰 본인확인은 본인확인 창에서 휴대폰 정보를 입력한 뒤, 문자로 받은 인증번호를 입력하거나 앱에서 지문이나 PIN으로 인증합니다. 휴대폰 인증번호는 번호를 입력하고 카카오톡으로 받은 6자리를 입력하면 됩니다.

법령이 본인이나 나이 확인을 요구하면 법령이 정한 방법을 써야 합니다. 휴대폰 인증번호는 나이나 신원을 확인하지 않으므로 그것만으로는 이런 요건을 충족하지 못합니다. 예를 들어 청소년유해매체물을 제공하려면 상대방의 나이와 본인 여부를 확인해야 하고(청소년 보호법 제16조), 시행령이 정한 범위의 온라인 게임은 회원가입 시 실명과 연령을 확인해야 합니다(게임산업진흥에 관한 법률 제12조의3). 금융회사등은 계좌를 새로 열 때 등에 고객의 신원을 확인해야 합니다(특정 금융거래정보의 보고 및 이용 등에 관한 법률 제5조의2). 서비스가 주민등록번호를 직접 받아 확인하는 것도 법령에 근거가 있는 경우 등에만 허용되고, 그때도 회원가입 단계에서는 주민등록번호 없이 가입할 방법을 제공해야 합니다(개인정보 보호법 제24조의2).

회원가입과 로그인, 연락처 확인, 중요한 작업 전 2단계 확인, 쓰지 않는 번호나 남의 번호로 하는 가입 막기처럼 그 번호를 실제로 쓰는지만 알면 되는 경우에는 휴대폰 인증번호로 충분할 수 있습니다. KISA도 사업자 안내에서 불필요한 본인확인을 요구하지 말라고 안내합니다. 두 가지를 함께 쓰는 서비스도 많습니다. 법령상 필요하면 가입할 때 한 번 본인확인을 하고, 이후 로그인이나 번호 변경 확인은 휴대폰 인증번호로 처리하는 식입니다.

우리 서비스에 본인확인이 필요한지는 업종과 서비스 내용에 따라 다릅니다. 이 글은 법률 자문이 아니므로 적용되는 법령과 소관 기관에 확인하세요.

K-OTP는 발송 1건을 이렇게 과금합니다

K-OTP는 인증번호 API입니다. 휴대폰 번호로 issue를, 사용자가 입력한 인증번호로 verify를 호출합니다. 인증번호는 카카오 알림톡으로 전달되며, 알림톡으로 전달하지 못하면 K-OTP가 같은 인증번호를 문자로 자동 대체 발송합니다. 대체 발송은 알림톡 발송의 일부이며 별도 상품이 아닙니다.

  • 발송 1건에 1 크레딧, 대체 발송 포함. 알림톡으로 전달되든 문자 대체 발송으로 전달되든 1 크레딧입니다. 검증 호출은 무료입니다.
  • 재시도는 두 번 청구하지 않음. 같은 멱등키로 재시도하면 다시 보내거나 다시 차감하지 않고 첫 결과를 돌려줍니다.
  • 실패하면 돌려드림. 발송 사업자가 접수하지 않은 발송은 예약된 크레딧이 반환됩니다. 접수된 뒤 전달 실패가 확인되거나 추적 기간 안에 결과가 오지 않으면 크레딧을 돌려드립니다. 단, 인증번호가 검증된 발송은 도착이 확인된 것이므로 차감이 유지됩니다.
  • 인증 로직 포함. 인증번호 생성과 해시 저장, 만료(기본 3분), 시도 제한(기본 5회), 교체, 멱등성, 요청 한도, 발송 상태 추적이 API에 들어 있습니다.
  • 무료 테스트 모드. sk_test_, pk_test_ 키는 아무것도 보내지 않고 크레딧도 쓰지 않습니다.

크레딧은 구독 없는 선불 팩으로 구매합니다. 2026년 10월 24일 기준 원화 결제 시 크레딧당 약 17.44원~24원(VAT 별도)입니다. 현재 팩 구성과 가격은 요금 페이지에서, 크레딧의 예약·차감·반환 방식은 크레딧과 결제에서 확인하세요.

정리

  • 건당 단가는 실제 비용이지만, 인증번호 비용의 전부는 아닙니다.
  • 문자 대체 발송, 실패하거나 중복된 발송, 어뷰징, 메시지 주변의 로직이 모두 비용에 더해집니다.
  • 개발 시간까지 포함해 완료된 인증 1건의 비용으로 비교하세요.
  • 휴대폰 인증번호는 그 번호를 쓰고 있는지를, 휴대폰 본인확인은 신원을 확인합니다. 법령이 본인확인을 요구하면 인증번호만으로는 충족하지 못합니다.

연동이 어떤지 보고 싶다면 빠른 시작 가이드는 API 호출 두 번이면 끝나고, 테스트 키로 전체 흐름을 무료로 따라 해 볼 수 있습니다.