← 최신 논문
🤖 AI

Large Language Models for Code Generation from Multilingual Prompts: A Curated Benchmark and a Study on Code Quality

이 논문은 선별된 다국어 벤치마크를 소개하고, 프롬프트에 사용된 언어가 LLM이 생성하는 코드의 기능적 정확성, 구조적 품질 및 어휘적 특성에 상당한 영향을 미친다는 것을 보여주는 연구를 제시하며, 이를 통해 영어 프롬프트가 일관되게 최선의 결과를 도출하지 않는다는 점과 그 영향이 서로 다른 모델 및 프로그래밍 언어에 따라 달라진다는 점을 밝히고 있다.

원저자: Saima Afrin, Alessandro Midolo, Camilo Escobar-Velásquez, Mario Linares-Vásquez, Weiyuan Ding, Bowen Xu, Massimiliano Di Penta, Antonio Mastropaolo

게시일 2026-07-17
📖 5 분 읽기🧠 심층 분석

원저자: Saima Afrin, Alessandro Midolo, Camilo Escobar-Velásquez, Mario Linares-Vásquez, Weiyuan Ding, Bowen Xu, Massimiliano Di Penta, Antonio Mastropaolo

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

위대한 코드 번역가 실험

당신에게 무엇이든 만들 수 있는, 간단한 새집부터 복잡한 우주선까지 제작 가능한 아주 똑똑한 로봇 친구가 있다고 상상해 보세요. 이 로봇의 이름은 거대 언어 모델(LLM)입니다. 이 로봇은 인터넷에 존재하는 거의 모든 글, 즉 수백만 줄의 컴퓨터 코드를 읽었습니다. 이처럼 많은 것을 읽었기 때문에, 이 로봇은 우리를 위해 새로운 코드를 작성하라는 지시를 따르는 데 매우 능숙합니다. 보통 우리는 이 로봇이 학습한 대부분의 코드가 영어로 작성되었기 때문에 영어로 대화합니다. 하지만 만약 당신이 이 로봇에게 스페인어, 힌디어, 또는 중국어를 사용하여 우주선을 만들어 달라고 요청한다면 어떻게 될까요? 로봇이 혼란스러워할까요? 우주선이 무너져 내릴까요? 아니면 그저 다른 억양을 가진 채로 똑같은 것을 만들어낼까요?

이것이 바로 한 연구팀이 진행한 새로운 연구의 핵심 질문입니다. 그들은 우리가 사용하는 언어가 AI 로봇이 작성하는 코드의 품질을 변화시키는지 알고 싶어 했습니다. 소프트웨어 공학의 세계에서 "코드"는 컴퓨터가 무엇을 할지 알려주는 지침 세트입니다. "정확성(Correctness)"은 코드가 실제로 작동하고 모든 테스트를 통과한다는 것을 의미합니다. 예를 들어 다리가 자동차를 버티며 무너지지 않는 것과 같습니다. "품질(Quality)"은 조금 더 넓은 개념입니다. 이는 코드가 읽기 쉽고, 주변 규칙을 잘 따르며(예: 인도에 쓰레기를 버리지 않는 것), 나중에 문제를 일으킬 수 있는 숨겨진 함정이 없는 것을 의미합니다. 연구원들은 영어가 아닌 다른 언어로 다리를 만들어 달라고 요청했을 때, 로봇이 흔들거리는 다리를 만들지, 아니면 어떤 언어로든 똑같이 잘 만들어낼지 궁금했습니다.

실험: 다국어 코딩 챌린지

이를 알아내기 위해 연구진은 거대한 코딩 경연 대회를 준비했습니다. 그들은 유명한 벤치마크인 CoderEval에서 460개의 서로 다른 프로그래밍 과제(Python 230개, Java 230개)를 가져왔습니다. 이것들은 단순히 "hello"를 출력하는 수준의 간단한 작업이 아니었습니다. 문제 해결, 데이터 처리, 구조 구축 등을 요구하는 실제 세상의 도전 과제들이었습니다.

그런 다음, 그들은 영리한 방법을 사용했습니다. 이 460개의 과제를 중국어, 힌디어, 스페인어, 이탈리아어의 네 가지 다른 언어로 번역했습니다. 그런데 단순히 기계 번역기를 사용한 것이 아닙니다. 그들은 컴퓨터 과학 전문가인 원어민들을 고용하여 모든 번역을 수동으로 검토하고 수정했습니다. 마치 친구에게 도움을 요청하는 것처럼, 지침이 완벽하고 자연스럽도록 만들기 위해서였습니다.

그다음, 이 번역된 지침들을 현재 가장 강력한 세 가지 AI 로봇인 GPT-4o mini, DeepSeek, Claude에 입력했습니다. 그들은 각 로봇에게 다섯 가지 언어(영어와 나머지 네 가지 언어)로 동일한 460개의 문제를 풀도록 요청했습니다. 결과적으로 비교를 위해 수천 개의 코드 조각이 생성되었습니다.

큰 놀라움: 영어가 항상 왕은 아니다

결과는 다소 충격적이었습니다. AI에게 영어로 물어보면 가장 좋은 코드를 얻을 수 있다는 것이 일반적인 믿음이었습니다. 왜냐하면 그것이 AI가 가장 많이 공부한 언어이기 때문입니다. 하지만 연구 결과, 이것이 항상 옳은 것은 아니었습니다.

