비밀번호 없는 로그인은 어떻게 작동할까요 — 코드 하나로 로그인과 WhatsApp 인증을 한 번에

WALLAWHATS는 로그인과 WhatsApp 인증에 6자리 코드 하나만 사용해요. 전체 흐름과 보안성, 비밀번호 인증과의 차이를 알아봐요.

Nacho Coll작성자 업데이트: 23 분 소요
WALLAWHATS는 로그인과 WhatsApp 인증에 6자리 코드 하나만 사용해요. 전체 흐름과 보안성, 비밀번호 인증과의 차이를 알아봐요.

지금까지 만든 모든 비밀번호는 어딘가의 데이터베이스에 잠재된 작은 위험 요소예요 — 여러분의 것이든, 다른 누군가의 것이든요. 재사용된 비밀번호, 약한 비밀번호, 피싱으로 유출된 비밀번호까지, 대부분의 계정 탈취는 제로데이가 아니라 자격 증명 유출에서 시작돼요. WALLAWHATS는 애초에 비밀번호 자체를 두지 않음으로써 이 문제 전체를 피해가요. 로그인과 WhatsApp 인증은 동일한 방식으로 처리돼요. 바로 여러분이 직접 관리하는 목적지로 전송되는 6자리 코드 하나예요.

이건 단순한 UX 지름길이 아니에요. 계정을 만드는 바로 그 순간, X (Twitter) 게시물 알림이 몇 초 후에 도착할 전화번호나 받은편지함을 실제로 소유하고 있다는 것까지 증명하게 된다는 뜻이에요.

Sign-in screen with email entry for the passwordless OTP flow

여기서 ‘패스워드리스’가 실제로 의미하는 것

패스워드리스 인증은 새로운 개념이 아니에요 — 은행들은 오래전부터 SMS 코드를 사용해왔고, 요즘 대부분의 비밀번호 관리자도 매직 링크 방식을 권장해요. WALLAWHATS 구현에서 다른 점은, 계정에 로그인하게 해주는 바로 그 일회용 코드가 알림을 받을 목적지까지 함께 인증한다는 거예요. 가입 후 설정 메뉴 어딘가에 묻혀 있는 ‘전화번호 확인’ 같은 별도 단계가 없어요. 소유권 확인과 전송 준비가 한 번의 동작으로 끝나는 거죠.

구체적으로 살펴보면:

  1. 로그인 화면에서 이메일 주소나 WhatsApp 번호를 입력해요.
  2. WALLAWHATS가 6자리 숫자 코드를 생성해서 해당 목적지로 전송해요.
  3. 짧은 유효 시간 안에 그 코드를 앱에 다시 입력해요.
  4. 성공하면 로그인이 완료돼요 — 목적지가 전화번호였다면, 이제 알림을 받을 준비가 된 인증된 채널이 되는 거예요.

선택하고, 기억하고, 교체하고, 유출될 비밀번호 자체가 없어요. ‘비밀번호를 잊으셨나요’ 흐름도 없어요, 애초에 잊어버릴 비밀번호가 없으니까요.

작동 원리 — 덧붙인 OTP 라이브러리가 아니라 Cognito Custom Auth

내부적으로는 AWS Cognito의 Custom Authentication 플로우 위에서 동작해요 — 기존 사용자명/비밀번호 풀 위에 얹은 서드파티 OTP 애드온이 아니에요. 세 개의 Lambda 트리거가 함께 작동해서 이 흐름을 만들어요.

  • PreSignUp은 처음 보는 목적지로 로그인을 시도하는 신규 사용자를 자동으로 확인 처리해요. 별도의 ‘계정 생성’ 폼은 없어요. 새로운 이메일이나 번호로 로그인하는 것 자체가 곧 계정 생성이에요.
  • CreateAuthChallenge는 6자리 코드를 생성하고, 서버 측에 짧은 TTL과 함께 저장한 뒤, 목적지로 전송해요 — 전화번호를 입력했다면 WhatsApp으로, 그렇지 않다면 이메일로요.
  • VerifyAuthChallengeResponse는 여러분이 입력한 코드를 발급된 코드와 대조해서, 만료되거나 일치하지 않는 시도는 거부하고 재시도에는 속도 제한을 걸어요.

이 모든 과정이 Cognito의 관리형 인증 상태 머신 안에서 실행되기 때문에, 표준적인 보장이 그대로 적용돼요. 토큰은 수명이 짧고, 갱신 흐름은 플랫폼 나머지 부분을 지키는 것과 동일한 인프라가 처리하며, 자체 제작한 ‘그냥 이메일로 코드 보내기’ 구현에서 흔히 발생하는 버그(예측 가능한 ID, 불충분한 엔트로피, 누락된 만료 검사)를 감사할 별도의 세션 토큰 코드도 없어요.

