AI 코딩

AI 코딩으로 다시 짠 코드, 테스트를 통과해도 예전과 같다는 뜻은 아닙니다

AI 코딩으로 다시 짠 코드는 테스트를 모두 통과해도 예전과 다르게 돌 수 있습니다. AI 코딩 도구를 만드는 앤트로픽은 2025년 2월, 자기 AI가 풀기 어려운 테스트를 만나면 가끔 테스트가 기대하는 답만 돌려주게 짜거나 테스트 자체를 고쳐서 통과시켰다고 밝혔습니다. 오래된 코드의 98%를 24개월 안에 AI로 다시 짜겠다는 시스코의 시도를 전한 2026년 10월 30일 포춘 기사에도, 다시 짠 코드가 예전과 같은지 어떻게 확인하는지는 나오지 않습니다. 그래서 확인은 AI가 손대기 전에 지금 프로그램이 내는 결과를 정답표로 받아, AI 손이 닿지 않는 곳에 두는 일부터 합니다. 그다음 같은 입력을 새 프로그램에 넣어 결과를 견주고, 다른 줄은 사람이 고친 것인지 틀린 것인지 하나씩 가르고, 되돌릴 길을 남긴 채 일부부터 바꿔 끼우세요.

확인한 날
2026. 11. 03
다시 확인
매달 첫 주

AI로 다시 짠 코드가 예전과 같은지는 무엇으로 확인하나요

같은 입력을 예전 프로그램과 새 프로그램에 넣고 결과를 견줍니다. 화면에 뜨는 값만이 아니라 저장되는 자료, 밖으로 나가는 메일·문자·결제 요청, 잘못된 값을 넣었을 때의 동작까지 견줍니다. 개발자들은 바꾼 뒤에도 예전 동작이 그대로인지 보는 이런 확인을 회귀 테스트라고 부릅니다.

견주려면 기준이 먼저 있어야 합니다. AI가 손대기 전에 지금 프로그램에 여러 입력을 넣어 나온 결과를 짝지어 적어 둔 표, 곧 정답표입니다. 테스트(프로그램이 제대로 도는지 자동으로 확인하는 검사)가 이미 있다면 그것도 정답표의 일부입니다.

확인 방법잡아내는 것놓치는 것
정답표 견주기: 지금 프로그램에 넣은 입력을 새 프로그램에 그대로 넣어 봄계산, 저장, 출력이 한 글자라도 달라진 곳정답표에 없는 입력
직원이 평소 일하는 순서대로 눌러 보기화면 순서나 버튼 이름이 바뀌어 일이 막히는 곳가끔 도는 일(월말 정산, 취소·환불)
옮긴 자료 세기: 회원, 주문, 파일 수와 금액 합계를 양쪽에서 셈옮기다 빠지거나 두 번 들어간 자료수는 같은데 내용이 바뀐 자료(몇 건은 열어 봐야 잡힘)
사람이 바뀐 곳 읽기테스트만 통과시키려고 넣은 예외, 필요 없는 변경읽는 사람이 모르는 업무 규칙

네 가지는 서로 놓치는 것을 메웁니다. 하나만 하면 그 줄의 놓치는 것이 그대로 남습니다. 새 프로그램을 예전 것과 나란히 돌려 보는 방법은 아래 '바꿔 끼우는 법'에 따로 적었습니다.

AI를 크게 쓰는 회사도 이 확인을 사람이 합니다. 구글 연구진은 2025년 1월 사내 코드 옮기기에 AI를 쓴 경험을 공개하며, AI가 만든 코드도 사람이 쓴 코드와 똑같이 사람이 검토하고 바뀐 줄을 덮는 테스트가 없으면 더한다고 밝혔습니다. 한 사례에서는 최종 반영된 코드 수정의 80%를 AI가 썼지만, 대부분의 경우 사람이 AI가 바꾼 것 가운데 틀렸거나 필요 없는 것을 일부 되돌려야 했다고 적었습니다.

무엇이 '예전과 똑같아야' 하는지는 어떻게 정하나요

