AI가 만들어준 코드, 왜 계속 에러가 날까?
Cursor나 ChatGPT로 코드를 짜다 보면 어느 순간 이런 상황이 옵니다. AI가 코드를 만들어줬는데 실행하면 에러가 나고, 에러를 붙여넣어 물어보면 또 다른 코드를 줍니다. 그걸 적용하면 또 에러. 이 반복에서 빠져나오지 못하는 분들이 많습니다.
AI가 만들어준 코드가 에러 나는 데는 반드시 이유가 있습니다. 그 원인을 알면 훨씬 빠르게 해결할 수 있습니다. 대표적인 5가지를 정리했습니다.
1. 버전 불일치 (Version Mismatch)
가장 흔한 원인입니다. AI 모델의 학습 데이터에는 특정 시점까지의 정보만 포함되어 있습니다. 그래서 AI가 알고 있는 라이브러리 버전과 지금 설치된 버전이 다를 수 있습니다.
예를 들어 AI가 React 17 기준으로 코드를 작성했는데, 프로젝트에는 React 18이 설치되어 있으면 API가 달라 에러가 납니다. Next.js 12와 13/14의 폴더 구조와 라우팅 방식은 완전히 다릅니다.
해결 방법
- AI에게 물어볼 때 버전을 명시하세요: "Next.js 14 App Router 기준으로"
package.json에서 현재 설치된 버전을 확인 후 AI에게 전달하세요- 에러 메시지에 deprecated나 removed가 있으면 버전 문제일 가능성이 높습니다
2. 컨텍스트 부족 (Context Missing)
AI는 대화창에 있는 정보만 알고 있습니다. 내 프로젝트 전체 구조, 다른 파일들, 환경 변수 설정, 이미 설치된 패키지들을 모릅니다. 그래서 AI가 만들어주는 코드는 종종 "이 프로젝트에서 실제로 동작하지 않는" 코드가 됩니다.
해결 방법
- 관련 파일을 같이 붙여넣어 주세요 (에러나는 파일만이 아니라 연관된 파일들도)
- 폴더 구조를 텍스트로 전달하세요
package.json의 dependencies 부분을 공유하세요- 환경 변수가 관련된 경우, 변수 이름(값은 빼고)을 알려주세요
3. 에러 메시지를 제대로 전달하지 않음
에러가 나면 터미널이나 브라우저 콘솔에 에러 메시지가 뜹니다. 많은 분들이 이 메시지를 제대로 보지 않거나, AI에게 전달하지 않고 "에러가 났어요"라고만 합니다. 에러 메시지 자체가 원인을 담고 있는 경우가 대부분입니다.
해결 방법
- 터미널의 에러 메시지 전체를 복사해 AI에게 전달하세요
- 브라우저는 F12 → Console 탭에서 에러를 확인하세요
- 에러 메시지에서 파일명과 줄 번호를 찾아 해당 위치를 확인하세요
4. 환경 문제 (Environment Issues)
코드 자체는 문제없는데 실행 환경이 달라서 에러가 나는 경우입니다. 가장 흔한 예는 Node.js 버전 차이, 운영체제 차이(Windows vs Mac), 또는 환경 변수 설정 누락입니다.
AI가 만든 코드가 맞는데도 에러가 나면, 코드가 아니라 환경을 의심해보세요.
해결 방법
.env파일이 필요한지 확인하세요 (.env.example이 있다면 그걸 기준으로)- Node.js 버전을 확인하세요: 터미널에서
node -v - 패키지를 다시 설치해보세요:
rm -rf node_modules && npm install
5. AI가 존재하지 않는 함수/API를 만들어냄 (Hallucination)
AI는 때때로 실제로 존재하지 않는 함수, 메서드, 라이브러리를 자신있게 사용합니다. 이걸 "환각(hallucination)"이라고 합니다. 코드가 그럴 듯해 보여도 실행하면 "is not a function" 같은 에러가 납니다.
해결 방법
- 모르는 함수가 나오면 공식 문서에서 실제로 있는지 확인하세요
- npm 패키지라면 npmjs.com에서 실제로 존재하는지 검색하세요
- 에러 메시지에 "is not a function", "is not defined"가 있으면 환각 가능성이 높습니다
정리
AI가 만들어준 코드가 에러나는 이유는 대부분 버전 불일치, 컨텍스트 부족, 에러 메시지 미전달, 환경 문제, 환각 중 하나입니다. 이 5가지를 순서대로 체크해보면 많은 경우 원인을 좁힐 수 있습니다.
그래도 해결이 안 된다면, 혼자 붙잡고 있는 것보다 도움을 받는 게 훨씬 빠릅니다.