본문 바로가기

카테고리 없음

AI가 이전 코드를 잊어버리면 생기는 문제! 바이브코딩 프로젝트를 지키는 방법

AI가 이전 코드를 잊어버리면 생기는 문제! 바이브코딩 프로젝트를 지키는 방법

“분명 아까까지 잘 만들고 있었는데 왜 갑자기 AI가 다른 코드로 바꿔 버릴까요?”
 
바이브코딩을 하다 보면 꽤 자주 겪는 문제입니다. 처음에는 AI가 프로젝트 구조를 잘 이해하고 있는 것처럼 보이지만, 대화가 길어지거나 파일이 많아지면 이전에 정했던 변수 이름, 함수 구조, 파일 역할을 놓치는 경우가 있습니다.

이 상태에서 수정 요청을 이어 가면 AI가 예전 코드와 다른 기준으로 새 코드를 제안하면서 프로젝트가 흔들릴 수 있습니다.

버튼 하나만 고치려 했는데 파일 구조가 바뀌고, 이미 있던 함수가 새 이름으로 만들어지며, 저장 방식까지 달라질 수도 있습니다.

바이브코딩에서 중요한 것은 AI가 모든 코드를 기억할 것이라고 기대하는 것이 아니라 프로젝트의 기준을 사람이 계속 유지해 주는 것입니다.
 
 

AI가 이전 코드를 잊으면 함수가 중복될 수 있습니다

예를 들어 프로젝트에 이미 saveTodo()라는 함수가 있다고 생각해 보겠습니다.

그런데 AI가 이전 구조를 제대로 기억하지 못하면 비슷한 역할의 saveTask() 함수를 새로 만들 수 있습니다.

그러면 프로젝트 안에
saveTodo()
saveTask()
처럼 비슷한 기능이 두 개 생깁니다.

처음에는 둘 다 작동하는 것처럼 보여도 시간이 지나면 어떤 함수가 실제로 사용되는지 헷갈리기 시작합니다.

같은 역할의 함수가 여러 개 생기는 순간 유지보수 난이도도 함께 올라갑니다.
 
 

변수 이름이 바뀌면서 기존 기능이 깨질 수 있습니다

처음에는 사용자 이름을 userName이라는 변수로 저장했다고 가정해 보겠습니다.

그런데 나중에 AI가 이를 기억하지 못하고 username이나 name이라는 새 변수를 사용할 수 있습니다.

사람 눈에는 비슷해 보이지만 컴퓨터는 서로 다른 값으로 처리합니다.

이 때문에

  • 로그인 정보가 표시되지 않거나
  • 데이터 저장이 끊기고
  • 다른 함수가 값을 찾지 못하는

문제가 생길 수 있습니다.

바이브코딩에서는 변수 이름 하나의 변화도 기존 구조 전체에 영향을 줄 수 있습니다.
 
 

파일 역할이 뒤섞일 수 있습니다

프로젝트 초반에는

  • app.js : 전체 실행
  • storage.js : 데이터 저장
  • ui.js : 화면 출력

처럼 역할을 정리했을 수 있습니다.

하지만 대화가 길어지면 AI가 이런 구조를 놓치고 app.js 안에 저장 기능을 다시 넣을 수 있습니다.

그러면 같은 기능이 여러 파일에 나뉘거나 중복됩니다.

나중에 오류가 생겼을 때 어느 파일을 고쳐야 할지 찾기 어려워집니다.

파일 구조를 정했다면 AI에게 계속 그 구조를 유지하도록 알려 주는 것이 좋습니다.
 
 

이미 만든 기능을 다시 만들 수 있습니다

AI가 이전 대화를 충분히 참고하지 못하면 이미 존재하는 기능을 새로 구현하려고 할 수 있습니다.

예를 들어 검색 기능이 있는데 다시 검색 기능을 추가하거나, 이미 있는 로그인 로직 위에 새로운 로그인 코드를 덧붙일 수 있습니다.

이때 가장 위험한 상황은 새 기능이 기존 기능과 충돌하는 것입니다.

버튼 이벤트가 두 번 실행되거나, 같은 데이터를 서로 다른 방식으로 저장할 수도 있습니다.

기능을 추가하기 전에 ‘이미 있는 기능인지’ 먼저 확인하는 과정이 필요합니다.
 
 

데이터 저장 방식이 갑자기 달라질 수 있습니다

처음에는 localStorage를 사용했는데 AI가 나중에는 다른 저장 방식을 제안할 수도 있습니다.

예를 들어
기존 방식
localStorage 사용
새로운 제안
다른 데이터 구조나 외부 저장 방식 사용
으로 바뀌는 것입니다.

이런 변화가 제대로 계획되지 않으면 기존 데이터가 읽히지 않거나 저장 형식이 달라질 수 있습니다.

데이터 저장 방식은 프로젝트 중간에 쉽게 바꾸면 안 되는 중요한 기준입니다.
 
 

“이 부분만 수정해 줘”가 통하지 않는 이유도 여기에 있습니다

사용자는

“이 부분만 수정해 줘.”

라고 말하지만 AI는 현재 프로젝트 전체 구조를 완벽하게 기억하지 못할 수 있습니다.

그러면 ‘이 부분’이 정확히 어디까지인지 다르게 해석할 수 있습니다.

예를 들어 버튼 디자인만 수정해 달라는 요청인데 HTML 구조와 JavaScript까지 함께 바꿀 수도 있습니다.

그래서 더 안전한 요청은 다음과 같습니다.

“style.css의 저장 버튼 색상만 변경해 주세요. HTML 구조, JavaScript 함수, 변수 이름은 변경하지 마세요.”