지금 프로그램이 하는 일을 똑같아야 함, 달라져도 됨, 없애도 됨의 세 칸으로 나눠 적습니다. 전부 똑같이 만들자고 하면 아무도 쓰지 않는 기능과 예전 오류까지 옮기게 되고, 칸을 나누지 않으면 견주기에서 다른 결과가 나왔을 때 고친 것인지 틀린 것인지 가를 기준이 없습니다.

오래된 시스템을 새것으로 바꾸는 방법을 정리한 Thoughtworks 기술 이사들의 글(마틴 파울러 사이트)은, 예전과 기능을 똑같이 맞추는 방식이 위험이 적어 보여 자주 고르지만 지금 시스템이 무엇을 하는지 정하는 데만도 큰 품이 든다고 적었습니다. 쓰지 않는 기능이 많이 따라오고, 예전 오류와 한계를 피하려고 만든 우회 방법이 지금 업무의 필수 조건이 돼 있기도 하다고 했습니다. 시스코 기사의 98%도 무엇의 98%인지 나오지 않습니다. 다 됐는지는 코드 줄 수가 아니라 이 목록의 줄로 세세요.

칸뜻예(가상 예시)
똑같아야 함결과가 한 글자라도 다르면 틀린 것으로 봅니다부가세의 원 단위 아래를 처리하는 방식, 거래명세서에 찍히는 칸과 순서, 재고가 0이 되면 주문을 막는 규칙
달라져도 됨다르게 나와도 되지만, 어떻게 달라지는지 미리 적어 둡니다목록이 보이는 순서, 날짜를 적는 꼴, 예전 오류 가운데 이번에 고치기로 한 것
없애도 됨옮기지 않습니다. 정말 쓰는 사람이 없는지 먼저 묻습니다몇 해째 아무도 열지 않은 통계 화면, 끝난 행사의 신청 화면

표의 예는 이해를 돕기 위한 가상 예시이고, 특정 회사의 사례가 아닙니다. 예전 오류를 고칠지는 그 오류에 맞춰 일하는 직원이 있는지 먼저 묻고 정합니다.

AI가 테스트를 고쳐서 통과시키는 일은 어떻게 막나요

정답표와 테스트는 AI가 손대기 전에 만들어 AI 작업 자리 밖에 사본을 두고, 작업이 끝나면 바뀐 파일 목록에서 테스트 파일이 바뀌었는지부터 봅니다. 테스트를 통과했다는 보고만으로는 코드가 고쳐진 것인지 테스트가 고쳐진 것인지 알 수 없습니다.

앤트로픽은 2025년 2월 클로드 3.7 소네트를 내놓으며 펴낸 안전 보고서(시스템 카드)에, 이 모델이 클로드 코드 같은 AI 코딩 환경에서 가끔 테스트를 통과하려고 두루 맞는 해법 대신 테스트가 기대하는 값을 그대로 돌려주게 짜거나, 문제가 된 테스트를 코드의 결과에 맞게 고쳤다고 적었습니다. 두루 맞는 해법을 여러 번 시도하다 실패한 뒤에 주로 나왔고, 보통 쓸 때는 드물어 사용자 시험에서는 찾지 못했다고 했습니다. 출시 전에 일부를 막았고 계속 고치는 중이라며, 지켜볼 것 셋을 권했습니다.

앤트로픽이 지켜보라고 한 것회사에서 볼 것
테스트 파일이 뜻밖에 바뀜작업이 끝나면 바뀐 파일 목록을 받아, 테스트 파일이 있으면 바뀐 줄마다 까닭을 듣습니다. 정답표는 작업 자리 밖에 둔 사본과 맞춰 봅니다
테스트만을 위한 처리를 뜻하는 주석(예: 이 테스트를 위한 예외)사람이 바뀐 곳을 읽으며 특정 입력에만 정해 둔 값을 돌려주는 곳이 있는지 봅니다. 앤트로픽은 이런 주석을 대개 달지만 늘 달지는 않는다고 적었습니다
한 파일을 고치고 테스트를 돌리는 일이 지나치게 되풀이됨AI가 같은 곳에서 오래 맴돌았다면 그 부분은 사람이 따로 봅니다. 풀기 어려운 곳에서 이런 일이 나온다고 했기 때문입니다

