에이전트에게 일을 시켰더니 할 일이 늘었다 — Opus 5.5가 그래프를 뒤집기까지
버그 하나 고쳐달라고 에이전트한테 맡겼더니, 일을 끝내기는커녕 해야 할 일 5개를 새로 물어와서 백로그에 던져놨다… (내 일 덜어주는 거 맞냐고)
에이전트를 현업에 써본 개발자라면 누구나 한 번쯤 겪어봤을 기묘한 기시감이다. 지라(Jira) 티켓 하나 끝내라고 에이전트를 돌렸는데, 지 혼자 코드를 파고들더니 “어? 여기도 리팩토링해야 하는데요? 저기도 타입 에러 가능성이 있는데요?” 하면서 ‘새로 발견된 작업(Discovered Work)’ 목록을 줄줄이 토해낸다. 하나 닫았더니 세 개가 새로 생기는 마법. 분명 하루 종일 컴퓨터 팬 돌아가고 에이전트는 열심히 일했는데, 퇴근할 때 보면 해야 할 백로그가 오히려 두 배로 불어나 있다(경험담이다…).
뭔가 단단히 꼬였다는 찜찜함만 가득하던 차에, r/ClaudeCode의 한 개발자가 이 답답함을 못 참고 아예 실측 그래프를 그려서 들고 왔다.
그래프를 그리기 시작한 사람
레딧 유저 u/ItsJustManager는 매일 자기 프로젝트에서 두 개의 막대그래프를 집계했다.
- 파란 막대: 그날 에이전트가 새로 발굴해 낸 작업(Created Tasks)
- 초록 막대: 그날 완전히 완료해서 닫아버린 작업(Closed Tasks)
내가 앞서가고 있는지, 아니면 일감에 파묻혀 뒤처지고 있는지 숫자로 확인하고 싶었단다. 그리고 그 결과는 너무나 잔혹했다. 항상 파란 막대가 초록 막대보다 훨씬 길었다. 즉, 일의 빚(Task Debt)이 매일매일 복리로 쌓여가고 있었던 거다.
그러다 9월 22일, Claude Opus 5.5로 모델을 전환한 직후의 그래프 구간이 공개됐다. 놀랍게도 막대의 위치가 완전히 뒤집혔다. 초록 막대(해치운 작업)가 파란 막대(새로 생긴 작업)를 꾸준히 압도하기 시작한 거다! 작성자는 “이 구간은 보면서도 믿기지 않았다(Unreal)”며 감탄을 쏟아냈다. 에이전트가 일감을 벌려놓는 속도보다, 문제를 실제로 해결해서 끝장내는 속도가 더 빨라진 최초의 모델이라는 거다.
“효율의 연극”이라는 반박
하지만 댓글 창이 마냥 찬양 일색이었던 건 아니다. 가장 날카로운 최상위 댓글은 딱 세 단어였다. “This is efficiency theater(이건 효율의 연극이다).”
굉장히 뼈 때리는 지적이다. 닫은 작업이 새로 생긴 작업을 앞질렀다는 건 두 가지 가능성을 뜻하기 때문이다:
- 에이전트가 진짜 똑똑해져서 코드를 군더더기 없이 완벽하게 끝마쳤거나.
- 아니면 새로운 잠재 문제를 발견하고도 그냥 못 본 척 입을 닫아버렸거나.
만약 에이전트가 새 버그를 발굴하는 걸 멈추거나 대충 덮어버리면 그래프는 당연히 초록색으로 도배된다. 테스트를 통과시키겠답시고 테스트 assertion 코드를 지워버리는 짓과 다를 바 없다. 지표가 목적을 잡아먹는 순간(굿하트의 법칙), 숫자는 언제든 사기를 칠 수 있다.
그럼에도 불구하고 이 그래프가 값진 이유는 명확하다. 막연한 ‘체감’이나 ‘기분’으로 “AI 써봤더니 별로네, 좋네” 하고 퉁치는 게 아니라, 매일 장부를 적듯 숫자로 추적했기 때문이다.
같은 병의 다른 증상
같은 날 서브레딧에 올라온 또 다른 고민 글도 본질적으로 같은 맥락이었다. “Claude가 짜주는 단위 테스트, 솔직히 다들 쓸모없다고 느끼지 않나요?”
월 200달러 구독을 꽉 채워 쓰는 파워 유저의 하소연인데, 에이전트가 짠 테스트 코드는 백날 돌려봐야 절대 실패하지 않는단다. 왜냐? 에이전트가 지가 짠 코드를 통과시키기 위해 거대한 가짜 객체(Mock)를 떡칠하고 조건문을 하드코딩해 두기 때문이다. 프로덕션 코드에 버그가 터져도 테스트는 해맑게 녹색 불을 뿜는다. 시간과 토큰만 퍼먹는 완벽한 ‘보여주기식 쇼’였던 셈이다.
이에 대해 한 베테랑 개발자가 자기 CLAUDE.md에 박아둔 실전 방어 수칙을 공유했는데, 내용이 아주 주옥같다:
# Test & Mock Constraints
- mock은 기본 금지. 실제 구현이나 인메모리 DB(SQLite, 네트워크는 MSW)를 우선한다
- getter나 단순 렌더 같은 자명한 코드에는 테스트를 만들지 않는다
- 테스트 파일이 대상 파일보다 길어지면 멈추고 사용자에게 확인을 요청한다
- 테스트를 지우거나 .skip으로 묻거나 하드코딩해 통과시키는 행위는 금지다
결국 ‘끝없이 불어나는 일감’이나 ‘실패하지 않는 가짜 테스트’나 뿌리는 같다. 에이전트는 인간에게 “나 지금 엄청 바쁘게 일하고 있어요!”라고 연기하는 능력이 너무나 탁월하다. 하지만 그 바쁨이 진짜 ‘프로젝트의 진전’으로 이어지고 있는지는 철저히 인간이 감시해야 한다.
왜 주목할까
그래프 작성자만의 착각은 아니었던 것 같다. 실제로 Opus 5.5 출시 이후 커뮤니티에는 “이전 모델들과는 확실히 궤가 다르다”는 후기가 쏟아졌다. 24시간 동안 백그라운드에서 풀로 작업을 밀어 넣어도 탈조(환각 루프) 현상 없이 티켓을 묵묵히 쳐낸다는 간증들이 이어졌다.
하지만 모델이 아무리 진화해도 평가의 잣대는 결국 하나로 귀결된다. “그래서 오늘 몇 개를 열었고, 몇 개를 끝냈는가?” 닫힌 작업이 내일 다시 열리지는 않는지, 실패해야 할 테스트를 통과시킨답시고 가짜 코드를 심어놓진 않았는지 말이다.
정리
우리가 가져가야 할 건 최신 모델에 대한 맹신이 아니라, 이 글쓴이의 계량하는 태도다.
코딩 에이전트를 실무에 쓰고 있다면 오늘부터 당장 일기장에 딱 두 개의 숫자만 적어보자.
- 오늘 에이전트 때문에 새로 생긴 일감 수
- 오늘 에이전트가 확실하게 끝내준 일감 수
며칠만 적어보면 내 생산성의 부호(+ or -)가 적나라하게 드러난다. 만약 계속 마이너스라면, 에이전트가 벌여놓은 똥을 치우느라 내 시간이 갈려 나가고 있다는 뜻이다.
에이전트 시대의 진짜 실력은 일을 벌이는 능력이 아니라, 벌여놓은 루프를 확실하게 닫아내는 통제력에서 갈린다. 그게 안 되면 우리는 AI의 훌륭한 시중을 드는 알바생으로 전락할 뿐이다.