수정 대상과 변경 금지 항목을 함께 지정하면 엉뚱한 수정 가능성을 줄일 수 있습니다.
 
 

프로젝트 기준 문서를 만들어 두세요

AI가 이전 코드를 잊어버리는 문제를 줄이는 가장 좋은 방법 가운데 하나입니다.
프로젝트 최상단에 간단한 기준 문서를 만들어 보세요.

예를 들어 다음 내용을 적습니다.

  • 프로젝트 목적
  • 사용 기술
  • 파일 구조
  • 핵심 함수 이름
  • 데이터 저장 방식
  • 변경하면 안 되는 규칙


예시는 다음과 같습니다.

  • 프로젝트 기준
  • HTML, CSS, 순수 JavaScript 사용
  • 외부 라이브러리 사용 금지
  • storage.js는 데이터 저장만 담당
  • userName 변수 이름 유지
  • localStorage 사용
  • 전체 코드 재작성 금지


새 대화를 시작하거나 AI가 프로젝트를 혼동하는 것 같을 때 이 내용을 다시 전달하면 됩니다.

프로젝트 기준 문서는 AI의 기억을 대신하는 외부 메모장 역할을 합니다.
 
 

수정 요청 전에 현재 상태를 짧게 요약하세요

매번 전체 코드를 설명할 필요는 없습니다.
대신 중요한 상태만 짧게 알려 주세요.

예를 들어

“현재 로그인, 저장, 삭제 기능은 정상입니다. 파일은 app.js, storage.js, ui.js로 나뉘어 있습니다. 이번에는 검색 기능만 추가하려고 합니다. 기존 함수 이름과 저장 방식은 변경하지 마세요.”


이 정도만 알려 줘도 AI가 프로젝트를 이해하는 데 큰 도움이 됩니다.

현재 상태 요약은 길게 쓰는 것보다 핵심 기준을 정확하게 전달하는 것이 중요합니다.
 
 

중요한 파일은 수정 전에 다시 보여 주세요

프로젝트가 커졌다면

“아까 만든 코드 기준으로 수정해 줘.”

라고 하지 않는 편이 좋습니다.
대신 수정 대상 파일의 현재 내용을 다시 제공하세요.

예를 들어 저장 오류가 있다면 storage.js의 최신 상태를 보여 주고

“이 파일이 현재 사용 중인 최신 버전입니다.”

라고 알려 줍니다.

AI가 오래된 코드 기준으로 수정하는 문제를 줄일 수 있습니다.

중요한 수정일수록 ‘기억’보다 ‘현재 파일’을 기준으로 작업하게 해야 합니다.
 
 

정상 버전을 계속 저장하세요

AI가 이전 코드를 잊어버려 프로젝트가 크게 바뀌었을 때 가장 중요한 것은 되돌아갈 수 있는 상태입니다.

Git을 사용할 수 있다면 커밋을 남기고, 아직 어렵다면 폴더 복사도 충분합니다.

예를 들면
v1_기본화면완료
v2_저장완료
v3_로그인완료
v4_검색추가전
처럼 저장합니다.

AI가 새로운 구조를 제안해 프로젝트가 망가졌다면 계속 수정하지 말고 마지막 정상 버전으로 돌아가는 것이 더 빠를 수 있습니다.

버전 관리는 AI의 기억 부족으로 생기는 문제를 막아 주는 가장 강력한 안전장치입니다.
 
 

AI가 이전 코드를 잊은 것 같을 때 사용하는 프롬프트

아래 프롬프트를 그대로 활용해도 좋습니다.

“현재 프로젝트 기준을 다시 설명합니다. HTML, CSS, 순수 JavaScript를 사용하고 있으며 app.js, storage.js, ui.js 구조를 유지합니다. userName 변수 이름과 localStorage 저장 방식은 변경하지 않습니다. 현재 입력, 저장, 삭제 기능은 정상입니다. 이번 작업에서는 검색 기능만 추가해 주세요. 기존 함수와 변수 이름을 새로 만들거나 전체 파일을 다시 작성하지 마세요. 수정 전에 어떤 파일과 함수가 변경될지 먼저 설명해 주세요.”


이 요청의 핵심은
현재 구조
정상 기능
유지할 이름
저장 방식
수정 범위
를 한 번에 전달하는 것입니다.
 
 

AI가 기억하는 프로젝트보다 사람이 관리하는 프로젝트가 더 안전합니다

바이브코딩을 오래 할수록 AI가 이전 코드를 모두 기억해 줄 것이라는 기대는 위험할 수 있습니다.

대화가 길어지고 프로젝트가 커질수록 변수, 함수, 파일 구조, 데이터 저장 방식 같은 중요한 정보가 어긋날 가능성도 커집니다.

그래서 프로젝트를 안정적으로 유지하려면
프로젝트 기준 문서 작성 → 현재 상태 요약 → 최신 파일 제공 → 작은 범위 수정 → 즉시 테스트 → 정상 버전 저장
순서를 습관처럼 반복하는 것이 좋습니다.
 
 
AI는 매우 강력한 개발 도구지만 프로젝트의 기억을 책임지는 사람은 결국 사용자입니다.

다음에 AI가 갑자기 새로운 함수 이름을 만들거나 파일 구조를 바꾸려고 한다면 그대로 적용하지 마세요.

“현재 프로젝트 기준과 맞는가?”

이 질문을 먼저 확인하는 습관이 바이브코딩 프로젝트를 오래 안정적으로 유지하는 가장 현실적인 방법입니다.