북곽원: 학생이 문제를 만들고 학생이 푸는 모의고사 플랫폼
학원 없이도 실전 시험을 연습할 수 있는 구조를 설계했다
북곽원: 학생이 문제를 만들고 학생이 푸는 모의고사 플랫폼
DoRm이 교육 현장 문제를 어떻게 기술과 실험으로 풀어가는지 기록합니다.
이 글의 문제의식
과학고에 처음 입학한 학생들은 모든 문제가 서술형인 시험을 처음 마주합니다. 중학교까지는 객관식과 단답형이 대부분이었는데, 갑자기 풀이 과정 전체를 서술해야 합니다. 이 불안감을 해소하려면 실전 연습이 필요한데, 학원에 다니지 않는 학생들에게는 그 기회가 부족합니다.
북곽원의 출발점은 단순합니다. 학원을 다니지 않는 아이들에게도 충분한 자료를 제공하는 학교가 되자는 것입니다.
북곽원은 세 가지 문제를 동시에 풀려고 했습니다. 학원 없이도 시험 대비가 가능해야 합니다. 시험 자료가 흩어져 있으면 안 됩니다. 그리고 학생이 문제를 만드는 과정 자체가 학습이 되어야 합니다.
출력하면 진짜 시험지가 나온다
학생들이 실전 감각을 익히려면 학교 시험지와 동일한 형식이어야 합니다. 화면에서 문제를 읽는 것과, 종이에 인쇄된 시험지를 앞에 놓고 풀이를 서술하는 것은 전혀 다른 경험입니다.
jsPDF로 한국어 폰트를 등록하고, A4 2단 레이아웃에 학번과 이름 입력란, 페이지 번호까지 포함한 학교 시험지 템플릿을 구현했습니다. 학생이 학년, 학기, 시험 유형, 난이도 비율을 선택하면 문제가 자동 조합되고, 출력하면 실제 시험과 구분이 안 될 정도의 모의고사가 나옵니다.
이미지 배치와 페이지 넘김 계산이 예상보다 훨씬 복잡했습니다. 한국어 폰트 렌더링, 이미지 비율 유지, 2단 레이아웃의 페이지 넘김 계산 등 작은 디테일들이 "실전과 같은 느낌"을 좌우합니다. 이 디테일을 포기했다면 "그냥 문제 모음"이 됐을 겁니다.
만드는 것이 푸는 것보다 가치 있다
핵심 흐름은 출제, 생성, 풀이, 피드백입니다. 학생이 과목별 문제 세트를 업로드하면 관리자 승인을 거쳐 공개됩니다. 다른 학생은 문제를 조합하여 모의고사를 생성하고, PDF를 출력해서 풀고, 사이트에서 채점하면 오답노트가 자동으로 만들어집니다.
여기서 교육적으로 가장 중요한 부분은 출제 과정 자체입니다. 문제를 만들려면 해당 개념을 깊이 이해해야 합니다. 풀이를 작성하려면 설명 능력이 필요합니다. 학생이 학생을 가르치는 구조를 기술로 뒷받침한 것이 북곽원의 핵심입니다.
커뮤니티 해설 시스템으로 공식 풀이가 없는 문제에도 학생들이 직접 풀이를 공유할 수 있습니다. 한 문제에 여러 풀이가 달리면서, 다양한 접근 방식을 비교하는 것 자체가 학습이 됩니다.
스타 시스템 — 기여를 어떻게 독려할 것인가
학생들이 자발적으로 문제를 만들고 해설을 달게 하려면 동기 부여가 필요합니다. 하지만 강제는 안 됩니다.
문제 세트 승인 시 10스타, 해설 제출 시 3스타를 부여하고, 스타 누적으로 "북곽원 스타 강사" 랭킹을 매겼습니다. 10대 3이라는 비율은 의도적입니다. 출제가 해설보다 더 큰 기여라는 메시지를 보상 구조에 담았습니다.
교육 플랫폼에서 게이미피케이션은 균형이 중요합니다. 보상이 너무 크면 양에만 집중하게 되고, 너무 작으면 동기가 없습니다. 이 비율이 적절한지는 계속 운영하면서 조정해야 할 부분입니다.
여기서 예상치 못한 효과가 하나 더 있었습니다. 반별로 스타 총합 경쟁이 자연스럽게 붙었습니다. 자기 반의 스타를 더 쌓으려고 학생들이 서로 독려하면서, 개인 단위의 보상이 반 단위의 집단 경쟁으로 확장됐습니다. 설계하지 않았던 경쟁 구도가 커뮤니티 활성화를 훨씬 가속시킨 셈입니다.
익명 업로드 옵션은 처음에는 고려하지 않았습니다. 학생들이 실제로 올리기 시작하면서 "이름이 나오는 게 부담된다"는 피드백이 왔고, 그제서야 추가했습니다. 익명 세트는 스타 보상을 받지 않는 대신 출제자 정보가 공개되지 않습니다. 부담 없이 기여할 수 있는 안전망이 생긴 것입니다.
배운 점
교사가 만든 플랫폼이지만, 콘텐츠를 만드는 것은 전적으로 학생입니다. 교사는 시스템을 설계하고, 학생이 문제를 출제하고, 해설을 달고, 서로를 평가합니다. 이 역할 분담이 북곽원의 교육적 가치입니다.
사용자 피드백이 기능을 만든다는 것도 익명 업로드에서 배웠습니다. 처음 설계에서 빠졌던 기능이 실제 사용에서 가장 중요한 기능이 될 수 있습니다.
그리고 가장 크게 느낀 것은 커뮤니티의 힘입니다. 학생들이 자유롭게 올리고 서로 소통할 수 있는 구조를 만들어놓으니, 생각보다 훨씬 적극적으로 참여했습니다. 처음에는 수학 중심으로 자료가 쌓일 거라 생각했는데, 물리, 화학, 정보 등 다른 과목까지 학생들이 자유롭게 올리기 시작했고, 나중에는 학생들이 직접 기능 업데이트를 요구하면서 플랫폼의 품질과 디테일이 빠르게 올라갔습니다. 개발자가 혼자 기능을 고민하는 것보다, 학생들이 직접 참여하며 만들어가는 플랫폼이 훨씬 강력하다는 것을 경험으로 알게 됐습니다.
학원에 의존하지 않고도 실전과 동일한 형식의 시험 연습이 가능해졌습니다. 학생이 문제를 만드는 과정에서 해당 개념을 더 깊이 이해하게 되고, 해설을 작성하면서 설명 능력도 기릅니다. 경기북과학고등학교에서 실제 운영 중이며 학생들이 활발하게 문제를 축적하고 있습니다.
다음 단계
과목별 문제 수가 늘어남에 따라 난이도 추천과 개인화된 모의고사 생성을 검토하고 있습니다. 학생의 오답 패턴을 분석하여 취약 영역을 집중 연습할 수 있는 구조까지 나아가는 것이 장기 목표입니다.
Knowledge Base
북곽원 지식 보기
북곽원 프로젝트에 대해 팀과 소통하기