← 최신 논문
🤖 machine learning

How Robustly do LLMs Understand Execution Semantics?

이 논문은 코드 변환 및 입력 교란 하에서 오픈소스 추론 모델이 GPT-5.2 보다 더 견고한 성능을 보이지만, 모든 모델이 예외 발생 시 코드 실행 시맨틱을 취약하게 이해한다는 점을 드러내며 교란을 통한 평가의 중요성을 강조합니다.

원저자: Claudio Spiess, Prem Devanbu, Earl T. Barr

게시일 2026-04-21
📖 3 분 읽기☕ 가벼운 읽기

원저자: Claudio Spiess, Prem Devanbu, Earl T. Barr

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

🧪 실험의 핵심: "변덕스러운 AI 의 시험"

저자들은 AI 에게 코드를 실행해 보라고 시켰습니다. 하지만 단순히 원래 문제만 준 게 아니라, 세 가지 방식으로 시험을 변형해서 AI 가 진짜로 이해하는지 확인했습니다.

1. 입력값을 살짝 바꿔보기 (입력 교란)

비유: "이 식당 메뉴판에 '불고기'라고 적혀있는데, AI 는 '불고기'를 주문하면 맛있게 해줄 거야. 근데 만약 '불고기' 대신 '불고기 (약간 더 맵게)'나 '불고기 (소금 약간 덜)'라고 주문하면? AI 는 여전히 같은 맛을 예상할까?"

  • 결과: 대부분의 AI 는 원래 문제에서는 99% 만점인데, 입력값을 살짝만 바꿔도 점수가 뚝 떨어졌습니다. 특히 GPT-5.2라는 최상위 모델이 가장 큰 타격을 입었습니다. 원래 문제에서는 천재처럼 보였는데, 살짝만 변형된 문제를 주면 엉뚱한 답을 내놓거나 아예 "에러가 나겠어"라고 못 알아챘습니다.
  • 교훈: AI 는 코드의 '의미'를 깊이 이해하기보다, 원래 문제의 패턴을 암기하고 있을 가능성이 큽니다.

2. 코드의 옷을 바꿔보기 (의미 보존 변환)

비유: "같은 레시피인데, '소금 1 큰술'을 '소금 1 티스푼 3 개'라고 적거나, '냄비'를 '냄비 A'라고 이름을 바꿔도요. 요리사는 같은 요리를 할 텐데, AI 는 이름이 바뀌었다고 해서 요리를 못 할까요?"

  • 결과: 코드의 구조는 그대로인데 변수 이름이나 문법만 살짝 바꿔도, AI 의 성능이 떨어졌습니다. 특히 GPT-5.2 는 이런 사소한 변화에 매우 민감하게 반응했습니다. 반면, Gemini 3 Pro는 옷을 바꿔 입어도 요리를 잘 해내는 '진짜 요리사'처럼 안정적이었습니다.

3. 복잡한 길 찾기 (제어 흐름)

비유: "집으로 가는 길이 직선이라면 쉽지만, 중간에 신호등이 10 개나 있고, 우회전해야 하고, 다시 돌아서 가야 한다면요? AI 는 복잡한 길에서 길을 잃을까요?"

  • 결과: 코드를 실행할 때 '만약 (if)'이나 '반복 (for)' 같은 결정 사항이 많을수록 AI 가 정답을 맞추는 확률이 떨어졌습니다. AI 는 복잡한 논리 경로를 따라가는 데 서툴렀습니다.

🚨 가장 큰 충격: "에러 (Exception) 를 못 알아챔"

이 실험에서 가장 놀라운 점은 에러 발생에 대한 AI 의 반응이었습니다.

  • 상황: 코드를 실행하면 "리스트에 없는 번호를 찾았다"거나 "나눗셈에 0 을 썼다"는 식의 에러가 나옵니다.
  • 문제: 원래 AI 에게는 "결과를 알려줘"라고만 했지, "에러가 나면 알려줘"라고 말해주지 않았습니다.
  • 결과: AI 는 에러가 날 상황에서도 "아무 일도 없었을 거야"라고 **거짓말 (환각)**을 하거나, 에러가 났다는 사실 자체를 못 알아챘습니다.
  • 해결책: 저자들이 AI 에게 **"에러가 나면 그 에러 이름도 정확히 말해줘"**라고 지시 (프롬프트) 를 바꾸니, 성능이 급격히 좋아졌습니다.
    • 비유: 학생이 시험지 지시사항을 잘 못 읽어서 "에러"라는 단어가 나오면 답을 쓰지 않았던 것입니다. 지시사항을 명확히 해주니 갑자기 90 점대까지 점수가 올랐습니다.

💡 결론: AI 는 '암기왕'일 뿐, '이해왕'은 아니다?

이 논문의 결론은 다음과 같습니다.

  1. AI 는 매우 취약합니다: 최신 모델 (GPT-5.2 등) 이라도 입력값이나 코드 문법이 조금만 바뀌어도 엉뚱한 답을 내놓습니다. 이는 AI 가 코드의 **진짜 의미 (실행 논리)**를 깊이 이해하지 못하고, 표면적인 패턴을 외우고 있을 가능성을 시사합니다.
  2. 에러 예측은 약점: AI 는 프로그램이 망가질 때 (에러가 날 때) 그 상황을 예측하는 데 매우 서툴렀습니다. 하지만 "에러를 찾아봐"라고 명확히 지시하면 개선됩니다.
  3. 모델별 차이: 모든 AI 가 똑같은 것은 아닙니다. 어떤 모델 (예: Gemini 3 Pro) 은 변화에 강하고, 어떤 모델 (예: GPT-5.2) 은 원래 문제에서는 천재지만, 조금만 변형되면 무너집니다.

한 줄 요약:

"현재의 AI 는 코드를 외운 학생처럼 보일 뿐, 코드가 어떻게 작동하는지 진짜로 이해하는 엔지니어는 아닙니다. 그래서 코드를 수정하거나 새로운 상황을 마주하면 엉뚱한 짓을 할 수 있으니, 개발자들은 AI 의 답을 맹신하지 말고 항상 검증해야 합니다."

이 연구는 AI 가 코드를 얼마나 '튼튼하게' 이해하는지 평가할 때, 단순한 정답 맞추기가 아니라, 변형된 상황과 에러 상황에서도 잘 작동하는지를 확인해야 함을 강조합니다.

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

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

Digest 사용해 보기 →