CHALLENGE
클라이언트가 필요로 한 이유
클라이언트는 신규 사업자 기본 정보를 확보한 뒤 연락처를 다시 검색하고, 영업 가능한 목록으로 정리하는 일을 반복하고 있었습니다. 공공 정보와 포털 검색 결과의 출처가 달라 같은 사업자가 중복되거나 연락처를 찾지 못한 이유가 남지 않는 문제가 있었습니다.
필요했던 것은 단순 수집기가 아니라 수집 결과가 실제 영업 활동으로 이어지는 운영 흐름이었습니다. 기본 정보와 연락처를 안전하게 병합하고, 실패 이유와 통화 결과를 남겨 다음 접촉 대상을 좁힐 수 있어야 했습니다.
신규 개업한 소상공인을 대상으로 아웃바운드 영업을 하는 고객사는 영업 리드를 수작업으로 확보하고 있었습니다. 공개된 신규 사업자 정보에는 상호와 사업장 주소, 업종, 등록일이 담기지만 사업장 전화번호는 포함되지 않아, 목록을 확보한 뒤 연락처를 따로 찾는 작업이 이어졌습니다.
공공데이터에는 사업장 전화번호가 포함되지 않아, 목록을 확보해도 영업에 착수하려면 연락처를 별도로 찾아야 하는 구조
요건으로 제시된 핵심 문제
| 문제 | 요건에 반영된 내용 |
|---|---|
| 연락처 공백 | 기본 정보와 연락처의 출처가 달라, 상호와 주소 조합으로 연락처를 조회해 병합하는 단계가 요건에 포함됨 |
| 수집 주기 미보장 | 수작업 확보는 일정한 주기로 반복하기 어려워, 하루 1회 정기 수집이 요건으로 제시됨 |
| 매칭 실패 추적 불가 | 연락처를 찾지 못한 건을 사유별로 남기지 않으면 재시도 대상을 특정할 수 없어, 실패 사유 기록이 요건에 포함됨 |
| 활용 형태 불일치 | 영업팀이 바로 쓰는 형태가 필요해, 조회 결과의 엑셀 내보내기가 요건에 포함됨 |
구축의 과제는 출처가 다른 두 데이터를 하나의 레코드로 합치는 규칙과, 매칭에 실패한 건을 어떻게 남길지를 먼저 확정하는 것이었습니다.
클라이언트 요청사항과 기획 방향
| 클라이언트 요청 | 이렇게 기획한 이유 | 해결 방식 |
|---|---|---|
| 신규 사업자와 연락처를 한 목록으로 제공 | 출처가 다른 데이터를 담당자가 수기로 합치면 중복과 오매칭이 발생 | 사업자 식별값을 기준으로 기본 정보와 연락처를 단계적으로 병합 |
| 연락처 미확인 건도 이유를 남겨달라는 요청 | 실패 건을 삭제하면 재시도 가치와 수집 품질을 판단할 수 없음 | 결과 없음·미표기·식별 불가를 별도 상태로 기록 |
| 수집 후 통화 이력까지 이어서 관리 | 목록을 파일로 내보낸 뒤 결과가 돌아오지 않으면 다음 우선순위를 정할 수 없음 | 수집 상태와 영업 상태를 분리하고 통화·다음 조치일을 누적 |
SOLUTION
시온랩은 기본 정보 수집과 연락처 매칭을 하나의 수집 작업으로 묶고, 그 결과를 영업팀이 조회하고 내보내는 화면까지 끊기지 않게 연결하는 구조로 설계했습니다. 여기에 더해, 목록이 밖으로 나간 뒤 결과가 돌아오지 않는다는 점을 확장 과제로 제안했습니다.
시스템 구조
수집은 기본 정보를 먼저 확정한 뒤 연락처를 덧붙이는 2단 구조입니다. 연락처를 찾지 못해도 사업자 레코드는 남으며, 실패 사유가 함께 기록되어 다음 수집에서 재시도 대상이 됩니다.
흐름 1: 수집과 연락처 매칭
한 번의 수집 실행은 신규 사업자를 추가하는 단계와 연락처를 채우는 단계로 나뉘고, 각 단계의 결과가 작업 단위로 집계됩니다.
흐름 2: 조회와 권한 분리
발주 요건은 관리자 대시보드 하나였으나, 데이터를 쓰는 사람과 수집을 제어하는 사람이 다르다는 점을 반영해 역할을 둘로 나누는 안을 제안했습니다. 영업 담당은 목록을 조회하고 내보내며, 수집 실행과 데이터 수정은 관리자만 수행합니다.
흐름 3: 수집 이후의 영업 활용 (확장 제안)
발주 요건이 정의한 시스템의 출력 경계는 엑셀 내보내기까지였습니다. 그러나 검수 기준이 연락처 매칭률인 이상, 목록이 밖으로 나간 뒤 무엇이 일어났는지 시스템이 알지 못하면 다음 수집의 우선순위를 정할 근거가 없습니다. 통화 결과를 시스템으로 되돌려 받는 구간을 확장 범위로 제안했습니다.
같은 사업자에 두 종류의 상태를 둡니다. 하나는 시스템이 수집으로 갱신하는 연락처 상태이고, 다른 하나는 사람이 통화로 갱신하는 영업 상태입니다. 두 상태를 분리해 두어야 연락처 재매칭이 통화 이력을 지우지 않습니다.
데이터 구조
사업자를 중심에 두고, 연락처와 매칭 상태를 사업자 레코드에 함께 둡니다. 통화 기록만 별도 테이블로 분리하고, 수집 작업은 회차별 집계를 따로 남깁니다.
- 사업자는 사업자등록번호로 유일하게 식별: 같은 사업장이 여러 회차에서 다시 수집되어도 새 레코드를 만들지 않고 기존 레코드를 갱신합니다.
- 연락처는 별도 이력 테이블을 두지 않는다: 최종 연락처와 매칭 상태, 실패 사유를 사업자 레코드에 함께 두어, 목록 조회 한 번으로 영업 가능 여부를 판단합니다.
- 연락처 상태는 네 가지로 고정: 대기, 진행 중, 매칭 완료, 매칭 실패로 두어, 아직 시도하지 않은 건과 시도했으나 실패한 건을 구분합니다.
- 실패는 사유로 나눈다: 검색 결과 없음, 연락처 미표기, 동명 사업장으로 식별 불가를 각각 다르게 기록해, 재시도로 해결되는 건과 그렇지 않은 건을 분리합니다.
- 수집 상태와 영업 상태는 같은 레코드에 두되 서로 침범하지 않는다: 수집이 갱신하는 값과 통화가 갱신하는 값을 분리해, 재매칭이 담당자·통화 횟수·영업 단계를 덮어쓰지 않도록 규칙을 고정했습니다.
- 통화 기록만 이력 테이블로 분리: 한 사업자에 여러 건이 쌓이고 시간 순서가 의미를 가지므로 별도 테이블로 두고, 사업자가 병합되면 기록도 함께 이관합니다.
- 수집 작업은 집계만 남긴다: 회차마다 실행 시각과 수집, 매칭, 실패 건수를 기록해 매칭률 추이를 확인하되, 개별 사업자를 회차에 종속시키지 않습니다.
- 활용 범위는 내부 영업으로 한정: 연락처는 내부 영업 목적으로만 조회하고 제3자에게 제공하지 않는 것을 전제로 권한과 내보내기 경로를 설계했습니다.
수집 결과를 확인하는 사람과 수집을 제어하는 사람이 다르다는 점을 전제로, 조회 계열과 변경 계열을 화면 단위가 아니라 권한 단위로 분리했습니다.
BUILD
구축 방향과 데이터 처리 로직
사업자등록번호를 중심 식별값으로 두고, 기본 정보 수집과 연락처 매칭을 별도 단계로 구성했습니다. 재수집 시에는 연락처 관련 값만 갱신하고 담당자, 통화 횟수, 영업 단계는 보존해 자동 수집이 사람의 영업 이력을 덮어쓰지 않도록 했습니다.
| 구간 | 들어오는 데이터 | 판정·처리 기준 | 다음 상태 |
|---|---|---|---|
| 기본 정보 수집 | 사업자번호, 상호, 주소, 업종, 등록일 | 기존 식별값과 비교해 신규·갱신 판정 | 사업자 레코드 생성 또는 보완 |
| 연락처 매칭 | 상호, 주소, 검색 결과 | 동일 사업장 확인과 실패 사유 분류 | 연락 가능 또는 재검토 상태 |
| 영업 활동 | 통화 결과, 담당자, 다음 조치일 | 접촉 단계와 후속 일정 분리 저장 | 오늘의 접촉 대상과 퍼널 갱신 |
VALIDATION
검증한 업무 범위
| 검증 구간 | 확인한 상황 | 완료 기준 |
|---|---|---|
| 중복 방지 | 같은 사업자가 여러 수집 회차에 등장 | 한 레코드만 유지되고 최신 기본 정보만 반영 |
| 매칭 실패 | 결과 없음, 연락처 미표기, 동명 사업장 | 사유별 상태가 남고 재시도 대상을 구분 |
| 이력 보존 | 연락처 재매칭 후 기존 통화 기록 조회 | 수집 갱신 뒤에도 담당자와 통화 이력이 유지 |
비슷한 업무에 적용할 수 있는 부분
신규 점포, 입점 후보, 협력사 발굴처럼 공개 정보와 연락 수단을 결합해야 하는 영업 업무에 적용할 수 있습니다. 수집량보다 식별 규칙, 실패 사유, 후속 활동의 연결 여부가 실제 활용도를 결정합니다.
RESULT
| 업무 | 기존 방식 | 설계 결과 |
|---|---|---|
| 기본 정보 확보 | 공개 정보를 담당자가 옮겨 적음 | 하루 1회 자동 수집, 기존 건 제외 후 신규만 등록 |
| 연락처 확보 | 상호를 포털에서 개별 검색 | 상호와 주소 조합으로 자동 매칭, 결과를 같은 레코드에 병합 |
| 실패 처리 | 목록에서 누락 | 사유 코드로 구분해 재시도 대상과 포기 대상을 분리 |
| 영업 활용 | 형식 변환 반복 | 조회 조건이 그대로 반영된 엑셀 내보내기 |
| 통화 결과 회수 | 목록 반출 후 단절 | 통화 결과와 다음 조치일을 기록해 영업 단계로 환원 (확장 제안) |
| 대상 선정 | 목록 전체를 순서 없이 접촉 | 연락처가 있고 아직 접촉하지 않은 건을 오늘 영업 대상으로 자동 분리 (확장 제안) |
| 운영 확인 | 별도 집계 없음 | 스케줄러 상태, 당일 수집 결과, 회차별 매칭률, 영업 퍼널 |
※ 본 프로젝트는 고객사 실제 업무 요건을 바탕으로 설계한 결과물이며, 보안 정책에 따라 일부 화면만 공개했습니다.



