2026. 1. 26. 05:14ㆍAI Product Building/HalloGerman
이 글의 핵심
- 단어 학습 앱에서 단순 반복이 학습 효과로 이어지지 않는 이유
- 플래시 카드, 쓰기, 말하기 결과를 복습 로직으로 연결한 설계 방식
13편에서 플래시 카드 암기 구조를 설명했다면, 이번 14편에서는 그 다음 단계인 복습 로직을 다룬다.
HalloGerman에서 복습은 단순히 “다시 보여주는 것”이 아니다. 학습이 실제 기억으로 남게 만드는 결정적인 장치다.
1. 단순 반복 학습이 실패하는 이유
많은 단어 학습 앱들이 “오늘 배운 단어 다시 보기” 같은 기능을 제공한다. 하지만 실제 학습 효과는 기대보다 낮은 경우가 많다.
그 이유는 단순하다.
- 사용자가 이미 알고 있다고 착각하고
- 능동적으로 기억을 꺼내지 않으며
- 같은 방식으로만 반복되기 때문이다
단순 노출은 익숙함을 만들지만, 기억을 강화하지는 않는다.
2. HalloGerman 복습 설계의 기본 원칙
HalloGerman의 복습 로직은 다음 세 가지 원칙을 기준으로 설계했다.
- 항상 ‘다른 방식’으로 다시 만나게 한다
- 기억을 스스로 꺼내게 만든다
- 틀리는 경험을 자연스럽게 포함시킨다
이 원칙을 지키지 않으면, 복습은 단순 소비 콘텐츠로 전락한다.
3. 복습 대상 단어는 어떻게 선정되는가
모든 단어를 동일하게 복습시키는 것은 비효율적이다.
HalloGerman에서는
- 플래시 카드에서 자주 본 단어
- 쓰기 학습에서 틀린 단어
- 말하기 학습에서 주저한 단어
를 우선 복습 대상으로 선정한다. 즉, 학습 기록 기반으로 복습이 결정된다.
3-1. 복습 대상 판별 로직 예시
fun shouldReview(wordStats: WordStats): Boolean {
return wordStats.wrongCount > 0 ||
wordStats.lastStudiedDays > 3
}
이 로직은 단순하지만, 복습 효율을 크게 높여준다.
4. 복습 방식은 왜 매번 달라지는가
복습에서 가장 중요한 것은 같은 단어를 다른 방식으로 다시 만나게 하는 것이다.
그래서 HalloGerman에서는
- 어떤 날은 플래시 카드로
- 어떤 날은 타이핑 쓰기로
- 어떤 날은 말하기 학습으로
복습 방식이 바뀌도록 설계했다. 이 변화가 기억을 다시 활성화시킨다.
5. 복습에서 ‘정답률’을 강제하지 않은 이유
처음에는 복습 결과를 정확도 퍼센트로 관리하려 했다. 하지만 테스트 결과는 좋지 않았다.
- 점수에 집착하게 되고
- 틀리는 단어를 회피하며
- 학습 스트레스가 증가한다
그래서 HalloGerman에서는 복습의 목적을 ‘점수 향상’이 아니라 기억 회복으로 정의했다.
6. 복습 결과는 어떻게 저장되는가
복습 결과는 최소한의 정보만 저장한다.
- 마지막 복습 날짜
- 틀린 횟수
- 노출 횟수
이 정보만으로도 다음 복습 시점을 결정하기에는 충분하다. 과도한 데이터 저장은 오히려 관리 부담만 키운다.
6-1. 단어 학습 상태 모델 예시
data class WordStats(
val word: String,
val wrongCount: Int,
val lastStudiedDays: Int
)
7. 복습 로직이 홈 화면과 연결되는 방식
복습 로직은
- 오늘의 복습 단어 수
- 미완료 복습 항목
- 연속 학습 기록
과 같은 형태로 가공되어 홈 화면 진도 모니터링에 반영된다. 사용자는 ‘얼마나 외웠는지’보다 ‘얼마나 꾸준히 복습했는지’를 보게 된다.
8. 복습 기능이 학습 흐름에서 차지하는 위치
복습은 별도의 메뉴가 아니다.
- 플래시 카드 학습 이후
- 쓰기 학습 이후
- 말하기 학습 이후
자연스럽게 이어지는 다음 단계다. 이 흐름이 끊기지 않아야 학습은 습관으로 자리 잡는다.
9. 다음 편 예고
다음 15편에서는 이 모든 학습 흐름을 끊김 없이 유지하기 위한 알람(리마인드) 기능을 다룬다. 학습 앱에서 알람이 왜 필요한지, 그리고 어떻게 구현했는지를 설명할 예정이다.
참고 자료
- Android Room Persistence Library
https://developer.android.com/training/data-storage/room
'AI Product Building > HalloGerman' 카테고리의 다른 글
| [독일어 학습 앱 개발기 16편] 홈 화면 진도 모니터링 – 숫자가 학습을 계속하게 만드는 이유 (0) | 2026.01.28 |
|---|---|
| [독일어 학습 앱 개발기 15편] 알람(리마인드) 기능은 왜 필요한가 – 학습을 ‘습관’으로 만드는 설계 (0) | 2026.01.27 |
| [독일어 학습 앱 개발기 13편] 플래시 카드 암기 기능 – 단어를 ‘외우게 만드는’ 구조 설계 (0) | 2026.01.25 |
| [독일어 학습 앱 개발기 12편] 쓰기 학습 ② 필기 입력은 왜 분리했을까 – 손으로 쓰는 학습의 기준 (1) | 2026.01.24 |
| [독일어 학습 앱 개발기 11편] 쓰기 학습 ① 타이핑 입력은 왜 가장 먼저 구현했을까 (0) | 2026.01.23 |