Fwrd 로고FwrdApp Store에서 다운로드

iPhone으로 SMS 일회용 코드를 CI와 QA 자동화에 넘기기

Fwrd 작성 · · 업데이트

SMS 일회용 코드를 CI나 QA 자동화에 넘기려면, 코드를 받는 SIM을 팀 iPhone에 넣고 단축어의 ‘메시지’ 자동화가 코드 문자를 Fwrd에 넘기게 하세요. 그러면 Fwrd가 그 문자를 내 HTTPS 웹후크로 JSON으로 게시해요. CI 작업은 그 엔드포인트에서 가장 최근 코드를 읽어 로그인 화면에 입력하면 돼요.

필요한 것: 코드를 받는 번호의 SIM이 들어 있는 iOS 26 이상의 iPhone, 단축어 앱(이미 설치돼 있어요), Fwrd, 그리고 CI가 읽을 수 있는 공개 HTTPS 주소예요. 스테이징 경로나 n8n 워크플로 같은 곳이면 돼요. Fwrd는 IP 주소와 .local 또는 .internal 이름을 거부하고 로그인 헤더도 보내지 않으니, 주소에 긴 비밀 값을 넣으세요.

SMS 코드는 왜 자동화하기 어려울까요?

SMS 코드는 러너가 아니라 휴대폰에 도착하기 때문에, 누군가 문자를 파이프라인이 읽을 수 있는 곳으로 옮겨 주기 전까지 CI가 멈춰요.

이런 검사를 만드는 팀 대부분은 코드를 받을 휴대폰이 자기 것밖에 없어요. Fwrd를 단 팀 iPhone은 그 휴대폰을 파이프라인이 읽을 수 있는 것으로 바꿔 줘요.

팀 iPhone은 언제 맞나요?

코드가 특정 통신사 번호로 와야 할 때 맞아요. 로그인하는 외부 서비스, 이미 회사 휴대폰에 묶인 스테이징 계정, 번호 종류에 따라 다르게 처리하는 흐름 같은 경우예요. Twilio의 Lookup 문서(2026년 10월 17일에 읽었어요)에 따르면 앱은 모바일 번호와 비고정 VoIP 번호를 구분할 수 있어요. Twilio는 VoIP 번호를 온라인에서 얻는 가상 번호라고 설명해요. 팀 iPhone의 SIM은 실제 통신사 번호라서, 고객에게 오는 것처럼 코드가 도착해요.

장단점은 휴대폰 하나에 번호 하나이고, 계속 켜 두고 온라인이어야 한다는 거예요. 아래 섹션에서 둘 다 다뤄요.

iPhone의 SMS 코드를 CI로 보내는 방법

Fwrd에서 코드만 남기는 웹후크 보낼 곳을 추가한 다음, 코드 문자를 Fwrd에 넘기는 ‘메시지’ 자동화를 만드세요. 엔드포인트 쪽은 웹후크 가이드에 자세히 나와 있어요.

  1. Fwrd에 웹후크를 추가하세요. Fwrd를 열고 ‘+’를 탭한 다음 ‘웹후크’를 선택하세요. ‘설정’ 필드에 엔드포인트의 HTTPS 주소 전체를 붙여 넣고, ‘테스트 메시지 보내기’를 탭해 엔드포인트가 필드를 받게 한 다음 체크 표시를 탭해 저장하세요.

  2. 코드만 남기세요. 같은 보낼 곳에서 ‘받을 문자’의 ‘일부 문자만’을 선택하고 ‘코드처럼 보임’을 켜세요. 4~8자리 코드가 들어 있는 문자만 남아요. 조건이 하나라서 무료 플랜에서도 쓸 수 있어요.

  3. ‘메시지’ 자동화를 만드세요. iOS 27에서는 단축어 앱을 열고 ‘보관함’ > ‘자동화’ 순서로 탭한 다음 ‘+’를 탭하세요. ‘단축어 설명’이 보이면 ‘편집’을 탭하세요. ‘자동화’를 탭한 다음 ‘메시지’를 탭하고, ‘보낸 사람’을 ‘메시지’로 바꾼 뒤 code 또는 서비스가 보내는 문자에 쓰이는 단어를 입력하세요. iOS 26에서는 ‘자동화’ 탭을 열고 ‘+’를 탭한 다음 ‘메시지’를 선택하고 ‘메시지 포함 내용’에 입력하세요.

  4. 묻지 않고 실행되게 하세요. iOS 27에서는 트리거 옆 화살표를 탭하고 ‘실행 전에 확인’이 꺼져 있는지 확인하세요. ⓘ > ‘개인정보 보호’에서 ‘잠겨 있는 동안 실행 허용’이 켜져 있는지 확인하세요. iOS 26에서는 ‘즉시 실행’을 선택하고 ‘다음’을 탭한 다음 ‘새로운 단축어 생성’을 탭하세요.

  5. Fwrd의 동작을 추가하세요. ‘전달’을 검색해서 ‘모든 보낼 곳으로 메시지 전달’을 추가하세요. ‘메시지’를 ‘단축어 입력’으로 설정하세요(iOS 26에서는 ‘단축어 입력’을 탭한 다음 ‘메시지’). 뒤로 가기를 탭해 저장하세요(iOS 26에서는 ‘완료’).

  6. CI에서 코드를 읽으세요. 엔드포인트가 각 본문을 도착 시각과 함께 저장하게 하세요. 실행이 코드를 요청한 뒤에는, 그 이후에 받은 가장 최근 문자를 가져오고 정규식으로 숫자를 뽑아내세요.

  7. 이제 끝났어요. 새 코드 문자가 iPhone이 잠겨 있어도 알아서 내 엔드포인트로 전달돼요.

