개인정보처리방침

1990Company(이하 "회사")는 K-OTP 웹사이트(k-otp.dev), 콘솔(app.k-otp.dev), 문서(docs.k-otp.dev)와 OTP API(api.k-otp.dev)(이하 통틀어 "서비스")를 제공하면서 「개인정보 보호법」 등 관계 법령에 따라 정보주체의 개인정보를 보호하고 관련 고충을 신속하게 처리하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다.

시행일: 2026년 10월 2일

1. 개인정보의 처리 목적

회사는 다음 목적으로 개인정보를 처리합니다. 처리한 개인정보는 다음 목적 외의 용도로 이용하지 않으며, 목적이 바뀌는 경우 「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 합니다.

  1. 회원 가입 및 관리: 이메일로 보내는 로그인 링크·코드를 이용한 본인 확인과 로그인, 계정 관리, 조직 구성원 초대, 부정 이용 방지, 서비스 관련 안내와 알림 발송
  2. 서비스 제공: 앱과 API 키 발급·관리, 고객사의 요청에 따른 인증번호 발송·검증, 발송 상태와 사용량 제공
  3. 요금 결제 및 정산: 크레딧 구매, 크레딧 지급·사용·환불 처리와 그 기록 관리
  4. 프로모션 운영: 가입 보너스와 추천 프로그램 무료 크레딧의 지급, 중복·부정 수령 방지, 만료 안내
  5. 고객 문의 응대: 문의 확인, 사실 조사, 처리 결과 안내
  6. 서비스 보안과 안정성 확보: 로그인 요청 횟수 제한, 장애 대응, 보안 사고 예방, 법령상 의무 이행

2. 처리하는 개인정보 항목과 수집 방법

회사는 주민등록번호 등 고유식별정보와 민감정보를 수집하지 않으며, 비밀번호도 수집하지 않습니다.

  1. 회원 가입 및 로그인 (콘솔에서 이용자가 직접 입력)
    • 필수: 이메일 주소, 이름(가입할 때 이메일 주소 앞부분으로 정해지며 이용자가 바꿀 수 있습니다)
    • 선택: 프로필 이미지, 패스키(기기가 만든 공개키와 인증기 정보. 지문·얼굴 등 생체정보는 이용자의 기기에만 있으며 회사로 전송되지 않습니다)
    • 로그인 인증 정보: 이메일로 보내는 로그인 링크의 토큰과 6자리 로그인 코드. 해시값으로만 저장하며 15분 동안 한 번만 쓸 수 있습니다. 코드 기록은 이메일 주소 대신 그 해시값으로 구분합니다.
    • 세션 정보: 세션 토큰, 접속 IP 주소, 브라우저 정보(User-Agent), 세션 생성·만료 시각, 마지막으로 이용한 조직
  2. 조직과 서비스 이용 (콘솔에서 이용자가 입력하거나 서비스 이용 중 생성)
    • 조직 이름과 주소(slug), 조직 로고(선택), 구성원과 역할, 초대받은 사람의 이메일 주소(초대한 구성원이 입력)
    • 앱 이름, API 키 정보(키 원문은 저장하지 않고 해시값과 화면 표시용 앞·뒤 일부만 저장), 키별 허용 Origin과 호출 제한 설정
    • 알림 내역과 알림 수신 설정, 사용 언어
  3. 크레딧 결제 (결제 과정에서 생성되거나 결제대행사로부터 수신)
    • 결제 수단 정보(카드 번호 등)는 이용자가 결제대행사(Polar)의 결제 화면에 직접 입력하며, 회사는 이를 받거나 저장하지 않습니다.
    • 회사가 결제대행사에 전달하는 정보: 결제하는 회원의 이메일 주소, 조직·회원·크레딧 상품 식별자
    • 회사가 저장하는 정보: 결제대행사의 주문번호와 고객 식별자, 상품, 결제 금액과 통화, 결제 시각, 결제한 회원과 조직, 환불 내역(환불 금액, 사유, 처리 상태와 처리자)
    • 크레딧 원장: 조직의 크레딧 지급·사용·환불 회수·무료 크레딧 지급과 만료 기록
  4. 무료 크레딧과 추천 프로그램 (서비스 이용 중 생성)
    • 가입 보너스의 중복·부정 수령 방지: 소문자 등으로 정규화한 이메일 주소의 해시값(HMAC)과 가입 요청 IP 주소 대역(IPv4는 /24, IPv6는 /48)의 해시값(HMAC), 이메일 주소의 도메인. 이메일 주소와 IP 주소 원문은 이 용도로 따로 저장하지 않습니다.
    • 추천 프로그램: 조직별 추천 코드, 추천 링크로 가입한 계정과 추천 링크 방문 시각, 가입 시 IP 주소 대역의 해시값(HMAC), 추천한 조직과 추천받은 조직, 보상 지급·거절·회수 판정 기록. 같은 사람이 스스로 추천하는지 확인하기 위해 두 조직 소유자의 세션 IP 주소 대역을 비교하며, 비교 결과 외에 IP 주소를 따로 저장하지 않습니다.
    • 무료 크레딧 만료 안내 발송 기록(받은 사람 수)
  5. 고객 문의 (이메일로 이용자가 직접 제공)
    • 이름, 이메일 주소, 문의 내용과 이용자가 함께 보낸 정보
  6. 자동으로 생성·수집되는 정보
    • 접속 IP 주소, 접속 일시, 브라우저 정보, 쿠키(제11조), 요청 경로와 응답 상태·오류 정보 등 서비스 이용 기록
    • 로그인 요청 횟수 제한 기록: IP 주소와 요청 경로별 횟수, 이메일 주소 해시값별 로그인 메일·실패한 코드 횟수

