← 최신 논문
💻 computer science

EmbeddedKittens: An Evaluation of Code Embeddings for Scratch

이 논문은 네 가지 거대 언어 모델과 다섯 가지 임베딩 접근 방식을 스크래치(Scratch) 프로그램을 대상으로 실증적으로 평가하며, 대규모 공개 데이터셋으로 학습된 모델이 추가적인 미세 조정 없이도 소규모 교실 환경에서의 기능적 정확성 예측과 같은 학습 분석 작업을 지원하기 위해 구조적 및 의미적 정보를 효과적으로 포착할 수 있음을 입증한다.

원저자: Benedikt Fein, Gordon Fraser

게시일 2026-07-22
📖 5 분 읽기🧠 심층 분석

원저자: Benedikt Fein, Gordon Fraser

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

당신이 초지능 로봇에게 인간의 언어를 이해하는 법을 가르치려 한다고 상상해 보세요. 당신은 수백만 권의 책, 영화, 웹사이트를 로봇에게 입력하고, 결국 로봇은 문장에서 다음 단어를 놀라운 정확도로 예측하는 법을 배웁니다. 이것이 바로 **대규모 언어 모델(LLM)**의 마법입니다. 이제, 당신이 그 똑같은 로봇에게 프로그래머들이 컴퓨터에게 무엇을 할지 지시하기 위해 작성하는 명령어인 소스 코드를 이해시키고 싶다고 상상해 봅시다. 코드는 텍스트와 비슷하게 생겼기 때문에, 연구자들은 이 로봇들이 코드를 이해할 수 있다는 것을 발견했습니다. 이는 개발자들이 소프트웨어를 더 빠르게 작성하거나 버그를 자동으로 수정하는 데 도움을 줍니다.

하지만 반전이 있습니다. 모든 코드가 텍스트처럼 보이는 것은 아닙니다. 학교에서 많은 아이들은 텍스트로 된 줄을 타이핑하는 대신, 화면 위에서 퍼즐 조각을 끼워 맞추는 색깔 있고 블록 기반인 스크래치(Scratch) 시스템을 사용하여 프로그래밍을 배웁니다. 이것은 이야기를 쓰는 것보다 레고 브릭으로 만드는 것에 더 가깝습니다. 과학자들의 큰 질문은 이것입니다. 텍스트 기반 코드를 읽는 것과 같은 "로봇 두뇌"가 이 시각적인 블록 퍼즐도 이해할 수 있을까요? 만약 그렇다면, 어떤 방식이 가장 효과적일까요? 이 질문은 매우 중요합니다. 왜냐로 인해 우리가 스크래치를 이해하도록 로봇을 가르칠 수 있다면, 숙제를 채점하거나, 어려움을 겪는 학생을 찾아내거나, 즉각적인 힌트를 주는 도구를 만들어 다음 세대의 코딩 학습을 훨씬 더 매끄럽게 만들 수 있기 때문입니다.


위대한 코드 번역가 챌린지

이 연구에서 연구자 베네딕트 파인(Benedikt Fein)과 고든 프레이저(Gordon Fraser)는 까다로운 질문에 답하기 위해 나섰습니다: 우리는 컴퓨터에게 교실에서 도움을 줄 수 있을 정도로 스크래치 프로그램을 "이해"하도록 가르칠 수 있는가? 그들은 단순히 추측한 것이 아니라, 다양한 종류의 "코드 번역가"를 테스트하기 위한 디지털 놀이터를 구축했습니다.

코드 번역가를 복잡한 스크래치 프로그램을 프로그램의 본질을 담고 있는 하나의 비밀 숫자(또는 "벡터")로 변환하는 방법이라고 생각해 보세요. 만약 두 프로그램이 유사하다면, 그들의 비밀 숫자는 서로 가까이 있어야 합니다. 만약 다르다면, 숫자는 멀리 떨어져 있어야 합니다. 연구자들은 어떤 번역가가 이 게임에서 최고인지 알아보고 싶었습니다.

경쟁자들

