작업사례
부동산 매물 문자 자동 발송 앱, 매일 10시 중개사무소 100곳에 알아서 보내요
2026년 9월 3일
발품제로 자동발송은 매일 아침 10시 8분에 서울·경기 중개사무소를 찾아 휴대폰 번호가 확인된 100곳에 매물 안내 문자를 스스로 보내는 안드로이드 앱입니다. 사람이 문자 앱을 열거나 전송 버튼을 누르지 않습니다. 2026년 9월 3일 하루 만에 만들어 그날 저녁부터 개발자 본인 폰에서 돌기 시작했고, 스토어에는 올리지 않는 개인용 앱입니다.
| 항목 | 내용 (2026-09-03 기준) |
|---|---|
| 용도 | 본인 소유 매물 안내 문자를 중개사무소에 자동 발송 |
| 하루 발송 | 휴대폰 번호가 확인된 사무소 100곳, 문자 간 2초 |
| 실행 시각 | 매일 10:08, 토·일·공휴일 제외 |
| 순회 지역 | 서울 25개 구 + 경기 21개 시·구 = 46곳 순환 |
| 전송 방식 | 앱이 SmsManager로 직접 전송(문자 앱·전송 버튼 없음) |
| 개발 기간 | 2026-09-03 하루, 약 6시간(Flutter + Kotlin, 테스트 11개) |
| 배포 | 없음, 개발자 폰 1대 전용(플레이 정책상 SEND_SMS 앱 등록 불가) |
| 아이폰 | 불가(iOS는 사용자 확인 없는 문자 전송을 막음), 서버 API 방식으로만 가능 |
왜 만들었나요?
노마랩은 발품제로라는 앱을 구글 플레이에 무료로 배포하고 있습니다. 지역 중개사무소를 검색해 문자 수신자로 한 번에 넣어주는 앱인데, 마지막 전송 버튼은 사람이 누릅니다. 개발자 본인이 안산 본오동 건물 매매를 알리려고 이 앱으로 매일 100곳씩 문자를 보내다 보니, 지역을 고르고 100곳을 선택하고 문자 앱에서 전송을 누르는 일이 매일 10분 넘게 걸리는 수작업으로 남았습니다. 그 수작업을 0분으로 만드는 것이 목표였습니다.
매일 어떤 일을 대신하나요?
앱을 열어두지 않아도 안드로이드 알람이 정해진 시각에 앱을 깨우고, 아래 여섯 단계를 화면 없이 처리합니다. 2026년 9월 3일 설정 기준으로 순회 지역은 서울 25개 구와 경기 21개 시·구를 합쳐 46곳이고, 하루 발송 수는 100통입니다.
| 단계 | 하는 일 | 기준 |
|---|---|---|
| 1. 깨어나기 | 정확한 알람이 앱을 실행 | 매일 10:08, 토·일·공휴일 제외 |
| 2. 크롤링 | 현재 순서의 지역 중개사무소 목록 수집 | 지역당 하루 1회만 조회(캐시) |
| 3. 번호 확인 | 사무소마다 상세를 열어 휴대폰 번호 추출 | 20건씩 병렬 조회, 유선번호만 있으면 30일간 제외 |
| 4. 큐 만들기 | 이번 바퀴에 안 보낸 곳만 골라 100곳 채우기 | 한 지역이 모자라면 다음 지역으로 이어서 |
| 5. 발송 | 저장된 문구를 한 통씩 직접 전송 | 문자 간 2초, 100통에 약 3분 20초 |
| 6. 기록·알림 | 발송 이력 저장, 시작·완료·오류 알림 | 46곳을 다 돌면 다음 날 서울부터 다시 |
보낸 곳은 이력에 남아 같은 바퀴에서는 다시 보내지 않습니다. 사무소 ID뿐 아니라 전화번호로도 대조하므로 같은 번호를 쓰는 사무소 두 곳에 중복 발송하지 않습니다. 발송에 실패한 번호는 재시도하지 않습니다. 같은 번호에 반복 발송하면 통신사 스팸 필터에 걸릴 위험이 커지기 때문입니다.
앱을 열어두지 않아도 보내지나요?
네, 앱을 완전히 닫아 두어도 매일 10시 8분에 시스템이 앱을 깨워 화면 없이 보냅니다. 안드로이드 알람 관리자에 등록된 시각이 되면 앱의 알람 수신기가 포그라운드 서비스를 띄우고, 크롤링부터 발송까지 끝난 뒤 스스로 종료합니다. 하루 100통 기준 실행 시간은 발송 약 3분 20초를 포함해 보통 5분 안이고, 실행 중에는 상단에 "자동발송 실행 중" 알림이 떠 있다가 끝나면 완료 알림으로 바뀝니다. 최근 앱 목록에서 밀어서 닫는 것은 괜찮지만, 설정에서 "강제 종료"를 하거나 폰이 꺼져 있으면 그날은 건너뜁니다.
실제 화면
발품제로와 무엇이 다른가요?
| 발품제로 (플레이스토어) | 발품제로 자동발송 (개인용) | |
|---|---|---|
| 문자 전송 | 기본 문자 앱을 열어 사용자가 전송 버튼을 누름 | 앱이 SmsManager로 직접 전송, 버튼 없음 |
| 실행 시점 | 사용자가 앱을 열 때 | 매일 정해진 시각에 자동 |
| 지역 이동 | 매번 사람이 선택 | 46곳을 순서대로 순회, 한 바퀴 돌면 처음부터 |
| 배포 | 구글 플레이 무료 배포 | 개발자 폰 1대 전용, 배포 없음 |
둘 다 중개사무소 검색에는 같은 크롤러를 씁니다. 공개 웹사이트에 게시된 사무소 정보를 조회 시점에 읽어오는 방식으로, 로그인 세션 유지와 페이지 넘김 처리는 전국 공인중개사 사무소 연락처 크롤링 프로그램을 납품하며 다져둔 코드를 그대로 가져왔습니다.
어떻게 만들었나요?
Flutter로 화면과 발송 로직을 쓰고, 안드로이드 전용 부분은 Kotlin으로 직접 붙였습니다. 2026년 9월 3일 첫 커밋(15:56)부터 자동발송을 켠 시각(22:13)까지 약 6시간이 걸렸고, 크롤러 복사본을 제외한 Dart 코드 2,211줄과 Kotlin 513줄, 자동 테스트 11개로 이루어져 있습니다. 노마랩이 AI 코딩 도구로 설계·구현·실기기 검증까지 하루에 끝낸 사례입니다.
- 직접 전송 - 문자 앱을 거치지 않고 안드로이드 SmsManager를 호출하는 로컬 플러그인을 만들었습니다. 긴 문구는 자동으로 나눠 보냅니다.
- 정확한 알람과 포그라운드 서비스 - 흔히 쓰는 Flutter 알람 플러그인은 백그라운드 작업이 끝나기를 기다려주지 않아 몇 분짜리 크롤링이 중간에 끊깁니다. 그래서 알람 수신기와 포그라운드 서비스를 Kotlin으로 직접 만들어, 작업이 끝났다고 알릴 때까지 최대 15분 동안 화면 없이 실행을 유지합니다.
- 재부팅 복구 - 폰을 껐다 켜도 저장해 둔 알람 시각을 읽어 다시 등록합니다.
- 주말·공휴일 제외 - 2026년과 2027년 대체공휴일까지 앱에 넣어두고 쉬는 날에는 "휴무" 알림 한 건만 보냅니다.
안드로이드에서 문자를 자동으로 보낼 때 막히는 것 세 가지
이 사례에서 실제로 부딪힌 제약입니다. 같은 종류의 앱을 생각하는 분이라면 미리 알아두는 편이 좋습니다.
- 구글 플레이에 올릴 수 없습니다. 기본 문자 앱이 아닌 앱이 문자 전송 권한(SEND_SMS)을 쓰면 플레이 정책상 등록이 거부됩니다. 그래서 이 앱은 설치 파일을 폰에 직접 넣는 개인용으로만 만들었고, 배포용 발품제로는 문자 앱에 넘기는 방식을 유지합니다.
- 30분에 30통 제한이 있습니다. 안드로이드는 기본 문자 앱이 아닌 앱이 30분 안에 30통을 넘기면 확인창을 띄워 자동화를 멈춥니다. 본인 폰이라 개발자 도구(adb)로 이 한도를 올려 하루 100통을 한 번에 보내게 했습니다. 폰을 바꾸면 다시 설정해야 합니다.
- 절전 모드가 인터넷을 끊습니다. 배터리 최적화 제외를 허용하지 않으면 잠금 상태에서 크롤링이 실패합니다. 앱 화면에 권한 네 가지를 표시해 하나라도 빠지면 바로 보이게 했습니다.
아이폰에서는 이 방식 자체가 불가능합니다. iOS는 앱이 사용자 확인 없이 문자를 보내는 것을 허용하지 않으므로, 아이폰이라면 문자 API 업체를 연동하는 서버 방식으로 만들어야 합니다.
문자 발송에 법적 문제는 없나요?
이 앱은 개발자 본인이 소유한 매물을 본인 휴대폰 번호로 중개사무소에 알리는 용도이고, 발신 번호가 실제 번호라 받는 쪽이 바로 회신하거나 전화할 수 있습니다. 영리 목적 광고성 문자는 정보통신망법상 사전 동의 대상이므로, 같은 구조로 불특정 다수에게 광고를 보내는 용도로는 제작하지 않습니다. 크롤링 부분의 판단 기준은 크롤링은 합법일까 불법일까 글에 정리해 두었습니다.
비용이 드나요?
이 앱 자체는 판매하지 않습니다. 개인 폰 한 대에서 도는 맞춤 앱이라 스토어에 올릴 수 없고, 문자 요금은 폰 요금제를 따릅니다. 비슷한 앱이 필요하다면 발송 대상 수집 방식과 문자 채널(본인 폰 직접 전송, 문자 API 업체 연동)에 따라 견적이 달라지는데, 기준은 안드로이드 앱 제작 비용 글에 공개되어 있습니다. 엑셀 명단으로 보내는 PC 프로그램 형태는 대량 문자 자동 발송 프로그램 글을 참고하세요.
비슷한 앱이 필요하신가요?
공개 데이터를 모아 반복 연락 업무를 자동으로 처리하는 앱이나 프로그램은 노마랩이 직접 만들어 쓰고 있는 분야입니다. 어떤 대상에게 무엇을 보내고 싶은지 카카오톡 채널로 알려주시면 가능한 방식과 견적을 무료로 알려드립니다. 정식 의뢰 절차는 제작 의뢰 페이지에 있습니다.