이 글은 Vertex AI를 처음 사용하는 머신러닝 입문 학습자를 위한 실습 기록입니다.
문제는 모델을 직접 코딩하지 않고도 대출 상환 여부를 예측하는 모델을 어떻게 만들고 검증하는지 전체 흐름이 잘 잡히지 않는다는 점입니다.
이 글을 통해 Vertex AI AutoML을 사용해 대출 리스크 예측 모델을 생성하고 평가하고 예측까지 수행하는 전체 과정을 직접 따라할 수 있습니다.
이 글의 핵심 질문
코드 없이 Vertex AI AutoML로 대출 상환 여부를 예측하는 모델을 어떻게 만들 수 있는가?
실습 환경
- Cloud: Google Cloud Platform
- 서비스: Vertex AI (AutoML)
- Region: us-central1
- 데이터 소스: Cloud Storage CSV
- 모델 유형: Classification (이진 분류)
- 학습 시간: 1 Node Hour
- 타겟 변수: 대출 상환 여부 (0/1)
아키텍처
이번 실습의 전체 흐름은 아래와 같습니다. Cloud Storage의 CSV 데이터를 Vertex AI 데이터셋으로 가져오고, AutoML로 분류 모델을 학습한 뒤, 평가를 거쳐 예측 엔드포인트 또는 예측 요청으로 결과를 확인하는 구조입니다.