그들은 다섯 가지 다른 유형의 번역기를 줄 세워 경쟁시켰습니다:

  1. "평면적" 독자 (The "Flat" Readers): 이 모델들은 코드를 구조를 무시한 단순한 단어 목록처럼 취급합니다. 이는 마치 레시피를 읽으면서 어떤 단계는 "믹싱 볼" 안에서 일어나고 어떤 단계는 "가스레인지" 위에서 일어나는지 무시하는 것과 같습니다.
  2. "트리" 독자 (The "Tree" Readers): 이 모델들은 명령의 가족 계보와 같은 코드의 구조를 봅니다. 그들은 일부 블록이 다른 블록 안에 중첩되어 있다는 것을 이해합니다.
  3. "흐름" 독자 (The "Flow" Readers): 이들은 가장 진보된 형태입니다. 그들은 단순히 구조를 보는 것이 아니라, 정보가 프로그램 내에서 어떻게 이동하는지를 추적합니다. 마치 물이 파이프를 통해 흐르는 것을 관찰하는 것과 같습니다. 그들은 한 블록에서 변수가 변경되고 그것이 다른 블록에서 사용되는지 여부를 압니다.
  4. "거대 두뇌" (LLMs): 이들은 이미 수백만 개의 텍스트 문서를 읽은 거대한 사전 학습된 AI 모델(챗봇을 구동하는 것과 같은 모델)입니다. 연구자들은 이들에게 스크래치 코드를 보고 그것이 무엇을 하고 있는지 추측하라고 요청했습니다.

테스트: 캐릭터 이름 맞히기

이 번역가들을 테스트하기 위해, 연구자들은 **"스프라이트 이름 맞히기(Sprite Naming)"**라는 게임을 만들었습니다. 스크래치에서 모든 캐릭터(또는 "스프라이트")는 이름을 가집니다. 과제는 간단했습니다. 모델에게 스프라이트 내부의 코드를 보여주고, 그 스프라이트의 이름을 맞혀보라고 하는 것입니다. 이것은 누군가에게 캐릭터의 일기를 보여주고 "이 캐릭터의 이름은 무엇인가요?"라고 묻는 것과 같습니다.

결과는 명확한 계층 구조를 보여주었습니다. 승자는 "흐름" 독자들(특히 GGNN이라 불리는 모델)이었습니다. 블록들이 어떻게 연결되고 데이터가 어떻게 이동하는지에 주목함으로써, 이 모델들은 코드의 "이야기"를 훨씬 더 잘 이해했습니다. 그들은 다른 모델들보다 훨씬 높은 정확도로 스프라이트의 이름을 맞혔습니다.

거대한 "거대 두뇌" 모델(LLMs)과 "평면적" 독자들은 이 특정 이름 맞히기 과제에서 낮은 성능을 보였습니다. 그들은 스크래치 프로그램에서 흔히 쓰이는 화려한 변수명이나 사용자 정의 함수를 사용하지 않기 때문에 올바른 이름을 맞히는 데 어려움을 겪었습니다. 대신, 스크래치는 블록의 구조와 그것들이 어떻게 연결되는지에 크게 의존합니다. 그러나 승리한 "흐름" 모델조차 완벽하지 않았다는 점을 유의해야 합니다. 그들도 실수를 저질렀으며, 이는 어떤 모델도 결점 없는 신탁은 아니라는 것을 의미합니다. LLM들이 완벽한 점수를 얻는 데 실패한 것뿐만 아니라, 구조와 흐름을 이해하는 모델들에 의해 지속적으로 뒤처졌습니다.

언어 장벽

연구자들은 학생들이 사용하는 언어가 중요한지도 테스트했습니다. 스크래치는 브라질, 중국, 폴란드 등 전 세계에서 사용됩니다. 그들은 모델들이 영어 또는 라틴 알파벳(A, B, C 등)을 사용하는 다른 언어로 작성된 코드를 사용할 때 가장 잘 작동한다는 것을 발견했습니다. 코드가 다른 문자 체계(예: 중국어 글자나 러시아 키릴 문자)를 사용할 때 모델들은 혼란을 느꼈습니다. 이는 이러한 도구들이 전 세계적으로 작동하려면, 단순히 영어가 아니라 다양한 언어와 기호를 이해하는 능력을 갖춰야 함을 시사합니다.

