Twilio
Twilio
SMS·음성 같은 통신 기능을 바로 넣어야 할 때, Twilio는 전화번호 하나로 코드 몇 줄만으로 메시지와 통화를 프로그램에 붙여주는 클라우드 통신 플랫폼이에요. 전 세계 통신망(PSTN)과 연결된 가상 전화번호를 발급받아, REST API로 SMS를 보내고 음성 통화를 받고, 웹훅으로 이벤트를 받을 수 있죠.
한눈에 보면 역할이 이렇게 나뉘어요. Programmable Messaging은 SMS·MMS·WhatsApp 메시지를, Programmable Voice는 착신·발신 통화와 컨퍼런스 콜을, 그리고 TwiML은 통화 흐름을 XML로 제어하는 지시문을 담당해요. 모든 요청은 REST API(베이스 URL https://api.twilio.com/2010-04-01)를 거치고, 이벤트 알림은 웹훅으로 우리 앱에 전달돼요.
핵심 개념
- Programmable Messaging — SMS·MMS·RCS·WhatsApp 메시지를 하나의 API로 전송·수신하는 제품이에요. 앱이나 인터넷 연결이 없어도 도달하는 SMS가 가장 높은 열람률을 보여줘요.
- Programmable Voice — 웹·모바일 앱에 착신·발신 음성 통화를 붙이는 제품이에요. IVR(자동 응답), 컨퍼런스 콜, 자동 설문, SIP 연동까지 가능해요.
- TwiML — Twilio가 정의한 XML 태그로 통화 동작을 지시하는 마크업 언어예요.
<Say>(텍스트 읽기)·<Dial>(통화 연결)·<Gather>(키패드 입력 수집) 같은 동사(verb)와 명사(noun)로 흐름을 짜요. - Webhook — 통화나 SMS 같은 이벤트가 생겼을 때 Twilio가 우리 앱의 URL로 보내는 HTTP 요청이에요. REST API가 앱→Twilio 방향이라면, 웹훅은 Twilio→앱 방향이에요.
- Conference — 2명에서 250명까지 참여 가능한 다자간 음성 통화예요. 참가자 대기·음소거·보류·코치(귓속말) 같은 기능을 API와 TwiML로 관리해요.
사용 사례 / 실제 적용
Twilio는 하나의 플랫폼에서 SMS 알림, 음성 응대, 회의 통화, 발신 마케팅까지 통신이 필요한 거의 모든 흐름을 코드로 제어할 수 있게 해줘요. 예를 들어 예약 알림 SMS를 보내고, 걸려온 전화를 IVR로 받아 키패드 입력을 수집하고, 상담원이 여러 명일 땐 컨퍼런스에 참여시키는 식으로요. 모든 요청은 HTTP Basic 인증(API key를 ID/비밀번호로 사용)으로 보호되고, TwiML 응답으로 통화 동작을 되돌려줘요.
운영할 때 놓치기 쉬운 점은 웹훅 검증과 재시도예요. 웹훅이 우리 서버로 온 요청인지 서명으로 검증해야 하고, 타임아웃·재시도 설정도 웹훅 설정 API로 제어할 수 있어요. 또 발신 번호는 A2P 10DLC 규제를 따르는 준비가 필요해요.