1. 논문 정보

  • 제목: 프로그래밍 학습을 위한 LLM 기반 코드 리뷰 학습 환경 개발
  • 저자: 최승윤, 이동건, 김준구, 장연주, 김현철
  • doi: https://doi.org/10.32431/kace.2023.26.5.001
  • 키워드: GPT, assignments, Automated Feedback, Feedback Generation

2. 요약

이 논문은 웹 기반의 대화형 코드 리뷰 시스템을 구축하는 과정을 다루고 있으며, 이 시스템은 Large Language Model(LLM)과 프롬프트 엔지니어링을 활용한다. 시스템의 주요 목적은 사용자가 자신의 코드를 개선할 수 있도록 피드백을 제공하고, 질문에 답변하는 환경을 마련하는 것이다. 이를 통해 학교 현장에서의 교육 도구 뿐만 아니라 자기주도 학습에도 유용하게 쓰일 수 있다.

연구는 다섯 단계(문헌 연구, 설계 원리 도출, 설계 및 개발, 사용자 평가 및 개선, 피드백 및 응답의 검증)로 진행되었다. 문헌 연구를 통해 설계 원리를 도출했고, 이를 바탕으로 시스템을 설계하고 개발했다. 개발된 시스템은 세 차례의 사용자 평가를 거쳐 개선되었으며, 최종적으로 시스템의 피드백과 응답의 적절성을 검증하였다.

문헌 연구 분석을 통해 여섯 가지 설계원리를 도출하였다. 첫째, 학습자들이 쉽게 사용할 수 있는 대화형 피드백 환경의 제공. 둘째, 개발 환경을 접할 때 간극을 느끼지 않도록 일상적인 프로그래밍 환경 제공. 셋째, 피드백 중 정답 코드가 포함되지 않도록 정답 코드 생성 제한. 넷째, 풀어본 문제에 대하여 정 오답 여부를 확인하는 문제 풀이 확인 기능. 다섯째, 논리 오류 관련 피드백과 코딩 습관 형성 관련 피드백 제공이다.

그림입니다. 원본 그림의 이름: CLP00004cb8570f.bmp 원본 그림의 크기: 가로 711pixel, 세로 502pixel

시스템 설계는 그림 2에서 확인할 수 있듯이 백 엔드는 컴파일러 Python, 코드 리뷰 모듈은 GPT 모델을 기반으로 프롬프트 엔지니어링을 통해 구축되었다. 데이터베이스는 MYSQL을 사용했으며, 프론트엔드는 구글 클라우드 플랫폼과 React와 ANTD를 사용하여 반응형 웹 환경으로 개발되었다.

프롬프트 입력 내용은 코드 리뷰 및 피드백 제공을 위한 역할 부여, 어휘의 난이도를 초급 수준으로 설정, 예시 답안 코드의 생성을 제한하는 내용 등이 입력되었다.

시스템의 검증을 위해 총 세 차례에 걸쳐 사용자 평가를 실시하고, 이를 기반으로 인터뷰를 진행했다.

그림입니다. 원본 그림의 이름: CLP00004cb80001.bmp 원본 그림의 크기: 가로 702pixel, 세로 669pixel

평가는 이지은(2021)이 제안한 온라인 학습 환경 평가지표를 사용하여 시스템 품질, 서비스 품질, 정보 품질의 세 가지 영역에 대해 이루어졌다. 시스템 품질 평가에서는 동시접속 문제와 컴파일 시 피드백 및 코드 검증 지연 문제를 해결하기 위해 코드 검증 모듈과 피드백 기능을 분리하여 개선했다.

서비스 품질 평가에서는 사용자 친화적인 UI를 위해 친밀감을 높이는 이미지를 추가하고, 채팅 부분에 사용자 이름을 표시하도록 수정했다.

그림 3에서 확인할 수 있듯이 정보 품질 평가에서는 코드 리뷰 모듈이 제공하는 피드백의 정확성과 가독성 문제를 해결하기 위해 프롬프트를 개선했다.


3. 결론

시스템 사용 후, 시스템 평가 인터뷰에서 사용자들은 시스템이 학교 현장 안팎에서 프로그래밍 교육에 적합하다고 평가하였다. GPT의 경우 자체적으로 컴파일이 가능하지 않으며 별도의 프롬프트를 입력하지 않으면 주어진 연습문제의 정답을 바로 생성해버리는 문제가 있다는 점에서 논문에서 제시하는 시스템이 GPT를 직접적으로 프로그래밍 교육에 활용하는 것보다 더 유의미할 것으로 보인다.


4. 느낀점

본 논문을 분석하며, 프롬프트 설계가 LLM의 성능과 활용 목적에 큰 영향을 미치는 것을 확인하고, 이에 대한 효과적인 연구의 필요성에 깊이 공감했습니다. 특히, 언어 모델을 직접 개선하거나 Fine-tuning으로 성능을 향상시키는 것 외에도, 목적에 맞는 프롬프트를 설계함으로써 눈에 띄는 효과를 얻을 수 있다는 사실이 흥미롭게 다가왔습니다.

논문에서 특히 인상 깊었던 부분은 설계 단계에서의 컴파일 모듈 Python을 사용한 Code Check와 GPT를 활용한 피드백이었습니다. 이를 통해 동시 접속과 응답 시 발생하는 병목 현상을 개선한 점은 GPT API의 활용 방안에 대해 새로운 관점을 제시했습니다.

또한, 설계 단계에서 구축된 시스템 환경은 제 연구 주제를 구현할 때 매우 유용한 참고 자료가 될 것으로 생각합니다.

댓글남기기