프롬프트팁트러블슈팅
AI가 없는 함수를 자신 있게 지어낼 때 — 할루시네이션 대처법
2026.07.25👁 5
"이 함수 쓰면 돼요" 하면서 AI가 df.auto_clean() 같은 걸 술술 알려줬는데, 막상 돌려보니 그런 함수가 없다. AI 코딩하다 보면 하루에도 몇 번씩 겪는 일이죠. 오늘은 이 할루시네이션(그럴듯한 거짓말) 을 다루는 법이에요.
AI 할루시네이션 — 왜 없는 걸 지어낼까요
AI는 "정답"을 아는 게 아니라 "이 다음에 올 법한 말" 을 예측해요. 그래서 실제 존재 여부보다 "있을 법함" 에 끌립니다. 특히 마이너한 라이브러리나 아주 최신 버전일수록, 학습에 쓰인 자료가 적어서 더 자주 지어내요.
지어낼 때의 신호 — 이럴 때 의심하세요
경험상 할루시네이션은 특정 상황에 몰려요. 이럴 때 한 번 더 확인하세요.
- 딱 필요한 이름의 함수가 마침 있다고 할 때 (
autoFixEverything()처럼 너무 편한 이름) - 아주 최신 버전의 기능을 물어봤을 때
- 마이너한 라이브러리의 세부 API를 설명할 때
- 근거 링크 없이 지나치게 확신할 때
이게 왜 위험하냐면
시간 낭비로 끝나면 다행인데, 보안 문제 로도 번져요. AI가 존재하지 않는 패키지 이름 을 지어내는 경우가 있는데, 공격자가 이 "자주 지어내는 이름" 패턴을 노려 똑같은 이름의 악성 패키지를 미리 올려두는 수법이 있어요. 이걸 '슬롭스쿼팅(slopsquatting)'이라고 불러요. 그래서 AI가 알려준 패키지는 설치 전에 실존 확인 이 필수예요.
# AI가 추천한 패키지명을 그대로 설치하지 말고, 레지스트리에 실제 있는지 먼저 확인해요
# ← AI가 알려준 패키지 이름을 여기에 넣어요
PKG="ai-suggested-lib"
# npm이면: 버전이 뜨면 실존, 404가 나면 지어낸 이름일 수 있어요
npm view "$PKG" version
# 파이썬이면: 후보 버전이 안 뜨면 존재하지 않는 패키지예요
# (pip index는 실험적 명령이라 버전에 따라 안 될 수 있어요)
pip index versions "$PKG"
# 위가 안 되면 이 방법으로 — 페이지가 없으면 지어낸 이름이에요
pip download "$PKG" --no-deps -d /tmp/chkAI 할루시네이션 줄이는 법
- 문서를 붙여주세요. "추측하지 말고, 아래 붙인 공식 문서 기준으로만 써줘" 한 줄이면 지어냄이 확 줄어요.
- "모르면 모른다고 해" 를 명시하세요. 확신 못 하는 부분을 표시하게 만드는 거예요.
- 검증을 시키세요. 에이전트라면 "import해서 실제로 실행되는지 확인하고 알려줘"가 최고예요. 코드는 결국 돌려봐야 진짜인지 압니다.
- 스택·버전을 규칙 파일에 고정 하세요. (지난 기사에서 다룬 CLAUDE.md·AGENTS.md가 여기서도 효자예요.)
한 줄 요약
핵심은 하나예요 — AI의 자신감과 정확함은 별개. 술술 말한다고 맞는 게 아니에요. 특히 패키지·최신 API는 꼭 한 번 실물로 확인하고 넘어가세요. 30초 확인이 나중의 몇 시간을 아껴요. 여러분이 겪은 황당한 할루시네이션 사례, 방에 풀어주세요 😅 서로 백신 맞는 셈이에요 ⚡