OODEval: Evaluating Large Language Models on Object-Oriented Design

이 논문은 객체 지향 설계 (OOD) 평가를 위한 벤치마크 OODEval 과 인간 평가 데이터셋 OODEval-Human, 그리고 통합 평가 지표 CLUE 를 제안하고, 이를 통해 29 개의 대규모 언어 모델의 OOD 수행 능력을 심층 분석하여 높은 문법적 정확도에도 불구하고 의미적 결함이 존재함을 규명했습니다.

Bingxu Xiao, Yunwei Dong, Yiqi Tang, Manqing Zhang, Yifan Zhou, Chunyan Ma, Yepang Liu

게시일 Thu, 12 Ma
📖 3 분 읽기☕ 가벼운 읽기

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

1. 연구의 배경: "코딩은 잘하는데, 설계는 왜 못 할까?"

지금까지 AI 를 평가할 때는 주로 "이 코드가 실행되나요?" (문법 오류가 없나요?) 같은 작은 단위의 테스트를 많이 했습니다. 하지만 소프트웨어 개발에서 가장 중요한 것은 전체적인 설계도를 그리는 일입니다.

  • 비유: AI 가 **벽돌 하나를 쌓는 일 (코딩)**은 아주 잘하지만, **건물 전체의 설계도 (OOD, 객체 지향 설계)**를 그리는 일은 아직 서툴다는 것입니다.
  • 문제점: 설계를 평가할 수 있는 '공식 시험지'나 '자동 채점기'가 없어서, AI 의 설계 능력을 제대로 측정하지 못했습니다.

2. 연구의 해결책: 새로운 시험지와 채점기 만들기

연구팀은 이 문제를 해결하기 위해 세 가지 큰 도구를 만들었습니다.

① OODEval (새로운 시험지)

  • 무엇인가요? AI 에게 "이 기능을 구현해 줘"라는 요구사항을 주고, 그에 맞는 **설계도 (클래스 다이어그램)**를 그리게 하는 50 개의 문제입니다.
  • 특징: 문제 난이도를 '초급, 중급, 고급'으로 나누어, AI 가 복잡한 구조를 얼마나 잘 이해하는지 테스트합니다.

② OODEval-Human (인간 학생들의 답안지)

  • 무엇인가요? 대학생 940 명이 실제로 이 시험을 치고, 교수님이 점수를 매긴 실제 답안입니다.
  • 목적: "AI 가 대학생보다 잘할까?"를 비교하고, 새로운 채점기가 인간 교수님의 점수와 얼마나 일치하는지 확인하기 위해 만들었습니다.

③ CLUE (새로운 자동 채점기)

  • 무엇인가요? 기존에는 AI 가 그린 설계도와 정답을 단순히 글자 비교 (BLEU 등) 로만 했지만, 이 방법은 구조적인 의미를 놓칩니다.
  • 비유: 정교한 비교기입니다. 단순히 "단어가 같나요?"가 아니라, "클래스 이름이 의미 있는가?", "함수가 잘 정의되었는가?", "클래스 간의 연결 관계 (상속, 포함 등) 가 논리적인가?"까지 구조와 의미를 모두 파악해서 점수를 줍니다.

3. 주요 발견 (결과)

🏆 AI 의 능력: "문법은 완벽하지만, 의미는 엉망"

  • 문법 (Pass@1): AI 가 그린 설계도 코드가 문법적으로 틀린 경우는 거의 없습니다. (90% 이상 성공)
  • 의미 (CLUE 점수): 하지만 실제 의미는 다릅니다. AI 는 클래스 이름이나 속성은 잘 뽑아내지만, 함수 (메서드) 를 만들거나 클래스 간의 복잡한 관계를 연결하는 데는 큰 실수를 합니다.
  • 비유: AI 는 아름다운 건물의 외관은 완벽하게 그리지만, 내부 배관이나 전기 배선을 연결하는 데는 실패하는 건축가입니다.

🥊 AI vs 인간 학생

  • 평균 비교: AI 의 평균 점수는 평균적인 대학생보다 낮습니다. 특히 복잡한 문제일수록 차이가 커집니다.
  • 최고 수준 비교: 하지만 최고 성능의 AI (예: Qwen3-Coder-30B) 는 평균적인 대학생 수준에는 거의 도달했습니다.
  • 한계: 하지만 가장 뛰어난 학생 (99 점 이상) 과는 여전히 격차가 있습니다. AI 는 아직 '천재' 학생을 완전히 따라잡지 못했습니다.

📈 무엇이 AI 성능을 좌우할까?

  1. 모델 크기: 파라미터가 큰 모델이 더 잘합니다.
  2. 전문성: 일반 AI 보다 코딩에 특화된 AI(Code LLM) 가 훨씬 잘합니다.
  3. 지시 따르기: "지시사항을 잘 따르도록 훈련된 (Instruction Tuned)" 모델이 더 좋습니다.
  4. 추론 능력: "생각하는 과정 (Reasoning)"을 거치는 모델이 무조건 좋은 것은 아닙니다. 오히려 코딩 특화 모델이 더 나을 때도 있습니다.

⚠️ AI 가 자주 하는 실수

  • 가장 흔한 실수: 중요한 클래스를 빼먹거나, 클래스 간의 연결 관계를 잘못 그리는 경우입니다.
  • 특이한 실수: 요구사항에 없는 불필요한 기능을 만들어내거나 (할루시네이션), 코드를 설계도 대신에 써버리는 경우 등입니다.
  • 잘하는 모델: DeepSeek, GPT-4o, 그리고 오픈소스 모델인 Gemma3Qwen3-Coder 시리즈가 상대적으로 실수가 적고 안정적입니다.

4. 이 연구가 우리에게 주는 교훈

  1. 교육 현장의 변화: AI 가 대학생 평균 수준까지 설계도를 그릴 수 있게 되었으니, 학교에서는 단순한 결과물 제출보다는 설계 과정을 설명하거나 구두 시험을 보는 등 새로운 평가 방식을 도입해야 합니다. (AI 가 답안을 대신 써주는 것을 막기 위해)
  2. 모델 선택:
    • 고성능이 필요하면 Qwen3-Coder-30B 같은 큰 모델을 쓰세요.
    • 자원이 부족하면 Gemma3-4B-IT 같은 작은 모델도 surprisingly 잘합니다.
    • 비용 효율을 원하면 DeepSeek-R1 같은 API 가 좋습니다.
  3. 미래 연구: 앞으로는 AI 가 더 복잡한 설계 (클래스가 많고 관계가 복잡한) 를 할 수 있도록 훈련시켜야 합니다.

💡 한 줄 요약

"AI 는 이제 소프트웨어 설계도 그리기를 배우기 시작했지만, 아직 인간 전문가나 뛰어난 학생만큼 정교하지는 않습니다. 하지만 빠르게 성장하고 있으니, 우리는 AI 를 어떻게 활용하고 통제할지 준비해야 합니다."