인사이트 목록

'확인만 하겠습니다'라는 코드가 가장 위험합니다

  • AI에이전트
  • 위임
  • 일하는방식
  • 자동화
  • 복구

들어가며 — 저는 삭제하라고 시킨 적이 없습니다

AI에게 자료 하나를 만들자고 했습니다. AI는 작업을 시작하기 전에 준비부터 하겠다고 하더군요. “이 컴퓨터에 필요한 폰트가 깔려 있는지, 문서를 PDF로 변환할 수 있는지 먼저 확인하겠습니다.”

합리적으로 들립니다. 저도 그렇게 들었습니다. 확인은 안전한 일이니까요.

그런데 그 확인이 끝나는 순간, 제가 뒤에서 열어놓고 편집 중이던 소프트웨어가 그냥 닫혔습니다. 저장하지 않은 작업이 통째로 사라졌고요.

여기서 짚고 넘어갈 게 있습니다. 저는 무엇을 지우라고 시킨 적이 없습니다. 그리고 실제로 파일은 하나도 지워지지 않았습니다. 그런데도 작업은 날아갔어요. 이 글은 그 사이에 있는 빈칸에 관한 이야기입니다.


1. 위험은 ‘시킨 일’이 아니라 ‘딸려온 일’에 있었습니다

무슨 일이 벌어졌는지는 알고 보면 단순합니다.

AI는 그 소프트웨어가 이 컴퓨터에서 작동하는지 확인하려고 프로그램을 잠깐 불러 세웠습니다. 확인은 잘 됐고요. 그리고 예의 바르게 뒷정리를 했습니다. “확인 끝났으니 켠 건 다시 꺼야지” 하고 종료 명령을 넣은 겁니다.

문제는 그 종료 명령이 자기가 켠 것을 끈 게 아니라는 점입니다.

소프트웨어마다 이 대목의 성격이 다릅니다. 어떤 프로그램은 밖에서 부르면 창이 하나 더 새로 뜹니다. 내가 쓰던 창은 건드리지 않아요. 그런데 어떤 프로그램은 그렇게 만들어져 있지 않습니다. 밖에서 부르면 새로 뜨는 게 아니라, 이미 열려 있던 내 창에 그대로 붙습니다. 하나뿐인 창을 같이 쓰는 구조인 거죠.

제가 쓰던 게 바로 그런 프로그램이었습니다. 그래서 AI가 “내가 켠 것을 정리한다”며 넣은 종료 명령은, 실제로는 제 작업 창을 닫는 명령이었습니다. AI는 자기 것을 치웠다고 생각했고, 치워진 건 제 것이었습니다.

같은 명령어가 프로그램에 따라 전혀 다른 일을 한다는 것 — AI도 저도 실행하기 전엔 그걸 몰랐습니다.


2. “이 코드 위험한가요?”에 답할 수 없는 게 정상입니다

이 대목이 제가 이 이야기를 굳이 꺼내는 이유입니다.

화면에 떠 있던 명령은 세 줄이었습니다. 프로그램을 부르고, 버전을 확인하고, 종료한다. 개발자가 이 세 줄을 보면 세 번째 줄에서 손이 멈춥니다. 종료 명령이 무엇을 종료하는지 되물어야 한다는 걸 아니까요.

코드를 업으로 다루지 않는 사람은 그 세 줄을 봐도 판단할 수가 없습니다. 위험해 보이는 단어가 하나도 없거든요. 지운다는 말도, 덮어쓴다는 말도 없습니다. 그냥 확인하고 정리한다는 뜻으로 읽힙니다. 그리고 실제로 그 뜻이 맞았어요. 어디에 정리되는지가 문제였을 뿐입니다.

그러니까 “실행 전에 코드를 읽고 판단하세요”라는 흔한 조언은, 여기서는 잘 작동하지 않습니다. 읽어도 안 보이는 걸 읽으라고 하는 셈이니까요. 그리고 AI에게 일을 맡기는 사람 대부분이 그 자리에 서 있습니다. 읽을 수는 있는데 판단은 못 하는 자리요.


3. 우리가 경계하는 건 ‘삭제’인데, 실제로 날아가는 건 다른 겁니다

