FSRS는 Free Spaced Repetition Scheduler의 약자입니다. 플래시카드를 언제 다시 봐야 하는지 정해 주는 무료·오픈 알고리즘입니다. 새로워서가 아니라, 고정 규칙 대신 확률로 스케줄하기 때문에 점점 더 많은 플래시카드 앱에서 SM-2 같은 예전 시스템을 대체하고 있습니다.
이 글은 알고리즘 자체에 관한 것입니다. 무엇을 모델링하는지, 내 답이 그것을 어떻게 바꾸는지, 무엇을 약속하고 무엇을 약속하지 않는지. 제품 소개가 아니라 평가 버튼 아래에 있는 기계를 설명합니다.
예전 스케줄러가 부족한 이유
1987년에 나온 고전적 방식 SM-2는 카드마다 “쉬움 계수"를 주고 고정된 배수로 복습 간격을 늘렸습니다. 작동은 하고 수백만 명이 써 왔습니다. 다만 모든 카드를 같은 렌즈로 봅니다. 특정 단어를 얼마나 잊을 뻔했는지 알 방법이 없어 복습 시점을 정밀하게 잡지 못합니다. 그래서 평균적인 카드에는 대략 맞고, 쉬운 카드와 어려운 카드에는 둘 다 틀린 스케줄이 됩니다.
카드마다 있는 세 가지 숫자
FSRS는 카드마다 세 가지 속성을 모델링하고, 알고리즘이 하는 거의 모든 일이 여기서 따라 나옵니다.
| 속성 | 의미 |
|---|---|
| 난이도(D) | 이 항목이 나에게 얼마나 어려운가. 난이도가 높을수록 간격이 짧아지는 경향이 있습니다. |
| 안정성(S) | 인출 확률이 정해진 수준까지 떨어지기 전까지 기억이 버티는 기간. 일 단위로 측정합니다. |
| 인출 가능성(R) | 지금 이 카드를 떠올릴 확률. 마지막 복습 이후 시간이 지날수록 떨어집니다. |
관계는 보면 직관적입니다. R은 얼마나 시간이 지났는지와 기억이 얼마나 안정적인지에 달려 있습니다. 안정성이 높은 카드는 오래 쉽게 떠오르고, 낮은 카드는 빠르게 망각 쪽으로 미끄러집니다.
목표 기억 유지율: 모든 것을 정하는 다이얼
FSRS는 확률로 작동하기 때문에, 인출 확률이 목표치까지 떨어진 정확한 시점에 복습을 배치할 수 있습니다. 흔히 90% 안팎입니다. 이 숫자는 선택이고, 복습량과 망각을 맞바꿉니다.
- 목표가 높으면(예: 95%) 복습이 많아지고 놓치는 일이 거의 없습니다.
- 목표가 낮으면(예: 85%) 복습이 적어지고 잊는 일이 늘어납니다.
90% 안팎이 흔한 기본값인 이유는, 복습을 한 번 더 하는 것이 상대적으로 적게 벌어들이는 지점에 가깝기 때문입니다. 이 값은 거의 직접 설정하지 않습니다. 앱이 합리적인 값을 고릅니다.
평가가 모델을 조율하는 방식
복습할 때마다 카드를 평가합니다. EnjoyCards에서는 다시, 어려움, 보통, 쉬움 중 하나입니다. 이 한 번의 누름이 카드의 난이도와 안정성을 갱신합니다.
- 다시(백지 또는 오답)는 안정성을 급격히 낮춰, 카드가 몇 분 안에 돌아옵니다.
- 어려움은 안정성을 천천히 올려 다음 간격을 짧게 유지합니다.
- 보통은 정상적으로 올립니다.
- 쉬움은 빠르게 올려 카드를 몇 주 뒤로 밀어냅니다.
FSRS는 시간이 지나면서 적응하기도 합니다. 복습 이력을 관찰해 자기 매개변수를 내 패턴 — 얼마나 빨리 잊는지, 실패한 인출이 얼마나 손해인지 — 에 맞춰 조정합니다. 그래서 스케줄이 일반적이 아니라 개인적이 됩니다.
복습을 아껴 주는 이유
고정 배수가 아니라 확률로 스케줄하기 때문에, FSRS는 예전 시스템의 두 실패 모드를 모두 피합니다. 이미 아는 카드는 과하게 복습하지 않고, 계속 잊는 카드는 부족하게 복습하지 않습니다. 대규모 복습 데이터셋 벤치마크에서 같은 기억 유지율 기준 FSRS는 SM-2보다 복습량이 약 20~30% 적습니다. 절약은 한 세션에서 나오는 게 아니라 덱이 커지면서 쌓입니다.
FSRS가 아닌 것
한계를 분명히 하는 게 좋습니다.
- 카드 형식이 아닙니다. FSRS는 시점만 정합니다. 카드에 무엇이 들어가야 하는지는 말하지 않습니다.
- 기억 알약이 아닙니다. 한 번에 다섯 가지를 묻는 카드, 수동적 재읽기, 부정확한 평가는 구제하지 못합니다. 주는 대로 스케줄할 뿐입니다.
- 한 앱에 묶여 있지 않습니다. FSRS는 무료·오픈이라 여러 플래시카드 도구가 채택했습니다.
실전에서 만나는 방식
D, S, R을 직접 만질 일은 거의 없습니다. 카드를 만들고, 답하고, 평가를 누르면 스케줄이 갱신됩니다. 그게 전부입니다. EnjoyCards에서는 FSRS가 자동으로 돌아가고, 평가 버튼마다 확정 전에 다음 간격(10m, 2d, 15d)을 미리 보여 주므로 알고리즘의 결정이 숨겨지지 않고 드러납니다.
학습자 눈높이의 설명 — 간격, 간격 효과, 학습 루틴 — 이 필요하면 간격 반복 안내부터 시작하세요. FSRS가 완전한 앱 안에서 어떻게 자리 잡는지 보려면 EnjoyCards의 FSRS 활용을 읽어 보세요. 그리고 매일의 연속 학습일이 간격만큼 중요한지 궁금했다면 연속 학습일과 간격 반복 비교가 도움이 됩니다.
알고리즘은 이야기의 절반일 뿐이고, 나머지 절반은 꾸준히 나타나는 것입니다. EnjoyCards를 무료로 다운로드하고, FSRS가 시점을 맡는 동안 나는 십 분을 맡으면 됩니다.