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 개발로 교육 기술 분야 확장 예정