인프라 권한은 감추고 도메인 로직은 나누는, 채널톡 앱스토어팀의 메일 릴레이 익스텐션 설계 비하인드
채널톡 앱스토어팀에서 채팅 API가 없는 외부 서비스의 이메일 문의를 채널톡 유저챗과 완벽하게 유기적으로 연동하는 'Mail Relay Extension'의 설계 방식을 공유합니다. 개별 연동 앱이 민감한 메일 인프라 및 저장소 권한을 직접 가지지 않도록 공통 보안 영역을 구축하고, SNS-SQS 비동기 큐 처리와 순차적 배포 검증을 적용해 인프라 안전성을 한층 더 강화했습니다.
외부 서비스 통합 시 공통적인 파일/이메일 전송 인프라 권한을 중앙화하고 개별 도메인 비즈니스 로직만 유연하게 다루고 싶은 백엔드 개발자 및 시스템 아키텍트에게 권장합니다.
채팅 API를 지원하지 않고 이메일 알림만 발송하는 외부 마켓플레이스나 쇼핑몰 문의로 인해, 상담사가 채널톡과 외부 메일함을 번갈아 이동하며 대응해야 하는 불편함과 문의 누락 및 중복 응대 위험이 존재했습니다.
채널 App Store 내에 Mail Relay Extension을 설계하여 공통 메일 수발신 인프라 및 보안 권한 검증을 일원화하고, 개별 앱은 SQS 대기열을 거친 이벤트를 받아 Native Function(브로커)을 통해 raw MIME 원문 조회 및 답장 발송을 수행하도록 구현했습니다.
기존 이메일 수신 경로를 유지하면서 앱 전용 메일 유입만 완전히 격리 분리했으며, 신규 이메일 기반 연동 앱을 개발할 때마다 복잡한 이메일 인프라 설정이나 권한 복제 없이 안정적인 재처리(DLQ) 구조 기반 아래 비즈니스 로직에만 집중할 수 있게 되었습니다.
Trade-off
App Store가 메일을 파싱하지 않고 중립적 브로커 역할만 수행하므로 각 연동 앱은 직접 raw MIME 데이터 파싱, 주소 포맷 해독, 중복 수신 및 스레딩 처리를 직접 구현해야 해 개별 도메인 로직 구현 부담이 존재합니다.
채널톡 내부에서 메일 수발신 인프라와 외부 연동 애플리케이션 간의 통합 연계를 처리해 주는 공통 추상화 계층입니다.
이메일 헤더, 본문, 첨부파일, 수발신 정보 등을 포함하는 가공되지 않은 이메일 본래의 텍스트 원문 포맷입니다.
분산 애플리케이션의 메시지 대기열 서비스(SQS)와 처리 실패 시 디버깅과 안전한 추적을 돕는 데드 레터 큐(DLQ) 메커니즘입니다.