알맞은 때. 카드 한 장 한 장마다.
Qardbox는 FSRS-6으로 복습을 계획합니다. 카드 한 장마다 언제쯤 잊게 될지를 가늠하는 방법입니다. 그리고 다음 날짜를 그 직전에 둡니다. 떠올리는 일이 아직 힘겹게 느껴지면서도 그래도 해내는, 바로 그 창입니다.
왜 잊기 직전인가
너무 일찍 복습하면 내용은 어차피 아직 남아 있고, 너무 늦게 복습하면 이미 사라진 뒤입니다. 그 사이에 며칠짜리 창이 있고, FSRS는 바로 그 창을 카드마다 맞춥니다.
그러기 위해 계획기는 지금 이 카드를 얼마나 떠올릴 수 있을지를 계속 가늠합니다. 이 확률은 날마다 떨어지고, 카드마다 떨어지는 속도가 다릅니다. Qardbox는 그것이 90퍼센트로 내려앉는 날에 다음 날짜를 둡니다. 아래 그림은 카드 한 장을 두고, 다섯 번의 복습 동안 거기서 무엇이 나오는지 보여 줍니다.
그래서 간격은 시간이 가면서 저절로 늘어납니다. 세 번 확실히 맞힌 카드는 몇 주 뒤에야 다시 오고, 자꾸 걸리는 카드는 바로 다음 날 아침에 다시 봅니다.
매번 맞힘세 번째에 잊음
앱에서 도는 것과 같은 공식으로 계산했고, 그 시험 데이터와 맞춰 보았습니다. 막대는 새 카드 한 장의 다섯 번 복습을 보여 줍니다. 예시 값이며 수집된 사용 데이터가 아닙니다.
간격은 고르게 늘지 않고 매번 몇 곱절로 늘어납니다. 카드를 다섯 번 내리 맞히면 마지막에는 한 해 반이 지나서야 다시 봅니다. 세 번째 복습에서 한 번 잊는 것만으로 46일에서 3일로 되돌아가고, 거기서 다시 늘어납니다.
그것은 벌이 아니라 같은 계산의 결과입니다. 카드를 잊었다면 기억이 가늠보다 약했다는 뜻이고, 계획기는 그에 맞춰 안정도를 내립니다. 그 뒤에는 처음보다 더 빨리 다시 올라갑니다.
안정도가 곧 간격입니다
90퍼센트는 대충 반올림한 어림값이 아니라 계산 전체의 축입니다. 어떤 카드의 안정도에 해당하는 날을 공식에 넣으면 정확히 0.9가 나옵니다. 그러니 카드의 안정도란 바로 그 지점까지의 날수에 지나지 않으며, 두 낱말은 같은 것을 다르게 부르는 이름입니다.
여기서 이 계획기에 대해 할 수 있는 가장 단순한 말이 나옵니다. 다음 복습까지의 간격은 안정도를 날로 옮기고 온날로 반올림한 값입니다. 카드 하나가 21에 서 있다면, 정확히 21일 뒤에 다시 봅니다.
이 90퍼센트는 Qardbox에 고정되어 있고 바꿀 수 없습니다. 더 낮은 값은 간격을 늘려 복습을 줄이는 대신 지식에 더 많은 구멍을 남깁니다. 이 저울질은 앱이 온전히 대신하고, 사용자는 그것과 마주할 일이 없습니다.
FSRS는 어디서 왔고 누가 만들었나
FSRS는 Free Spaced Repetition Scheduler의 줄임말로, 고정된 상자 체계 없이 돌아가는 공개된 데이터 기반 복습 계획 방법입니다. Qardbox는 명세를 따라 FSRS-6을 독자적으로 구현했습니다. 그 과정에서 참조 구현의 소스 코드는 가져오지 않았습니다.
명세와 참조 구현: Jarrett Ye 외, open-spaced-repetition, MIT 및 Apache 2.0 라이선스.
학습 원리는 무엇에 근거하는가
그것은 근거가 탄탄한 기억 연구에 바탕을 둡니다. 분산 효과는 한꺼번에 몰아서가 아니라 나누어 배우라고 말하고, 시험 효과는 그저 다시 읽지 말고 떠올리라고 말합니다. 그리고 바람직한 어려움이란, 떠올릴 때의 약간의 저항이 도움이 된다는 뜻입니다.
그 첫 증거는 오래되었습니다. 헤르만 에빙하우스는 1885년에 배운 것이 얼마나 빨리 흐려지는지 자기 자신에게서 쟀고, Jaap Murre와 Joeri Dros가 2015년에 그 실험을 되풀이해 확인했습니다. 다만 에빙하우스가 찾아낸 것은 다시 배울 때의 절약이지, 아직 알고 있는 비율이 아닙니다.
Jaap M. J. Murre, Joeri Dros: Replication and Analysis of Ebbinghaus’ Forgetting Curve. PLOS ONE 10(7), 2015.
Qardbox는 여기서 어떤 약속도 끌어내지 않습니다. 얼마나 잘 배우는지는 다루는 내용과 꾸준함에 달려 있습니다. 그리고 Qardbox는 오로지 때만 맡습니다.
정확히 알고 싶은 사람들을 위해
똑똑하게 계획한다고 말하면서 무엇을 근거로 그러는지는 열어 두는 학습 프로그램이 있습니다. 여기에는 직접 계산해 볼 수 있는 모든 것이 있습니다. 방법은 공개되어 있고 공식은 이 쪽에 적혀 있으며, 위 그림의 숫자도 그것으로 직접 다시 계산할 수 있습니다.
그 뒤에 있는 원리는 제품 아이디어가 아니라 기억 연구에서 왔고, 가장 오래된 증거는 백 년이 넘었습니다. Qardbox가 거기서 끌어내는 것은 분명 효과에 대한 약속이 아닙니다. 끝내 얼마나 잘 배우는지는 각자의 내용과 꾸준함에 달려 있기 때문입니다.
앱에서 거듭 마주치는 낱말들
이 낱말들은 앱에서 거듭 나타납니다. 그리고 하나하나가 여기에 가리켜 둘 수 있는 고유한 주소를 가지고 있습니다.
- 오늘 할 카드
- 계획된 복습 날짜에 이른 카드입니다. 오늘 할 카드가 먼저 나옵니다.
- 새 카드
- 아직 한 번도 배우지 않은 카드입니다. 계획된 날짜가 아직 없습니다. 처음 답하는 순간 FSRS가 그것을 날짜 계획에 받아들입니다.
- 복습
- 답한 카드 한 장이 복습 한 번으로 셉니다. 그것은 배운 카드 한 장과 같은 말입니다.
- 안정도
- 어떤 카드에 대한 기억이 90퍼센트로 떨어지기까지의 날수입니다. 그러므로 동시에 다음 복습까지의 간격이며, 온날로 반올림됩니다. 새 카드의 안정도는 며칠에 지나지 않습니다. 바르게 답할수록 더 오래 버티고, 잊으면 크게 되돌아갑니다. 앱의 통계에서는 지속력이라는 낱말 아래에 있습니다.
- 난이도
- 어떤 카드가 오래도록 얼마나 버거운가입니다. 천천히 바뀌며, 바르게 답했을 때 안정도가 얼마나 크게 자라는지에 영향을 줍니다.
- 유지율
- 학습한 이레씩을 평균한, 맞힌 답의 비율입니다. 약 90퍼센트가 알고리즘의 목표입니다.
- 익힘
- 다음 날짜가 대략 한 달 또는 그 이상 떨어져 있을 만큼 안정되게 자리 잡았고, 여러 번 바르게 답한 카드는 익힌 것으로 칩니다.
Qardbox가 계획을 다시 맞추는 때
경험이 어느 정도 쌓이면 Qardbox가 기본값을 사용자 자신의 값으로 바꿉니다. 첫 이정표는 날 간격 평가 512회이고, 그다음은 1024회, 그다음은 2048회이며, 그 뒤로는 늘 다음 두 배입니다. 간격이 벌어지는 것은 의도된 것입니다. 데이터가 이미 많을수록 한 차례가 바꾸는 몫은 작아지기 때문입니다.
계산은 기기에서 이루어지고, 사용자 자신의 값은 그것이 검증된 기본값보다 실제 학습 방식에 더 잘 맞을 때만 받아들입니다. 그 경과는 설정, 학습, 개인 맞춤 학습 계획에서 직접 볼 수 있습니다.
날 간격 평가
1,024
이정표 도달
그 뒤의 낱장 카드
312
예시 값입니다. 이 두 숫자는 앱의 설정, 학습, 개인 맞춤 학습 계획, 경과에 있습니다.
왜 날 간격 평가만 세는가
같은 카드를 같은 날 두 번 뽑으면 그중 하나만 셉니다. 10분 뒤에 아직 안다는 것은 두 주 뒤에도 아는지에 대해 별로 말해 주지 않기 때문입니다. 계획에는 날을 건너는 간격만이 셈에 듭니다. 거기서야 무엇이 정말로 남았는지 드러나기 때문입니다.