문자로 온 네이버페이 포인트 기프티콘, AI 브라우저 에이전트에게 등록시켜 봤습니다
문자함에 있던 네이버페이 포인트 기프티콘 2장(15,000원, 10,000원)을 AI 브라우저 에이전트가 찾아서 등록했습니다. 다만 요청 한 번으로 끝나는 완전 자동화는 아니었습니다. 쿠폰 위치를 다시 알려주고, 등록 직전에 승인하고, 네이버페이 6자리 비밀번호는 직접 입력했습니다. 마지막에는 포인트 내역에서 두 건의 적립을 확인했습니다.

AI로 생성한 설명용 일러스트입니다. 실제 서비스 화면이 아닙니다.
배경
통신사 가입 사은품으로 네이버페이 포인트 기프티콘이 문자 두 통으로 왔습니다. 하나는 기프티쇼(1588-6474), 다른 하나는 GS엠비즈(1544-1151)에서 보낸 것이었고, 둘 다 등록 기한이 두 달 정도였습니다.
이런 쿠폰은 받았을 때 바로 등록하지 않으면 잊어버리기 쉽습니다. 문자를 열고, 링크를 타고, 쿠폰번호를 복사하고, 네이버페이에서 등록 메뉴를 찾아 들어가는 과정이 귀찮아서 미루게 되는 것이죠.
마침 브라우저를 직접 조작하는 AI 에이전트(Aside)를 쓰고 있었고, 문자는 Google 메시지 웹에서 볼 수 있는 상태였습니다. 그래서 쿠폰 등록을 맡겨 봤습니다.
목표
- 문자함에서 기프티콘을 찾고, 쿠폰번호를 추출하고, 네이버페이에 등록하는 과정을 사람 개입 최소로 끝내기
- 돈이 걸린 비가역 작업(쿠폰 등록은 취소가 안 됩니다)이므로, 실행 직전에는 반드시 사람이 승인하기
- 결제 비밀번호는 절대 에이전트에게 넘기지 않기
- "등록됐다"는 판단을 화면 문구가 아니라 실제 포인트 내역으로 검증하기
구현 흐름
1. 문자에서 기프티콘 찾기
시작부터 매끄럽지는 않았습니다. 에이전트는 열려 있던 문자 대화의 이미지를 바로 확인하지 못하고 쿠폰 종류와 위치를 되물었습니다. 이미 띄워 둔 쿠폰이라고 다시 알려준 뒤에야 해당 대화와 이미지를 확인했고, 두 번째 쿠폰은 제가 발신번호를 추가로 알려줬습니다.
첫 번째 문자에서는 에이전트가 읽은 페이지 요약에 링크가 일부만 나타났습니다. 이 문자열을 그대로 열었더니 기프티쇼에서 "페이지를 찾을 수 없습니다"가 떴고, DOM의 실제 href를 읽어야 전체 URL(뒤에 붙은 파라미터 포함)이 나왔습니다. 페이지 요약에서 읽은 문자열만 믿지 말고 실제 링크를 확인해야 하는 지점이었습니다.
2. 쿠폰번호 추출: 텍스트 vs 이미지
두 장의 쿠폰은 번호가 있는 위치가 달랐습니다.
- GS엠비즈 쿠폰: 문자 본문에 쿠폰번호가 텍스트로 들어 있었고, 심지어
pointcoupon?couponNo=...형태로 번호가 미리 채워진 등록 링크까지 있었습니다. 이 경우는 링크만 열면 입력이 끝납니다. - 기프티쇼 쿠폰: 링크를 열면 쿠폰 페이지가 나오는데, 페이지 요약에서는 바코드 번호가 읽히지 않았고 "바코드 번호 복사" 버튼만 보였습니다. 에이전트는 쿠폰 이미지를 내려받아 번호를 읽은 뒤, 페이지 HTML에 같은 숫자열이 있는지 대조해서 오독 위험을 줄였습니다.
이미지 판독 결과를 그대로 믿지 않고 두 번째 근거로 교차 확인한 것이 핵심입니다. 번호가 틀렸다면 등록이 실패할 수 있으므로, 입력 전에 원본과 대조하는 편이 안전합니다.
3. 등록 직전 승인, 비밀번호는 사람이
네이버페이 포인트쿠폰 등록 페이지(네이버페이 > 쿠폰 > 포인트쿠폰 등록)에 번호를 채운 뒤, 에이전트는 "등록하기"를 누르기 전에 멈추고 승인을 요청했습니다. 쿠폰명, 금액, 유효기간, 그리고 "등록하면 취소가 안 된다"는 점을 요약한 확인 창이었습니다.
승인 후 등록하기를 누르면 네이버페이 6자리 결제 비밀번호 입력 화면이 뜹니다. 에이전트가 읽은 페이지 요약에는 키패드의 숫자 라벨이 노출되지 않았습니다. 이번에는 비밀번호를 에이전트에게 전달하지 않고 직접 입력했습니다. 에이전트는 이 탭을 앞으로 띄워 놓고 "직접 입력해 주세요"라고만 한 뒤, URL이 바뀔 때까지 기다렸다가 다음 단계를 이어갔습니다.
4. 결과 검증: 완료 화면이 아니라 내역으로
첫 번째 쿠폰은 비밀번호 입력 후 "쿠폰등록 완료! 금액 15,000원" 화면이 떴습니다. 두 번째 쿠폰은 달랐습니다. 에이전트가 다음 화면을 확인했을 때는 빈 등록 폼이 보였습니다. 완료 화면이 아예 뜨지 않았던 것인지, 중간에 닫힌 것인지는 확인하지 못했습니다.
이 상황에서 에이전트가 "등록된 것 같다"고 말하고 끝냈다면 실패입니다. 대신 포인트 내역 페이지로 가서 실제 적립 건을 확인했습니다. 결과는 아래와 같았습니다.
| 시간 | 항목 | 금액 |
|---|---|---|
| 19:17 | 기프티쇼 쿠폰적립 | +15,000원 |
| 19:18 | GS&쿠폰적립 | +10,000원 |
두 건 모두 정상 적립되어 있었고, 포인트 잔액도 그만큼 늘어 있었습니다.
결과
- 기프티콘 2장, 총 25,000원 포인트 등록 완료
- 사람이 한 일: 쿠폰 위치 재안내, 두 번째 발신번호 전달, 승인 2회, 비밀번호 직접 입력
- 에이전트가 한 일: 문자 탐색, 링크 복원, 이미지 판독과 교차 확인, 등록 페이지 진입과 입력, 결과 검증
- 이번 세션에서는 작업 시간이나 시간 절감률을 따로 측정하지 않았습니다
배운 점
포인트를 전환하는 작업에서는 승인과 인증을 분리하는 것이 중요했습니다. 에이전트가 잘하는 것은 탐색과 입력이고, 사람이 맡아야 하는 것은 비가역 실행의 승인과 인증입니다. 이번에는 "등록하기 클릭 직전"의 승인과 "비밀번호 입력"을 사람에게 남겼습니다. 쿠폰을 찾는 과정의 추가 설명까지 없어졌다는 뜻은 아닙니다.
완료 화면을 놓쳤다면 실제 적립 내역을 확인해야 합니다. 두 번째 쿠폰에서 완료 화면을 보지 못했을 때, 포인트 내역이라는 다른 근거로 확인한 덕분에 재등록 시도 같은 실수를 피할 수 있었습니다. 에이전트에게 작업을 맡길 때는 "무엇을 보고 끝났다고 판단할지"를 미리 정해 두는 편이 좋습니다.
화면에 보이는 것과 실제 데이터가 다를 수 있습니다. 페이지 요약에서 잘린 링크, 이미지에 표시된 쿠폰번호처럼 사람이라면 자연스럽게 넘어가는 지점에서 에이전트는 막히거나 틀립니다. 이번엔 에이전트가 스스로 href를 다시 읽고 HTML을 대조했지만, 이런 판단이 항상 자동으로 나온다고 보긴 어렵습니다.
한계도 분명했습니다. 네이버페이 포인트 내역 페이지 주소를 에이전트가 추측으로 몇 번 열었다가 전부 404가 났고, 결국 메뉴를 따라 들어가서야 찾았습니다. 그리고 이번에는 보안 키패드 단계에서 사람이 입력하도록 멈췄습니다. 모든 인증 화면을 기술적으로 처리할 수 없다는 결론이 아니라, 이번 작업에서 정한 역할 분담입니다.
다음 액션
이번에 확인한 범위는 이미 로그인한 Google 메시지 웹과 네이버페이에서 쿠폰 두 장을 등록한 것입니다. 새 문자 자동 감지나 정기 실행은 구현하지 않았고, 카카오톡 선물함 등 다른 채널도 시험하지 않았습니다.
반복 작업으로 확장한다면 미등록 쿠폰인지 확인하는 단계와, 실패했을 때 재시도해도 되는지 판단하는 단계가 먼저 필요합니다. 등록 승인과 비밀번호 입력을 사람에게 남기고, 적립 내역을 확인한 뒤 종료하는 흐름은 그대로 유지할 수 있습니다.