메뉴

스테이징 환경의 catch-all 메일함: 편의와 위험

스테이징 환경에서 모든 주소를 한 통에 받는 전용 수신함을 쓰는 이유와, 수신량 폭주와 실제 고객 메일 유입 같은 위험을 함께 정리합니다.

게시일

  • 스테이징
  • 수신 전용

스테이징 환경에서는 주소를 미리 만들어 두지 않아도 편지가 들어오는 구조가 편합니다. 접두사가 무엇이든 한 곳으로 모이는 catch-all 메일함이 그 방법입니다. 다만 편함의 대가가 분명히 있어서, 무엇을 잃는지 알고 쓰지 않으면 조용한 사고로 이어집니다.

catch-all 메일함은 무엇인가요?

이름 그대로 전부 받는 수신함입니다. 어떤 접두사로 편지가 오더라도 거절하지 않고 한 곳에 넣습니다. 미리 주소를 등록해 두는 방식과 달리, 존재하지 않는 접두사로 온 편지도 받아 줍니다.

그래서 시험 환경에서 자주 등장합니다. 시험마다 주소를 발급하는 절차를 만들지 않아도 되고, 코드가 임의의 접두사를 만들어 보내도 편지가 사라지지 않습니다. 오타로 만들어진 주소도 잡히므로, 잘못된 주소로 보낸 편지를 놓치지 않는다는 장점도 있습니다. 담당자가 손으로 시험할 때도 주소를 매번 복사해 넣지 않아도 된다는 점이 큽니다.

이 구조가 빛을 발하는 자리는 하나뿐입니다. 주소 목록을 미리 알 수 없고, 편지가 왔다는 사실 자체를 확인하고 싶은 시험입니다. 그 밖의 자리에서는 대개 과한 도구입니다.

편한 이유와 조용한 위험

첫 번째 위험은 수신량입니다. 세상에는 주소를 알아내려는 시도가 끊이지 않습니다. 존재하지 않는 접두사로 오는 편지까지 모두 받으면, 쓸모없는 편지가 실제 시험 편지 사이에 쌓입니다. 어느 것이 진짜인지 찾는 일이 다시 사람 몫이 됩니다. 며칠만 두어도 목록을 위에서부터 읽는 방식은 통하지 않게 됩니다.

두 번째는 실제 사람의 편지가 들어오는 일입니다. 운영 환경에서 쓰던 영역과 가까운 이름을 쓰거나, 예전에 쓰던 주소를 재사용하면 실제 사용자가 보낸 편지가 시험 수신함에 도착합니다. 그러면 그 편지는 개발자 여러 명에게 보입니다. 한 번 본 내용을 다시 못 본 것으로 만들 방법은 없습니다.

세 번째는 반대 방향의 사고입니다. 설정이 잘못되면 내부에서 오가는 편지가 이 수신함을 거쳐 밖으로 나갑니다. 스테이징 설정을 그대로 운영에 올리면 무슨 일이 생기는지 미리 상상해 두어야 합니다. 특히 영역 설정을 복사하는 과정에서 실수가 자주 나옵니다.

네 번째는 보관입니다. 전부 받는 수신함은 그 자체로 작은 저장소가 됩니다. 지우는 규칙이 없으면 몇 년치 편지가 남고, 그 안에 실제 사람의 이름과 연락처가 섞여 들어갑니다. 삭제를 나중에 하겠다는 결정은 대개 지켜지지 않습니다.

스테이징에서만 쓰려면 무엇을 지켜야 하나요?

  • 운영 도메인과 다른 도메인을 씁니다. 이름이 비슷해도 다른 영역이어야 합니다.
  • 운영 환경의 발신 주소를 이 수신함으로 보내지 않습니다. 운영에서 나가는 편지의 사본이 시험 수신함에 쌓이면 개인정보 사고입니다.
  • 수신함을 여는 권한을 좁힙니다. 누구나 열 수 있는 수신함은 언젠가 실제 고객 정보가 담깁니다.
  • 오래된 편지를 자동으로 지웁니다. 남겨 둘 이유가 있는 편지만 따로 옮깁니다.
  • 시험이 끝난 주소는 목록에서 지웁니다.
  • 설정 파일에 이 수신함의 주소가 적혀 있는지 정기적으로 확인합니다. 한 번 적힌 주소는 좀처럼 지워지지 않습니다.