AI에게 권한을 줄 때 사람들이 걱정하는 건 대체로 하나입니다. “내 파일을 지우면 어쩌지.

그래서 방어선도 거기에 칩니다. 중요한 폴더는 안 건드리게 하고, 지우는 명령은 확인받게 하고요. 다 맞는 조치입니다.

그런데 이번에 날아간 건 파일이 아니었습니다. 파일은 디스크에 멀쩡히 있었어요. 날아간 건 아직 파일이 되지 못한 것 — 제 화면 위에, 메모리 안에만 있던 작업이었습니다. 그건 파일 권한으로 못 막습니다. 삭제 명령을 아무리 잘 감시해도 안 걸려요. 삭제가 아니었으니까요.

그래서 이렇게 정리하는 게 정확합니다. AI에게 일을 맡길 때 위험한 건 내가 시킨 일이 아니라, 그 일에 딸려오는 부수효과입니다. 시킨 일은 내가 아는 일이라 감시할 수 있습니다. 부수효과는 정의상 내가 모르는 일이라 감시 목록에 아예 못 올라갑니다.

이건 검증할 수 있는 만큼만 맡길 수 있다는 이야기의 사각지대이기도 합니다. 검증은 결과물을 봅니다. 그런데 부수효과는 결과물에 안 남아요. AI가 만들어 온 자료는 완벽했습니다. 그걸 아무리 꼼꼼히 검증해도, 그 옆에서 무엇이 닫혔는지는 영영 안 나옵니다.

한 번의 지시, 두 개의 자취 — 검증의 눈은 한쪽만 본다 AI에게 일을 한 번 맡기면 자취가 두 개 남습니다. 하나는 AI가 내놓은 것, 즉 결과물입니다. 검증의 눈은 이쪽을 향하고 있어서 틀리면 걸립니다. 이쪽의 상한선은 내가 검증할 수 있는 만큼입니다. 다른 하나는 AI가 건드린 것, 즉 내 환경입니다. 프로그램을 켜고 설정을 바꾸고 무언가를 종료하는 일들이 여기 쌓이는데, 아무 눈도 이쪽을 향하지 않습니다. 감시 목록에는 내가 시킨 일만 적혀 있어서, 시키지 않은 부수효과는 애초에 목록에 오르지 못하기 때문입니다. 파일은 하나도 지워지지 않았는데 저장하지 않은 작업이 증발하는 일이 이쪽에서 벌어집니다. 결과물을 아무리 꼼꼼히 검증해도 이쪽은 보이지 않습니다. 그래서 이쪽의 상한선은 검증이 아니라, 내가 되돌릴 수 있는 만큼입니다. 한 번 맡기면 자취는 둘 남는데, 검사받는 건 하나뿐이다 「이 자료 만들어줘」 내가 시킨 일 딸려온 일 AI가 내놓은 것 결과물 — 자료 · 답변 · 문서 검증의 눈 틀리면 여기서 걸린다 지키는 것 — 검증 상한선 검증할 수 있는 만큼 AI가 건드린 것 내 환경 — 켜기 · 설정 · 종료 향한 눈 없음 감시 목록엔 '시킨 일'만 적혀 있다 — 딸려온 일은 목록에 못 오른다 파일은 안 지워졌는데 작업이 증발한다 지키는 것 — 복구 경로 상한선 되돌릴 수 있는 만큼 결과물이 완벽해도, 그 옆에서 무엇이 닫혔는지는 결과물에 안 남는다 그래서 방어선은 감시가 아니라 되돌아올 길이다
AI에게 한 번 맡기면 자취는 둘 남는다. '내놓은 것'(결과물)에는 검증의 눈이 향해 있어 틀리면 걸리지만, '건드린 것'(내 환경)에는 아무 눈도 향하지 않는다 — 감시 목록에는 내가 시킨 일만 적혀 있고, 딸려온 부수효과는 애초에 그 목록에 오르지 못하기 때문이다. 파일은 하나도 지워지지 않았는데 작업이 증발하는 자리가 여기다. 그래서 위임의 상한선은 둘이다: 검증할 수 있는 만큼, 그리고 되돌릴 수 있는 만큼.

4. 진짜 방어선은 ‘못 믿는 것’이 아니라 ‘되돌릴 줄 아는 것’입니다