Cloud Storage (CSV) → Vertex AI Dataset → AutoML Training → Model Evaluation → Predict Endpoint / Prediction Result
전체 흐름
이 실습은 크게 4단계로 진행됩니다.
- 데이터 준비
- 모델 학습
- 모델 평가
- 예측 수행
Vertex AI는 이 모든 단계를 하나의 플랫폼에서 처리할 수 있게 설계되어 있습니다. 특히 AutoML을 사용하면 직접 알고리즘 코드를 작성하지 않고도 테이블 데이터 기반의 분류 모델을 만들 수 있다는 점이 핵심입니다.
■ 강사 설명
이번 실습의 목적은 특정 고객의 정보를 바탕으로 해당 고객이 대출을 정상 상환할지, 아니면 미상환할지를 예측하는 머신러닝 모델을 만드는 것입니다.
여기서 중요한 점은 예측 대상이 연속값이 아니라 0 또는 1처럼 구분되는 값이라는 점입니다. 따라서 회귀가 아니라 분류 모델을 선택해야 합니다.
■ 내가 이해한 핵심
처음에는 “AutoML이니까 버튼만 누르면 끝나는 것 아닌가?”라고 생각하기 쉽습니다. 하지만 실제로는 그렇지 않습니다.
AutoML이 모델을 자동으로 만들어주는 것은 맞지만, 어떤 데이터를 넣고 어떤 열을 제외할지, 어떤 열을 타겟으로 잡을지, 어떤 평가 지표를 볼지에 따라 결과가 크게 달라집니다. 결국 핵심은 모델보다 데이터 설계입니다.
■ 내가 실제로 겪은 문제
가장 헷갈렸던 부분은 ClientID 같은 식별자 컬럼을 왜 제외해야 하는가였습니다.
실습을 처음 하면 “데이터가 많을수록 좋은 것 아닌가?”라고 생각하기 쉽습니다. 하지만 ClientID는 고객을 식별하는 값일 뿐, 그 사람이 대출을 상환할지 여부를 설명하는 의미 있는 특징이 아닙니다. 이런 열이 들어가면 모델은 엉뚱한 패턴을 학습할 수 있습니다.
실습 단계
1단계. Vertex AI 데이터셋 만들기
목적: 모델 학습을 위한 데이터셋 틀을 만드는 단계입니다.
먼저 Google Cloud 콘솔에서 Vertex AI → 데이터 세트로 이동합니다. 그리고 데이터 세트 만들기를 클릭합니다.
데이터 세트 이름은 LoanRisk로 지정합니다. 데이터 유형은 테이블 형식을 선택하고, 목표는 회귀/분류를 선택합니다.
이 단계는 단순 생성처럼 보이지만 중요합니다. 이미지나 텍스트가 아니라 구조화된 표 데이터로 학습할 것이기 때문에 반드시 테이블 형식을 골라야 합니다.
여기까지 끝나면 Vertex AI 안에 학습을 위한 그릇이 만들어집니다.
2단계. Cloud Storage의 CSV 데이터 가져오기
목적: 실제 학습 데이터를 Vertex AI에 연결하는 단계입니다.
데이터 소스 선택 화면에서 Cloud Storage에서 CSV 파일 선택을 고릅니다. 실습에서는 이미 CSV 파일이 Cloud Storage에 올라가 있으므로, 경로만 입력하면 됩니다.
spls/cbl455/loan_risk.csv
입력 후 계속을 누르면 Vertex AI가 CSV 파일을 읽어 데이터셋에 연결합니다.
이 단계에서 중요한 점은 “학습 전에 데이터를 직접 확인할 수 있다”는 것입니다. 단순히 업로드만 하고 넘기지 말고, 다음 단계에서 각 열이 어떤 의미를 가지는지 꼭 확인해야 합니다.
3단계. 데이터 통계 확인
목적: 데이터 이상 여부를 확인하고, 어떤 열을 학습에 활용할지 감을 잡는 단계입니다.
Vertex AI에서는 각 열의 기술 통계를 자동으로 생성할 수 있습니다. 통계 생성을 누르면 각 컬럼의 분포, 범위, 결측 여부 등을 볼 수 있습니다.
여기서 꼭 확인해야 하는 항목은 다음과 같습니다.
- 값이 비어 있는 열이 있는지
- 숫자값이 특정 범위에 몰려 있는지
- 분류값이 지나치게 한쪽으로 쏠려 있는지
- 타겟 컬럼이 실제로 0/1처럼 분류 문제에 맞는지
이 과정을 건너뛰면 이후 모델 결과가 나와도 왜 그런 결과가 나왔는지 해석하기 어렵습니다. 머신러닝에서 데이터 확인은 선택이 아니라 필수입니다.
4단계. 새 모델 학습 시작
목적: AutoML 분류 모델 생성을 위한 기본 설정을 정의하는 단계입니다.
데이터셋 화면에서 새 모델 학습을 클릭하고, 옵션에서 기타를 선택합니다. 목표는 분류를 선택합니다.
왜 분류를 선택해야 하는지 다시 한 번 정리하면, 이 실습의 출력값은 “상환” 또는 “미상환”이라는 구분값이기 때문입니다. 만약 대출 금액처럼 연속 숫자를 예측하려는 목적이었다면 회귀를 선택했을 것입니다.
모델 이름은 데이터셋과 동일하게 LoanRisk로 지정해도 무방합니다. 타겟 열은 기본값으로 둡니다. 여기서 타겟 열은 모델이 맞혀야 할 정답 열입니다.
5단계. Feature 선택과 불필요한 열 제거
목적: 모델이 학습에 사용할 입력값을 정리하는 단계입니다.
이 단계가 실습에서 가장 중요합니다. AutoML이라고 해도 아무 열이나 다 넣는 것이 아닙니다. 의미 없는 열은 제거해야 합니다.
실습에서는 ClientID를 제외합니다. 이유는 단순합니다. 이 값은 고객을 식별하는 키일 뿐, 그 사람이 위험 고객인지 아닌지를 설명하는 정보가 아니기 때문입니다.
실무에서도 비슷합니다. 예를 들어 주문번호, 회원번호, 랜덤 식별자처럼 패턴 없는 ID값은 대체로 예측에 도움이 되지 않습니다. 오히려 모델이 잘못된 규칙을 학습하도록 만들 수 있습니다.
반대로 age, income, loan처럼 고객의 실제 상태를 반영하는 열은 중요할 가능성이 높습니다.
6단계. 학습 예산과 조기 중단 설정
목적: AutoML이 어느 정도 자원을 사용해 학습할지 정하는 단계입니다.
학습 예산은 1 Node Hour로 입력합니다. 실습에서는 이 정도로도 모델과 특징 간의 관계가 어느 정도 있는지 빠르게 확인할 수 있습니다.
또한 조기 중단(Early Stopping)은 활성화 상태로 둡니다. 이 기능은 모델 성능 개선이 거의 없을 때 불필요한 학습을 멈추게 해 비용과 시간을 절약하는 역할을 합니다.
처음 실습할 때는 여기서 “예산을 높이면 무조건 좋아지나?”라는 생각이 들 수 있습니다. 하지만 꼭 그렇지는 않습니다. 먼저 1시간 수준으로 빠르게 모델을 만들어 본 뒤, 결과를 보고 데이터와 feature를 조정한 다음 예산을 늘리는 쪽이 더 효율적입니다.
7단계. 모델 학습 시작과 완료 확인
목적: 설정한 조건으로 AutoML이 실제 모델을 생성하도록 실행하는 단계입니다.
학습 시작을 누르면 Vertex AI가 내부적으로 데이터 분할, 모델 후보 탐색, 하이퍼파라미터 조정 등을 자동으로 수행합니다.
데이터 크기와 설정에 따라 몇 분에서 한 시간 이상 걸릴 수 있습니다. 실습 문서에서는 학습이 끝나면 Model Registry에서 결과를 확인하라고 안내합니다.
이 단계에서 중요한 것은 기다리는 동안 “모델이 만들어지는 원리”를 이해하는 것입니다. AutoML은 마법이 아니라, 여러 학습 조합을 자동으로 탐색해 가장 나은 분류 성능을 찾는 과정입니다.
실습 증거
1. 정밀도-재현율 곡선 확인
모델 평가 화면에서는 정밀도(Precision)와 재현율(Recall)의 균형을 볼 수 있습니다. 신뢰도 임계값을 높이면 정밀도는 올라가지만 재현율은 낮아지고, 임계값을 낮추면 반대로 재현율은 높아지지만 정밀도는 내려갑니다.
즉, 어떤 비즈니스에서는 놓치면 안 되는 위험 고객을 최대한 잡기 위해 재현율을 높이는 것이 중요할 수 있고, 어떤 경우에는 정상 고객을 위험 고객으로 잘못 분류하지 않기 위해 정밀도를 높이는 것이 더 중요할 수 있습니다.
2. 혼동 행렬 확인
혼동 행렬은 모델이 실제 정답과 비교해 얼마나 잘 맞혔는지 보여줍니다. 실습 자료에서는 테스트 세트 기준으로 상환 사례는 100%, 채무불이행 사례는 87% 정도를 올바르게 예측하는 예시가 제시됩니다.
이 결과는 “모델이 완벽하진 않지만 초기 AutoML 모델치고는 꽤 괜찮다”는 신호로 볼 수 있습니다.
3. 특성 중요도 확인
평가 화면에서는 각 feature가 예측에 얼마나 기여했는지도 확인할 수 있습니다. 실습 예시에서는 age, income, loan 순으로 중요하게 나타납니다.
이 정보는 단순 참고용이 아니라 모델 개선의 출발점입니다. 중요도가 낮은 열은 제거를 검토할 수 있고, 중요한 열들은 조합해서 더 강한 feature를 만들 수 있습니다.
트러블슈팅
문제 증상:
모델 성능이 기대보다 낮거나 해석이 어렵다.
원인 분석:
의미 없는 식별자 컬럼이 포함되었거나, 데이터 분포를 확인하지 않고 학습을 시작했기 때문이다.
확인 방법:
특성 중요도, 정밀도-재현율 곡선, 혼동 행렬을 함께 확인한다.
해결 방법:
ClientID 같은 불필요한 열을 제거하고, 필요한 경우 feature를 다시 정리해 재학습한다.
재발 방지 방법:
학습 전 통계 확인 → feature 정리 → 학습 → 평가 순서를 반드시 지킨다.
예측 수행
이제 학습된 모델 또는 실습용 사전 준비 모델을 사용해 실제 예측 요청을 보낼 수 있습니다.
예측 입력 예시는 다음과 같습니다.
{
"instances": [
{
"age": 40.77430558,
"ClientID": "997",
"income": 44964.0106,
"loan": 3944.219318
}
]
}
Cloud Shell에서는 다음과 같이 입력 파일을 받아 환경 변수를 설정한 뒤 예측 요청을 전송할 수 있습니다.
gcloud storage cp gs://cloud-training/CBL455/INPUT-JSON .
export INPUT_DATA_FILE="INPUT-JSON"
export PROJECT_NUMBER=$(gcloud projects describe $(gcloud config get-value project) --format="value(projectNumber)")
export AUTOML_SERVICE="https://automl-proxy-$PROJECT_NUMBER.us-central1.run.app/v1"
curl -X POST -H "Content-Type: application/json" $AUTOML_SERVICE -d "@${INPUT_DATA_FILE}" -s | jq
예상 출력은 다음과 비슷합니다.
{
"predictions": [
{
"scores": [
0.9999980926513672,
0.000001897001311590429
],
"classes": [
"0",
"1"
]
}
]
}
이 결과는 해당 고객이 클래스 0, 즉 상환 가능 쪽으로 매우 높은 점수를 받았다는 뜻으로 해석할 수 있습니다.
실무 핵심 포인트
이 실습에서 가장 중요한 결론은 “AutoML이 다 해준다”가 아닙니다.
실무의 핵심은 좋은 데이터를 넣고, 불필요한 열을 빼고, 평가 결과를 읽고, 다시 개선하는 반복입니다.
즉, 모델은 자동일 수 있어도 판단은 자동이 아닙니다. 이 차이를 이해하면 Vertex AI를 훨씬 더 잘 다룰 수 있습니다.
결론
핵심 원칙
AutoML은 모델 생성 과정을 자동화하지만, 성능은 여전히 데이터와 feature 설계가 결정합니다.
실무 적용 시 주의점
- ID 컬럼은 무조건 넣지 말고 의미를 먼저 판단할 것
- 학습 전 통계와 데이터 분포를 확인할 것
- 평가 화면에서 정밀도, 재현율, 혼동 행렬, 특성 중요도를 함께 볼 것
다음 학습 단계 제안
다음에는 BigQuery ML과 비교해보거나, Vertex AI 엔드포인트 배포 후 실시간 예측 API로 확장해보면 좋습니다.
'서버 구축·실습' 카테고리의 다른 글
| GCP BigQuery에서 전자상거래 데이터 분석하기: 중복 제거부터 전환율 계산까지 실습 가이드 (0) | 2026.03.23 |
|---|---|
| GCP BigQuery ML로 방문자의 재구매 가능성을 예측하는 방법 (실습 기반) (0) | 2026.03.22 |
| GCP Dataflow 템플릿으로 CSV 데이터를 BigQuery에 실시간 적재하는 방법 (0) | 2026.03.22 |
| GCP BigQuery 공개 데이터셋 실습: Public Dataset 조회부터 커스텀 테이블 생성까지 (0) | 2026.03.22 |
| Azure VM에서 OpenAI API를 안전하게 연결해 AI 챗봇을 완성하는 방법 (1) | 2026.03.02 |