정보기술 · 인공지능 ·
AI 시대 프로그래밍 언어 선택 기준 달라진다...토큰 효율성이 핵심 변수로
LLM 개발 에이전트 시대, 코드 토큰 효율성이 개발 세션 길이 좌우
[한국정보기술신문] 인공지능 기반 코딩 에이전트가 확산되면서 프로그래밍 언어 선택 기준에 새로운 요소가 등장했다. 바로 '토큰 효율성'이다. 대규모 언어모델(LLM)의 컨텍스트 길이 제약으로 인해 같은 기능을 구현하더라도 더 적은 토큰을 사용하는 언어가 유리해진 것이다.
소프트웨어 개발자 마틴 알더슨은 8일 자신의 블로그를 통해 주요 프로그래밍 언어의 토큰 효율성을 비교한 연구 결과를 공개했다. 이번 연구는 AI 에이전트가 인간을 대신해 코드를 작성하는 시대에 프로그래밍 언어의 선택 기준이 어떻게 변화할지를 보여준다.
알더슨은 LLM의 가장 큰 제약 중 하나가 컨텍스트 길이라고 지적했다. 현재 트랜스포머 아키텍처에서는 긴 컨텍스트 윈도우를 사용할수록 메모리 사용량이 크게 증가한다. 메모리 부족 현상이 이어지는 상황에서 코딩 에이전트의 컨텍스트 윈도우 대부분을 코드가 차지한다는 점을 고려하면, 토큰 효율적인 언어가 더 긴 개발 세션을 가능하게 하고 필요한 자원도 줄일 수 있다는 설명이다.
1000개 프로그래밍 과제로 19개 언어 비교
연구는 프로그래밍 교본 사이트인 로제타코드 프로젝트 데이터를 활용했다. 이 프로젝트는 1000개 이상의 프로그래밍 과제에 대해 거의 1000개 언어로 구현된 솔루션을 보유하고 있다.
알더슨은 클로드 코드를 활용해 가장 널리 사용되는 19개 프로그래밍 언어를 선정하고, 모든 언어로 솔루션이 제출된 과제들을 찾아 허깅페이스의 GPT-4 토크나이저로 분석했다. 타입스크립트는 로제타코드 데이터셋에 과제 수가 적어 제외됐다.
분석 결과 가장 토큰 효율적인 언어는 클로저로 나타났으며, 가장 비효율적인 C 언어와 비교해 2.6배 차이를 보였다. 동적 타입 언어들이 전반적으로 높은 효율성을 보였는데, 타입 선언이 필요 없어 많은 토큰을 절약할 수 있기 때문이다. 다만 동적 언어 중에서는 자바스크립트가 가장 장황한 것으로 분석됐다.
함수형 언어의 효율성 주목
예상 밖의 결과도 있었다. 하스켈과 F# 같은 함수형 언어들이 동적 언어 못지않은 토큰 효율성을 보인 것이다. 이는 이들 언어의 효율적인 타입 추론 시스템 덕분으로 풀이된다.
알더슨은 LLM 사용 시 타입이 있는 언어를 사용하면 컴파일을 통해 문법 오류나 메소드 환각에 대한 신속한 피드백을 받을 수 있다는 장점이 있다고 강조했다. 언어 서버 프로토콜(LSP)과 결합하면 더욱 유용해진다는 설명이다.
컨텍스트 윈도우의 80%를 코드 읽기, 편집, 차이 비교가 차지한다고 가정할 때, 하스켈이나 F#을 사용하면 Go나 C#을 사용하는 것보다 훨씬 긴 개발 세션이 가능하다.
독자의 제안으로 추가 분석한 결과도 흥미롭다. APL 언어는 간결성으로 유명하지만 토큰화 측면에서는 불리했다. 특수 기호들이 토크나이저에 최적화되지 않아 각 글리프가 여러 토큰으로 처리되기 때문이다.
반면 APL과 유사한 배열 언어이지만 ASCII 문자를 사용하는 J 언어는 평균 70토큰으로 클로저(109토큰)의 절반에 불과해 가장 효율적인 것으로 나타났다. 배열 언어가 특수 기호를 피할 경우 극도로 토큰 효율적일 수 있다는 점이 확인된 것이다.
AI 시대 언어 진화 방향 제시
알더슨은 "페타플롭스 규모의 컴퓨팅 파워를 갖춘 시대에 코드의 장황함이 실제로 중요해질 수 있다는 점이 흥미롭다"며 "LLM은 소프트웨어 엔지니어링을 바라보는 우리의 사고방식을 계속 깨뜨리고 있다"고 말했다.
토큰 효율성이 주요 동인으로 작용한다면 프로그래밍 언어가 진화하는 방향에도 영향을 미칠 수 있다. 특히 배열 언어처럼 간결하면서도 표준 문자 집합을 사용하는 방식이 주목받을 가능성이 있다.
이번 연구는 과학적 연구라기보다는 유사한 프로그래밍 과제에 대한 흥미로운 비교로 접근해야 한다는 한계가 있다. 하지만 AI 에이전트가 코드 작성의 주체로 부상하는 시점에서 프로그래밍 언어 설계와 선택에 새로운 관점을 제시했다는 평가다.
한국정보기술신문 인공지능분과 이준 기자 news@kitpa.org