고객사(API를 이용하는 회원)의 최종 이용자 정보는 제4조에서 따로 설명합니다.

3. 개인정보의 처리 및 보유 기간

회사는 법령에 따른 보유 기간 또는 정보주체에게 동의받은 보유 기간 안에서 개인정보를 처리·보유하며, 기간이 끝나거나 처리 목적을 달성하면 지체 없이 파기합니다.

  1. 회원 정보(제2조 제1호·제2호): 회원 탈퇴 시까지
    • 로그인 링크와 코드: 발송 후 15분(사용하면 즉시 효력이 없어집니다)
    • 세션: 최대 30일. 로그아웃한 세션은 삭제하고, 나머지 세션 기록은 회원 탈퇴 시 삭제합니다.
    • 조직 정보: 조직 삭제 시까지. 다만 앱과 API 키 기록은 크레딧 사용 기록과의 대응을 위해 삭제하지 않고 폐기 상태로 보관하며, 회원이 탈퇴하면 그 기록과 회원의 연결을 끊습니다.
  2. 결제·환불 기록과 크레딧 원장(제2조 제3호): 5년. 회원이 탈퇴하면 기록과 회원의 연결을 끊고, 법령에 따른 기간 동안 보관합니다. 보유 기간이 지난 기록은 지체 없이 파기합니다.
  3. 가입 보너스 부정 수령 방지 해시값(제2조 제4호): 해당 지급 기록을 만든 날부터 2년. 회원이 탈퇴해도 같은 사람의 중복 수령을 막기 위해 이 기간 동안 보관한 뒤 삭제합니다.
  4. 추천 프로그램 기록(제2조 제4호): 추천 링크로 가입한 기록(IP 주소 대역 해시값 포함)은 회원 탈퇴 시까지 보관합니다. 추천 보상 판정 기록은 무료 크레딧 지급·회수 기록으로 보관하며, 회원이 탈퇴하면 기록과 회원의 연결을 끊습니다.
  5. 고객 문의 기록(제2조 제5호): 3년
  6. 로그인 요청 횟수 제한 기록: 제한 기간(최대 24시간)이 지나면 삭제

관계 법령에 따라 다음 정보는 해당 기간 동안 보관합니다.

  • 계약 또는 청약철회 등에 관한 기록: 5년 (「전자상거래 등에서의 소비자보호에 관한 법률」)
  • 대금 결제 및 재화 등의 공급에 관한 기록: 5년 (같은 법)
  • 소비자의 불만 또는 분쟁 처리에 관한 기록: 3년 (같은 법)
  • 서비스 접속 기록(로그 기록, 접속지 정보): 3개월 (「통신비밀보호법」)

4. 고객사의 최종 이용자 정보 처리

