임시 이메일 주소에는 시계가 두 개 딸려 옵니다. 그리고 그 둘은 같은 속도로 흐르지 않습니다. 하나는 건네받은 이름의 시계로, 그 주소가 얼마나 내 것으로 남는지를 잽니다. 다른 하나는 그 안에 들어온 메일의 시계로, 서버가 도착한 것을 얼마나 보관하는지를 잽니다. 일회용 메일에서 겪는 혼란의 대부분은 이 둘을 뒤섞는 데서 비롯됩니다. 인증 코드나 확인 메일, 테스트용 샘플을 조금 더 오래 곁에 두는 방법을 따지기 전에, 먼저 이 둘을 갈라 놓고 볼 필요가 있습니다.
임시 주소는 얼마나 오래 갈까요?
임시 주소가 살아 있는 길이는 그것을 만든 세션의 길이와 같고, 그 세션을 끝낼지는 스스로 정합니다. 이 사이트의 도구에서는 메일함 페이지가 열리는 순간 주소가 발급되어, 교체하거나 페이지 저장소를 비우거나 탭을 닫아 로컬 기록을 잃을 때까지 브라우저 안에 남습니다. 이 순간에 카운트다운이 울리지는 않습니다. 주소 자체가 타이머에 걸려 있는 것이 아니라, 끝내는 쪽이 서버의 취소가 아니라 브라우저의 망각이기 때문입니다.
주소가 살아 있다고 말할 수 있는 경우가 서버 쪽에도 하나 더 있고, 메일이 아직 오고 있는 동안에는 오히려 그쪽이 중요합니다. 받는 쪽 도메인은 계정이 없어도 됩니다. 그 도메인의 어떤 라벨에 대해서도 메일을 받아 주므로, 같은 이름을 다시 만들어 낼 수만 있다면 페이지를 떠난 뒤에도 수신은 계속됩니다. 다만 이름과 화면을 잇는 선은 약합니다. 주소는 브라우저에 놓인 값이지, 내 신원에 묶인 서버의 기록이 아닙니다. 이 값을 잃으면 잃는 것은 그 이름으로 받는 능력이라기보다, 거기를 들여다보라는 지시입니다.
그래서 실제 수명은 짧고, 내 행동에 따라 달라집니다. 탭이 열려 있고 그 주소를 아직 쥐고 있는 동안에는 살아 있습니다. 새로고침으로는 대개 잃지 않습니다. 페이지가 매번 다시 만드는 것이 아니라 배정 결과를 저장하기 때문입니다. 저장된 값이 없는 새 방문에는 새 주소가 발급되고, 옛것은 아무도 보지 않는 또 하나의 라벨로 조용히 바뀝니다.
메일은 얼마나 보관될까요?
메일 보관 시간은 메일함 서버의 보관 기간으로 정해지고, 그 기간은 서버를 운영하는 쪽이 정하며 의도적으로 짧습니다. 이 사이트 뒤에 있는 메일함에서 그 기간은 십오 분입니다. 그 안에 읽히지 않은 메시지는 보관되지도, 나중을 위해 밀려 있지도 않고 삭제되며, 꺼낼 수 있는 휴지통도 없습니다.
이 숫자는 당신의 메일에 대한 평가가 아니라 저장 결정입니다. 오래 아무것도 보관하지 않는 서비스에는 백업 세대 관리도, 보관 관련 법무 검토도, 지난달 메일을 다시 보내 달라는 요청을 받아 줄 창구도 필요 없습니다. 기간을 짧게 두면 운영자는 시스템 전체를 얕고 싸게 유지하고, 남의 통신을 맡을 때 따라오는 의무에서 벗어날 수 있습니다.
시계는 메시지가 도착한 순간에 시작하지, 받은 편지함을 연 순간에 시작하지 않습니다. 페이지를 여는 것은 이미 저장된 것을 읽을 뿐이고 마감을 늘려 주지 않습니다. 십 분 전에 도착한 메시지를 지금 본다면 원래 기간은 오 분 정도만 남았고, 내가 무엇을 해도 되돌아가지 않습니다. 메시지가 나타났다가 곧 사라지는 것처럼 보이는 이유는, 수명이 거의 끝날 무렵에 찾았기 때문입니다.
놓치기 쉬운 시계가 하나 더 있는데, 그것은 보내는 쪽의 것입니다. 인증 코드는 보내는 쪽에서도 거의 항상 시간 제한이 있고, 대개 비슷한 자릿수의 짧은 값입니다. 메일함이 메시지를 영원히 보관한다 해도 그 안의 코드는 어느 시점부터 받아들여지지 않습니다. 흐름을 끝까지 통과하려면 서로 독립적인 두 만료를 모두 넘겨야 합니다.
세션 저장소와 메일박스 서버
두 시계가 뒤섞이는 까닭은 브라우저 페이지가 두 결과를 한꺼번에 보여 주어 마치 하나인 것처럼 보이게 하기 때문입니다. 화면의 받은 편지함은 서로 다른 곳에 사는 두 저장소에서 조립됩니다.
브라우저에 있는 것은 배정, 즉 이 탭이 어느 주소를 보고 있는지입니다. 작고 로컬이며, 페이지가 요청한 것을 기억하게 하려고 존재합니다. 사이트 저장소를 비우고, 시크릿 창을 열고, 기기나 브라우저를 바꾸면 서버는 전혀 변하지 않았는데도 이 로컬 기록은 사라집니다. 당신 쪽에서는 메일함이 사라지고, 서버 쪽에서는 아무 일도 일어나지 않습니다.
메일함 서버에 있는 것은 메일 그 자체, 즉 헤더와 본문, 코드, 첨부입니다. 멀리 있고, 운영자가 정한 기간을 따르며, 당신이 누구인지도 모릅니다. 브라우저의 사본을 지워도 서버의 사본은 지워지지 않고, 기간이 끝나 서버의 사본을 지우는 데 브라우저의 허락은 필요하지 않습니다.
이 둘을 갈라 두면 여러 가지 행동이 설명됩니다. 주소를 다른 탭에 붙여 넣으면 받은 편지함이 다시 나타나는 이유는 무엇일까요. 서버가 아직 메시지를 쥐고 있고, 새 탭이 그것을 읽기 시작했을 뿐입니다. 똑같아 보이는 주소가 때때로 빈 받은 편지함을 보여 주는 이유는 무엇일까요. 기간이 끝났거나, 그 라벨이 서버에 메일이 있는 이름이 아니기 때문입니다. 두 사람이 같은 받은 편지함을 볼 수 있는 이유는 무엇일까요. 공유된 미등록 이름은 비밀이 아니며, 그 라벨을 지켜보는 사람이 도착한 것을 보기 때문입니다.
“만료”가 실제로 의미하는 것
만료는 주소가 틀렸다거나 사이트가 고장 났다는 뜻이 아닙니다. 두 저장소 가운데 하나가 더는 건넬 것이 없다는 뜻이고, 눈에 보이는 모양이 어느 쪽인지 알려 줍니다.
첫째는 서버 만료로, 메시지가 삭제된 경우입니다. 받은 편지함이 빈 것은 아무것도 오지 않아서가 아니라, 온 것이 사라졌기 때문입니다. 주소는 여전히 보이고 새로고침해도 오류가 없다면 이것이 유력한 원인이며, 그 메시지에 대해서는 되돌릴 수 없습니다. 다시 요청할 방법은 없고, 유일한 회복은 보내는 쪽이 새 메시지를 만들게 하는 것입니다.
둘째는 세션 만료로, 메시지가 서버에 남아 있을 수도 있지만 브라우저가 어느 주소에 물어야 하는지를 더는 모르는 경우입니다. 잃은 것은 포인터이고, 데이터라고 단정할 수는 없습니다. 주소를 어딘가에 적어 두었다면 보관 기간이 열려 있는 동안 붙여 넣어 다시 읽을 수 있습니다. 적어 두지 않았다면 포인터가 사라져 실제 결과는 첫째와 다르지 않습니다.
셋째는 자주 만료로 오해받지만 그렇지 않습니다. 보내는 쪽이 애초에 배달을 거부한 경우입니다. 어떤 사이트는 일회용 도메인으로 가는 메일을 거절하므로, 그때는 아무것도 오지 않고 기다려도 소용없습니다. 받은 편지함 쪽에서 보면 이 실패는 즉시 일어나며, 도착한 뒤 늙어 버린 메시지와는 다릅니다.
이 셋을 구분하는 것이 중요한 까닭은 대응이 다르기 때문입니다. 서버 만료라면 새 메시지를 청하고, 세션을 잃었다면 주소를 찾고, 보내는 쪽이 거부했다면 다른 종류의 주소를 씁니다.
더 오래 간직하는 방법
정직한 답은, 일회용 체계 안에서 일회용 메시지를 더 오래 간직할 수는 없다는 것입니다. 기간은 바꿀 수 있는 설정이 아니라 서버에 속한 것이지 페이지에 속한 것이 아닙니다. 바꿀 수 있는 것은 읽은 뒤 그 내용이 어디에 사는가입니다.
일찍 읽으세요. 기간이 시작된 첫 일 분 안에 찾은 메시지가 행동할 여지를 가장 많이 남깁니다. 필요한 것이 코드라면 흐름 뒤로 미루지 말고 그 자리에서 쓰세요.
손으로 밖으로 옮기세요. 내용이 확인 번호나 주문 번호, 나중에 다시 쓸 링크라면 화면에 떠 있는 동안 내 메모나 내가 관리하는 메일함으로 글자를 복사하세요. 이것이 수작업이 되는 이유는 일회용 받은 편지함에 내보내기도 보관도 없기 때문입니다. 놓아 버리도록 만들어졌으니, 대응은 놓이기 전에 필요한 것을 챙기는 일이 됩니다.
애초에 맞는 종류의 주소를 고르세요. 일회용 받은 편지함은 한 번뿐인 확인에는 맞는 도구이고, 오래 지킬 것에는 틀린 도구입니다. 받는 내용에 지속적인 가치가 있다면 내가 관리하는 메일함에 들어가야 합니다. 실제 메일함으로 전달되는 별칭은 절충안으로, 보내는 쪽에는 일회용 느낌을, 당신에게는 지속성을 남깁니다.
코드라면 도착하는 순간 움직이세요. 보내는 쪽의 만료도 흐르고 있으니, 코드를 보고 제출하기까지의 길이 짧을수록 안전합니다. 필요한 것을 이미 적어 두지 않았다면 주소를 다시 만들 수도 있는 페이지를 새로고침하지 마세요.
보관 기간이 짧은 이유
기간이 짧은 것은 인색해서가 아니라, 이 모든 것을 성립시키는 장치이기 때문입니다. 일회용 주소의 약속은 추적되지 않고 책임을 지지 않는다는 것이며, 그 둘은 모두 오래 아무것도 쥐지 않는다는 사실 위에 서 있습니다.
메일을 몇 달씩 보관하려면 무엇이 필요한지 생각해 보세요. 지켜야 할 데이터베이스, 돌려야 할 백업, 지켜야 할 데이터 보호 정책, 그리고 더는 닿을 수 없는 메일을 보여 달라는 사람을 응대할 지원 절차가 필요합니다. 하나하나가 메일 주인에 대한 의무이고, 이용자가 누구인지 모르는 서비스는 어느 것도 감당할 수 없습니다. 짧은 기간이 바로 익명 메일함을 존재하게 합니다.
짧음은 기대치도 정직하게 정합니다. 확인 흐름은 코드가 몇 초에 도착해 몇 분 안에 쓰인다고 가정하고, 그 리듬에 맞춘 보관 기간은 양쪽의 걸음을 맞춥니다. 일주일 동안 메시지를 쥐는 메일함은 저장소로 의지하게 만들지만, 그것은 이 도구가 채우도록 만들어지지 않은 역할이며, 채우려면 나머지 모든 것을 요구할 역할입니다.
이렇게 보면 만료는 피해 가야 할 제약이 아니라 도구의 모양입니다. 주소는 쓰기 위한 것이지 지키기 위한 것이 아닙니다. 옳은 대응은 기간과 싸우는 것이 아니라, 메일함을 잘하는 일에 쓰고 더 긴 수명이 필요한 것은 그것을 주도록 만들어진 곳에 두는 것입니다. 특정한 용무에 주소가 필요하면 임시 메일이 곧바로 하나를 발급합니다. 아직 고르는 중이라면, 오래 쓰는 주소와 일회용 주소의 차이는 임시 메일의 원리에서 자세히 설명하고, 어떤 주소가 어떤 가입에 맞는지는 가입에 쓸 이메일 주소 고르기에서 다룹니다.