Show HN: VaultSandbox – Test your real MailGun/SES/etc. integration

Show HN: VaultSandbox – Test your real MailGun/SES/etc. integration

Poooling·2026년 1월 7일·2

실제 운영 환경과 동일한 환경에서 이메일 발송 사고를 방지할 수 있는 VaultSandbox를 소개합니다. Mocking의 함정에서 벗어나 진짜 신뢰성을 구축하세요.

제목

CTO가 심야에 몰래 공유한, '이메일 발송 사고' 0건을 위한 내부 가이드.

솔직히 고백 하나 하겠습니다.

주니어 시절, 금요일 오후 6시에 배포 버튼을 누르고 퇴근한 적이 있습니다.

월요일 아침에 출근했더니 CS 채널이 난리가 났더군요.

"비밀번호 찾기 메일이 안 와요."

등줄기에 식은땀이 흘렀습니다.

분명 로컬에서는 잘 됐거든요. 테스트 코드도 전부 통과했고요.

문제는 '가짜(Mock)'였습니다.

테스트 환경에서는 메일 발송 로직을 Mocking 처리해서 "보냈다고 치고" 넘어갔던 거죠.

하지만 실제 운영 환경(Production)은 냉혹했습니다.

SPF/DKIM 인증 실패, TLS 핸드셰이크 오류.

이런 건 Mock 객체가 절대 알려주지 않는 에러들이죠.

그날 이후로 저는 이메일 로직을 건드리는 게 트라우마가 됐습니다.


최근 대기업으로 이직하고 나서, 팀장님이 슬쩍 링크 하나를 던져주시더군요.

"김 선임, 우리 이제 sleep(5000) 같은 거 그만 쓰고 이거 도입합시다."

그게 바로 오늘 소개할 VaultSandbox입니다.

결론부터 말하면, 이건 '가짜'가 아니라 '격리된 진짜'입니다.

보통 우리는 로컬 개발할 때 이런 짓을 많이 합니다.

ignore_tls: true
rejectUnauthorized: false

보안 경고가 뜨면 귀찮으니까 일단 끄고 개발하죠.

이게 바로 '내 컴퓨터에선 되는데 운영에선 터지는' 주범입니다.

VaultSandbox는 이 문제를 정면으로 돌파합니다.

1. 진짜 SMTP와 진짜 TLS를 씁니다.

MailGun이나 SES 설정을 바꿀 필요가 없습니다.

수신자 도메인만 샌드박스로 돌리면, 실제 운영 환경과 똑같이 TLS 암호화DNS 검증을 수행합니다.

2. 지긋지긋한 sleep()과의 이별.

E2E 테스트 짤 때 가장 골치 아픈 게 뭔지 아시죠?

"메일 갈 때까지 5초 대기" 같은 불확실한 코드입니다.

이 도구는 SSE(Server-Sent Events)를 지원해서, 메일이 도착하면 즉시 테스트 코드에 신호를 줍니다.

더 이상 기도하며 5초를 기다릴 필요가 없다는 뜻입니다.

3. 데이터가 밖으로 안 나갑니다 (이게 핵심).

지금 제가 있는 곳처럼 보안이 빡빡한 기업에서는, 테스트 데이터를 외부 SaaS(Gmail 등)로 쏘는 게 금지되어 있습니다.

VaultSandbox는 Docker 하나로 내 VPC 안에서만 돕니다.

외부로 데이터가 한 바이트도 나가지 않죠.

보안팀 감사 받을 때 이보다 완벽한 방어 논리는 없습니다.


사용법도 허무할 정도로 간단합니다.

복잡한 설정 없이 docker-compose.yml 파일 하나면 끝납니다.

포트 25, 80, 443만 열어주면 알아서 인증서(ACME) 따오고 DNS 설정까지 끝내더군요.

제가 야생에서 구를 때는 "일단 돌아가면 장땡"이라고 생각했습니다.

하지만 규모가 커질수록 '신뢰성''보안'이 곧 개발자의 실력이 됩니다.

단순히 기능 구현에 급급해하지 마세요.

"이게 진짜 운영 환경에서도 안전한가?"

이 질문을 던질 줄 아는 개발자가 진짜 시니어라고 생각합니다.

혹시 지금도 User.sendMockEmail() 같은 코드를 믿고 배포 버튼을 누르고 계신가요?

이번 주말에는 진짜 리얼 월드 테스트 환경을 한번 구축해 보시는 걸 추천합니다.

월요일 아침이 훨씬 평화로워질 겁니다.

Poooling
PooolingAuthor

Poooling님의 다른 글

댓글 0

첫 번째 댓글을 남겨보세요!