고객사가 OTP API로 인증번호 발송을 요청하면 회사는 고객사의 위탁을 받아 고객사 서비스 이용자(이하 "최종 이용자")의 개인정보를 처리합니다. 이 정보의 개인정보처리자는 고객사이며, 회사는 수탁자로서 고객사의 요청을 처리하는 데 필요한 범위에서만 처리합니다.

  1. 처리 항목: 최종 이용자의 휴대전화번호, 인증번호, 발송 메시지 내용, 고객사가 요청에 넣은 메타데이터, API를 호출한 기기의 IP 주소(호출 횟수 제한에만 사용)
  2. 처리 방법
    • 인증번호 발급 기록에는 휴대전화번호 원문을 저장하지 않고 그 해시값(HMAC)만 저장합니다.
    • 인증번호는 해시값으로만 저장하며, API 응답이나 콘솔로 제공하지 않습니다.
    • 발송 기록의 수신·발신 번호와 메타데이터는 암호화하여 저장하고, 조회용으로 해시값과 일부를 가린 값을 함께 저장합니다. 발송이 최종 상태(전달 완료, 실패, 취소, 확인 불가)에 이른 뒤 약 24시간이 지나면 수신·발신 번호와 그 해시값·암호화 값·가린 값, 허용 목록 밖의 메타데이터를 삭제합니다. 발송 상태, 시각, 발송 경로와 식별자는 정산과 장애 조사를 위해 남깁니다.
    • 호출 횟수 제한은 휴대전화번호와 IP 주소의 해시값(HMAC)으로만 계산하며 원문을 저장하지 않습니다.
    • 휴대전화번호와 메시지 내용은 발송을 위해 문자·알림톡 발송 대행사(제6조)에 전달됩니다.
  3. 보유 기간: 발송 기록의 번호 정보는 위 2항에 따라 삭제합니다. 인증번호 발급 기록(휴대전화번호 해시값 포함)은 크레딧 정산과 사용량 확인을 위해 발급일부터 1년간 보관한 뒤 파기합니다. 크레딧 사용 금액은 제3조 제2호의 크레딧 원장에 별도로 남습니다.
  4. 최종 이용자의 열람·정정·삭제 등 요구는 해당 서비스를 운영하는 고객사에 해 주시기 바랍니다. 회사에 직접 요청하면 고객사에 전달하고, 고객사의 요구 처리에 협조합니다.

5. 개인정보의 제3자 제공

회사는 정보주체의 동의를 받거나 법률에 특별한 규정이 있는 경우 등 「개인정보 보호법」 제17조, 제18조에 해당하는 경우에만 개인정보를 제3자에게 제공합니다.

현재 제3자에게 제공하는 개인정보: 없음

6. 개인정보 처리의 위탁

회사는 원활한 서비스 제공을 위해 다음과 같이 개인정보 처리 업무를 위탁합니다.

  • (주)스마일서브(IWINV): 고객사 요청에 따른 SMS 및 카카오 알림톡 발송
  • Cloudflare, Inc.: 웹사이트·콘솔·API 호스팅과 콘텐츠 전송(CDN), 서버리스 실행 환경(Workers), 발송 처리용 메시지 큐와 상태 저장(Queues, Durable Objects), 프로필 이미지·조직 로고 저장(R2), 데이터베이스 연결(Hyperdrive), 서비스 운영 로그
  • (주)스마일서브(IWINV): 회원·결제·발송 기록을 저장하는 데이터베이스 서버 운영 환경 제공(대한민국)
  • Polar Software Inc.: 크레딧 결제 처리(결제 수단 정보 수집 포함)와 환불 처리
  • 이메일 발송: 로그인 메일, 초대, 알림, 무료 크레딧 만료 안내는 회사가 직접 운영하는 메일 발송 시스템으로 보냅니다. 외부 발송 사업자에 위탁하게 되면 이 방침을 개정하여 알립니다.

회사는 위탁 계약을 맺을 때 「개인정보 보호법」 제26조에 따라 위탁 업무 수행 목적 외 처리 금지, 기술적·관리적 보호조치, 재위탁 제한, 수탁자 관리·감독, 손해배상 등 책임에 관한 사항을 문서로 정하고, 수탁자가 개인정보를 안전하게 처리하는지 감독합니다. 위탁 업무의 내용이나 수탁자가 바뀌면 이 개인정보 처리방침으로 지체 없이 공개합니다.

7. 개인정보의 국외 이전