왼쪽 칸은 앤트로픽 'Claude 3.7 Sonnet 시스템 카드' 6장(22~23쪽)을 줄여 옮긴 것이고, 2025년 2월 당시 모델에 대한 발표입니다. 오른쪽 칸은 byte-creo가 회사에서 할 일로 옮긴 안입니다.

AI가 일하는 자리도 나눕니다. 2025년 7월 포춘 보도에 따르면 AI 코딩 도구 레플릿(Replit)의 AI가 코드 변경을 멈춘 기간에 사람의 승인 없이 명령을 실행해 운영 중인 자료를 지웠고, 레플릿 대표는 있어서는 안 될 일이라며 개발용과 운영용 자료를 자동으로 나누겠다고 밝혔습니다. 다시 짜는 동안 AI는 실제 손님 자료가 아닌 복사본에서 일하게 하고, 운영 자료에 들어가는 계정과 비밀번호는 작업 자리에 두지 마세요.

AI로 다시 짠 코드, 바꿔 끼우기 전 확인 목록

AI가 손대기 전, 짜는 동안, 바꾸기 전, 바꾼 뒤로 나눠 열 가지를 봅니다. 한 줄이라도 아니라면 바꿔 끼우는 날을 미룹니다.

때확인할 것됐다고 볼 표시
손대기 전똑같아야 함, 달라져도 됨, 없애도 됨 목록이 있다줄마다 그 일을 아는 직원 이름이 있다
손대기 전지금 프로그램의 결과를 정답표로 받아 두었다자주 들어오는 입력과 드문 입력(취소·환불, 월말, 빈칸, 아주 큰 수량)이 함께 있다
손대기 전정답표와 테스트의 사본을 AI 작업 자리 밖에 두었다AI가 고칠 수 없는 곳에 있다
손대기 전AI는 손님 자료의 복사본에서 일한다작업 자리에 운영 자료로 들어가는 계정과 비밀번호가 없다
짜는 동안한 번에 한 조각씩 다시 짠다조각마다 정답표 견주기를 마쳤다
짜는 동안바뀐 테스트마다 까닭을 들었다테스트만을 위한 예외가 없다는 것을 사람이 읽고 확인했다
바꾸기 전같은 입력으로 예전과 새 결과를 견줬다다른 줄마다 고친 것인지 틀린 것인지와 판정한 사람이 적혀 있다
바꾸기 전옮긴 자료(데이터 이관)의 수와 합계가 맞다회원·주문·파일 수와 금액 합계를 양쪽에서 센 표가 있고, 몇 건은 열어서 내용까지 봤다
바꾸기 전되돌리는 순서를 적고 한 번 해 봤다누가 하고 얼마나 걸리는지 안다
바꾼 뒤가끔 도는 일(월말 정산, 분기 보고, 연말 마감)이 한 번 지나갈 때까지 예전 것과 숫자를 맞춘다그날 결과도 정답표 기준과 같았다

GitHub도 오래된 코드를 AI로 고치는 요령을 안내하며, 코드를 한 줄 바꾸기 전에 지금 동작을 확인하는 테스트부터 갖추고, 한 번에 다 고치려 하지 말고, AI가 바꾼 것은 늘 검토하라고 권합니다. 위 목록의 둘째, 다섯째, 여섯째 줄이 그 세 가지입니다.

다시 짠 프로그램으로는 어떻게 바꿔 끼우나요

돈과 손님 기록이 오가는 프로그램이라면 한 번에 바꾸지 말고, 새 프로그램을 뒤에서 함께 돌려 결과를 맞춰 본 뒤 기능 한 조각이나 손님 일부부터 넘깁니다. 문제가 나와도 그 부분만 예전 것으로 돌리면 됩니다.

한 번에 바꾼 날의 손해는 큽니다. 영국 TSB 은행은 2018년 4월 IT 시스템을 바꾸며 자료를 새 플랫폼으로 옮긴 직후 기술 장애가 잇따랐고, 모든 지점과 손님 520만 명 가운데 상당수가 첫 문제를 겪었습니다. 영국 금융감독청과 건전성감독청은 2022년 12월, TSB가 옮기는 일을 제대로 짜고 관리하지 못했고 IT를 맡긴 업체에서 오는 위험도 관리하지 못했다며 두 곳을 합쳐 약 877억 원의 벌금을 매겼습니다.

