본문 바로가기

카테고리 없음

AI가 자꾸 엉뚱한 코드를 준다면? 예전 코드 기준으로 답하고 있다는 신호 10가지

AI가 자꾸 엉뚱한 코드를 준다면? 예전 코드 기준으로 답하고 있다는 신호 10가지

“분명 지금 코드에서는 이 함수가 없는데 AI는 왜 계속 있다고 말할까요?”
 
바이브코딩을 오래 하다 보면 AI가 현재 프로젝트가 아니라 이전 버전의 코드나 과거 대화 내용을 기준으로 답변하는 상황을 만나게 됩니다.

처음에는 단순한 실수처럼 보이지만, 이 상태에서 수정 작업을 계속하면 함수 이름이 꼬이고 파일 구조가 바뀌며 정상적으로 작동하던 기능까지 망가질 수 있습니다.

문제는 AI가 “지금 오래된 코드를 보고 있습니다”라고 항상 알려 주는 것이 아니라는 점입니다. 사용자가 직접 몇 가지 신호를 보고 판단해야 합니다.

바이브코딩에서 중요한 것은 AI가 모든 프로젝트 상태를 완벽하게 기억할 것이라고 기대하는 것이 아니라 현재 코드와 AI가 이해하고 있는 코드가 같은지 계속 확인하는 습관입니다.
 
 

이미 삭제한 함수 이름을 계속 언급합니다

가장 쉽게 발견할 수 있는 신호입니다.

예전에는 saveTodo()라는 함수를 사용했지만 지금은 saveTask()로 변경했다고 생각해 보겠습니다.

그런데 AI가 계속
“saveTodo() 함수에서 데이터를 저장하도록 수정하세요.”
라고 답한다면 이전 상태를 기준으로 생각하고 있을 가능성이 있습니다.

이때 AI가 제안한 코드를 그대로 적용하면 이미 없어진 함수를 다시 만들거나 같은 역할의 함수가 중복될 수 있습니다.

현재 코드에 없는 이름이 반복해서 등장한다면 바로 멈추고 최신 상태를 다시 알려 주세요.
 
 

존재하지 않는 파일을 수정하라고 합니다

예전 프로젝트에는 login.js가 있었지만 리팩터링하면서 auth.js로 통합했다고 가정해 보겠습니다.

그런데 AI가
“login.js의 30번째 줄을 수정하세요.”
라고 답한다면 현재 프로젝트 구조를 제대로 반영하지 못하고 있는 것입니다.

이런 상황에서는 AI에게 바로 수정을 요청하지 말고 먼저 현재 파일 목록을 다시 전달하세요.

예를 들면 다음과 같습니다.
현재 파일
app.js
auth.js
storage.js
ui.js

“현재 프로젝트에는 login.js가 없습니다. 위 파일 구조를 기준으로 다시 분석해 주세요.”


파일 구조가 맞지 않는 답변은 오래된 문맥을 사용하고 있다는 강력한 신호입니다.
 
 

이미 해결한 오류를 다시 해결하려고 합니다

이전에는 저장 오류가 있었지만 이미 해결했고 지금은 검색 기능만 문제라고 생각해 보겠습니다.

그런데 AI가 계속 localStorage 저장 문제를 분석한다면 과거 오류에 머물러 있을 수 있습니다.

이럴 때는 현재 상태를 명확하게 구분해서 전달하는 것이 좋습니다.

“저장 기능은 이미 해결되어 정상 작동합니다. 현재 문제는 검색 결과가 화면에 표시되지 않는 것입니다.”


정상으로 바뀐 기능을 AI가 계속 문제로 취급한다면 현재 상태를 다시 동기화해야 합니다.
 
 

사용하지 않는 라이브러리를 계속 추천합니다

프로젝트 초반에는 특정 라이브러리를 사용했지만 나중에 제거했을 수 있습니다.

그런데 AI가 계속 해당 라이브러리의 함수나 설정을 기준으로 코드를 제안한다면 과거 프로젝트 환경을 기억하고 있는 것입니다.

