학위 논문 진행 상황: 4회차(2024.03.20)
1. 지난 주간의 요약
[완료된 작업]
- 사내 온라인 저지에서 파이썬 초보자 코드 데이터 수집
- 코드 피드백 모듈을 위한 프롬프트 설계
- 프롬프트 엔지니어링을 통한 피드백 생성 및 수집
[진행 중인 작업]
- 생성된 피드백을 활용한 프로토타입 개발
3. 이번 주간의 진행 상황
[완료된 작업]
사내 온라인 저지에서 파이썬 초보자 코드 데이터 수집: DataFrame에 정적 기반 필터링 방식으로 1차 데이터를 확보했습니다.
코드 피드백 모듈을 위한 프롬프트 설계: J. Lu가 제안한 피드백 생성 3단계 파이프라인을 바탕으로, 코드 피드백 모듈을 설계했습니다(그림 2 참고). 이 모듈은 학생들이 사내 온라인 저지에서 문제를 풀기 위해 작성한 코드를 실행할 때 활성화됩니다. 코드 피드백 모듈은 세 가지 주요 프롬프트(Role-setting, Review Necessity Prediction, Review Comment Generation)로 구성되어 있습니다
그림 2에서 프롬프트의 의미와 구조는 다음과 같습니다. - Role-setting prompt: User의 요청을 처리하기 위한 모델의 역할을 설정합니다.
- Review Necessity Prediction prompt: 학생이 제출한 정답 코드에 리뷰가 필요한지를 이진 라벨 (“예”/ “아니오”)로 응답합니다. 만약, “아니오”라면 응답을 종료합니다.
- Review Comment Generation prompt: 코드 리뷰에 대한 코멘트를 생성합니다.
- Style&Tone: 응답의 어조나 스타일을 지시합니다.
- Restriction: 직접 수정된 코드를 제시하지 않도록 지시합니다.
- Instruction: 코드 리뷰 결과를 웹 프론트 화면에 구분하여 노출 시킬 수 있도록 태그 추가를 지시합니다.
- Exercise: 사내 온라인 저지에서 학생이 푼 문제(테스트케이스)입니다. 테스트케이스는 문항, 입/출력 예시로 구성되어 있습니다.
- Student’s Code: 학생이 제출한 정답 코드입니다.
[진행 중인 작업]
생성된 피드백을 활용한 프로토타입 개발: 시스템 구성은 그림 3에서 볼 수 있듯이, 클라이언트 앱에서 GPT 엔드포인트로의 요청 중 발생하는 CORS 문제를 해결하기 위해 Next.js API Routes를 이용하여 프록시 서버를 설정하였습니다. 코드 리뷰 기능은 GPT-4를 활용하였으며, 시스템의 빌드와 배포는 MS-Azure를 통해 이루어질 예정입니다. 프론트엔드 개발에는 Next.js와 ANTD를 사용하여 웹 기반 인터페이스를 구축하였습니다.
[결과 화면-단계 1] 사용자 기본 화면: 프로토타입은 핵심 기능 검토를 목적으로, 1) 실행 버튼, 2) Python 코드 작성 공간, 3) 코멘트 표시 구역을 포함하여 간결하게 설계되었습니다.
[결과 화면-단계 2] 코드 입력 및 제출 인터페이스: 이 화면은 학생이 문제 해결을 위해 작성한 코드를 제출하는 시나리오입니다. 코드 에디터는 Python 언어에 대해 IDLE과 유사한 스타일을 적용하여 사용자 친화적입니다. 사용된 코드 샘플은 사내 온라인 저지 시스템에서 수집한 것입니다.
[결과 화면-단계 3] 코드 수정 지시 및 피드백 화면: 학생이 제출한 코드 중 수정이 필요한 부분은 “# 수정 필요”라는 주석을 달아 강조합니다. 피드백은 사용자의 나이를 고려하여 이해하기 쉽고 긍정적인 어조로 제공됩니다.
4. 다음 주간의 계획
- 코드 피드백 모듈 고도화: 더 간결한 프롬프트와 모듈의 더 논리적인 구조화, 출력 토큰 결정 등으로 코드 피드백 모듈을 계속 개선할 예정입니다.
- 설계 원칙 정립: 시스템 설계에 필요한 요구사항을 명확히 정의하여, 강력하고 일관된 설계 원칙을 수립할 예정입니다.
댓글남기기