exam2pdf가 시험지 수집부터 AI 채점까지 로컬에서 처리한다
중국 개발자 nerkeler가 가정에서 시험지를 모으고 인쇄하고 채점하는 작업을 한곳에서 처리하는 데스크톱 애플리케이션 exam2pdf를 GitHub에 오픈소스로 공개했다. 시험지 이미지를 모아 정리하고, 인쇄하거나 PDF로 내보내고, 학생이 푼 답안 사진을 받아 채점한 뒤 오답을 다시 복습하는 흐름 전체를 한 프로그램 안에서 다룬다. 현재는 미리보기 단계로 배포되고 있다.
시험지 수집은 자동 크롤러가 아니라 사용자가 직접 하는 방식이다. 노트 페이지에서 시험지 이미지를 손으로 모으되 요청이 몰리지 않도록 제한을 걸었고, 개인 학습 용도로만 쓰도록 전제했다. 모은 시험지는 페이지 순서를 바꾸거나 빠진 페이지를 보충한 뒤 바로 인쇄하거나 A4 PDF로 내보낼 수 있고, 세로와 가로 페이지가 섞인 문서도 함께 처리한다.
채점은 두 갈래다. 답안 사진을 PC로 직접 불러오거나, 휴대폰으로 화면의 QR 코드를 찍어 같은 네트워크로 전송할 수 있다. 업로드된 사진은 곧바로 저장되지 않고 임시 보관 영역에서 한 번 확인을 거친 뒤에만 해당 시험지에 붙는다. 채점 자체도 사람이 직접 하는 경로와 AI에 맡기는 경로를 모두 제공한다.
AI 채점은 외부 웹 서비스에 맡기는 방식을 우선 권한다. 앱이 시험지 PDF와 함께 쓸 프롬프트를 만들어 주면, 사용자가 이를 Doubao 같은 웹 AI에 넣고 결과를 복사해 되돌아와 붙여넣는 식이다. 이 경우 앱이 결과를 자동으로 해석한다. 자체 API 키를 넣는 경로도 지원하며 DeepSeek, Zhipu, Tongyi, Kimi, 그리고 OpenAI 호환 인터페이스를 쓸 수 있다. 다만 답안 이미지는 항목별로 확인을 받은 뒤에야 전송된다.
기술 구성은 Electron에 프레임워크 없는 순수 자바스크립트를 조합한 것이다. 데이터는 로컬 JSON 파일로 저장하고 electron-builder로 패키징하며, 150개가 넘는 자동화 테스트를 붙였다. 설치 패키지는 Mac(Intel 및 M 시리즈), Windows, Linux용을 내놓고 자동 업데이트도 지원한다. 저장 데이터는 전부 사용자 기기에만 남고 서버로 올라가지 않으며, 백업과 복구, 진단 정보 내보내기 기능을 갖췄다.
출발점은 단순했다. 성적이 좋지 않은 동생에게 풀릴 시험지를 인터넷에서 찾아 인쇄해 주려던 필요에서 시작해, 처음에는 간단한 웹페이지였다. 이미지를 내려받아 로컬에서 PDF로 합치고 필요하면 이미지를 손보는 과정이 번거로워지자, AI 코딩 도구가 토큰을 무료로 제공하던 시기에 그 작업을 프로그램으로 옮겼다. 이후 여러 차례 다듬으면서 지금의 형태가 됐다.
실무적으로 눈에 띄는 부분은 AI를 앱 안에 깊게 심지 않고 선택적 외부 단계로 분리한 점이다. 프롬프트와 PDF를 넘겨주고 결과를 붙여넣는 방식은 API 비용과 데이터 전송 부담을 동시에 줄이면서, 원할 때만 모델을 바꿔 끼울 수 있게 한다. 프레임워크 없이 데스크톱 앱을 만들면서도 테스트와 멀티 플랫폼 패키징을 갖춘 구성도 개인 도구가 어디까지 갈 수 있는지 보여준다.
한계도 분명하다. 아직 미리보기 단계여서 설치 파일에 서명이 없고, 처음 실행할 때 운영체제가 경고를 띄울 수 있다. 시험지 수집은 어디까지나 수동이며 개인 학습 용도로 제한된다. 개발자 본인도 일부 기능의 경계를 아직 다 써보지 못했다고 밝혔고, 학생용 앱을 겨냥해 만든 것이 아니라 필요해서 만든 도구임을 분명히 했다.