시험용 주소 하나를 지정해서 쓰는 방법

전부 받는 구조가 부담스럽다면 반대로 갈 수 있습니다. 시험마다 접두사를 정해 주소를 만들고, 그 주소로만 편지를 받습니다. 임시 메일에서 만들 수 있는 주소가 이 방식입니다. 주소를 만드는 데 등록 절차가 없어서, 시험 코드가 스스로 주소를 발급하고 그 주소를 기다리게 만들 수 있습니다.

이 화면에서 발급되는 주소는 테스트 전용 수신 창구이며, 실제 사용자의 우편함을 대신하거나 신원을 증명하는 데 쓸 수 없습니다.

전부 받는 방식과 지정하는 방식을 섞지 않는 것이 핵심입니다. 한쪽은 예상 밖의 편지를 잡는 그물이고, 다른 쪽은 특정 시험만 보는 창입니다. 목적이 다르므로 도구도 분리해야 합니다. 한 수신함이 두 역할을 겸하면 어느 쪽 목적으로 쓰였는지 나중에 구분할 수 없습니다.

지역과 사업자에 따라 달라지는 부분

같은 구조라도 어느 지역을 대상으로 하는지에 따라 주소 표기가 달라집니다. 국가별 주소 형식에서 보듯 나라마다 자릿수와 구분 규칙이 다르므로, 여러 지역을 함께 시험한다면 접두사 규칙에도 지역 이름을 넣어 두는 편이 좋습니다. 그래야 수신 목록만 보고도 어느 지역 시험의 편지인지 구분됩니다.

지역마다 편지가 도착하기까지 걸리는 시간도 다르게 느껴질 수 있습니다. 먼 곳을 거쳐 오는 편지는 늦게 도착하고, 늦게 도착한 편지를 오래된 편지로 착각하면 엉뚱한 값을 읽습니다. 순서를 시각만으로 판단하지 않는 편이 안전합니다.

개발자를 위한 메모: 범위와 보관 정책

  • 전부 받는 설정은 환경별로 켜고 끌 수 있게 만듭니다. 스테이징에서 켠 설정이 운영에 복사되는 일이 가장 흔한 사고입니다.
  • 받는 범위를 접두사 규칙으로 좁힐 수 있게 합니다. 모든 접두사를 받되 특정 규칙에 걸리는 편지만 보관하는 식이면 수신량을 통제할 수 있습니다.
  • 보관 기간을 정하고 자동 삭제를 겁니다. 무기한 보관은 언젠가 개인정보 저장소가 됩니다.
  • 누가 열었는지 기록을 남깁니다. 시험 수신함에는 시험용 값만 있어야 한다는 전제를 감시하는 장치입니다.
  • 수신량이 갑자기 늘면 경보를 띄웁니다. 늘어난 이유는 대개 광고봇이거나 설정 실수입니다.
  • 시험 편지의 형식이 바뀌면 수신 규칙도 함께 고칩니다. 형식이 바뀐 줄 모르고 지나가면 조용히 받기만 하고 아무도 읽지 않는 수신함이 됩니다. 시험 환경 데이터 전반은 시험 환경 데이터 만들기에서 더 다룹니다.

다음 단계

지금 쓰는 수신함이 전부 받는 구조라면 지난 한 달치를 열어 실제 시험 편지가 몇 통이었는지 세어 보세요. 대부분이 잡음이라면 접두사를 정해 받는 방식으로 바꾸는 편이 낫고, 그 시작점으로 임시 메일에서 주소를 하나 만들 수 있습니다. 바꾼 뒤에도 실제 고객의 편지가 들어오는지 확인하는 절차는 따로 남겨 두시길 권합니다.

이어 읽기

임시 메일 (일회용 이메일·10분 메일) 관련 글