bomcard

JLPT 38,000+ 카드를 서빙하는 안키식 간격반복(SRS) 웹앱 — 엔진 캡슐화로 재구축.

2026.05 — 운영 중운영 중
Next.jsSM-2MariaDB

일본어 공부를 위해 만든 안키(Anki) 호환 간격반복 웹앱입니다. JLPT 전 급수 덱 38,534장을 서빙하고 있습니다.

핵심 기능

  • SM-2 간격반복: 정답 품질에 따라 다음 복습 시점을 계산하는 고전 알고리즘을 구현했습니다. 복습 스케줄이 곧 서비스의 핵심이라 수학적 정확성을 별도로 검증했습니다.
  • 카드 렌더 엔진 캡슐화: 안키 카드는 자체 템플릿·스크립트를 품고 있어서 그대로 렌더하면 앱 전체가 오염됩니다. v2에서 shim 없이 엔진을 캡슐화하는 구조로 재구축했습니다.
  • 한자 획순: KanjiVG 데이터를 새니타이즈해서 획순 애니메이션을 제공합니다.

배운 것

iOS 사파리의 iframe 터치 이벤트는 지뢰밭입니다. 오파시티 프리로드 프레임에 터치가 붙지 않는 문제를 마운트 시점 재배치로 풀었습니다. "동작하는 코드"와 "모바일 사파리에서 동작하는 코드"는 다른 프로젝트입니다.

bomcard · 나봄하랑