하지만
이동 중 짧은 시간에도 평가원 유형의 국어 지문을 읽고 문제를 풀 수 있도록 만든 서비스다. Gemini 기반 지문·문항 생성 기능과 객관식 채점, 달력형 오답 복습, 학습 통계 기능을 구현하고 전체 서비스의 작동을 확인했다.
만들게 된 배경
독서 시간 감소와 수학 문제 풀이 중심의 학습 환경에 주목했다. 이동 중의 자투리 시간에는 긴 글을 읽기 어렵고, 학습에 도움이 될 지문을 선택하기도 쉽지 않다는 문제의식에서 출발했다. “남는 시간을 알차게, 하루 지문 하나만”이라는 콘셉트로 짧은 국어 지문 학습 서비스를 개발했다.
개발 기간
2024년 1학기 말
해결하려던 문제와 목표
짧은 시간 안에 학습용 지문을 읽고 객관식 문제를 풀 수 있도록 하여 일상적인 독서·국어 학습 진입 장벽을 낮추고자 했다. 평가원 기출 자료를 참고한 AI 지문·문항 생성과 채점, 오답 복습, 학습 기록 분석을 하나의 서비스 흐름으로 연결하는 것이 목표였다.
주요 기능
- AI 지문·문항 생성: Gemini로 국어 지문과 객관식 문항 생성.
- 오늘의 문제·채점: 답안 제출 후 정답·오답 피드백 제공.
- 학습 기록: 풀이 답안과 채점 결과를 저장해 복습·통계에 활용.
- 오답하기: 달력과 날짜별 풀이 내역으로 이전 문제 복습.
- 학습 분석: 학습 달성률 히트맵과 정답률 추이 그래프.
내가 직접 구현하거나 담당한 부분
2인 팀에서 프론트엔드와 백엔드 개발 전체를 담당했다.
- 프론트엔드: React 기반 오늘의 문제, 정답·오답 표시, 달력형 복습과 학습 분석 UI 개발.
- 백엔드: FastAPI 기반 콘텐츠 요청, 답안 제출·채점 및 풀이 기록 처리.
- 데이터 연동: PostgreSQL에 문제·답안·학습 결과를 연결하는 데이터 흐름 구성.
- AI 연동: Gemini 지문 생성 기능을 서버에 연결하고 모델 튜닝 과정의 리소스 제약을 경험.
팀 구성과 역할
2명 / 프론트엔드·백엔드 전체 개발 담당
설계 구조와 기술
React 클라이언트 → FastAPI 서버 → Gemini / PostgreSQL로 구성했다. 클라이언트가 학습 콘텐츠를 요청하면 서버는 생성한 지문·문항을 제공한다. 제출된 답안의 채점·저장 결과는 복습과 학습 분석에 연결한다.
평가원 기출 자료를 선별·구조화하고 Google AI Studio를 활용해 모델 튜닝·생성 실험을 진행했다. Gemini API와 PostgreSQL을 연결해 전체 학습 흐름을 구현했다.
기술 구성
- Frontend: React
- Backend: Python, FastAPI
- Database: PostgreSQL
- AI: Gemini, Google AI Studio
가장 어려웠던 문제
Gemini 기반 지문 생성 모델을 튜닝하는 단계에서 예상보다 높은 GPU 메모리 사용량이 발생해 리소스 부담이 컸다. 지문 생성 기능 개발 과정에서 모델 품질뿐 아니라 튜닝 환경의 자원 요구량도 함께 고려해야 했다.
최종 결과 / 실제 사용 여부
프론트엔드·백엔드와 주요 기능을 모두 완성하고 전체 서비스의 작동을 확인했다. 지문 생성에서 문제 풀이·채점, 달력형 복습과 학습 기록 분석까지 하나의 흐름으로 연결했다. 공개 저장소와 공개 서비스 주소는 없다.
배운 점
프론트엔드에서 문제 풀이와 복습 화면을 구현하는 작업부터 서버의 AI 콘텐츠 처리·채점·기록 저장까지 하나의 학습 흐름을 직접 연결한 경험을 얻었다. Gemini 기반 지문 생성 모델을 튜닝하면서 결과 품질뿐 아니라 튜닝 과정의 GPU 메모리와 리소스 요구량도 개발상 중요한 제약이 될 수 있음을 경험했다.
개선 방향
튜닝 설정별 GPU 메모리 사용량을 기록하고, 데이터 규모와 설정을 조정해 자원 부담을 줄이는 방향을 검토할 수 있다. 생성 지문·정답의 정확성 평가와 풀이·채점·복습·통계를 잇는 자동화 테스트도 보완할 수 있다.