예를 들어 현재는 순수 JavaScript로 바꿨는데 AI가 계속 React 컴포넌트 기준으로 답한다면 분명한 문제가 있습니다.

이때는 다음처럼 기준을 다시 선언하세요.

“현재 프로젝트는 순수 HTML, CSS, JavaScript만 사용합니다. React와 외부 라이브러리는 사용하지 않습니다.”


사용 기술이 달라졌다면 새 작업을 시작하기 전에 현재 기술 스택부터 다시 알려 주는 것이 안전합니다.
 
 

변수 이름이 현재 코드와 조금씩 다릅니다

오래된 코드를 기준으로 답할 때 자주 나타나는 현상입니다.

현재 변수는
currentUser
인데 AI는
userData
를 계속 사용할 수 있습니다.

또는 현재 데이터는 tasks인데 AI가 todos라는 배열을 새로 만들 수도 있습니다.

이런 작은 차이를 무시하면 데이터가 서로 분리되고, 저장과 화면 출력이 다른 값을 바라보는 문제가 생길 수 있습니다.

비슷한 이름이라고 그대로 적용하지 말고 현재 프로젝트의 변수 이름과 일치하는지 확인하세요.
 
 

코드 설명과 실제 파일 내용이 맞지 않습니다

AI가
“이 함수는 현재 사용자 정보를 반환합니다.”
라고 설명했는데 실제 코드를 보면 그런 함수가 없을 수 있습니다.

또는
“현재 코드에서는 데이터를 JSON으로 저장하고 있습니다.”
라고 했지만 실제로는 다른 방식일 수 있습니다.

이런 상황은 AI가 실제 최신 파일보다 이전 대화의 설명을 더 강하게 참고하고 있다는 신호일 수 있습니다.

중요한 수정이라면 최신 파일을 다시 제공하고

“설명보다 이 파일의 현재 내용을 기준으로 판단해 주세요.”

라고 요청하는 것이 좋습니다.
 
 

내가 요청하지 않은 구조 변경을 다시 제안합니다

이전에 AI가 파일 구조 변경을 제안했지만 사용자가 적용하지 않았다고 생각해 보겠습니다.

그런데 이후 대화에서 AI가 그 변경이 이미 적용된 것처럼 답할 수도 있습니다.

예를 들어
“앞에서 분리한 services 폴더에서 API 코드를 수정하세요.”
라고 말하지만 실제 프로젝트에는 해당 폴더가 없을 수 있습니다.

AI가 제안한 것과 사용자가 실제 적용한 것을 혼동한 상황입니다.

AI가 제안했다고 해서 실제 프로젝트가 자동으로 바뀐 것은 아닙니다.
 
 

수정 위치를 찾지 못하고 전체 코드를 다시 쓰려고 합니다

AI가 현재 구조를 제대로 이해하지 못하면 특정 문제를 수정하기보다 전체 파일을 새롭게 작성하려는 경향이 나타날 수 있습니다.

예를 들어 작은 검색 오류인데
“전체 app.js를 아래 코드로 교체하세요.”
라고 제안합니다.

이런 상황에서는 바로 적용하지 말고 다음처럼 요청하세요.

“전체 파일을 다시 작성하지 마세요. 현재 코드에서 문제가 발생한 함수와 관련 파일만 먼저 찾아 주세요.”


AI가 갑자기 전체 재작성을 제안한다면 현재 코드 문맥이 충분한지 먼저 확인하는 것이 좋습니다.
 
 

같은 질문에 답변 구조가 갑자기 크게 달라집니다

조금 전까지는 localStorage를 사용하던 프로젝트였는데 다음 답변에서는 서버 데이터베이스를 전제로 설명할 수 있습니다.

또는 기존에는 함수형 구조였는데 갑자기 클래스 기반 구조를 제안할 수도 있습니다.

기술적 선택이 달라질 수는 있지만 사용자가 변경을 요청하지 않았는데 기준이 크게 바뀐다면 현재 프로젝트 상태를 놓쳤을 가능성이 있습니다.

이때는

“기존 저장 방식과 파일 구조를 유지한 채 답해 주세요.”