이름 맞히기에서 채점으로: 교실에서 사용할 수 있을까?

진정한 마법은 그다음 단계에서 일어났습니다. 연구자들은 다음과 같이 물었습니다: "만약 이 모델들이 스프라이트 이름을 맞히는 데 뛰어나다면, 교사들에게도 도움을 줄 수 있을까?"

그들은 두 가지 큰 아이디어를 테스트했습니다:

  1. 정확성 확인: 모델이 학생의 엉망인 프로그램을 보고, 실행하지 않고도 그것이 제대로 작동하는지 알 수 있을까요? 그들은 모델의 코드 "이해력"과 코드가 실제로 테스트를 통과하는지 여부 사이에 강한 연관성이 있음을 발견했습니다. 모델이 코드가 정답에 "가깝다"고 생각하면, 그 코드는 대개 정상적으로 작동했습니다. 이는 이 모델들이 숙제를 즉석에서 확인하는 "대리인" 역할을 할 수 있음을 의미합니다.
  2. 진전도 추적: 모델이 학생의 발전 정도를 보여줄 수 있을까요? 그들은 학생의 진전을 도표로 나타내기 위해 특별한 지도를 사용했습니다. 학생들이 게임에 기능을 추가함에 따라, 그들의 "코드 지도"는 최종 솔루션에 더 가까워졌습니다. 모델들은 이 여정을 성공적으로 추적하여, 학생이 어디에서 막혔는지 또는 얼마나 왔는지를 교사에게 정확히 보여주었습니다.

흥미롭게도, 이러한 더 넓은 작업들(프로젝트 유형 분류나 진전도 추적 등)에 대해서는 LLM이 실제로 꽤 좋은 성능을 보였으며, 때로는 전문적인 구조 모델과 대등하거나 그들을 능가하기도 했습니다. 이는 LLM이 특정 캐릭터의 이름을 맞히는 데 필요한 미세한 구조적 세부 사항은 놓칠 수 있지만, 프로젝트의 "큰 그림"을 이해하는 데는 매우 뛰어나다는 것을 시사합니다.

결론

연구의 결론은 그렇다, 스크래치용 코드 임베딩을 사용하는 것은 가능하지만, 적절한 도구를 선택해야 한다는 것입니다. 깊은 구조적 이해가 필요한 작업(스프라이트 이름 맞히기 등)을 위해서는 블록의 흐름과 구조를 이해하는 전문 모델이 챔피언입니다. 거대한 챗봇(LLM)들은 스크래치가 의존하는 구조적 세부 사항을 놓치기 때문에 이러한 특정 퍼즐에는 최적의 선택이 아닙니다.

하지만 채점이나 진전도 추적과 같은 더 넓은 교육적 과제의 경우, LLM은 놀라울 정도로 효과적이며 전문 모델만큼이나 좋을 수 있습니다. 더 나아가, 이러한 전문 모델들은 한 번 훈련되면 매번 새로운 과제에 맞춰 다시 훈련될 필요 없이 채점이나 진전도 추적과 같은 다른 작업에도 사용될 수 있습니다. 이는 교사들에게 큰 승리입니다. 왜냐하면 데이터가 부족하여 AI를 처음부터 새로 훈련할 수 없는 작은 교실에서도 강력하고 자동화된 도구를 사용할 수 있음을 의미하기 때문입니다.

요약하자면, 연구자들은 컴퓨터에게 단순히 단어를 읽는 것을 넘어 스크래치 코드를 "느끼는" 방법을 알려주는 방법을 찾아냈습니다. 블록의 모양흐름을 이해함으로써, 이 모델들은 우리가 프로그래밍 교육을 위한 더 스마트하고 지원적인 미래를 구축하는 데 도움을 줄 수 있습니다.

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

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

Digest 사용해 보기 →