AI VIDEO BRIEFING
ML 이탈 예측 모델 배포 가이드 — FastAPI·MLflow·Docker·AWS 엔드투엔드
노트북에서 정확도만 보고 끝내는 튜토리얼을 넘어, 원본 데이터부터 FastAPI·Docker·GitHub Actions·AWS 배포까지 누구나 쓸 수 있는 고객 이탈 예측 모델을 완성하는 전 과정을 정리했다.

핵심 메시지
쉽게 이해하기
영상은 '인터넷의 흔한 튜토리얼은 노트북 안에서 몇 개의 모델을 돌리고 정확도만 자랑할 뿐, 정작 아무도 그 모델을 쓸 수 없다'는 문제의식에서 출발한다. 그래서 원본 데이터에서 시작해 데이터 검증·전처리·피처 엔지니어링·모델 학습을 거쳐, 도커 패키징과 CI/CD, AWS 배포, 기본 모니터링까지 누구나 입력값을 넣어 예측을 받아볼 수 있는 완성형 프로젝트를 만든다.
데이터는 통신사(telco)의 약 7천 명 고객, 20여 개 특성으로 이뤄진 분류용 데이터다. 발표자는 분류 문제의 정확도·정밀도·재현율·F1 중 사업에 가장 중요한 지표를 먼저 정하라고 강조하며, 고객 이탈을 막는 것이 목표이므로 떠날 고객을 놓치는 '거짓 음성'을 줄이는 재현율을 핵심 지표로 삼는다.
탐색적 분석에서는 두 범주 특성은 0·1 이진 인코딩, 세 개 이상 범주는 원핫 인코딩으로 처리하고, 상관관계 히트맵과 다중공선성(VIF)을 확인한다. 다중공선성이 높게 나오자 이를 잘 다루는 트리 기반 모델(XGBoost)을 선택하고, 클래스 불균형은 임곗값 조정으로 완화한다.
랜덤 포레스트·LightGBM·XGBoost를 비교한 끝에 속도와 재현율이 나은 XGBoost를 고르고, Optuna로 30회 시도하며 하이퍼파라미터를 튜닝한다. 그 결과 재현율이 81.8%에서 92.8%로 올라가는 대신 정밀도는 낮아지는 트레이드오프를 보여주며, 이는 이해관계자와 합의할 사업적 결정임을 짚는다.
후반부는 노트북 로직을 src 폴더의 파이썬 스크립트로 모듈화하고, MLflow로 실험을 추적하며, FastAPI로 HTTPS 엔드포인트를 만들고, Dockerfile로 컨테이너화한다. 이어 GitHub Actions로 메인 브랜치 푸시마다 빌드해 Docker Hub에 올리고, AWS의 VPC·ECS Fargate·로드 밸런서로 배포한 뒤 Gradio UI로 마무리한다. 발표자는 며칠간의 AWS 사용 비용이 약 10달러였다고 밝힌다.
주요 인사이트
- 분류 프로젝트에서 가장 먼저 할 일은 모델 선택이 아니라 '사업적으로 어떤 지표가 가장 중요한가'를 정의하는 것이다. 이탈 방지에서는 재현율이 그 답이다.
- 재현율을 높이면 정밀도가 떨어진다. 떠나지 않을 고객까지 더 많이 접촉하게 되지만, 떠날 고객을 놓치는 것보다 낫다는 판단은 이해관계자와 합의해야 한다.
- 노트북에서 스크립트로 옮기는 모듈화는 많은 사람이 건너뛰지만, 각 단계를 따로 테스트·디버깅하고 파이프라인으로 묶기 위한 필수 과정이다.
- Docker는 '내 컴퓨터에선 됐는데'라는 문제를 없앤다. 코드·모델 아티팩트·의존성을 한 컨테이너에 담아 동일한 환경을 어디서나 재현한다.
- MLflow는 매 실행의 모델·지표·하이퍼파라미터를 자동 기록하므로, 몇 달 전 가장 좋았던 모델로도 손쉽게 되돌아갈 수 있다.
자주 묻는 질문
왜 정확도가 아니라 재현율을 핵심 지표로 삼는가?
사업 목표가 고객 이탈을 막는 것이기 때문이다. 실제로 떠날 고객을 '떠나지 않는다'고 잘못 예측하는 거짓 음성이 가장 큰 손해이므로, 떠날 사람을 최대한 모두 잡아내는 재현율을 우선한다. 영상에서는 튜닝을 통해 재현율을 81.8%에서 92.8%로 끌어올린다.
어떤 도구들을 사용하나?
파이썬과 VS Code를 기본으로, 데이터 품질 검증에 great expectations, 모델링에 XGBoost, 하이퍼파라미터 튜닝에 Optuna, 실험 추적에 MLflow, 웹 노출에 FastAPI, 컨테이너화에 Docker, CI/CD에 GitHub Actions와 Docker Hub, 배포에 AWS ECS Fargate와 로드 밸런서, 그리고 UI에 Gradio를 사용한다.
세 개 이상 범주를 가진 특성은 어떻게 인코딩하나?
두 개 범주(예: 예/아니오, 남/여)는 0과 1로 이진 인코딩하고, 세 개 이상 범주는 원핫 인코딩을 쓴다. 다만 범주가 10개를 넘기면 컬럼이 너무 많아져 계산이 복잡해지므로 다른 방식을 고려해야 한다고 설명한다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