여기까지 읽으면 결론이 “그러니 AI에게 권한을 주지 마라”로 갈 것 같지만, 저는 반대로 갑니다.

날아간 작업은 5분 만에 되살렸습니다. 대부분의 문서 편집 소프트웨어는 사람이 저장을 누르지 않아도 뒤에서 조용히 자동복구본을 떨궈 둡니다. 그게 어느 폴더에 어떤 이름으로 쌓이는지 알고 있으면, 방금 날아간 작업은 대체로 거기 살아 있습니다. 실제로 마지막 저장본과 복구본을 나란히 놓고 대조해보니, 저장하지 않았던 편집분이 복구본 안에 그대로 들어 있었습니다.

이 사건에서 실제로 갈린 건 이 지점입니다. 같은 사고를 당하고 5분 뒤에 일을 재개하느냐, 하루치를 다시 만드느냐. 그 차이는 AI를 얼마나 의심했느냐가 아니라, 복구 경로를 알고 있었느냐에서 나왔습니다.

의심은 확장되지 않습니다. AI가 하는 모든 준비 동작을 매번 뜯어보겠다는 계획은, 두 시간이면 무너집니다. 주의력으로 막겠다는 다짐이 늘 지는 이유와 정확히 같습니다. 반면 복구 경로는 한 번 알아두면 계속 남습니다. 그리고 이건 코드를 몰라도 알 수 있는 지식이에요. 자동복구본이 어디 쌓이는지, 되돌리기가 어디까지 되는지, 이 작업의 되돌릴 수 없는 지점이 어디인지 — 전부 내 도구에 대한 지식이지 프로그래밍 지식이 아닙니다.

그리고 하나 더 남았습니다. 저는 그날 이후로 이 사고를 AI의 작업 지침에 규칙으로 박아뒀습니다. 그 종료 명령은 쓰지 말 것, 변환은 파일을 직접 다루는 방식으로 할 것, 불가피하면 이미 열린 창이 있는지 먼저 확인하고 내가 켠 게 아니면 절대 건드리지 말 것. 한 번 데인 자리는 다짐이 아니라 지침으로 남겨야 다음번에 막힙니다. 조심하겠다는 마음은 다음 주면 없어지지만, 적어둔 규칙은 AI가 매번 읽습니다.


5. 되돌릴 수 있는 만큼만 맡길 수 있습니다

AI에게 어디까지 맡길 수 있느냐에는 상한선이 두 개 있습니다.

하나는 이미 아는 것입니다. 검증할 수 있는 만큼만 맡길 수 있다. 결과를 판단하지 못하면 맡긴 게 아니라 눈 감고 받은 거니까요.

그런데 AI가 답을 주는 데서 그치지 않고 직접 손을 쓰기 시작하면, 상한선이 하나 더 생깁니다. 프로그램을 켜고, 파일을 옮기고, 설정을 바꾸고, 뭔가를 실행하는 순간부터요. 그때부터는 이렇게 됩니다.

되돌릴 수 있는 만큼만 맡길 수 있다.

검증은 AI가 내놓은 것을 봅니다. 이 상한선은 AI가 건드린 것을 봅니다. 둘은 서로를 대신하지 못해요. 결과물이 완벽해도 그 옆에서 무언가 닫힐 수 있고, 그건 결과물을 아무리 들여다봐도 안 보입니다.

그래서 AI에게 손을 맡길 때 던져야 할 질문은 “이거 잘할까?”가 아니라 이쪽에 가깝습니다. “이게 잘못되면, 나는 어디서부터 다시 시작하지?” 그 답이 있으면 과감하게 맡겨도 됩니다. 답이 없으면, 그건 위임이 아니라 도박이에요. 잘될 확률이 높다는 게 도박이 아니라는 뜻은 아니니까요.

AI를 잘 쓰는 방향은 손을 더 많이 맡기는 쪽이 맞습니다. 다만 그 손이 닿는 범위가 넓어질수록, 함께 넓어져야 하는 건 감시가 아니라 되돌아올 길입니다. 도구를 얼마나 믿느냐의 문제가 아니라, 일하는 방식에 복구 경로를 넣어두느냐의 문제입니다.