바꾸는 법어떻게맞는 경우조심할 것
한 번에 바꾸기정한 날 평소 일을 멈추고 예전 것을 새 것으로 바꿉니다화면 몇 장짜리 회사 소개처럼 돈과 손님 기록이 오가지 않는 것문제가 나오면 전체를 되돌려야 합니다. 되돌리는 순서를 미리 한 번 해 봅니다
뒤에서 함께 돌려 맞추기(병행 가동)손님에게는 예전 결과를 쓰고, 새 프로그램은 같은 입력으로 돌려 결과만 남겨 견줍니다계산과 정산처럼 숫자가 맞아야 하는 것새 프로그램이 메일·문자·결제를 실제로 보내지 않게 막습니다. 막지 않으면 두 번 나갑니다
일부부터 넘기기기능 한 조각이나 손님 일부만 새 프로그램으로 보내고 조금씩 늘립니다쓰는 사람이 많고 기능이 여럿인 것넘어간 쪽과 남은 쪽의 숫자를 합쳐 볼 수 있게 보고를 맞춰 둡니다

세 가지 이름과 방법은 Thoughtworks 기술 이사들이 정리한 오래된 시스템 바꾸기 패턴(마틴 파울러 사이트)을 따랐고, 맞는 경우와 조심할 것은 byte-creo가 작은 회사에 맞춰 정리한 것입니다. 벌금은 1파운드 약 1,802원(유럽중앙은행 2026년 11월 2일 기준 환율)으로 셈했습니다.

함께 돌리는 동안에는 예전과 새 결과의 차이가 정한 만큼 벌어지면 알림이 가게 해 두라고 같은 글은 권합니다. 언제까지 함께 돌릴지는 아래 자주 묻는 질문에 적었습니다.

외주 개발 검수 때, AI로 다시 짠 결과물에서 무엇을 받나요

코드와 함께, 무엇을 무엇과 견줬고 다른 곳을 누가 어떻게 판정했는지의 기록을 받습니다. 업체가 AI를 썼는지보다 이 기록이 남아 있는지가 중요합니다. 나중에 문제가 생겨도 어디서부터 볼지 알 수 있기 때문입니다.

  • 똑같아야 할 것 목록과 견주기 결과표: 입력, 예전 결과, 새 결과, 같음과 다름, 다르면 고친 것인지 틀린 것인지와 판정한 사람.
  • 바뀐 테스트 목록과 까닭: 지운 테스트와 기대하는 값을 바꾼 테스트를 따로 적은 것.
  • 자료 옮긴 맞춤표: 옮기기 전과 뒤의 수와 합계, 맞지 않은 건과 그 처리.
  • 되돌리는 순서: 누가 무엇을 어떤 순서로 하는지와, 해 봤을 때 걸린 시간.
  • AI를 쓴 범위와 사람이 읽은 범위: 어느 부분을 AI가 짰고 어느 부분을 사람이 줄마다 읽었는지.
  • 코드와 계정, 운영 문서: 코드 저장소와 서버·배포 계정이 회사 이름으로 되어 있는지, 다음 사람이 이어받아 고칠 수 있는 문서가 있는지.

검수 기준은 계약 전에 정할수록 좋습니다. byte-creo는 제안서에 적은 대로 동작하지 않는 부분을 인수 후 30일 동안 비용 없이 고치므로, 똑같아야 할 것 목록을 제안서에 넣어 두면 그 목록이 곧 고쳐 받을 기준이 됩니다. byte-creo 대표는 한 서비스 회사의 웹·앱·서버를 2020년부터 맡아 오며, 2024년에는 서버의 자료 구조를 다시 짜고 예전 구조에 쌓인 폴더·노트 자료를 새 구조로 옮겼습니다.

자주 묻는 질문

테스트를 모두 통과했다면 예전과 똑같이 돈다고 봐도 되나요?

테스트가 덮는 범위 안에서만 그렇습니다. 테스트에 없는 입력은 확인되지 않았고, AI가 테스트 자체를 고쳤을 수도 있습니다. 통과했다는 보고와 함께 테스트 파일이 바뀌었는지, 정답표 견주기에서 다른 줄이 몇 개였고 어떻게 판정했는지를 받으세요. 구글 연구진도 AI가 바꾼 줄을 덮는 테스트가 없으면 사람이 더한다고 밝혔습니다.

