노후 준비를 적립식 투자 하나로만 두기가 불안해서, 요즘은 작게라도 벌이가 되는 사업 아이템을 같이 찾고 있다.
그중 하나를 오늘 하루 만에 시작하고, 같은 날 접었다. 광복절 대체공휴일 하루를 통째로 사용했다.
제품 코드는 한 줄도 쓰지 않았다. 대신 수집·분석 스크립트를 8개 썼고, 그 스크립트들이 내가 세운 가설 7개를 차례로 반증했다.
아깝지 않다고 하면 거짓말이다. 다만 그대로 만들었다면 훨씬 비싼 값을 치렀을 것이다.
잊기 전에 적어둔다.
만들려던 것
나라장터(공공입찰) 공고 데이터를 분석해서, IT·SW 중소기업에게 ‘이 공고는 당신이 딸 만하다’를 알려주는 서비스였다.
전제는 단순했다. 작은 회사일수록 입찰 제안서 한 건에 사람과 시간을 크게 쓰는데, 정작 어디에 쓸지는 감으로 고른다.
그 감을 데이터로 바꿔주면 값을 낼 것이라고 봤다.
조달청이 상당 부분을 공개 API로 열어두고 있다. 그래서 기획서를 예쁘게 다듬는 대신, 첫날부터 데이터를 긁어모았다.
하루 동안 모은 데이터
| 항목 | 수량 |
|---|---|
| 공고 목록(2025-09 ~ 2026-08) | 155,033건 |
| 개찰 참가기록 | 7,136줄 |
| 낙찰자 정보 | 23,007건 |
| 제안요청서 자격요건 분석 | 146건 |
| 업체별 증명서 보유 현황 | 30곳 |
여기서 나온 시장 사실 세 가지가 사실상 결론을 미리 내고 있었다.
IT·SW 용역 개찰은 월 1만여 건, 한 공고당 경쟁 업체 수는 중앙값 2곳(평균 4.2곳), 그리고 91%가 협상에 의한 계약이었다.
가격이 아니라 제안서와 기술평가로 사업자를 고르는 방식이다. 마지막 숫자가 왜 치명적이었는지는 아래에서 다시 나온다.
가설 7개가 차례로 죽었다
‘어떤 문제를 풀 것인가’의 후보를 7개 세웠다. 하나씩 데이터에 물어봤고, 하나씩 아니라는 답이 돌아왔다.
| 세운 가설 | 데이터가 돌려준 답 |
|---|---|
| 입찰 자격이 되는지 판정해 준다 | 조사한 30곳이 전부 해당 품목의 직접생산확인증명서를 갖고 있었다. 미보유 0곳. 지역제한 조건은 IT·SW 분야에서 0% |
| 놓친 공고를 찾아준다 | 알림 서비스가 이미 여럿 하고 있다 |
| 경쟁이 한산한 공고를 찾아준다 | 통계 편향이었다(아래 별도 설명) |
| 실적 요건 충족 여부를 판정해 준다 | 제안요청서 146건 중 실적을 보는 건 14%뿐 |
| 단골 업체가 있는 발주처를 피하게 해준다 | 낙찰 4건 이상인 기관 11곳 중, 한 업체가 절반 이상 가져간 곳은 0곳 |
| 낙찰 가능성을 예측해 준다 | 91%가 협상계약이다. 승패를 가른 제안서 내용은 공개데이터 어디에도 없다 |
| 낙찰사와의 기술점수 격차를 알려준다 | 같은 데이터를 이미 무료로 공개하는 서비스가 있었다 |
마지막 줄이 제일 아팠다.
크제비(K-JEBI)라는 서비스가 공고 상세 화면에서 참여업체 전원의 가격점수·기술점수·종합점수·순위를 무료로 보여주고 있었다.
‘낙찰사 점수는 아무도 못 본다’는 내 출발 전제가 통째로 틀렸던 것이다.
먼저 만들어서 잘 열어둔 곳이고, 내가 뒤늦게 확인했을 뿐이다.
가장 흥미로웠던 반증 — ‘한산한 공고’는 착시였다
죽은 가설 중 하나는 지금도 곱씹게 된다.
참가기록을 회사 기준으로 모아보니, 대부분의 회사가 경쟁이 몰린 공고에 주로 들어가고 있었다.
처음엔 이걸 영업 포인트로 쓰려 했다. “귀사는 경쟁이 몰린 공고에 주로 들어가고 계시네요. 한산한 쪽을 골라드릴게요.”
그런데 이 수치는 애초에 만들어질 수가 없는 값이다.
경쟁 2곳짜리 공고에는 2개 회사만 기록되고, 67곳짜리 공고에는 67개 회사가 기록된다.
그러니 명단에서 아무 회사나 뽑아도, 그 회사는 경쟁이 많은 공고에 더 자주 등장하게 되어 있다.
회사가 그런 공고를 골라서가 아니라 표본이 그렇게 생겼기 때문이다. 통계에서 말하는 크기 편향 표본(size-biased sampling)이다.
이걸 모른 채 영업했다면 첫 통화에서 무너졌을 것이다. 상대는 자기 회사가 어떤 공고에 들어가는지 나보다 잘 안다.
데이터를 다루는 사람이 낼 수 있는 가장 값싼 실수는 ‘숫자가 있으니 사실이다’라고 믿는 것이다.
답장 한 통이 남긴 것
하루 동안 17곳에 메일을 보냈고, 답장은 한 통 왔다.
접기로 마음먹은 날 도착한 그 답장의 요지는 이랬다. “저희도 자체적으로 결과 점수를 트래킹하고 있어서 괜찮습니다.”
하필 그 회사는 내 표본에서 낙찰사와의 기술점수 격차가 가장 큰 축이었다. 여러 건에 참여했고, 내 데이터에서 확인된 낙찰은 0건이었다.
내 가설대로라면 ‘왜 떨어졌는지 모른 채 다음 제안서를 쓰는’ 바로 그 회사, 내 서비스가 가장 필요했어야 할 사람이다.
그 회사는 이미 알고 있었고, 직접 추적하고 있었다.
표본 한 건이라 일반화할 생각은 없다. 다만 방향은 앞의 발견과 정확히 같았다.
문제는 ‘모른다’가 아니었다. 진짜 문제는 ‘격차를 어떻게 줄이느냐’인데, 그건 제안서 내용에 달려 있고 공개데이터 밖에 있다.
내가 만들 수 있었던 건 진단까지였고, 처방은 못 하는 물건이었다.
가장 큰 실수는 순서였다
기술적으로 잘못한 것도 있다.
API 필드만 보고 “자격 요건은 자명하다”고 단정했다가, 제안요청서 원문을 열어보고 뒤집었고, 증명서 보유 현황을 조회해서 또 뒤집었다.
한 층 더 파기 전에 결론을 낸 것이다. 그 사이 틀린 문장이 담긴 메일이 이미 나간 뒤였다.
하지만 가장 큰 실수는 따로 있다. 경쟁 조사를 맨 마지막에 했다.
“이건 혼자서는 만들 수 없는 데이터다”라고 하루 종일 되뇌면서, 정작 같은 일을 하는 서비스가 있는지 검색해보지 않았다.
5분이면 됐을 일을, 데이터를 다 모으고 메일까지 보낸 뒤에야 했다.
데이터는 ‘무엇이 있는지’는 알려주지만 ‘무엇을 확인해야 하는지’는 알려주지 않는다. 검증 순서는 데이터가 아니라 사람이 정해야 한다.
아이디어 검증 체크리스트
같은 값을 두 번 치르지 않으려고 순서대로 정리해 뒀다. 다른 분야에도 그대로 쓸 수 있을 것 같아 남긴다.
- 경쟁 조사를 0순위로. 서비스명·기능 키워드로 검색부터 한다. “아무도 안 한다”는 확인 전까지 가설이다.
- 핵심 전제를 한 문장으로 적는다. 내 경우엔 “낙찰사 점수는 아무도 못 본다”였다. 이게 틀리면 전부 무너진다고 적어두면, 그 문장부터 검증하게 된다.
- 가장 싸게 죽일 수 있는 가설부터 친다. 나는 데이터 수집에 하루를 썼는데, 검색 5분이 같은 결론을 냈다.
- 원문을 최소 한 번은 연다. API 필드나 요약본만 보고 낸 결론은 두 번 뒤집혔다. 실제 문서 한 건을 여는 데 10분이 안 걸린다.
- 숫자를 영업에 쓰기 전에 표본이 어떻게 만들어졌는지 확인한다. 크기 편향처럼, 데이터 수집 방식 자체가 만들어낸 값이 아닌지 본다.
- 잠재 고객에게 ‘이미 어떻게 하고 계세요’를 먼저 묻는다. 내 해결책을 설명하기 전에 현재 방식을 물었다면, 답장 한 통으로 하루가 아니라 한 시간 만에 끝났을 것이다.
- 진단과 처방을 구분한다. 문제를 보여주는 것과 문제를 줄여주는 것은 다른 제품이다. 진단만 되는데 처방이 필요한 시장이면, 데이터가 아무리 많아도 부족하다.
접은 것도 결과다
하루와 스크립트 8개로 ‘만들지 말아야 할 이유’ 7개와, 이미 존재하는 서비스 하나를 찾았다.
그만두는 결정에 든 비용치고는 싼 편이다.
노후 준비랍시고 벌여놓고 접은 일이 이번이 처음은 아니다. 다만 이번엔 무엇을 근거로 접었는지가 숫자로 남았다.
남은 건 데이터를 다루며 얻은 감각과 위 체크리스트뿐인데, 다음 아이템의 하루를 아껴준다면 그걸로 하루값은 한 셈이다.