StudyQuiz v0.1.0: FastAPI 기반 간격 반복 학습 툴 개발
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- *소프트웨어 개발자/교육 기술 개발자**
- 난이도: 중간 (FastAPI, SQLAlchemy, PostgreSQL 기술 활용)
- 목표: CLI 기반 학습 툴 개발 및 간격 반복 알고리즘 구현
핵심 요약
- FastAPI + Async SQLAlchemy 기반으로 빠른 백엔드 구현
- SuperMemo 2 알고리즘 적용으로 효과적인 간격 반복 학습 제공
- CLI 터미널 기반 퀴즈 시도 및 PostgreSQL 데이터베이스 통합
섹션별 세부 요약
1. 개요 및 목표
- Fisher-Yates 셔플링과 SuperMemo 2 알고리즘을 통합한 학습 툴 개발
- 기존 플래시카드 툴(Anki, Quizlet)의 한계 극복: 장단기 메모리 강화
- CLI 터미널 기반으로 초기 버전 출시, 이후 Svelte + TailwindCSS 기반 웹 UI 개발 예정
2. 기술 스택
- 언어: Python 3.10+
- 프레임워크: FastAPI (ASGI), Async SQLAlchemy (PostgreSQL ORM)
- 데이터베이스: PostgreSQL (관계형 데이터 관리)
- 테스트: Pytest + 테스트 DB 리셋 fixture
- 기능: CLI 터미널 기반 퀴즈 시도, Swagger UI 통합
3. 핵심 기능
- SuperMemo 2 알고리즘 적용: 학습자의 기억 강도에 따른 퀴즈 재정렬
- Fisher-Yates 셔플링: 질문 순서 무작위화로 학습 편향 방지
- 데이터 배치 생성:
- 사용자, 모듈, 퀴즈, 질문/답변(중첩 JSON) 일괄 생성
- 퀴즈 시도 기록, 점수 기록, 재시험 일정 자동화
4. 배포 및 사용 방법
- 설치 명령어:
```bash
uvicorn app.main:app --reload
```
- Swagger UI 활용: http://127.0.0.1:8000/docs
- CLI 터미널 기반 상호작용: POST 요청 후 퀴즈 실행
5. 향후 개발 계획
- Svelte + TailwindCSS 기반 웹 UI 개발
- 테스트 커버리지 확대: 퀴즈 시도, 재시험 일정 테스트 강화
- ChatGPT 활용:
- 대량 질문 생성
- 슬라이드/강의 자료 요약
- AI 기반 맞춤형 학습 전략 제공
결론
- SuperMemo 2 알고리즘과 FastAPI를 결합한 CLI 툴로 학습 효율성 극대화
- GitHub 저장소(🔗 github.com/aissa-laribi/studyquiz)에서 코드 확인 및 기여 가능
- 향후 Svelte 기반 웹 UI 개발로 교육 기술 분야 확장 예정