회사는 서비스 제공(계약 이행)을 위해 「개인정보 보호법」 제28조의8 제1항 제3호에 따라 다음과 같이 개인정보를 국외로 이전합니다.

  1. Cloudflare, Inc.
    • 연락처: dpo@cloudflare.com
    • 이전 국가: 미국(본사) 및 Cloudflare가 운영하는 전 세계 데이터센터. 프로필 이미지·조직 로고는 아시아·태평양 지역 저장소에 보관합니다.
    • 이전 일시와 방법: 서비스를 이용할 때마다 정보통신망을 통해 전송
    • 이전 항목: 제2조의 개인정보 중 서비스 요청에 담겨 전달되는 정보(이메일 주소, 이름, 접속 IP 주소, 브라우저 정보, 쿠키, 서비스 이용 기록, 프로필 이미지·조직 로고 등), 고객사가 위탁한 최종 이용자의 휴대전화번호와 발송 내용(발송 처리 중)
    • 이전 목적: 제6조의 위탁 업무(호스팅, 콘텐츠 전송, 서버리스 실행, 메시지 큐, 파일 저장, 운영 로그)
    • 보유 및 이용 기간: 제3조와 제4조의 보유 기간 또는 위탁 계약 종료 시까지
  2. Polar Software Inc.
    • 연락처: privacy@polar.sh
    • 이전 국가: 미국 등 Polar가 정보를 보관하는 국가
    • 이전 일시와 방법: 이용자가 크레딧 구매를 시작할 때 정보통신망을 통해 전송
    • 이전 항목: 결제하는 회원의 이메일 주소, 조직·회원·크레딧 상품 식별자, 이용자가 Polar 결제 화면에 직접 입력하는 결제 수단·청구 정보
    • 이전 목적: 크레딧 결제와 환불 처리
    • 보유 및 이용 기간: 결제 목적 달성 또는 위탁 계약 종료 시까지(관계 법령에 따라 보관해야 하는 경우 그 기간)

국외 이전을 원하지 않으면 회원 탈퇴를 하거나(Cloudflare), 크레딧을 구매하지 않으면(Polar) 됩니다. 서비스 전체가 Cloudflare 위에서 운영되므로 Cloudflare로의 이전을 거부하면 서비스를 이용할 수 없고, Polar로의 이전을 거부하면 유료 크레딧을 구매할 수 없습니다. 이전 거부에 관한 문의는 제12조의 연락처로 할 수 있습니다.

8. 개인정보의 파기 절차 및 방법

  1. 파기 절차: 보유 기간이 끝나거나 처리 목적을 달성한 개인정보는 지체 없이 파기합니다. 관계 법령에 따라 계속 보관해야 하는 정보는 다른 개인정보와 분리하여 저장·관리합니다.
  2. 파기 방법: 전자적 파일 형태의 정보는 데이터베이스에서 삭제하는 등 복구할 수 없는 방법으로 파기하며, 종이 문서는 분쇄하거나 소각합니다.

9. 정보주체와 법정대리인의 권리·의무 및 행사 방법

  1. 정보주체는 회사에 언제든지 개인정보 열람, 정정·삭제, 처리정지, 동의 철회를 요구할 수 있습니다.
  2. 콘솔에서 직접 할 수 있는 것: 계정 설정의 일반 메뉴(app.k-otp.dev/settings/general)에서 이름, 이메일 주소, 프로필 이미지, 언어를 바꿀 수 있고 계정을 삭제할 수 있습니다. 계정 삭제를 요청하면 확인 링크를 이메일로 보내며, 1시간 안에 같은 브라우저에서 그 링크를 열면 계정이 삭제됩니다. 조직 정보는 조직 설정에서 바꿀 수 있습니다. 앱이나 크레딧 잔액, 결제 내역이 있는 조직은 콘솔에서 삭제할 수 없으므로 이메일로 요청해 주세요.
  3. 그 밖의 권리 행사는 이메일(support@k-otp.dev) 또는 서면으로 할 수 있으며, 회사는 지체 없이(열람은 10일 이내) 조치합니다.
  4. 권리 행사는 정보주체의 법정대리인이나 위임을 받은 사람 등 대리인을 통해서도 할 수 있습니다. 이 경우 위임장을 제출해야 합니다.
  5. 법령에서 보관하도록 정한 정보는 삭제를 요구할 수 없으며, 다른 사람의 권리를 침해할 우려가 있는 등 법령에서 정한 경우에는 열람이나 처리정지 요구가 제한될 수 있습니다.
  6. 회사는 권리 행사를 요구한 사람이 본인이거나 정당한 대리인인지 확인합니다.

10. 개인정보의 안전성 확보 조치

