서로에게 질문하며 성장하는 AI와 영업팀의 이야기 - 1화
"이거 진짜 믿어도 돼요?"
회의실 모니터를 바라보던 김민준 과장이 팔짱을 끼며 물었다. 화면에는 우리가 3주 동안 만든 첫 AI 모델의 예측 결과가 떠 있었다. 5,127명의 잠재 고객 중 전환 가능성이 높은 상위 200명의 리스트. 그 옆에는 '예측 정확도: 72.3%'라는 숫자가 박혀 있었다.
"72.3%요? 그럼 100명 중 28명은 틀린다는 얘기잖아요."
민준 과장의 말에 다른 팀원들도 고개를 끄덕였다. 나는 그들의 반응을 이해했다. 15년 경력의 베테랑 영업사원 앞에서 컴퓨터가 계산한 숫자를 믿으라는 건 쉬운 일이 아니니까.
2025년 봄, 우리 이커머스 파트너 얼라이언스 팀은 심각한 문제에 빠져 있었다. 벤더와의 파트너십으로 매달 1,000개가 넘는 신규 리드가 쏟아졌지만, 영업팀이 실제로 접촉할 수 있는 건 그중 10%도 안 됐다.
"Chris, 이번 달 신규 리드 리스트 받았어요. 1,247개."
주영이가 보내준 엑셀 파일을 열었을 때의 그 막막함을 잊을 수가 없다. 회사명, 업종, 사이트 주소, 월 거래액... 12개 컬럼에 빼곡한 데이터. 영업팀은 이걸 일일이 읽으며 "이 회사는 괜찮을 것 같은데"라는 직감으로 우선순위를 정했다.
문제는 그 직감이 틀릴 때가 많다는 거였다.
"저번 달에 제가 일주일 동안 매달렸던 그 패션몰 있잖아요. 결국 예산 없다고 하더라고요."
민준 과장이 한숨을 쉬었다. 반대로 "별로 안 좋아 보여서" 넘어갔던 작은 주얼리 쇼핑몰이 경쟁사의 프리미엄 고객이 된 걸 알았을 때, 우리는 시스템이 필요하다는 걸 깨달았다.
"일단 우리가 가진 데이터부터 정리해봅시다."
나는 Salesforce CRM에 쌓여있던 지난 3년치 고객 데이터를 뽑아냈다. 5,089건의 리드 정보와 그들의 최종 결과. 계약 성사, 협상 중, 거절, 무응답.
파이썬을 켜고 Pandas로 데이터를 불러왔다. 첫 번째 작업은 '피처 엔지니어링'. 있는 그대로의 데이터는 별로 말을 해주지 않는다. 우리는 의미 있는 변수를 만들어야 했다.
# 월 거래액을 범주로 변환
df['revenue_tier'] = pd.cut(df['monthly_revenue'],
bins=[0, 1000, 5000, 20000, 100000],
labels=['소형', '중소형', '중형', '대형'])
# 업종별 평균 전환율 계산
industry_conversion = df.groupby('industry')['converted'].mean()
df['industry_score'] = df['industry'].map(industry_conversion)
우리가 최종적으로 선정한 12개 변수:
월 평균 거래액 (4단계 구간)
업종 (27개 카테고리)
사이트 오픈 기간
상품 등록 개수
월 방문자 수 추정치
이전 접촉 이력 (있음/없음)
소셜미디어 활동 점수 (0-10)
경쟁사 솔루션 사용 여부
지역 (수도권/지방)
반응 속도 (이전 문의 시)
결제 모듈 종류
프리미엄 기능 사용 여부
처음엔 로지스틱 회귀부터 시작했다. 간단하고 해석하기 쉬우니까. 하지만 정확도가 64.2%밖에 안 나왔다. 우리의 직감(약 60%)보다 조금 나은 수준.
"선형 모델로는 한계가 있을 것 같아요. 변수들 간의 복잡한 상호작용을 못 잡아내는 것 같아."
그때 떠오른 게 Random Forest였다. 결정 트리를 수백 개 만들어서 다수결로 예측하는 앙상블 방법. 각 트리가 데이터의 다른 부분을 보면서 학습하고, 최종 예측은 모든 트리의 투표로 결정된다.
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
# 데이터 분할 (8:2)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y )
# Random Forest 모델 학습
rf_model = RandomForestClassifier(
n_estimators=200, # 트리 200개
max_depth=15, # 최대 깊이 15
min_samples_split=20, # 분할 최소 샘플 수
class_weight='balanced', # 클래스 불균형 보정
random_state=42
)
rf_model.fit(X_train, y_train)
하이퍼파라미터 튜닝에만 이틀이 걸렸다. 트리 개수를 100개에서 500개까지 바꿔가며, 깊이를 조절하며, 교차 검증을 돌렸다. 그렇게 나온 최종 정확도가 72.3%였다.
"72.3%면 충분히 의미 있는 숫자예요."
내가 설명하기 시작했다.
"민준 과장님, 지금까지 우리가 접촉한 리드 중에 실제로 계약으로 이어진 비율이 얼마였죠?"
"음... 한 15% 정도?"
"맞아요. 100명에게 연락하면 15명이 고객이 되는 거죠. 그런데 이 모델이 상위 20%만 추천한다면?"
나는 테스트 결과를 화면에 띄웠다.
"상위 20%에 속한 고객들의 실제 전환율은 41.2%였어요. 100명에게 연락할 시간에 20명에게만 집중하면, 성공률이 2.7배 올라가는 거죠."
회의실이 조용해졌다.
"그래도 이게 왜 맞는지는 알아야 하지 않아요?"
민준 과장의 질문이 핵심이었다. 단순히 숫자만 던져주면 안 된다. 왜 이 고객이 유망한지 설명할 수 있어야 영업 전략을 세울 수 있다.
Random Forest의 장점 중 하나가 바로 'Feature Importance'다. 어떤 변수가 예측에 가장 중요했는지 알려준다.
# 변수 중요도 추출
feature_importance = pd.DataFrame({
'feature': feature_names,
'importance': rf_model.feature_importances
}).sort_values('importance', ascending=False)
print(feature_importance.head(10))
결과를 보고 우리는 놀랐다.
Top 5 중요 변수:
월 평균 거래액 (28.4%)
업종별 전환율 점수 (18.2%)
상품 등록 개수 (14.1%)
이전 접촉 이력 (11.8%)
사이트 오픈 기간 (9.3%)
"이거 보세요. 거래액이 가장 중요하긴 한데, 단독으로 결정하는 건 아니에요. 업종 특성이나 상품 구색도 중요하다는 거죠."
민준 과장이 고개를 끄덕였다.
"패션 쪽은 전환율이 낮고, 식품/건강 쪽은 높더라고요. 근데 그게 데이터로 증명되네요."
"일단 한 달만 해보죠. 리드를 반으로 나눠서, 절반은 기존 방식대로, 절반은 모델 추천대로 접촉하는 거예요."
이게 내가 제안한 A/B 테스트였다.
9월 한 달 동안:
그룹 A (기존 방식): 영업팀 직감으로 선정한 250개 리드 접촉
그룹 B (AI 추천): 모델 상위 20%에 해당하는 250개 리드 접촉
매주 금요일마다 모여서 진행 상황을 공유했다.
"이번 주에 저는 8개 상담 잡았는데, AI 리스트에서 7개 나왔어요."
"저는 기존 리스트로 했는데... 3개밖에 안 되네요."
3주차쯤 되자 팀 분위기가 달라지기 시작했다.
한 달 후, 결과를 정리했다.
그룹 A (기존 방식)
접촉 시도: 250건
상담 성사: 38건 (15.2%)
계약 체결: 5건 (2.0%)
그룹 B (AI 추천)
접촉 시도: 250건
상담 성사: 94건 (37.6%)
계약 체결: 12건 (4.8%)
같은 노력으로 2배 이상의 성과. 계약 체결은 2.4배.
"와... 진짜 되네요."
민준 과장이 모니터를 보며 중얼거렸다. 72.3%라는 숫자가 더 이상 의심스러워 보이지 않았다.
그날 저녁, 팀 회식 자리에서 주영이가 물었다.
"근데 Chris, 72.3%는 좀 아쉽지 않아요? 더 높일 수는 없나요?"
나는 맥주잔을 들며 웃었다.
"물론이죠. 이건 시작일 뿐이에요. 데이터가 더 쌓이면, 더 정교한 모델을 쓰면, 분명 더 올릴 수 있어요."
그때는 몰랐다. 72.3%가 우리에게 준 진짜 선물은 정확도가 아니라 '가능성'에 대한 믿음이었다는 걸.
AI가 완벽할 필요는 없었다. 지금보다 조금만 나으면, 시작할 수 있다는 용기만 있으면, 충분했다.
"첫 AI 모델 배포. 72.3%라는 숫자가 팀원들에게 어떻게 받아들여질지 불안했다. 완벽하지 않다는 걸 어떻게 설명해야 할까. 하지만 한 달 후, 그 불완전함이 오히려 팀에게 '함께 개선할 수 있는 것'이라는 메시지를 줬다는 걸 깨달았다. 완벽한 AI는 두렵지만, 72.3%의 AI는 동료처럼 느껴진다."
이 글에서 소개한 Random Forest 영업 자동화 시스템의 상세 아키텍처가 궁금하신 분들을 위해 3장의 기술 다이어그램을 준비했습니다.
데이터 수집부터 예측까지의 전체 흐름 그리고 5단계 파이프라인까지. 이제 여러분의 회사에서 바로 적용해보실 수 있습니다.
다음 편 예고:
"직관 vs 데이터, 83.7%에서 만나다" 우리의 두 번째 도전. XGBoost를 만나다. 그리고 베테랑 영업사원의 15년 직관이 데이터로 검증되는 순간.
#인터랙션사이언스 #AI영업자동화 #RandomForest #머신러닝실전 #이커머스데이터분석 #직장인AI활용 #영업팀AI도입기 #데이터로일하는법 #세일즈테크