코딩 에이전트는 Swift를 잘 작성하지만, 완성하지는 못한다
나는 실제 Swift 및 Xcode 작업을 대상으로 AI 코딩 에이전트를 테스트하며 수개월을 보냈다. 단순한 데모를 사용하지 않았다. 빌드 타겟과 테스트가 포함된 실제 작업을 부여했다.
첫 번째 초안은 보통 괜찮다. 유능한 모델은 올바르게 보이는 코드를 작성한다. 타입이 일치하고, 뷰(view)도 말이 된다. 만약 Swift를 작성하는 것이 유일한 문제였다면, 이 도구들은 이미 완성되었을 것이다.
진짜 문제는 첫 번째 초안 이후에 발생한다. 완성된 것처럼 보이는 코드와 실제로 올바른 코드 사이의 간극이 문제다.
Claude Code나 Codex 같은 현대적인 도구들은 컴파일 에러를 잘 처리한다. 빌드에 실패하는 코드를 넘겨주지는 않는다. 진짜 실패는 컴파일러가 감지할 수 없는 부분에서 발생한다.
이러한 실패들은 내 시간을 낭비하게 만든다:
• 의도 불일치(Intent mismatch): 코드는 컴파일되고 테스트도 통과한다. 하지만 동작이 잘못되었다. 에이전트는 사용자의 실제 목표 대신 통과된 테스트의 '그린 라이트(green light)'만을 따른다. 에이전트에게는 의도를 확인할 방법이 없다.
• 동시성 경합(Concurrency races): 코드는 깨끗하게 빌드되지만 데이터 경합(data race)이 발생한다. 이는 런타임 중에만 나타난다. 에이전트는 빌드가 성공한 것을 보고 다음 단계로 넘어간다. 이를 수정하려면 대개 재설계가 필요한데, 에이전트는 이를 해내지 못한다.
• 회귀 루프(Regression loops): 에이전트가 버그 하나를 고치면 다른 버그가 발생한다. 두 번째 버그를 고치는 동안 첫 번째 수정 사항을 되돌려버린다. 결국 두 가지 오류 상태 사이를 오가는 루프에 빠진다. 이전에 무엇이 실패했는지에 대한 기억이 부족하기 때문이다.
• 부실한 아키텍처(Poor architecture): 에이전트는 프레임워크와 충돌하는 코드를 작성한다. 앱의 구조를 무시한다. 일회성 스크립트로는 작동할지 몰라도 실제 코드베이스에서는 실패한다.
이것은 언어의 문제가 아니다. 모델은 Swift를 알고 있다. 다만 컴파일러가 볼 수 없는 부분을 놓칠 뿐이다. 결과가 사용자의 의도와 일치하는지, 혹은 구조가 전문적인지 알지 못한다.
이로 인해 비용의 중심이 토큰에서 주의력(attention)으로 이동한다. 몇 단계마다 계속 지켜봐야 하는 에이전트는 업무를 줄여준 것이 아니다. 코딩을 '감독' 업무로 바꾸어 놓았을 뿐이다.
나는 모델 주변의 루프를 변경함으로써 결과를 개선하고 있다. 에이전트가 무엇을 확인하고 기억하는지에 집중하고 있다.
여러분의 경험도 이와 같습니까? Apple 플랫폼에서 에이전트를 실행할 때, 어디서 문제가 발생하나요? 의도 불일치인가요, 런타임 경합인가요, 아니면 다른 무엇인가요?
Source: https://dev.to/jbrackin/coding-agents-are-good-at-writing-swift-theyre-bad-at-finishing-it-md3
Optional learning community: https://t.me/GyaanSetuAi
