CONCUR: Benchmarking LLMs for Concurrent Code Generation

이 논문은 기존 벤치마크가 간과한 동시성 코드 생성 능력을 평가하기 위해 교재 기반의 43 개 문제와 72 개의 변형으로 구성된 새로운 벤치마크 'CONCUR'를 제안하고, 이를 통해 현재 LLM 들의 한계를 분석합니다.

Jue Huang, Tarek Mahmud, Corina Pasareanu, Guowei Yang

게시일 2026-03-05
📖 3 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

이 논문은 **"LLM(거대 언어 모델) 이 동시성 코드를 얼마나 잘 작성할 수 있는지 테스트하는 새로운 시험지"**를 소개하는 연구입니다.

쉽게 말해, **"여러 명이 동시에 일하는 복잡한 상황에서도 AI 가 실수 없이 코드를 짜낼 수 있을까?"**를 확인한 실험 보고서입니다.

핵심 내용을 일상적인 비유로 설명해 드릴게요.


1. 왜 이 연구가 필요한가요? (기존의 문제점)

지금까지 AI 코딩 능력을 평가하는 시험지들은 대부분 **'한 사람이 순서대로 일하는 상황'**만 다루었습니다.

  • 비유: 마치 "혼자서 요리하는 법"만 가르쳐 놓고, "여러 요리사가 좁은 주방에서 동시에 요리할 때 누가 무엇을 먼저 해야 하는지"를 테스트하지 않는 것과 같습니다.
  • 문제: 실제로는 여러 사람이 (스레드) 동시에 일할 때 서로 부딪히거나 (경쟁 조건), 서로 기다리며 멈춰버리는 (데드락) 같은 복잡한 실수가 자주 발생합니다. 기존 시험지는 이런 '동시성 실수'를 찾아내지 못해, AI 가 엉터리 코드를 만들어도 "정답"으로 통과시켜 버리는 경우가 많았습니다.

2. 새로운 시험지 'CONCUR'란 무엇인가요?

저자들은 이 빈틈을 메우기 위해 CONCUR라는 새로운 시험지를 만들었습니다.

  • 구성: 표준 교재에서 뽑은 43 개의 기본 문제와, 이를 변형한 72 개의 변형 문제, 총 115 개의 문제로 이루어져 있습니다.
  • 특징: 단순히 "코드가 문법적으로 맞는지"만 보는 게 아니라, **"여러 명이 동시에 일할 때 정말로 안전하게 돌아가는지"**를 철저히 검증합니다.

3. 어떻게 검증하나요? (마법 같은 감시자)

이 시험의 가장 큰 특징은 **'모델 체킹 (Model Checking)'**이라는 기술을 사용한다는 점입니다.

  • 비유: 일반적인 테스트는 "요리사가 요리를 해보니까 맛있다"고 확인하는 것입니다. 하지만 동시성 코드는 "100 번 요리해봤는데 다 맛있었다"고 해서 "101 번째에도 맛있다"고 장담할 수 없습니다. (누군가 언제 들어올지 모르기 때문이죠.)
  • 해결책: CONCUR 는 **'모든 가능한 상황'을 시뮬레이션하는 감시자 (JPF)**를 투입합니다. 이 감시자는 "A 가 먼저 할까, B 가 먼저 할까?" 하는 모든 경우의 수를 빠짐없이 훑어보며, "아! 이 순서면 서로 부딪혀서 멈춰버리겠네!"라고 즉시 적발합니다.
  • 결과: AI 가 만든 코드가 문법적으로 완벽해 보여도, 이 감시자가 "여러 명이 동시에 일할 때 충돌이 발생한다"고 하면 불합격입니다.

4. 실험 결과: AI 는 여전히 동시성 코드를 어려워합니다

연구진은 23 개의 최신 AI 모델에게 이 시험을 치르게 했습니다.

  • 결과: 많은 AI 가 코드를 작성할 수는 있었지만, 동시성 실수 (데드락, 경쟁 조건 등) 를 피하는 데는 여전히 취약했습니다.
  • 놀라운 발견:
    1. 단순한 점수 (CodeBLEU) 는 속임수: 기존에 쓰이던 '코드 유사도 점수'는 AI 가 엉터리 코드를 만들어도 높게 나올 수 있어, 동시성 코드의 정확성을 판단하는 데는 쓸모가 거의 없습니다. (예: 문장은 완벽하지만, 실제로는 여러 사람이 일하지 않는 코드를 '정답'으로 치는 경우)
    2. 가장 흔한 실수: AI 는 "동시성"이라는 개념은 알고 있지만, 실제로 여러 개의 작업을 동시에 실행시키는 코드를 짜지 못하고, 혼자서 일하는 코드를 만들어내는 경우가 많았습니다. (비유: "여러 명이 일하라"고 지시받았는데, AI 는 혼자서 일하는 시나리오만 써낸 것)

5. 결론 및 시사점

이 연구는 **"AI 가 동시성 코드를 잘 짜는지 확인하려면, 단순히 코드를 비교하는 게 아니라 '모든 상황'을 시뮬레이션하는 엄격한 테스트가 필요하다"**는 것을 증명했습니다.

  • 한 줄 요약: "혼자서 일하는 코드는 잘 짜는 AI 도, 여러 명이 동시에 일하는 복잡한 상황에서는 여전히 헷갈려서 실수를 많이 합니다. 우리는 AI 의 진짜 실력을 보기 위해 더 까다롭고 정교한 시험 (CONCUR) 이 필요합니다."

이 연구는 앞으로 AI 가 더 복잡한 소프트웨어를 개발할 때, 우리가 신뢰할 수 있는 기준을 마련하는 데 중요한 발걸음이 될 것입니다.