이 숫자, 진짜 맞아? — AI와 건강 데이터의 함정을 의심하고 검증한 날
📚 「AI 헬스케어 파이널 프로젝트」 연재 2편입니다. (1편: 실험실에서 웹서비스로)

📝 한줄 요약
1편에서 미국·한국의 건강 데이터를 잔뜩 모았습니다. 그런데 막상 한데 모아 들여다보니(데이터를 펼쳐놓고 살펴보는 작업, 줄여서 EDA) 표본이 중복되고 비율이 비정상으로 높고 한글이 깨지고 데이터가 군데군데 비어 있었어요. 이번 편은 그 ‘데이터 함정’을 하나씩 의심하고 검증한 기록입니다. AI와 함께요.
바쁘시면 이것만 읽어도 돼요:
- 도구·목표: Claude Code로 미국·한국 건강 데이터를 합치고 **탐색(EDA)**해 쓸 수 있는 상태로 다듬기
- 깨달은 점: 데이터는 모으는 것보다 들여다보고 검증하는 게 더 어렵다
- 핵심 해법: 통계가 이상하게 느껴지면 그 느낌을 믿고 “이 숫자 진짜 맞아?”라고 AI에게 검증시키기
- 인상적 순간: “약물 복용 87.2%?” 비정상으로 높은 숫자를 의심하고 원본으로 재확인. 표본이 중복돼 있던 함정도 발견
- 교훈: 누가 지적하면 감이 아니라 데이터로 확인해 답한다. 비슷한 파일이 늘면 관계부터 정리한다
🎯 이런 분들께 도움돼요
- 데이터를 합치고 분석해야 하는데 “이게 맞나?” 늘 불안한 분
- 공공데이터·설문·로그를 처음 탐색해 보는 입문자
- 팀에서 데이터를 주고받으며 검증·공유하는 실무자
- AI가 내놓은 숫자·통계를 어디까지 믿어야 할지 고민인 분
😫 문제 상황 (Before)
1편에서 미국(NHANES)·한국(KNHANES) 데이터를 모았습니다. 그런데 “모았다”와 “쓸 수 있다”는 다르더라고요. 두 데이터를 하나로 합쳐 한눈에 보려고 펼쳤더니 곳곳에서 이상한 신호가 나왔습니다.
- 표본 수가 어쩐지 더 늘어나 있고 (펜데믹 기간엔 조사를 거의 안 했다고 들었는데?)
- 어떤 비율은 비정상으로 높고 (약물 복용 87.2%?)
- 통합 파일의 한글 항목 이름이 깨지고 빈칸도 있고
- 같은 항목인데 값이 군데군데 비어 있고
한마디로 겉보기엔 멀쩡한데 속은 함정투성이였습니다. 그대로 두고 분석하면 결과 전체가 틀어질 게 뻔했죠.
🛠️ 사용한 도구
- 도구: Claude Code
- 모델: Claude Opus
- 특이사항: 데이터를 합치고 그래프로 보여주는 분석 조수이자, “이 숫자 진짜 맞아?”라고 물으면 원본까지 파고들어 검증하는 검사관으로 활용
🔧 작업 과정
1) 흩어진 걸 한데 모아 한눈에 (통합 + 탐색)
먼저 두 나라 데이터를 미리 정리해둔 변수표 기준으로 합쳤습니다.
NHANES 와 KNHANES 각각, 변수표(변수.xlsx)의 변수 확인해서
전체 사이클에 대한 통합 CSV 파일을 각각 만들어줘
두 데이터셋 합쳐서 통합 EDA(탐색) 노트북도 만들어줘
AI가 통합 파일과 데이터를 한눈에 보는 탐색 노트북을 만들어줬어요. 그런데 이렇게 모아 보니까 비로소 함정이 보이기 시작했습니다. 데이터는 흩어져 있을 땐 멀쩡해 보이다가도 모아 놓으면 이상한 게 드러나거든요.
💡 데이터는 모아서 한눈에 펼쳐봐야 함정이 보인다. 흩어진 파일만 보면 멀쩡합니다.
2) 함정 ①: “펜데믹인데 표본이 왜 늘었지?” — 표본 중복
첫 번째로 걸린 건 표본 수였습니다.
NHANES 2017-2018 ↔ 2017-2020(Pre-pandemic) 표본 중복은 제외하는 게 맞는 것 같은데
펜데믹 기간엔 표본 수집이 없다고 하지 않았어? 왜 데이터가 더 늘어나 있는 거야?
알고 보니 미국 데이터에 ‘2017–2018’ 묶음과 ‘2017–2020’ 묶음이 따로 있었어요. 그런데 이 둘이 같은 사람을 일부 겹쳐서 담고 있었습니다. 모르고 합치면 같은 사람을 두 번 세는 셈이죠. AI와 함께 중복을 걸러냈습니다.
💡 숫자가 늘었다고 좋은 게 아니다. 예상보다 많으면 일단 의심하세요.
3) 함정 ②: “약물 복용 87.2%? 진짜야?” — 이상치 의심
탐색 그래프를 보다가, 비율 하나가 눈에 거슬렸습니다.
NHANES에서 약물 복용 비율이 87.2%가 맞아?
너무 높았거든요. 이 “어, 이거 이상한데?” 하는 느낌을 그냥 넘기지 않고 AI에게 원본 기준으로 다시 확인하게 했습니다. 통계가 비상식으로 보일 땐 십중팔구 데이터 처리 과정에 함정이 숨어 있습니다.
💡 이상하게 느껴지면 그 느낌을 믿어라. “이 숫자 진짜 맞아?”라고 AI에게 검증시키면 됩니다.
4) 함정 ③④: 한글 깨짐, 그리고 “하나씩 점검”
컬럼명에 한글이 깨져 보이네. 빈칸도 있고
변수명 일관성 점검. 계속 누락을 하니 하나씩 점검하면서 해야겠어
NHANES만 다시 한번, 통합파일에서 누락된 데이터를 원본과 대조해 검증하자
한글 깨짐을 고치고 변수명을 하나씩 점검했습니다. “한꺼번에 빨리”가 아니라 “하나씩 꼼꼼히”로 방향을 바꾼 거예요. 누락이 자꾸 반복되니까 속도를 늦추고 원본과 대조하며 확인하는 게 오히려 빨랐습니다.
💡 누락이 반복되면 속도를 늦춰라. “하나씩 점검하자”고 못 박는 게 결국 빠른 길입니다.
5) 팀워크 — 팀원의 지적을 데이터로 검증하고 되돌려주기
이 날 가장 의미 있었던 건 협업이었어요. 팀원(재미님)이 데이터를 보고 문제를 짚었습니다.
컬럼별 결측치(빈 값) 수치도 이상하게 높다는 의견을 받았어. 확인해줘
전체 데이터에 대한 결측 검증
재미님께는 공유했음. 메모리 갱신
지적을 흘려듣지 않고 AI로 전체 빈 값을 검증해 원인을 분석한 뒤 그 결과를 다시 팀원에게 돌려줬습니다. 누가 이상하다고 하면 감으로 답하지 말고 데이터로 확인해서 답한다 — 팀장으로서 좋은 습관을 들인 날이었어요.
💡 누가 지적하면 감이 아니라 데이터로 답하라. 검증해서 되돌려주면 팀 신뢰가 쌓입니다.
6) 정리 — 비슷한 파일이 너무 많아졌다
작업을 하다 보니 master_wide, master_wide_basic, master_wide_knhanes처럼 이름이 비슷한 파일이 여러 개 생겨 헷갈렸습니다.
build_knhanes_analytic.py 가 build_unified_csv.py 와 어떻게 연결되는 거야?
master_wide_basic, master_wide, master_wide_knhanes 세 파일의 관계가 어떻게 되는 거야?
AI가 ‘원시 통합 → 분석용 정리(마트)‘의 2단계 흐름으로 파일 관계를 정리해줬어요. 어떤 파일이 어디서 와서 어디에 쓰이는지 한눈에 보이게요. 덤으로 이때 시스템 구조 그림과 서비스 예상 시나리오도 그려뒀습니다.
💡 비슷한 파일이 늘면 관계부터 정리하라. “이건 어디서 와서 어디 쓰이지?”를 AI에게 그려달라고 하면 혼란이 가라앉습니다.
✅ 결과 (After)
Before vs After
| 항목 | Before | After |
|---|---|---|
| 통합 데이터 | 합쳤지만 함정 잠복 | 표본 중복 제거 + 검증 통과 |
| 이상한 숫자 | ”이거 맞나?” 찜찜 | 원본 대조로 확인·정리 |
| 한글·결측 | 깨짐·빈칸 방치 | 정리 + 결측 원인 분석 |
| 팀 협업 | 지적만 받음 | 검증해서 결과를 되돌려줌 |
| 파일 관리 | 비슷한 파일 난립 | 2단계 흐름으로 관계 정리 |
결과물
- 통합 CSV + 탐색(EDA) 노트북 (미국·한국 각각 + 통합)
- 데이터 함정 정리 — 표본 중복·이상치·한글·결측 검증 기록
- 데이터 파일 관계도 (원시 통합 → 분석용 정리본) + 시스템 구조 그림과 예상 시나리오
💬 이 과정에서 배운 AI 활용 팁
효과적이었던 것
- 이상하면 “이 숫자 진짜 맞아?”라고 검증시켜라 — 비상식적인 통계는 느낌을 믿고 원본까지 확인합니다. AI는 시키면 끝까지 파고듭니다.
- 데이터는 모아서 한눈에 펼쳐봐라 — 흩어져 있을 땐 안 보이던 함정이 합쳐서 그래프로 그려보면 드러납니다.
- 누가 지적하면 데이터로 답하라 — “빈 값이 이상하다” 같은 지적은 감이 아니라 검증 결과로 응답하세요. 팀 신뢰가 쌓입니다.
- 비슷한 파일이 늘면 관계부터 정리하라 — “이 파일은 어디서 와서 어디 쓰이지?”를 AI에게 그려달라고 하면 혼란이 가라앉습니다.
이렇게 하면 안 돼요
- AI가 보여준 숫자를 곧이곧대로 믿지 마세요 — 중간 처리(중복·단위·빈 값)에서 틀어질 수 있습니다. 비상식적이면 의심하세요.
- “한꺼번에 빨리”를 욕심내지 마세요 — 누락이 반복되면 속도를 늦추고 하나씩 점검하는 게 더 빠릅니다.
🌍 다른 업무에 적용한다면?
- 매출·실적 리포트: 합계가 갑자기 튀거나 비율이 이상하면 중복 집계·단위 오류일 때가 많습니다. “이 숫자 검증해줘”가 첫 질문이어야 해요.
- 설문·데이터 취합: 여러 시트를 합칠 때 중복 응답·빈 칸을 꼭 점검하세요. 그래프로 한 번 그려보면 이상이 바로 보입니다.
🚀 앞으로의 계획
데이터를 꼼꼼히 들여다보는 습관이 생기니 더 근본적인 질문이 떠올랐습니다. “그래서 우리가 예측하려는 게 정말 의미가 있나?”
다음 편(3편)에서는 데이터를 따져 묻다가 “이 예측 자체가 의미가 없다”는 사실을 스스로 발견합니다. 건강검진 결과로 고혈압·당뇨를 예측하는 건 알고 보니 답안지를 보고 시험 보는 것과 같았거든요. 이걸 ‘라벨 누수(예측해야 할 정답이 입력 데이터에 이미 새어 들어간 것)‘라고 해요. 이 문제를 발견하고 결국 예측 대상을 만성콩팥병(CKD)으로 통째로 갈아엎은 대형 피벗 이야기를 풀어볼게요.
📋 재사용 가능한 프롬프트
프롬프트 1: 데이터 함정·이상치 점검
이 데이터를 통합한 뒤, **이상한 점이 없는지 탐색(EDA)**해줘. 특히 ①표본·행 중복 ②비상식적으로 높거나 낮은 비율(이상치) ③빈 값(결측)이 이상하게 많은 컬럼 ④한글 깨짐·빈칸을 점검하고, 의심되는 항목은 원본과 대조해 검증한 뒤 결과를 표로 정리해줘.
프롬프트 2: 비상식적인 통계치 검증
방금 나온 [통계치, 예: 약물 복용 87.2%]가 비상식적으로 높아(낮아) 보여. 이 숫자가 정말 맞는지 원본 데이터 기준으로 다시 계산하고, 만약 틀렸다면 어떤 처리 과정(중복·단위·결측 등)에서 틀어졌는지 원인을 찾아줘.
프롬프트 3: 비슷한 데이터 파일 관계 정리
작업하다 보니 비슷한 이름의 파일이 여러 개 생겨서 헷갈려. 각 파일이 어디서 만들어져서(어떤 코드) 어디에 쓰이는지 관계를 단계별 흐름으로 정리하고, 어떤 게 원본이고 어떤 게 분석용 정리본인지 한눈에 보이게 표로 만들어줘.
📌 「AI 헬스케어 파이널 프로젝트」 연재 2편입니다. 다음 막에서 또 이어집니다.