같은 코드가 두 가지 역할을 동시에 하는 이유

대부분의 서비스는 ‘본인임을 증명하는 것’과 ‘여기서 메시지를 받을 수 있음을 증명하는 것’을 별개의 두 단계로 다뤄요 — 비밀번호로 가입한 다음, 알림을 위해 전화번호를 따로 인증하는 식이죠. WALLAWHATS는 이 두 단계를 하나로 합쳤어요. 알림 제품 입장에서는 결국 같은 질문을 두 번 묻는 것일 뿐이니까요.

WALLAWHATS가 어떤 번호로 WhatsApp 메시지를 전달하려면 두 가지를 알아야 해요. 그 번호가 실제로 존재하고 연결 가능하다는 것, 그리고 로그인하는 사람이 실제로 그 번호를 소유하고 있다는 것이요. 바로 그 번호로 전송된 6자리 코드를 정확히 입력하는 것만으로 이 두 가지가 동시에 확인돼요. ‘로그인은 됐는데 WhatsApp 목적지는 인증되지 않은’ 상황은 존재할 수 없어요. 로그인 자체가 곧 인증이었으니까요.

이메일도 같은 논리가 적용돼요. 이메일 주소로 로그인하고, 그곳으로 코드를 받아서, 다시 입력하면 — 로그인이 완료되는 동시에 그 받은편지함은 이메일 알림(모든 플랜에서 텍스트와 함께 각 트윗의 렌더링된 스냅샷도 포함돼요)을 받을 수 있는 확인된 목적지가 돼요.

느낌보다 실제로 더 안전한 이유

패스워드리스 인증은 언뜻 안전하게 들릴 수 있어요 — 비밀번호도 없고, 저장소도 없으니까요. 하지만 실제로는 실제 계정이 뚫리는 가장 흔한 경로 여러 개를 원천 차단해요.

  • 크리덴셜 스터핑이 불가능해요. 유출된 사이트에서 재사용된 비밀번호를 공격자가 WALLAWHATS 로그인에 시도할 수 없어요. 애초에 훔칠 비밀번호 자체가 없으니까요.
  • 비밀번호 재설정 공격 표면이 없어요. 계정 탈취의 상당수는 ‘비밀번호를 잊으셨나요’ 흐름을 통해 발생해요 — 받은편지함을 장악한 공격자가 모든 곳의 비밀번호를 재설정해버리는 거예요. 비밀번호 자체를 없애면 이 흐름도 완전히 사라져요.
  • 기억이 아니라 소유 기반이에요. 코드는 몇 달 전에 외운(또는 적어두거나 재사용한) 비밀을 증명하는 게 아니라, 지금 이 순간 전화나 받은편지함에 접근할 수 있다는 것을 증명해요.
  • 짧은 수명, 일회성이에요. 코드는 빠르게 만료되고 한 번 성공적으로 사용되면 무효화돼요. 직접 바꾸기 전까지 계속 유효한 비밀번호와는 달라요.

대신 트레이드오프도 있어요. WhatsApp이나 이메일 전송이 로그인 핵심 경로의 일부가 된다는 점이에요 — 둘 다 접근할 수 없게 되면, 계정 복구는 비밀번호 기반 시스템에서 역사적으로 가장 약한 고리였던 ‘보안 질문’ 방식이 아니라 동일한 인증된 목적지 모델을 따라가요.

전통적인 비밀번호 + 별도 OTP 인증과 비교하면

일반적인 흐름은 이래요. 비밀번호를 정하고, 별도의 링크로 이메일을 확인하고, 나중에 설정에 들어가서 SMS나 푸시 알림용 전화번호를 인증하는 거죠. 이건 세 개의 별도 증명 지점이고, 각각이 낡아버릴 수 있는 세 개의 지점이기도 해요 — 몇 주째 인증되지 않은 채 계정에 남아 있는 전화번호, 다른 서비스 네 곳에서 쓰는 것과 똑같은 비밀번호, 아무도 클릭하기 전에 만료된 이메일 확인 링크처럼요.

WALLAWHATS는 이를 목적지당 증명 지점 하나로 줄였어요. WhatsApp 번호를 추가하면, 그걸 인증하기 위해 받는 코드가 앞으로 그 기기에서 로그인할 때 쓰는 코드와 동일해요. 계정과 목적지가 함께 ‘인증됨’ 상태에 도달하기 때문에, 어중간하게 방치되는 미인증 상태가 없어요.

