A study notebook for my brother, written by an open model
오픈 모델로 동생의 공부 노트를 만들었습니다
GATE 시험을 준비하는 동생을 위해 만든 무료 학습 노트 앱입니다. Gemma 4로 86개 단원의 노트·문제·플래시카드 258개를 미리 생성해 빠르게 제공하고, 학습 기록은 브라우저에 저장합니다.
- 주제
AI 요약
개발자는 인도 공학 시험 GATE를 준비하는 동생을 위해 학습 앱 inkwand를 만들었습니다. 혼자 공부할 때 진도를 알아봐 주는 사람이 없다는 점에 착안해, 교실 공책처럼 보이는 화면에 격려와 학습 기록 기능을 더했습니다.
학습 기능
공식 강의 계획에 맞춘 13개 과목과 86개 단원을 책장 형태로 보여줍니다. 단원별 노트에는 쉬운 설명과 풀이 예제, 흔히 빠지는 함정, 기억할 문장을 담았습니다. 핵심 용어는 색깔 형광펜으로 표시하고 함정은 주황색으로 구분합니다.
각 단원에는 시험 형식의 문제 다섯 개와 플래시카드가 있습니다. 문제를 맞히면 별이나 메달 같은 스티커를 받고, 틀리면 설명과 함께 표시를 받습니다. 노트를 읽고 문제를 풀고 카드를 확인하면 단원에 초록색 체크가 붙습니다. 학습 달력에는 공부한 날과 연속 학습 기록이 남고, 날짜에 마우스를 올리면 해당 날의 학습 내용을 볼 수 있습니다. 계정은 필요하지 않으며, 스티커와 진도 기록은 사용자의 브라우저에 저장합니다.
생성 방식과 검증
처음에는 페이지를 열 때마다 Gemma가 노트를 생성하도록 했습니다. 하지만 무료 API 사용 시 응답에 45~90초가 걸렸고, 토큰 한도를 다 써서 빈 응답을 돌려준 적도 있었습니다. 개발자는 방식을 바꿔 작은 스크립트로 86개 단원의 노트·연습 문제·플래시카드, 총 258개 자료를 사전에 생성했습니다. 스크립트는 요청 8개를 동시에 처리하고, 무료 API에서 일시 오류가 나면 재시도하며, 중단 후에도 이어서 실행합니다. 생성한 데이터는 저장소에 약 744KB의 JSON 파일로 들어갑니다.
덕분에 단원 자료는 즉시 열리고 API 키가 없어도 작동합니다. 사용자가 새 자료를 요청하는 기능에만 실시간 모델 호출을 씁니다. 앱은 이 요청에 약 1분이 걸린다고 안내합니다. 연습 문제와 플래시카드는 선택지 네 개, 정답 하나, 해설을 포함한 JSON으로 받아야 합니다. 서버는 Pydantic으로 응답을 검사하고, 형식이 맞지 않으면 더 엄격한 프롬프트로 한 번 재요청합니다. 다시 실패하면 오류 페이지 대신 안내 메시지를 보여줍니다.
모델과 배포
백엔드는 Python과 FastAPI로 만들었고, 프런트엔드는 프레임워크나 빌드 단계 없이 HTML·CSS·JavaScript로 구성했습니다. 아이콘과 삽화는 인라인 SVG로 넣어 별도 이미지 파일을 내려받지 않습니다. Google Gemini API에서 Gemma 4 26B 모델을 기본으로 쓰고 31B 모델을 대체 모델로 둡니다.
자료를 생성하는 동안 Google API에서 일시적인 서버 오류가 74회 발생했습니다. 배포 당일에는 26B 모델 요청이 모두 실패했지만 31B 모델은 정상 작동했습니다. 모델 변경은 설정 한 곳에서 처리하도록 구성해, 한 모델에 문제가 생기면 다른 모델을 쓰게 했습니다. Render의 render.yaml 블루프린트로 배포하며 헬스 체크와 푸시 후 자동 배포를 설정했습니다.
비용과 공개
앱은 Render의 상시 실행 인스턴스에서 운영하며, Gemma 무료 티어와 해커톤 크레딧을 활용해 무료로 제공합니다. 데이터와 코드는 MIT 라이선스로 공개했고, 자료 오류를 발견하면 저장소에 수정 요청을 보낼 수 있습니다. 개발자는 공개된 모델 가중치를 다른 환경에서 실행할 수 있어 API 제공자가 바뀌어도 특정 서비스에 묶이지 않는다고 설명합니다. 다만 개발자의 8GB 노트북에서는 Gemma를 로컬로 실행하지 못했고, 더 나은 하드웨어를 갖춘 학교 연구실이라면 인터넷이나 API 키 없이 운영할 수도 있다고 덧붙였습니다.
화면과 사용성
격자 종이 배경과 펜으로 쓴 듯한 제목, 형광펜 표시로 공책 분위기를 냈습니다. 페이지 아래에는 칠판과 책상, 시계, 햇빛과 구름이 움직이는 창문이 있는 교실을 그렸습니다. 휴대전화 화면에 맞춰 작동하고, 동작 줄이기 설정도 따릅니다. 개발자는 동생이 앱에 대한 말을 하지 않았지만 달력에 공부 기록이 쌓이고 스티커가 붙은 모습을 확인했다고 전합니다.
dev.to 반응
- @sahil_jaiswal_6affec34584 — 정말 멋집니다!
- @chanadev — 정말 감사합니다! :)
- @jeturgavli — 정말 멋진 프로젝트입니다!
- @chanadev — 감사합니다! :)
- @srijita33 — 정말 멋진 프로젝트네요.
- @chanadev — 감사합니다! <3
원문: dev.to / 번역·요약: Trawling