A framework for assessing the capabilities of code generation of constraint domain-specific languages with large language models

이 논문은 LLM 이 일반 프로그래밍 언어보다 도메인 특화 언어 (DSL) 코드 생성 능력이 떨어지는 문제를 해결하기 위해, 생성된 코드의 잘 형성됨과 정확성을 평가하는 프레임워크를 제안하고 이를 OCL 및 Alloy 와 같은 제약 언어에 적용하여 실험적 통찰과 개선 방안을 제시합니다.

David Delgado, Lola Burgueño, Robert Clarisó

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

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

🍳 핵심 비유: 요리사 (AI) 와 레시피 (프로그래밍 언어)

이 연구의 주인공은 **거대한 데이터를 먹고 자란 AI 요리사 (대형 언어 모델, LLM)**입니다. 이 요리사는 수많은 레시피를 보고 배워서 "이 재료로 이런 요리를 만들어줘"라고 하면 요리를 해줍니다.

하지만 문제는 레시피의 종류입니다.

  1. 인기 있는 레시피 (Python, Java 등): 인터넷에 레시피가 수백만 개 있어서 요리사가 아주 잘합니다.
  2. 전문가용 레시피 (OCL, Alloy 등): 특정 목적 (예: 시스템의 안전 규칙, 데이터베이스 제약 조건) 만 위한 아주 작고 전문적인 레시피입니다. 레시피가 거의 없어서 요리사가 당황하거나 엉뚱한 요리를 만들어냅니다.

이 논문은 **"이 전문 레시피 (DSL) 를 요리할 때 AI 가 얼마나 잘하는지, 그리고 어떻게 하면 더 잘하게 할 수 있는지"**를 평가하는 **새로운 평가 시스템 (프레임워크)**을 제안했습니다.


🔍 연구 내용: 무엇을 확인했나요?

연구진은 이 평가 시스템을 이용해 4 가지 다른 AI 요리사 (GPT-4, Llama 등) 를 시험했습니다. 그리고 다음과 같은 4 가지 실험을 해보았습니다.

1. 언어에 따라 실력이 다를까? (Target Language)

  • 결과: 당연히 Python(인기 언어) 이 압도적으로 잘했습니다. 거의 100% 완벽한 요리를 냈죠.
  • 전문 언어 (OCL, Alloy) 는? 요리사가 레시피를 잘 몰라서 재료를 잘못 섞거나 (문법 오류), 레시피의 의도와 다른 요리를 내는 (오류) 경우가 많았습니다. 특히 작은 AI 모델들은 전문 레시피를 아예 못 만들기도 했습니다.

2. 어떤 AI 요리사를 써야 할까? (LLM Selection)

  • 결과: GPT-4가 가장 훌륭했습니다. 반면, 오픈소스 모델 (무료로 공개된 모델) 은 전문 레시피를 다룰 때 너무 많이 망쳤습니다.
  • 교훈: 전문적인 일을 시킬 때는 무조건 가장 똑똑하고 훈련된 AI 를 써야 합니다.

3. 지시하는 방법 (프롬프트) 이 중요할까? (Prompt Engineering)

  • 결과: 의외로 지시 방법 (레시피 설명 방식) 에 따른 차이는 크지 않았습니다.
  • 이유: AI 가 이미 해당 언어를 잘 알고 있다면, 지시를 어떻게 내리든 결과는 비슷했습니다. 하지만 AI 가 언어를 잘 모르면 지시를 아무리 잘해도 소용없었습니다.
  • 교훈: AI 가 언어를 잘 안다면, 복잡한 지시보다는 간단한 지시가 오히려 비용도 절약하고 효율적입니다.

4. 실수를 고치는 과정이 도움이 될까? (Code Repair & Multiple Attempts)

  • 결과: 가장 중요한 발견!
    • 한 번에 여러 번 시도하기 (Multiple Attempts): 같은 주문을 3 번 내보면, 그중 하나는 잘 만들어질 확률이 높아집니다.
    • 실수 고치기 (Code Repair): AI 가 엉뚱한 요리를 내면, "이거 잘못됐어, 고쳐줘"라고 하면 AI 가 고쳐서 다시 내옵니다.
    • 결론: 여러 번 시도하고, 틀리면 고치게 하는 것이 가장 좋은 결과를 냈습니다. (물론 비용은 더 들지만요.)

💡 이 연구가 우리에게 주는 교훈 (요약)

이 논문은 개발자나 AI 를 사용하는 사람들에게 다음과 같은 실용적인 조언을 줍니다.

  1. 도구를 잘 고르세요: 전문적인 언어 (DSL) 를 다룰 때는 무조건 가장 똑똑한 AI 모델을 선택하세요. 작은 모델은 전문 분야에서는 쓸모가 없을 수 있습니다.
  2. 지시보다 반복이 중요: AI 가 언어를 잘 안다면, 지시를 길게 적는 것보다 **"여러 번 시도해봐"**라고 하거나 **"틀리면 고쳐줘"**라고 하는 것이 훨씬 효과적입니다.
  3. 한 번에 여러 개 시키세요: 같은 분야의 규칙들을 한 번에 묶어서 요청하면, AI 가 서로 충돌하지 않고 일관된 요리를 만들어냅니다. 하나씩 따로 시키면 AI 가 기억을 못 해서 앞뒤가 안 맞을 수 있습니다.

🎁 결론

이 논문은 **"AI 가 코드를 잘 쓰게 하려면, 무조건 지시를 잘 짜는 게 아니라, 알맞은 AI 를 고르고, 실수를 고쳐주는 과정을 거치는 것이 더 중요하다"**는 사실을 증명했습니다. 마치 요리사가 처음부터 완벽할 수는 없으니, 맛을 보고 고쳐주는 과정이 결국 최고의 요리를 만든다는 것과 같습니다.