실제로 Python 과제의 경우, AI에게 중국어로 요청하는 것이 영어보다 더 나은 결과를 가져왔습니다! 중국어 프롬프트로 생성된 코드는 더 많은 테스트를 통과했고 더 안정적으로 작동했습니다. 요리사에게 요리를 부탁하는 것과 같습니다. 때로는 다른 언어로 레시피를 주는 것이 요리사가 더 좋은 요리법을 생각나게 할 수도 있습니다. 그러나 이 "중국어의 이점"이 모든 로봇이나 모든 유형의 과제에서 나타난 것은 아니었습니다. Java의 경우 결과가 더 엇갈렸으며, 단 하나의 승리 언어도 명확히 드러나지 않았습니다. 주요 시사점은 AI에게 영어를 사용하는 것이 최고의 코드를 보장하지 않으며, 다른 언어를 사용하는 것이 자동으로 코드를 더 나쁘게 만들지도 않는다는 것입니다.

코드는 달라 보이지만, 정말 더 나쁜가?

연구진은 코드가 작동하는지뿐만 아니라 "품질"도 살펴보았습니다. 그들은 다음과 같은 항목을 확인했습니다:

  • 복잡성(Complexity): 코드가 엉킨 실타래인가, 아니면 직선인가?
  • 주석(Comments): 로봇이 자신이 무엇을 하고 있는지 설명했는가?
  • 경고(Warnings): 코드가 규칙을 어기거나 지저분해 보이지는 않는가?

그들은 비영어권 언어로 생성된 코드가 반드시 "나쁜" 것은 아니라는 것을 발견했습니다. 단지 다르게 보일 뿐이었습니다. 예를 들어, 중국어 프롬프트로 작성된 코드는 로봇이 더 도움이 되려고 노력하는 것처럼 주석이 더 많은 경우가 많았습니다. 힌디어 프롬프트로 작성된 코드는 때때로 구두점 누락이나 이상한 간격 같은 스타일 오류가 더 많았지만, 이러한 문제는 대개 쉽게 고칠 수 있는 작은 문제들이었습니다.

흥미로운 발견 중 하나는 힌디어에 관한 것이었습니다. AI에게 힌디어로 코딩하도록 요청했을 때, 때때로 더 많은 버그나 혼란스러운 로직을 가질 수 있는 약간 위험한 코드를 생성했습니다. 하지만 스페인어나 이탈리아어의 경우, 코드는 일반적으로 영어 버전만큼 좋았으며, 특정 실수를 피하는 측면에서는 오히려 더 낫기도 했습니다.

"섞어 쓰기" 문제

여기서 상황이 조금 복잡해집니다. 코드의 논리는 훌륭할지 몰라도, 코드 내부의 단어들은 종종 혼란스러운 혼합물 상태였습니다. 연구진은 스페인어나 중국어로 요청했음에도 불구하고, 로봇이 주석(코드를 설명하는 메모)과 변수명(데이터의 라벨)을 영어로 작성하는 경우가 많다는 것을 발견했습니다.

이는 마치 요리사에게 이탈리아어로 레시피를 써달라고 요청했는데, 요리사가 재료 목록은 영어로 쓰고 지침은 두 언어를 섞어서 쓰는 것과 같습니다. 연구진은 AI가 매우 일관적이지 않다는 것을 발견했습니다. 때로는 당신의 언어를 따르지만, 때로는 그렇지 않습니다. 이는 코드가 한 가지 언어로 일관되어야 모든 개발자가 이해할 수 있는 팀 단위의 개발자들에게 문제가 됩니다. 이 연구는 단순히 특정 언어로 코드를 요청하는 것만으로는 부족하며, 주석과 라벨도 동일한 언어로 유지하도록 로봇에게 매우 구체적으로 지시해야 할 수도 있음을 시사합니다.

이것이 우리에게 의미하는 바는?

이 연구의 결론은 우리가 AI 코딩 어시스턴트와 대화할 때 모국어를 사용하는 것을 두려워할 필요가 없다는 것입니다. 스페인어, 중국어, 또는 힌디어로 코드를 요청해도 로봇이 실패할까 봐 걱정하지 않아도 됩니다. Python과 같은 경우에는 오히려 더 나은 결과를 얻을 수도 있습니다!

하지만 두 가지 주의할 점이 있습니다:

  1. "스타일" 문제: 비영어권 언어로 작성될 때 코드에 작은 서식 오류(쉼표 누락이나 긴 줄 등)가 더 많을 수 있습니다. 하지만 이는 자동화된 도구로 쉽게 고칠 수 있습니다.
  2. "언어 혼합" 문제: AI가 요청한 언어로 주석과 라벨을 유지하지 않을 수 있습니다. 만약 모든 것이 한 가지 언어로 되어 있어야 한다면, 코드를 다시 확인하거나 AI에게 추가 지침을 주어야 할 수도 있습니다.

전반적으로, 이 연구는 AI가 점점 더 유연해지고 있음을 보여줍니다. AI는 많은 언어로 이해하고 구축할 수 있으며, 좋은 코드를 얻기 위해 모두가 영어를 말해야 했던 장벽을 허물고 있습니다. 하지만 새로운 도구와 마찬가지로, AI에게도 특이한 점이 있으며, 최선의 결과를 얻기 위해서는 이를 다루는 법을 배워야 합니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →