TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 29 READS

코딩 에이전트에 유리한 언어는 정말 따로 있을까

LLM 코딩 에이전트가 확산되면서 "어떤 프로그래밍 언어가 토큰 효율이 좋은가"라는 질문이 자주 등장한다. 널리 인용되는 한 분석은 동적 타입 언어나 표현이 간결한 언어가 정적 타입 언어보다 토큰을 훨씬 적게 쓴다고 주장한다. 이 주장은 검색 엔진의 AI 요약에까지 스며들어, 구글 AI는 "동적 타입 언어는 명시적 타입 선언을 생략하기 때문에 코드가 더 간결해져 LLM 토큰 비용이 낮다"고 단언하며 같은 글을 근거로 든다. 해당 글은 Rust, Go, C++ 같은 정적 언어 대비 일부 동적 언어의 토큰 비용이 절반에서 3분의 1 수준이라고 제시한다.

인용되는 수치의 함정

구체적으로 그 분석은 가장 비효율적인 C와 가장 효율적인 Clojure 사이에 2.6배의 격차가 있다고 말한다. 배열 언어인 J는 평균 70토큰, Clojure는 109토큰으로 매우 낮은 수치를 보인다. 문제는 이 수치가 나온 과제 자체가 Rosetta Code 기반의 사소한 문제라는 점이다. 70토큰이나 109토큰으로 풀리는 문제는 사실상 답을 출력하는 것이 작업의 대부분을 차지하는 수준이며, 진짜 연산이 필요한 문제가 아니다. 저자는 이런 트리비얼한 과제에서 나타난 강력한 비율 차이가 조금이라도 실제 작업이 필요한 문제로 넘어가면 대부분 사라진다는 점을 지적한다. 두 번째로 인용되는 비교 실험은 더 미묘한 결함을 안고 있는데, 존재하지 않는 경로를 실행하다 실패한 테스트에 한 에이전트가 자기 실행 파일을 심볼릭 링크로 걸어버려, 이후 모든 테스트가 엉뚱한 실행 파일로 채점되는 오염이 발생했다. Rust의 실패를 언어 특성으로 해석했지만 실제로는 채점 순서 문제였을 뿐이다.

직접 돌려본 비자명한 과제

남의 벤치마크를 믿는 대신 저자는 자체 평가를 수행했다. 첫 번째는 인터넷이 차단된 컨테이너 안에서 zstd RFC와 정오표만 주고 완전한 zstd 디코더를 구현하게 한 뒤, 에이전트에게 공개하지 않은 테스트로 채점하는 방식이다. GPT-5.6 Sol을 medium과 ultra 두 가지 노력 수준으로 돌려 비용 대비 정확도를 비교했다. medium 수준만 보면 동적 언어 군집이 비용은 낮고 정확도는 높은 쪽에 몰려 앞선 결론을 지지하는 듯 보인다. 그러나 ultra 수준에서는 결과가 뒤섞이고 오히려 정적 언어가 상위권을 차지한다. 축을 비용 대신 시간으로 바꿔도 어느 쪽 언어군도 상대를 압도하지 못한다.

두 번째 평가는 Pandoc 기반 ProgramBench를 변형해, 자료와 테스트를 함께 주되 홀드아웃 테스트로 별도 채점하는 TDD 유사 방식으로 진행했다. 여기서도 정적·동적·고밀도 여부와 성공·비용 사이에 강한 관계는 나타나지 않는다. 다만 일관되게 관찰되는 것은, 잘 알려지지 않은 난해한 언어와 어셈블리는 성능이 나쁘다는 점이다. 어셈블리는 사람이 짜기에도 훨씬 불리한데 LLM도 다르지 않았고, Pandoc처럼 표면적이 넓은 과제에서 특히 뒤처졌다. 반대로 zstd에서 부진했던 Clojure는 Pandoc에서는 훨씬 나은 모습을 보였다.

실무자가 가져갈 결론

종합하면, 트리비얼한 벤치마크에서 성립하던 극단적 비율은 실제 규모의 과제로 오면 무너진다. J처럼 밀도 높은 언어가 효율적이라던 첫 평가의 결론은 저자의 자체 평가에서 정반대로 나타났다. 언어 인기도와 성능을 대조하면 오히려 약하지만 뚜렷한 양의 상관, 즉 널리 쓰이는 언어일수록 더 정확하고 저렴한 해답이 나오는 경향이 보인다. AI 연구소들이 주류 언어에 합성 강화학습 데이터를 더 많이 투입했을 것이라는 짐작과 맞아떨어진다. 결국 막대한 예산으로 특정 언어에 맞춰 모델을 파인튜닝할 수 있는 조직이 아니라면, 난해한 고밀도 언어보다 주류 언어를 쓰는 편이 안전하다. Ruby, Clojure, J, Elixir가 LLM에 특별히 적합하다는 흔한 주장들은 대체로 근거가 빈약하다.

이 연구가 시사하는 더 큰 지점은 방법론에 있다. 2014년 정적·동적 타입 논쟁의 학술 문헌을 살펴봤을 때, 대표적인 유지보수성 연구는 시간 편차를 줄이려고 반복문과 재귀 같은 복잡한 제어 구조를 배제했고, 그 결과 모든 버그가 수백 초 만에 풀리는 사소한 것이 되어 실무와의 관련성을 잃었다. 사람을 대상으로 한 실험은 비용 때문에 zstd 디코더 구현 같은 과제를 반복 수행시키기가 사실상 불가능하다. 반면 LLM은 한 조건당 20달러 안팎으로 비자명한 과제를 여러 언어·여러 반복으로 돌려볼 수 있어, 예전에는 답하기 어렵던 질문을 이제 어느 정도 실측할 수 있게 됐다. 다만 평가는 만들기는 쉬워도 제작자의 의도대로 말해주지 않는 경우가 흔하므로, 하나의 벤치마크가 아니라 여러 과제에 걸친 검증이 필요하다는 점은 여전히 유효하다.

SOURCE · HACKER NEWS
원문 전체 보기 → http://danluu.com/pl-tokens/
SHARE
처리 중...