SENDM 문자발송 플랫폼
프로젝트 개요
문자를 '보내는 기능'이 아니라
문자를 '보내는 기능'이 아니라
'멈추지 않는 발송 시스템'을 만드는 일
SENDM은 미션비가 구축해 운영해 온 문자발송 플랫폼입니다. 대량 발송에서 어려운 부분은 메시지를 보내는 API 호출 자체가 아니라, 요청이 몰려도 순서대로 처리되고, 결과가 뒤늦게 도착해도 정확히 반영되며, 일부 실패가 전체를 멈추지 않게 만드는 것입니다.
| 구분 | 문자발송 플랫폼 (구축 및 운영) |
|---|---|
| 메시지 종류 | SMS(단문) · LMS(장문) · MMS(이미지) |
| 담당 범위 | 발송 시스템 설계 · 개발 · 관리자 · 서버/DB 운영 |
| 기술 구성 | Java · Spring Boot, MyBatis, MariaDB, 발송 큐 기반 비동기 처리 |
| 서비스 | sendm.co.kr |
해결해야 했던 문제
요청과 발송의 분리
사용자가 수만 건을 한 번에 요청해도 화면은 즉시 응답해야 합니다. 접수는 큐에 적재하는 것으로 끝내고, 실제 발송은 별도로 처리하는 구조가 필요했습니다.
뒤늦게 오는 결과
발송 결과는 즉시 오지 않습니다. 요청 시점과 결과 시점을 각각 저장하고, 결과가 도착하면 해당 건을 찾아 갱신하는 방식으로 통계를 정확하게 유지합니다.
실패의 격리
특정 수신번호나 모듈에서 문제가 생겨도 전체 발송이 멈추면 안 됩니다. 건 단위로 상태를 관리하고 실패 건만 따로 재처리할 수 있게 만들었습니다.
구축 범위와 주요 기능
발송
- SMS/LMS/MMS 발송, 본문 길이에 따른 종류 판정
- 대량 발송과 예약 발송
- 발송 큐 적재 후 순차 처리(요청/발송 분리)
- 건별 상태 관리와 실패 건 재처리
운영 데이터
- 발신번호 등록·검증(등록되지 않은 번호 차단)
- 주소록/그룹 관리와 대량 업로드
- 충전·과금 처리와 잔액 관리
- 발송내역 조회와 기간별 통계
연동
- 외부 서비스에서 호출하는 발송 API
- 통신사·중계사 모듈 교체 가능한 구조
- 수신거부 처리 연동
운영 · 보안
- 관리자 권한 분리와 작업 이력
- 발송 로그를 업무 로그와 분리해 추적
- 서버·DB 운영, 배포, 백업
같은 구조를 이 홈페이지에서도 씁니다.
미션비 홈페이지는 상담·1:1문의·견적문의가 접수되면 담당자에게 문자를 보내고,
관리자 로그인 시 2차 인증 번호를 문자로 발송합니다. 이때도 발송 요청은 큐에 적재만 하고
결과는 별도로 처리하며, 발송이 실패해도 문의 등록이나 로그인 같은 본래 업무는 영향을 받지 않도록
예외를 격리해 두었습니다.
함께 보면 좋은 내용
문자 시스템을 새로 만들거나 붙이려 하시나요?
플랫폼을 통째로 구축하는 방식과, 기존 서비스에 발송 기능만 API로 붙이는 방식 중
어느 쪽이 맞는지부터 정리해 드립니다.