이는 목적지를 바꾸거나 추가하는 것도 그냥… 새로운 목적지로 로그인하는 것과 같다는 뜻이에요. Business나 Enterprise 플랜에서 두 번째 인증 번호를 추가하고 싶으신가요? 입력하고, 코드를 받고, 확인하면 끝이에요. 메뉴 세 단계 아래 묻혀 있는 별도의 ‘전화번호 추가’ 폼 같은 건 없어요.

실제로 설정해보면 이렇게 보여요

wallawhats.com/signup에서는 딱 한 가지만 물어봐요. 이메일 주소 또는 WhatsApp 번호요. 그게 폼의 전부예요.

  • WhatsApp 번호를 입력하면 코드가 몇 초 안에 WhatsApp 메시지로 도착해요 — 나중에 X 알림을 전달할 것과 동일한 채널이에요.
  • 이메일을 입력하면 코드가 받은편지함으로 도착해요 — 개인 WhatsApp을 건드리지 않고 공용 기기나 업무용 기기에서 로그인하고 싶거나, 이메일을 알림 채널로 설정하려는 경우 유용해요.

어느 쪽이든 6자리 코드를 입력하라는 화면이 나오고, 입력하면 바로 대시보드로 이동해요. 그다음부터는 Channels 페이지에서 언제든 두 번째 채널을 추가할 수 있어요(예를 들어 이메일로 가입한 뒤 WhatsApp 번호를 추가하거나, 그 반대도 가능해요) — 새로운 목적지는 알림을 받기 전에 똑같이 일회용 코드 인증을 거쳐요. 어떤 유형의 WhatsApp 번호를 써야 할지 모르겠다면, Business vs Personal number 가이드에서 트레이드오프를 자세히 다루고 있어요.

‘추가는 됐지만 인증은 안 된’ 전화번호가 계정 설정에 남아 있는 경우는 없어요. 모든 목적지는 각자의 코드 인증을 완료했거나, 아니면 애초에 계정에 연결되어 있지 않아요.

이것이 아닌 것에 대한 참고

보안 모델을 정확히 짚어보면, 이건 여러분이 이미 신뢰하는 채널(WhatsApp, 이메일) 위에서 이루어지는 일회용 코드 인증이지, ‘비밀번호에 두 번째 요소를 더하는’ 전통적 의미의 다단계 인증(MFA)은 아니에요. 여기엔 의미 있는 차이가 있어요. 전통적인 MFA는 비밀번호 위에 독립적인 두 번째 증명을 추가해요. WALLAWHATS의 모델은 비밀번호를 통신 채널의 소유로 대체하는 거예요 — 이건 다른 종류의 위험 트레이드오프이지, 모든 면에서 엄격하게 더 강력한 방식은 아니에요. 하지만 알림 서비스에는 딱 맞는 트레이드오프예요. 애초에 제품을 쓰려면 인증된 목적지가 필요하다는 게 핵심이니까요. 그 인증 단계를 로그인에도 재사용하면 마찰은 줄이면서도 의미 있는 보안 계층을 잃지 않아요, 애초에 비밀번호 기반 계층 자체가 없었으니까요.

로그인과 알림 모두에 어떤 채널을 쓸지 고민 중이시라면, email vs WhatsApp 비교에서 전송 속도와 읽음률 트레이드오프를 다루고 있는데, 이는 로그인 코드에도 그대로 적용돼요 — WhatsApp 코드는 몇 초 안에 눈치채지만, 이메일 코드는 받은편지함 안에서 다른 메일들과 경쟁해야 해요.

알림 제품이기에 특히 중요한 이유

‘선택한 목적지로 메시지를 확실하게 전달하는 것’이 전부인 제품에서는, 신원과 목적지가 서로 따로 놀아서는 안 돼요. 만약 로그인과 채널 인증이 별개의 시스템이었다면, 몇 년 전에 추가된 WhatsApp 번호가 그사이 통신사에 의해 다른 사람에게 재할당됐는데도 재확인 없이 그 계정에 로그인되어 있는 상황이 생길 수 있어요. 로그인을 목적지로 전송되는 새 코드에 묶어두면 이런 위험은 애초에 구조적으로 존재하지 않아요 — 현재 도달할 수 없는 채널로는 로그인 자체가 불가능해요. 도달 가능성이 곧 로그인을 성립시키는 조건이니까요.

이는 또한 대부분의 경우 계정 복구에 지원 티켓이 필요 없다는 뜻이기도 해요. 휴대폰을 잃어버리셨나요? 대신 이메일로 로그인하세요 — 동일한 흐름, 동일한 일회용 코드고, WhatsApp 목적지는(새 기기에서 다시 인증하고 나면) 중단됐던 지점부터 그대로 이어져요.

