← 최신 논문
💻 computer science

Can Code Evaluation Metrics Detect Code Plagiarism?

본 논문은 코드 평가 지표, 특히 CrystalBLEU 가 다양한 수정 수준에 걸쳐 소스 코드 표절을 효과적으로 탐지할 수 있으며, 특히 전처리가 적용될 경우 Dolos 및 JPlag 과 같은 전용 표절 탐지 도구보다 종종 더 우수한 성능을 보이거나 경쟁할 수 있음을 실증적으로 입증한다.

원저자: Fahad Ebrahim (The University of Warwick), Mike Joy (The University of Warwick)

게시일 2026-04-29
📖 4 분 읽기☕ 가벼운 읽기

원저자: Fahad Ebrahim (The University of Warwick), Mike Joy (The University of Warwick)

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

수백 개의 프로그래밍 과제를 채점하는 교사가 되어 상상해 보세요. 당신은 어떤 학생들이 서로의 과제를 베꼈다고 의심하지만, 그들은 글꼴을 바꾸거나 변수 이름을 변경하거나 코드 순서를 재배열하여 이를 숨기려 했습니다. 이것이 바로 소스 코드 표절의 문제입니다.

수년 동안 교사들은 이러한 부정행위자를 잡기 위해 JPlagDolos와 같은 특수한 '탐정 도구'를 사용해 왔습니다. 이러한 도구들은 복사된 코드를 찾기 위해 특별히 설계된 전문 법의학 스캐너와 같습니다.

하지만 최근 기술계에서는 새로운 유형의 도구가 인기를 얻고 있습니다: **코드 평가 지표 (CEMs)**입니다. 이것들을 '품질 검사기'라고 생각하세요. 원래는 컴퓨터가 생성한 코드를 완벽한 참조 코드와 비교하여 컴퓨터가 숙제를 얼마나 잘 수행했는지 평가하기 위해 다른 목적으로 개발된 것입니다. 이들은 부정행위자를 잡기 위해 만들어진 것이 아니라, AI 를 채점하기 위해 만들어진 것입니다.

이 논문은 다음과 같은 간단한 질문을 던집니다: 이러한 '품질 검사기'(CEMs) 가 '표절 탐정'으로도 역할을 할 수 있을까요?

다음은 저자들이 간단한 비유를 사용하여 이를 테스트한 과정의 이야기입니다.

실험: '복사 - 붙여넣기' 수준

연구자들은 명백한 복사만 살펴본 것이 아닙니다. 그들은 쉬운 것부터 거의 불가능한 것까지 '도둑질'을 숨기는 여섯 가지 다른 수준에 대해 도구를 테스트했습니다:

  • 수준 1 (외관 변경): 글꼴 색상을 바꾸거나 여백을 추가하는 것과 같습니다. (발견하기 쉬움)
  • 수준 2-3 (이름 바꾸기 게임): "myVariable"을 "x"로 변경하거나 문장 순서를 바꾸는 것입니다. (중간 난이도)
  • 수준 4-5 (구조적 섞기): 루프를 다른 유형의 루프로 변환하거나 하나의 큰 함수를 세 개의 작은 함수로 분할하는 것입니다. (어려움)
  • 수준 6 (논리 재작성): 완전히 다르게 보이되 정확히 같은 일을 하도록 전체 논리를 다시 작성하는 것입니다. (매우 어려움)

그들은 두 개의 대규모 실제 학생 코드 세트를 사용하여 다섯 가지 다른 '품질 검사기'(CEMs) 를 두 가지 '법의학 스캐너'(JPlag 및 Dolos) 와 비교 테스트했습니다.

도구: 그들이 어떻게 '생각'하는지

결과를 이해하려면 이러한 도구가 코드를 어떻게 '보는'지 아는 것이 도움이 됩니다:

  • 어휘적 도구 (CrystalBLEU 등): 이들은 단어 (토큰) 를 봅니다. 책을 읽으며 일치하는 단어 수를 세는 것을 상상해 보세요. CrystalBLEU는 똑똑합니다. "import java"나 "public class"와 같은 일반적인 구문 (보일러플레이트) 을 무시하여 모두가 동일한 템플릿을 사용하는 것에 속지 않도록 합니다.
  • 구조적 도구 (TSED 등): 이들은 코드의 모양을 봅니다. 두 건물의 골격을 비교하는 것과 같습니다.
  • 의미론적 도구 (CodeBERTScore 등): 이들은 인간 독자와 마찬가지로 코드의 의미를 이해하려고 시도합니다.