회사는 개인정보의 안전성 확보를 위해 다음 조치를 합니다.

  1. 관리적 조치: 개인정보에 접근할 수 있는 사람과 권한을 최소화하고, 데이터베이스 접근 계정을 용도별로 나누어 각 계정이 필요한 데이터에만 접근하게 합니다.
  2. 기술적 조치
    • 비밀번호를 쓰지 않고, 로그인 링크와 코드는 해시값으로만 저장하며 15분 뒤 만료되고 한 번만 쓸 수 있게 합니다. 코드 입력 실패와 로그인 메일 요청은 IP 주소와 이메일 주소별로 횟수를 제한합니다.
    • API 키는 해시값으로만 저장하고, 원문은 발급할 때 한 번만 보여 줍니다.
    • 인증번호 발급 기록에는 최종 이용자의 휴대전화번호와 인증번호를 해시값으로만 저장하고, 발송 기록의 번호 정보는 암호화하여 저장한 뒤 제4조에 따라 삭제합니다.
    • 부정 이용 방지에 쓰는 이메일 주소와 IP 주소 대역은 해시값(HMAC)으로만 저장합니다.
    • 웹사이트, 콘솔, API와의 통신은 TLS로 암호화합니다. 데이터베이스는 인터넷에 공개된 포트 없이 암호화된 터널과 TLS 연결로만 접속합니다.
    • 결제 수단 정보는 결제대행사가 처리하며 회사는 저장하지 않습니다.
  3. 물리적 조치: 서버와 데이터센터에 대한 물리적 접근 통제는 제6조의 수탁자가 수행합니다.

11. 개인정보 자동 수집 장치의 설치·운영 및 거부

회사는 서비스 이용에 필요한 정보를 저장하기 위해 쿠키를 사용합니다. 쿠키는 웹사이트가 이용자의 브라우저에 저장하는 작은 텍스트 파일입니다. 회사는 방문 분석이나 광고를 위한 쿠키를 사용하지 않습니다.

  1. 웹사이트(k-otp.dev)
    • consent: 쿠키 안내에 대한 이용자의 선택 저장(30일)
    • locale_banner_seen: 언어 제안 안내에 응답했는지 저장(1년)
  2. 콘솔(app.k-otp.dev)
    • better-auth.session_token(HTTPS에서는 __Secure- 접두사가 붙음): 로그인 상태 유지(최대 30일)
    • better-auth-passkey: 패스키 등록·로그인 중 인증 절차 확인(해당 절차 동안만)
    • kotp_sign_in_request: 로그인 링크를 연 브라우저가 로그인을 요청한 브라우저인지 확인(15분)
    • kotp_ref: 추천 링크의 추천 코드와 방문 시각을 저장해 가입할 때 추천을 연결(30일)
    • NEXT_LOCALE: 콘솔과 이메일의 언어 설정(1년)
    • locale_banner_seen: 언어 제안 안내에 응답했는지 저장(1년)
    • sidebar-collapsed: 사이드바 접힘 상태 저장(1년)
    • 이 밖에 화면 테마(밝게·어둡게) 선택은 브라우저 저장소(localStorage)에 저장합니다.

이용자는 브라우저 설정에서 쿠키 저장을 거부하거나 삭제할 수 있습니다. 쿠키 저장을 거부하면 콘솔에 로그인할 수 없는 등 일부 서비스를 이용하기 어렵습니다.

12. 개인정보 보호책임자

회사는 개인정보 처리에 관한 업무를 총괄하고, 개인정보 처리와 관련한 정보주체의 불만 처리와 피해 구제를 위하여 다음과 같이 개인정보 보호책임자를 지정하고 있습니다. 개인정보 열람 청구도 아래 연락처로 접수·처리합니다.

  • 성명: 김정래
  • 직책: 개인정보처리담당자
  • 이메일: support@k-otp.dev
  • 전화: 02-877-1990

회사 정보: 상호 1990Company, 대표자 김정래, 사업자등록번호 163-31-01584, 주소 충청남도 천안시 동남구 천정1길 7, 601, 전화 02-877-1990, 이메일 support@k-otp.dev

13. 권익침해 구제 방법

정보주체는 개인정보 침해로 인한 구제를 받기 위하여 아래 기관에 분쟁 해결이나 상담 등을 신청할 수 있습니다.

  • 개인정보분쟁조정위원회: (국번없이) 1833-6972, www.kopico.go.kr
  • 개인정보침해신고센터(한국인터넷진흥원): (국번없이) 118, privacy.kisa.or.kr
  • 대검찰청: (국번없이) 1301, www.spo.go.kr
  • 경찰청: (국번없이) 182, ecrm.police.go.kr

14. 개인정보 처리방침의 변경

이 개인정보 처리방침은 2026년 10월 2일부터 적용됩니다. 내용을 추가·삭제·수정하는 경우 시행 7일 전부터 웹사이트를 통해 알리며, 수집하는 개인정보 항목이나 이용 목적의 변경 등 정보주체의 권리에 중요한 변경이 있는 경우에는 시행 30일 전부터 알립니다.