라고 기준을 다시 고정하세요.
 
 

최신 상태를 다시 보여 줬더니 답이 크게 달라집니다

가장 확실한 확인 방법입니다.
AI가 오래된 코드를 보고 있다고 의심된다면 최신 파일을 다시 제공해 보세요.

그 후 답변이
“현재 코드를 보니 앞서 설명한 원인과 다릅니다.”
처럼 크게 바뀐다면 이전 답변이 오래된 문맥에 영향을 받았을 가능성이 큽니다.

그래서 중요한 오류일수록 기억에 의존하지 말고 현재 파일을 기준으로 다시 분석시키는 방법이 안전합니다.
 
 

AI가 예전 코드를 보고 있는 건 아닌지 확인하는 체크리스트

  1. 현재 없는 함수 이름을 언급하는가?
  2. 삭제된 파일을 수정하라고 하는가?
  3. 이미 해결된 오류를 계속 문제로 취급하는가?
  4. 현재 사용하지 않는 라이브러리를 기준으로 답하는가?
  5. 변수와 함수 이름이 현재 코드와 다른가?
  6. 설명한 코드 구조가 실제 파일과 맞지 않는가?
  7. 적용하지 않은 과거 제안을 이미 적용된 것처럼 말하는가?
  8. 작은 오류인데 전체 파일 재작성을 요구하는가?
  9. 사용자가 요청하지 않았는데 기술 구조가 갑자기 바뀌는가?
  10. 최신 파일을 다시 제공했더니 답변이 크게 달라지는가?


두세 가지가 동시에 보인다면 바로 수정 작업을 이어가기보다 현재 프로젝트 상태를 다시 정리하는 것이 좋습니다.
 
 

최신 코드 기준으로 다시 맞추는 프롬프트

아래 문장을 활용해 보세요.

“이전 대화의 코드가 현재 프로젝트와 다를 수 있습니다. 지금부터는 과거 코드나 이전 제안을 기준으로 추측하지 말고 제가 제공하는 현재 상태만 기준으로 분석해 주세요. 현재 파일은 app.js, auth.js, storage.js, ui.js입니다. 로그인, 저장, 삭제 기능은 정상이고 검색 기능만 문제가 있습니다. 현재 존재하지 않는 함수나 파일 이름을 새로 가정하지 마세요. 먼저 현재 구조와 문제 범위를 요약한 뒤 수정이 필요한 파일만 알려 주세요. 전체 코드는 다시 작성하지 말고 최소 범위만 수정해 주세요.”


핵심은 현재 상태를 새로운 기준점으로 선언하는 것입니다.
 
 

AI의 기억보다 현재 파일을 믿어야 합니다

바이브코딩에서 AI가 오래된 코드 기준으로 답변하는 상황을 구별하려면 함수 이름, 파일 구조, 변수, 사용 기술, 이미 해결된 기능이 실제 프로젝트와 맞는지 확인하면 됩니다.

AI가 이전 대화를 잘 기억하는 것처럼 보여도 프로젝트는 사용자의 컴퓨터에서 계속 변합니다.

사용자가 직접 수정한 내용이나 적용하지 않은 AI 제안까지 완벽하게 구분한다고 기대하면 위험합니다.

그래서 프로젝트가 커질수록 다음 순서를 습관으로 만들어 보세요.

현재 상태 요약 → 최신 파일 확인 → AI의 이해 내용 확인 → 작은 범위 수정 → 직접 테스트 → 정상 버전 기록

AI가 과거 코드를 기준으로 이야기하는 것 같다면 같은 설명을 계속 이어가지 마세요.

“지금 실제로 존재하는 코드는 무엇인가?”


이 질문부터 다시 확인하는 것이 가장 빠릅니다.

바이브코딩에서는 AI의 기억보다 현재 프로젝트 파일이 최종 기준입니다.

이 원칙만 지켜도 이미 삭제한 함수를 다시 만들거나, 오래된 구조로 되돌아가면서 생기는 불필요한 오류를 크게 줄일 수 있습니다.