피드로 돌아가기
SM-2 Spaced Repetition in Deno + Flashcard UI in Flutter Web: Building a Duolingo Competitor
Dev.toDev.to
Backend

Deno Edge Function 기반 SM-2 알고리즘 중앙화를 통한 스케줄링 일관성 확보

SM-2 Spaced Repetition in Deno + Flashcard UI in Flutter Web: Building a Duolingo Competitor

kanta13jp12026년 4월 17일4intermediate

Context

클라이언트 사이드 스케줄링 시 앱 버전별 로직 파편화 및 오프라인 수정으로 인한 데이터 정합성 훼손 위험 존재. 분산된 환경에서 학습 주기 계산 로직의 일관성을 유지해야 하는 제약 사항 발생.

Technical Solution

  • SM-2 알고리즘의 Deno Edge Function 이전을 통한 스케줄링 로직 중앙 집중화
  • Ease Factor(최저 1.3) 및 간격 계산 로직의 서버 사이드 구현으로 버전 드리프트 원천 차단
  • Flutter Web의 AnimatedSwitcher를 활용한 Flashcard Flip UI의 상태 기반 렌더링 최적화
  • Supabase Edge Function API 설계를 통한 Review 상태 업데이트 및 차기 학습일 즉시 반환 구조 채택
  • Flutter const 생성자 전파 특성을 활용한 불필요한 위젯 리빌드 방지 및 메모리 효율 개선
  • Multi-line 인자 리스트에 Trailing Comma를 강제하는 코드 스타일 적용으로 Git Diff 노이즈 감소

- 비즈니스 핵심 로직(알고리즘)은 클라이언트가 아닌 서버에 배치하여 버전 관리 단일화 - Flutter 개발 시 최상위 const 선언을 통해 하위 위젯의 불필요한 const 중복 제거 - Edge Function을 활용하여 지연 시간을 최소화하면서도 중앙 집중식 상태 제어 구현

원문 읽기