발견: 누가 경주에서 이겼나요?

1. '원본' 테스트 (전처리 작업 없음)
도구들이 학생이 제출한 그대로 (주석, 여백, 템플릿 포함) 코드를 살펴봤을 때:

  • Dolos(전담 탐정) 가 전체적인 승자였습니다. 부정행위자를 가장 일관되게 찾아냈습니다.
  • 그러나 CrystalBLEU(품질 검사기) 가 매우 근접한 2 위를 차지하여, 구식 탐정인 JPlag을 제쳤습니다.
  • '팀워크' 전략: 저자들은 상위 세 가지 품질 검사기를 결합하여 FusionTop3이라는 슈퍼 도구를 만들어 보았습니다. 이 팀워크는 최고의 탐정인 Dolos 와 거의 동등한 성능을 발휘했습니다.

2. '전처리' 테스트 (먼저 코드 정리)
테스트 전에 연구자들은 코드를 '정리'했습니다. 주석, 여백, 표준 템플릿 라인을 제거했습니다. 이는 지문을 찾기 전에 범죄 현장의 먼지를 치우는 것과 같습니다.

  • 전환: 정리 후 품질 검사기들의 성능이 훨씬 향상되었습니다. CrystalBLEUFusionTop3팀이 실제로 전체 순위에서 Dolos 를 능가했습니다.
  • 이유: 정리 과정에서 품질 검사기를 혼란스럽게 했던 '노이즈'가 제거되어 실제 코드 구조에 집중할 수 있게 되었기 때문입니다.

3. 난이도 곡선 ('L4' 장벽)
이것이 가장 중요한 발견이었습니다.

  • 수준 1, 2, 3: 모든 도구 (전담 탐정과 품질 검사기 모두) 가 훌륭했습니다. 거의 모든 사람을 잡았습니다.
  • 수준 4 이상: 모든 도구의 성능이 급격히 떨어졌습니다.
  • 비유: 학생이 레시피를 복사하지만 재료, 조리법, 단계 순서를 바꾸더라도 요리의 맛이 똑같다고 상상해 보세요. 최고의 도구조차도 "이것은 같은 레시피다!"라고 말하기 어려워했습니다.
  • 예외: CrystalBLEU는 다른 도구들이 더 어려움을 겪는 반면, 가장 어려운 수준 (수준 6) 에서도 놀라울 정도로 강력하게 남았습니다.

한계: 그들이 실패한 곳

  • CodeBERTScore('의미' 독자): 이 도구는 처참하게 실패했습니다. 복사되지 않은 코드조차도 모든 것에 높은 유사성 점수를 부여했습니다. 모든 사람이 인간처럼 보이기 때문에 건물에 있는 모든 사람을 도둑으로 생각하는 보안 요원과 같습니다.
  • TSED('골격' 독자): 학생들이 논리는 유지하되 구문 (단어) 만 변경했을 때 어려움을 겪었습니다. '이름 바꾸기 게임'을 처리하지 못했습니다.
  • 'L4' 장벽: 전담 탐정이든 품질 검사기든, 높은 오경보율 없이 가장 복잡한 형태의 표절 (수준 4, 5, 6) 을 신뢰할 수 있게 잡아낼 수 있는 도구는 아무것도 없었습니다.

결론: 이것이 무엇을 의미하는가?

이 논문은 코드 평가 지표가 실제로 표절을 탐지할 수 있으며, 어떤 경우에는 (특히 코드를 정리한 후) 해당 작업을 위해 특별히 제작된 전문 도구만큼이나, 혹은 더 잘 수행할 수 있다고 결론 내립니다.

그러나 그들은 만병통치약이 아닙니다.

  • 최적의 용도: 그들은 선별에 훌륭합니다. "이 10 쌍을 먼저 보세요. 의심스러워 보입니다"라고 교사에게 빠르게 제출물을 순위 매겨 보여줄 수 있습니다.
  • 최종 판단용이 아님: 복잡한 논리 변경 (수준 4 이상) 에 어려움을 겪기 때문에, 최종 결정은 항상 인간 교사가 내려야 합니다.

핵심 교훈: 전문 표절 탐지기를 버릴 필요가 없습니다. 대신, 이러한 새로운 '품질 검사기'를 특히 코드를 먼저 정리한 후 부정행위자가 흔적을 숨기려 할 때 이를 잡는 데 도움이 되는 강력하고 보완적인 도구로 사용할 수 있습니다.

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

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

Digest 사용해 보기 →