
이미지: METAL
요약
- 동적 언어가 정적 언어보다 LLM 토큰을 덜 쓴다는 통념을 검증한 블로그 글이 화제
- 기존 벤치마크는 C·Clojure 간 2.6배, J는 70토큰으로 최저치를 기록했다고 인용
- 저자는 문제가 너무 단순하고 일부 평가에 버그가 있어 결론을 신뢰하기 어렵다고 지적
- 인용된 격차
- C(최다 토큰)와 Clojure(최소 토큰) 사이 2.6배 차이
- J 언어 결과
- 평균 70토큰, Clojure(109토큰)의 절반 수준
- 검증 문제
- 기존 벤치마크가 Rosetta Code 기반의 단순 문제로 구성됨
- 평가 오류 사례
- 한 에이전트가 존재하지 않는 경로를 자신의 실행 파일로 심볼릭 링크해 이후 테스트 결과가 왜곡됨
- 저자 사전 예측
- 동적·정적 언어 격차가 큰 문제에서는 무너질 것이라는 데 95% 확신 표명
동적 언어가 유리하다는 통념, 다시 들여다봤다
블로거 대니 루(danluu)가 코딩 에이전트에 어떤 프로그래밍 언어가 유리한지를 다룬 글을 올렸다. 그가 인용한 기존 벤치마크는 C와 Clojure 사이에 2.6배 토큰 격차가 있다고 봤고, 이후 시도한 배열 언어 J는 평균 70토큰으로 Clojure(109토큰)의 절반 수준을 기록했다고 알려졌다. 저자는 원문에서 "C와 클로저 사이에는 2.6배라는 꽤 의미 있는 격차가 있었다"고 말했다. 이 결과는 구글 AI 검색 요약에도 인용될 만큼 널리 퍼졌다.
왜 토큰 수가 언어 선택의 기준이 되나
코딩 에이전트는 대형언어모델(LLM)이 코드를 읽고 쓰면서 작업을 수행하는 방식으로 동작한다. 이때 코드가 길수록, 즉 토큰 — LLM이 텍스트를 처리하는 최소 단위 — 이 많이 들수록 처리 비용과 응답 속도에 영향을 준다. 파이썬이나 클로저 같은 동적 타입 언어는 변수 타입을 미리 선언하지 않아도 돼 코드가 짧아지는 반면, 러스트·고·C++ 같은 정적 타입 언어는 타입을 일일이 명시해야 해 코드가 길어지는 경향이 있다. 이런 차이 때문에 동적 언어가 LLM 토큰 소비량이 적다는 주장이 나온 것이다.
문제는 이 결론의 근거가 대부분 Rosetta Code 같은 아주 단순한 문제 풀이에서 나왔다는 점이다. 저자는 70토큰이나 109토큰으로 풀리는 문제는 사실상 문제라 부르기 어렵다고 짚었다. 다른 벤치마크에서도 방법론 결함이 발견됐다. 한 테스트에서 존재하지 않는 경로를 실행하려다 실패하자, 이후 실행된 에이전트가 그 경로를 자기 실행 파일로 심볼릭 링크했고, 그 뒤로 진행된 모든 채점이 원래 대상 언어가 아니라 그 에이전트의 실행 파일을 기준으로 이뤄졌다는 것이다. 러스트가 여러 차례 실패한 것처럼 보인 이유도 실은 이 버그 때문이었다고 저자는 설명했다.
그래서 뭐가 달라지나
저자는 결과를 보기 전에 예측을 공개해두는 방식으로 자신의 판단을 검증하는데, 이번에는 동적·정적 언어 간 격차가 문제 규모가 커지면 사라질 것이라는 데 95% 확신을 걸었다. 단순 작업에서 나타난 이득이 복잡한 작업에서는 희석되거나 뒤집히는 패턴은 앞선 평가 시리즈에서도 반복적으로 확인됐던 흐름이다.
이는 코딩 에이전트를 설계하는 팀에게 실질적인 시사점을 준다. 토큰 절약만 보고 언어를 고르기보다, 실제로 규모 있는 작업에서 성능이 유지되는지를 따져야 한다는 뜻이다. 지난 8월 5일 Prime Intellect가 공개한 자기개선형 코딩 하네스 'Prime Agent'도 토큰 효율성과 표현력을 동시에 노린다고 밝힌 바 있어, 언어·하네스 설계 전반에서 토큰 비용이 여전히 핵심 변수로 다뤄지고 있음을 보여준다.





댓글