엔드포인트는 무엇을 받을까요?

문자가 도착한 그대로 담긴 JSON 본문의 POST예요. content와 text 두 필드에 같은 내용이 들어 있어요. 타임스탬프는 없으니 시각은 내 쪽에서 기록하세요.

{
  "content": "Your verification code is 482913",
  "text": "Your verification code is 482913"
}

같은 문자에 대한 모든 시도에는 같은 Idempotency-Key 헤더가 붙으니 중복은 버릴 수 있어요. 전송이 시간 초과되거나 429 또는 5xx를 받거나 연결이 끊기면 Fwrd가 최대 두 번 다시 시도해요. 15초 안에 2xx 응답이 오면 전달된 것으로 세고, 리디렉션은 거부해요. Fwrd의 ‘설정’에서 ‘보낸 사람 포함’을 켜고 Fwrd의 동작에서 ‘보낸 사람’을 고르면 본문에 sender 필드도 들어가요. 여러 서비스가 같은 번호로 문자를 보낼 때 편해요.

이 설정으로 할 수 없는 일

  • 번호 하나는 한 번에 실행 하나만 맡을 수 있어요. 같은 번호로 코드를 요청하는 병렬 작업은 서로의 코드를 읽을 수 있어요. 로그인 단계를 줄 세우거나 각 코드를 요청한 실행과 짝지으세요.
  • 무료 플랜은 코드 15건까지예요. 그 뒤에는 다음 달까지 코드가 멈추고, 바쁜 파이프라인은 금방 거기에 닿아요. Fwrd Pro는 제한이 없고 요금은 미국 기준으로 월 $4.99 또는 연 $29.99예요.
  • 받기 전용이에요. Fwrd는 CI를 대신해 iPhone에서 문자를 보낼 수 없어요.
  • 휴대폰이 켜져 있고 온라인이어야 해요. 재시작한 뒤에는 누군가 잠금을 한 번 해제할 때까지 전달이 기다리고, 3일 동안 잠금을 해제하지 않은 iPhone은 스스로 재시작해요. 충전해 두고 손이 닿는 곳에 두세요.
  • Fwrd의 동작은 활성화된 모든 보낼 곳에 닿아요. 같은 휴대폰이 다른 곳으로도 전달한다면 ‘보낼 곳으로 메시지 전달’을 대신 쓰고 웹후크를 고르세요.
  • 새 문자만 보내요. 자동화가 생기기 전에 도착한 코드는 전달되지 않아요.

파이프라인이 아니라 코드 자체가 필요한 사람은 팀과 Slack에서 2FA 코드 공유하기에서 그 설정을 볼 수 있어요.

자동화 속 SMS 코드에 대한 질문

Selenium이나 Playwright가 SMS 코드를 직접 읽을 수 있나요?

아니요. 브라우저 자동화는 휴대폰의 메시지를 볼 수 없어요. 먼저 무언가가 문자를 휴대폰 밖으로 옮겨야 해요. 단축어 자동화와 Fwrd가 스크립트가 읽는 웹후크로 게시하는 방식이 그 예예요.

코드가 Fwrd 서버를 거치나요?

아니요. Fwrd에는 계정도 자체 서버도 없어요. 문자는 iPhone에서 내 HTTPS 엔드포인트로 바로 가고, 주소는 iPhone의 키체인에 보관돼요.

단축 번호 발신자도 되나요?

네. 자동화는 누가 보냈는지가 아니라 문자 내용을 기준으로 맞춰요. 연락처에 없는 짧은 번호에서 온 코드도 code 같은 단어로 걸러져요.

n8n 워크플로를 엔드포인트로 쓸 수 있나요?

네. POST로 설정한 Webhook 노드를 추가하고 프로덕션 URL을 쓴 다음 워크플로를 게시하세요. 게시하지 않으면 응답하지 않아요. 단계는 iPhone 문자를 Zapier, Make, n8n으로 보내기에 있어요.

SMS 코드를 CI가 읽을 수 있는 곳으로 보내고 싶으세요?

Fwrd는 팀 iPhone에 온 조건에 맞는 문자를 내 HTTPS 웹후크로 JSON으로 게시해요. 계정도, 중간의 Fwrd 서버도 없어요. 매달 15건까지 무료로 시작하세요.

매달 15건까지 무료예요. Pro는 전달 건수와 필터의 제한을 없애 주고 ‘전달 안 함’ 목록을 더해 줘요. 요금은 월 $4.99 또는 연 $29.99이고, 대상 고객은 연간 플랜에서 7일 무료 체험을 쓸 수 있어요.

App Store에서 다운로드

iPhone · iOS 26 이상