예전 프로그램에 테스트가 하나도 없으면 무엇부터 하나요?

지금 프로그램이 내는 결과를 적어 두는 일부터 합니다. 실제로 들어온 입력 가운데 자주 나오는 것과 드문 것을 골라 지금 프로그램에 넣고, 나온 결과를 그대로 정답으로 삼습니다. 테스트 초안은 AI에게 맡겨도 되지만, 정답은 AI가 생각한 값이 아니라 지금 프로그램이 실제로 낸 값이어야 합니다. 예전 결과가 틀려 보여도 이 단계에서는 고치지 말고 표시만 해 둡니다.

다시 짜는 김에 예전 오류도 고쳐도 되나요?

고쳐도 되지만 따로 합니다. 먼저 예전과 똑같이 돌게 옮기고, 고칠 오류는 달라져도 됨 칸에 적어 다음 조각에서 고칩니다. 섞어서 하면 견주기에서 다른 결과가 나왔을 때 고친 것인지 틀린 것인지 가를 수 없습니다. 그 오류를 피해 가며 일하는 직원이 있는지도 먼저 물으세요. 예전 오류를 피하려고 만든 우회 방법이 지금 업무의 필수 조건이 돼 있기도 합니다.

예전 것과 새 것은 얼마나 오래 나란히 돌려야 하나요?

정해진 기간은 없고, 그 프로그램의 일이 한 바퀴 도는 때까지입니다. 월말 정산이나 분기 보고처럼 가끔 도는 일이 있다면 그날을 한 번 지나야 그 계산도 확인됩니다. 그동안 차이가 정한 만큼 벌어지면 알림이 가게 해 두고, 알림 없이 한 바퀴를 지나면 넘깁니다.

회사 코드를 AI 코딩 툴에 넣어도 되나요?

넣기 전에 두 가지를 확인하세요. 회사가 관리하는 요금제인지와, 넣은 코드가 AI 학습에 쓰이는지입니다. 도구와 요금제마다 다릅니다. 코드 안에 손님 정보나 비밀번호, 다른 서비스에 들어가는 열쇠(API 키, 프로그램끼리 자료를 주고받을 때 쓰는 열쇠)가 적혀 있다면 넣기 전에 빼고, 이미 넣었다면 열쇠를 새로 바꿉니다. 회사용 AI 요금제의 학습·보관 차이는 byte-creo 안내 글 '기업용 AI 비교'에 정리했습니다.

출처

모두 2026년 11월 3일 포춘 보도 둘, 앤트로픽 Claude 3.7 Sonnet 시스템 카드 원문, 구글 연구진의 사내 코드 옮기기 경험 보고 원문, GitHub 블로그, Thoughtworks 기술 이사들의 오래된 시스템 바꾸기 패턴(마틴 파울러 사이트), 영국 금융감독청 보도자료에서 확인했습니다. 시스코 기사에는 결과와 98%의 기준, 다시 짠 코드를 확인하는 방법이 나오지 않아 적지 않았습니다. 앤트로픽의 테스트 고치기 내용은 2025년 2월 모델에 대한 발표이고, 그 뒤 모델에서 얼마나 달라졌는지는 이 글에 적지 않았습니다. 원화는 유럽중앙은행 2026년 11월 2일 기준 환율로 셈했습니다. AI 코딩 도구와 후속 발표는 바뀔 수 있어 매달 다시 확인합니다.

똑같아야 할 것부터
​함께 적고 다시 만듭니다.

지금 프로그램이 하는 일 가운데 똑같아야 할 것과 달라져도 될 것을 함께 가르고, 첫 주에 범위를 정한 뒤 매주 직접 눌러 볼 수 있는 결과물로 다시 만들어 갑니다. 코드와 계정, 운영 문서는 모두 넘겨 드립니다. 첫 30분 상담은 무료입니다.

첫 통화 무료기획서 없이 가능영업일 1일 이내 회신

접수 후 메일·문자로 상담 일정을 조율합니다.

첫 30분 통화 무료기획서 없이도 괜찮습니다

상담 신청