AI가 만든 오류를 AI가 못 고치는 이유! 의외로 대부분 같은 원인입니다
바이브코딩을 하다 보면 이런 경험을 자주 합니다. AI가 작성한 코드에서 오류가 발생해 다시 AI에게 수정을 요청했는데, 문제가 해결되기는커녕 새로운 오류가 생기거나 기존에 잘 작동하던 기능까지 망가지는 경우입니다. 그래서 "AI가 자기가 만든 코드도 못 고치네?"라는 생각이 들기도 합니다.
하지만 실제 원인은 AI의 실력이 부족해서가 아닙니다. AI는 자신이 과거에 어떤 의도로 코드를 작성했는지 기억하는 개발자가 아니라, 현재 전달받은 정보를 바탕으로 코드를 분석하는 도구이기 때문입니다.
이번 글에서는 AI가 만든 오류를 AI가 바로 해결하지 못하는 이유와 더 정확하게 문제를 해결하는 방법을 알아보겠습니다.
AI는 자신이 예전에 작성한 코드를 기억하지 않습니다
많은 사람이 착각하는 부분이 있습니다.
"AI가 만든 코드니까 AI는 당연히 구조를 알고 있겠지."
실제로는 그렇지 않습니다.
AI는 현재 대화에서 제공된 코드와 설명을 바탕으로 분석합니다. 며칠 전에 만들었던 프로젝트나 이전에 생성했던 코드의 내부 구조를 자동으로 기억하고 있는 것은 아닙니다.
예를 들어
"예전에 만들어 준 로그인 기능이 오류가 나요."
라고만 말하면 AI는 어떤 프로젝트인지 알 수 없습니다.
반대로 아래처럼 설명하면 훨씬 정확해집니다.
"로그인 기능은 localStorage를 사용하고 있으며 login.js에서 처리합니다. 로그인 버튼을 누르면 화면은 바뀌지만 사용자 정보가 저장되지 않습니다."
오류보다 프로젝트 상황을 먼저 설명하는 것이 중요합니다.
오류 메시지보다 상황 설명이 더 중요할 때가 많습니다
초보자는 아래처럼 질문하는 경우가 많습니다.
"오류가 나요."
하지만 AI는 어떤 상황에서 문제가 발생했는지 알 수 없습니다.
아래 내용을 함께 알려 주면 분석 정확도가 크게 높아집니다.
- 언제 오류가 발생했는가
- 어떤 작업을 했는가
- 기대했던 결과는 무엇인가
- 실제 결과는 무엇인가
- 오류 메시지가 있는가
예를 들어
"회원가입 후 로그인 버튼을 누르면 콘솔에 오류가 표시되고 메인 화면으로 이동하지 않습니다."
처럼 작성하는 것이 좋습니다.
오류는 결과보다 재현 과정을 설명해야 원인을 찾기 쉽습니다.
AI는 오류만 보고 전체 원인을 알 수 없습니다
같은 오류 메시지라도 원인은 여러 가지일 수 있습니다.
예를 들어 저장이 되지 않는다면
- 변수 이름 오타
- 잘못된 파일 연결
- 데이터 저장 위치 변경
- 함수 호출 누락
- 브라우저 캐시 문제
등 다양한 원인이 있을 수 있습니다.
AI는 가장 가능성이 높은 원인을 추론합니다.
그래서 첫 번째 수정으로 해결되지 않을 수도 있습니다.
이때는
"첫 번째 방법으로 해결되지 않았습니다."
라고 말하기보다
"수정 후에도 저장은 되지 않고 콘솔에는 같은 오류가 표시됩니다."
처럼 결과를 알려 주는 것이 좋습니다.
전체 코드를 다시 만들면 문제가 더 커질 수 있습니다
오류가 생기면 많은 사람이 이렇게 요청합니다.
"전체 코드를 다시 만들어 주세요."
하지만 이 방법은 기존 기능까지 바뀔 가능성이 높습니다.
더 좋은 요청은 아래와 같습니다.
"검색 기능은 정상 작동합니다. 저장 기능만 수정해 주세요. HTML과 CSS는 변경하지 말아 주세요."
이처럼 수정 범위를 제한하면 AI도 필요한 부분만 분석하게 됩니다.
문제가 있는 기능만 고치는 것이 가장 안전한 방법입니다.
AI는 실행 결과를 직접 확인하지 못합니다
사람 개발자는 코드를 수정한 뒤 프로그램을 실행해 결과를 확인합니다.
하지만 AI는 사용자의 컴퓨터에서 실제 실행되는 화면을 직접 볼 수 없습니다.
따라서
- 버튼이 눌리지 않는지
- 화면이 어떻게 보이는지
- 어느 단계에서 멈추는지
를 사용자가 알려 주어야 합니다.
예를 들어
"추가 버튼을 누르면 아무 반응이 없고 콘솔에는 오류가 없습니다."
처럼 실제 결과를 설명하면 원인을 좁히기 쉬워집니다.
AI는 실행 환경을 볼 수 없기 때문에 사용자의 관찰이 중요한 단서가 됩니다.
오류를 하나씩 해결해야 성공률이 높습니다
프로젝트에 오류가 여러 개 있을 때 한꺼번에 해결하려고 하면 분석이 어려워집니다.
예를 들어
- 저장 안 됨
- 삭제 안 됨
- 모바일 화면 깨짐
- 로그인 실패
를 동시에 요청하기보다
먼저 저장 기능을 해결한 뒤 다음 문제를 해결하는 것이 좋습니다.
AI에게도
"현재는 저장 기능만 확인해 주세요."
라고 요청하면 분석 범위를 줄일 수 있습니다.
오류도 기능처럼 하나씩 해결해야 원인을 정확히 찾을 수 있습니다.
코드보다 프로젝트 구조를 먼저 보여 주세요
파일이 많아질수록 코드 일부만 전달해서는 원인을 찾기 어렵습니다.
먼저 아래 내용을 알려 주면 도움이 됩니다.
- 폴더 구조
- 파일 이름
- 각 파일의 역할
- 어떤 파일에서 오류가 발생하는지
예를 들어
"프로젝트는 login.js, storage.js, profile.js로 구성되어 있습니다. storage.js 수정 후부터 저장 기능이 동작하지 않습니다."
처럼 설명하면 AI가 연결 관계를 이해하기 쉽습니다.
AI에게 원인부터 분석해 달라고 요청하세요
많은 사람이 곧바로
"고쳐 주세요."
라고 요청합니다.
하지만 아래와 같은 방식이 더 효과적입니다.
"먼저 오류 원인을 분석해 주세요. 수정이 필요한 파일과 이유를 설명한 뒤 최소한의 코드만 변경해 주세요."
이렇게 요청하면 AI가 무조건 코드를 다시 작성하기보다 현재 구조를 먼저 검토하게 됩니다.
분석이 끝난 뒤 수정하는 방식이 대형 프로젝트에서는 훨씬 안정적입니다.
AI와 함께 오류를 해결하는 가장 좋은 방법
AI가 만든 오류를 AI가 바로 해결하지 못하는 이유는 AI가 자신의 과거 작업을 기억하지 못해서가 아니라, 현재 전달받은 정보만으로 원인을 추론해야 하기 때문입니다. 프로젝트 구조를 모르는 상태에서 오류 메시지 하나만으로 정확한 원인을 찾는 것은 사람 개발자에게도 쉽지 않은 일입니다.
AI가 만든 오류를 AI가 못 고치는 이유는 대부분 정보가 부족하거나 수정 범위가 너무 넓기 때문입니다. 프로젝트 구조, 오류가 발생하는 상황, 기대한 결과와 실제 결과, 변경하면 안 되는 기능까지 함께 알려 주면 해결 가능성이 크게 높아집니다.
오늘부터는 "오류가 나요. 고쳐 주세요." 대신 "현재 프로젝트 구조는 이렇고, 저장 기능만 문제가 있습니다. 기존 기능은 유지하면서 먼저 원인을 분석해 주세요."라고 요청해 보세요. 작은 설명 하나가 AI의 분석 정확도를 크게 높이고, 불필요한 코드 수정도 줄여 줄 것입니다.