1 minute read

프로그래머의 뇌 (펠리너 헤르만스, 2022)를 보고 LTM(long-term memory)에 정보를 넣는 것과 인출 강도를 높여 쉽게 떠올리는 능력을 강화하는 Spaced repetition(간격 반복 학습)에 관심이 생겼다.

당연히 다음 질문을 하게 된다. Emacs에서는 어떻게 할 수 있는가?

org-drill 설치

패키지 매니저에 등록되어 있다. Use-package 패키지를 사용하면 쉽게 설치할 수 있다. Doom Emacs에서는 아래와 같이 설치할 수 있다.

(package! org-drill)

간격 반복 학습 단위 drill을 정의하는 방법

Org-mode의 tag를 사용한다. 구획 제목(heading)에 :drill 태그를 붙이면 된다.

대답을 한 번에 보여주는 타입

* Item                                   :drill:
What is the capital city of Estonia?

** The Answer
Tallinn.

빈칸 메우는 클로즈(cloze) 방식

,* Item                                   :drill:
The capital city of Estonia is [Tallinn].

이외에도 다양한 타입을 지원한다.

drill 세션 시작

:drill 태그가 있는 문서에서 아래 명령을 실행하면 시작한다

M-x org-drill

메타 정보는 어디에 저장될까?

메타 정보를 저장해야 한다. 언제 마지막으로 풀었는지 답은 맞췄는지와 같은 정보이다. 구획 제목에 붙는 속성(property)으로 저장한다.

:PROPERTIES:
:ID:       bd0713e6-6c6a-4085-8001-6089edbad15d
:DRILL_LAST_INTERVAL: 3.86
:DRILL_REPEATS_SINCE_FAIL: 2
:DRILL_TOTAL_REPEATS: 1
:DRILL_FAILURE_COUNT: 0
:DRILL_AVERAGE_QUALITY: 3.0
:DRILL_EASE: 2.36
:DRILL_LAST_QUALITY: 3
:DRILL_LAST_REVIEWED: [Y-08-29 Fri 09:%]
:END:

Org-mode 컨벤션을 따르면 메타 정보를 담을 적당한 곳이 거저 생긴다.

마치며

역시나 간격 반복 학습 패키지를 Emacs에 추가할 수 있다. 사용법도 쉽고 설정도 이만하면 충분하다.

Emacs에서만 돌아가는 게 문제다. 간격 반복 학습은 데스크탑보다는 모바일에서 사용하고 싶다. 짬이 날 때 보기 좋기 때문이다. 그래서 org-drill 사용은 보류한다. 모바일 지원이 안 되기 때문이다.

Anki 앱처럼 모바일을 잘 지원하는 앱을 메인으로 사용하고 Emacs는 데이터를 동기화하는 보조적인 수단으로 쓰면 어떨까 고민하고 있다.

C-x C-s C-x C-c

링크