코드가 도착하지 않을 때는

전송을 서드파티 네트워크 — 통신사, WhatsApp 자체 인프라, 이메일 공급자 — 에 맡기는 모든 시스템은 코드가 즉시 도착하지 않는 상황을 감안해야 해요. 이를 어떻게 처리하는지 몇 가지 실용적인 내용을 짚어볼게요.

  • 유효 기간은 의도적으로 짧아요. 몇 시간 동안 유효한 코드는 몇 분 동안 유효한 코드보다 더 큰 공격 대상이 돼요. 입력하기 전에 만료됐다면, 새 코드를 요청하는 순간 기존 코드는 바로 무효화돼요.
  • 재입력이 아니라 재전송이에요. WhatsApp 메시지가 몇 초 지연되거나(전송량이 많은 시간대엔 정상이에요) 이메일이 스팸함으로 들어갔다면, 로그인 화면에서는 첫 시도를 무작정 기다리라고 하는 대신 재전송 버튼을 제공해요.
  • 속도 제한은 양쪽 모두를 보호해요. 같은 목적지로 반복되는 코드 요청은 제한돼요. 이건 단순히 WALLAWHATS의 어뷰징 방지책만이 아니에요 — 상위 어딘가에서 공격적으로 재시도가 발생했을 때 하나의 계정이 실수로 WhatsApp이나 이메일 공급자의 전송 시스템을 두드려대는 것도 막아줘요.
  • 한쪽이 안 되면 채널을 바꾸세요. 휴대폰에 신호가 없지만 노트북 앞에 있다면, 대신 이메일로 로그인하세요 — 같은 계정으로 가는 완전히 독립적인 경로일 뿐, WhatsApp 시도가 먼저 실패해야 작동하는 대체 수단이 아니에요.

이 중 어느 것도 WALLAWHATS만의 특별한 이야기는 아니에요. OTP 기반 시스템이라면 모두 감안해서 설계해야 하는 동일한 운영상의 현실이에요. 다른 점은, 코드가 곧 채널 인증이기도 하기 때문에 로그인 성공 자체가 알림 목적지가 지금 살아있다는 걸 알려준다는 거예요 — 비밀번호로는 절대 알 수 없는 것이죠.

자주 묻는 질문

WhatsApp과 이메일 둘 다 로그인에 사용할 수 있나요? 네. 처음 사용할 때 각각 독립적으로 인증되고, 이후에는 둘 중 어느 쪽으로도 같은 계정에 로그인할 수 있어요.

로그인을 끝내지 못하면 새 코드가 제 WhatsApp 채널을 무효화하나요? 아니요. 완료되지 않았거나 만료된 로그인 시도는 이미 인증된 채널에 영향을 주지 않아요 — 이건 오직 새로운 목적지를 처음 인증할 때만 중요해요.

나중에 전화번호를 바꾸고 싶다면요? Channels 페이지에서 새 번호를 채널로 추가하세요. 알림을 받기 전에 자체적인 일회용 코드 인증을 거쳐요. 기존 번호는 직접 삭제하기 전까지 그대로 유지돼요.

이건 SMS 기반 2단계 인증과 같은 건가요? 정확히는 아니에요. 전통적인 SMS 2FA는 비밀번호 위에 얹은 두 번째 요소예요. 여기서는 코드 자체가 전체 인증 메커니즘이에요 — 두 번째 요소를 더할 밑바탕 비밀번호 자체가 없어요.

시작하기

패스워드리스 로그인은 따로 설정해야 하는 별도 기능이 아니에요 — Free부터 그 위의 모든 플랜에서 WALLAWHATS에 로그인하는 방식 그 자체예요. 아직 알림을 설정하지 않으셨다면, 시작 가이드에서 첫 로그인부터 첫 WhatsApp 알림까지 전체 과정을 다루고 있어요.

중요한 게시물을 다시는 놓치지 마세요. 무료 계정 만들기 — WhatsApp 번호 1개, 실시간 알림, 신용카드 필요 없음.

Nacho Coll

작성자 소개

Founder & Engineer at WallaWhats

Nacho founded WallaWhats so you get the alerts that matter without depending on X's algorithm to surface them — pick the accounts you care about and get a WhatsApp for every post the moment it goes live, in order, nothing throttled or buried. Writes about real-time notification systems, social-signal monitoring, and serverless delivery pipelines from the operator side of the wire.

블로그로 돌아가기