AI가 코드를 작성하는 시대가 되면서 프로그래밍 언어를 선택하는 기준도 달라지고 있습니다. 사람이 읽기 쉬운 코드보다 AI 언어모델의 컨텍스트 윈도우를 얼마나 적게 차지하느냐가 중요해질 수 있다는 거죠.

개발자 Martin Alderson이 RosettaCode 프로젝트의 데이터를 분석해 19개 주요 프로그래밍 언어의 토큰 효율성을 비교한 결과를 공개했습니다. 같은 작업을 구현한 코드를 GPT-4 토크나이저로 측정한 결과, Clojure(가장 효율적)와 C(가장 비효율적) 사이에 2.6배 차이가 났다는 게 핵심입니다.
출처: Which programming languages are most token-efficient? – Martin Alderson
왜 토큰 효율이 중요해졌나
LLM의 가장 큰 제약은 컨텍스트 길이입니다. 현재 트랜스포머 아키텍처에서는 컨텍스트가 길어질수록 메모리 사용량이 기하급수적으로 증가하죠. 그런데 코딩 에이전트가 작업할 때는 컨텍스트 윈도우의 약 80%를 코드 읽기, 편집, 비교에 사용합니다.
더 토큰 효율적인 언어를 쓰면 같은 메모리로 더 긴 개발 세션이 가능하고, 더 많은 코드를 한 번에 다룰 수 있습니다. 페타플롭스급 컴퓨팅 파워는 넘쳐나는데 컨텍스트 윈도우 크기 때문에 코드의 간결함이 다시 중요해지는 아이러니한 상황이에요.
언어별 효율성, 예상 밖의 결과
분석 결과 동적 언어들이 예상대로 효율적이었습니다. 타입 선언이 필요 없으니 토큰을 아낄 수 있죠. 다만 JavaScript는 동적 언어 중에서도 가장 장황한 편이었습니다.
흥미로운 건 함수형 언어들의 효율성입니다. Haskell과 F#이 동적 언어들과 거의 비슷한 수준의 효율을 보였어요. 강력한 타입 추론 시스템 덕분입니다. Alderson은 타입이 있는 언어가 LLM에게 여러 장점이 있다고 지적합니다. 컴파일러가 즉각 문법 오류나 메서드 환각을 잡아주고, LSP(Language Server Protocol)로 더 정확한 피드백을 받을 수 있거든요.
또 하나 눈에 띄는 건 APL의 의외의 비효율입니다. APL은 극도로 간결한 코드로 유명한 언어인데요, 특수 기호(⍳, ⍴, ⌽ 등)들이 토크나이저에서 각각 여러 토큰으로 쪼개지면서 오히려 비효율적이었습니다. 반면 APL의 ASCII 버전인 J 언어는 평균 70토큰으로 압도적 1위를 차지했어요. Clojure(109토큰)의 거의 절반 수준입니다.
언어 선택 기준이 바뀔까
이 연구는 개인 블로그의 흥미로운 실험이지, 엄밀한 과학적 연구는 아닙니다. RosettaCode 데이터셋 자체도 다양한 편향이 있을 수 있고요. 하지만 AI 코딩 에이전트가 보편화되면서 프로그래밍 언어 선택 기준에 새로운 변수가 추가될 가능성을 보여줍니다.
만약 개발팀이 Claude Code나 GitHub Copilot 같은 AI 도구에 크게 의존한다면, Haskell이나 F# 같은 함수형 언어가 Go나 C#보다 훨씬 긴 개발 세션을 가능하게 할 수 있습니다. 타입 안정성과 토큰 효율을 동시에 잡을 수 있으니까요.
물론 언어 선택은 토큰 효율만으로 결정되지 않습니다. 생태계, 라이브러리, 팀의 숙련도, 유지보수성 같은 요소들이 여전히 중요하죠. 하지만 AI가 코드를 작성하는 시대에는 “누가 읽기 쉬운가”보다 “AI가 다루기 쉬운가”라는 새로운 관점이 의미를 가질 수 있다는 점, 흥미롭지 않나요?
참고자료:
- RosettaCode – 프로그래밍 언어 비교 프로젝트
- RosettaCodeData GitHub – 데이터셋 미러
- TOON Format – JSON의 토큰 효율적 인코딩

답글 남기기