iPhone 앱에 5개의 실제 Anki 덱을 가져와 보았습니다. 그 결과는 다음과 같습니다
이 테스트를 진행한 이유
"내 덱을 무사히 가져올 수 있을까?" Anki 사용자들이 저희에게 가장 많이 묻는 질문입니다. 단순히 데스크톱 Anki와 카드 수가 일치하는 것만으로는 충분하지 않습니다. 빈칸 뚫기 덱의 경우 카드 수는 맞게 가져오더라도 {{c1::…}} 마크업이 그대로 노출되거나, 힌트가 누락되거나, 이미지가 백지로 나오거나, 오디오 버튼이 작동하지 않을 수 있기 때문입니다. 그래서 파서를 무작정 신뢰하는 대신 의대생, MCAT 준비생, 일본어 학습자가 실제로 사용하는 공유 덱을 iPhone으로 직접 가져왔습니다. 그런 다음 복습 세션을 시작해 처음 6~10장의 카드 앞뒷면을 사진으로 남겼습니다.
테스트 환경: Guru 1.5.1(빌드 76), iPhone 16 Pro Max, iOS 18. 각 .apkg 파일은 '파일' 앱에서 직접 열었습니다. 이 방법은 AirDrop이나 공유 시트에서 사용하는 것과 동일한 임포트 마법사를 실행합니다. 임포트 시간은 '가져오기'를 탭한 순간부터 라이브러리에 덱이 나타날 때까지의 실제 소요 시간을 측정했습니다.
테스트에 사용된 5개의 덱
| 덱 이름 | 파일 크기 | Anki 원본 카드 수 | 임포트 후 카드 수 | 임포트 소요 시간 | 렌더링 확인 (6~10장) |
|---|---|---|---|---|---|
| First Aid 2017 Pharmacology | 5.5 MB | 1,232 | 1,232 | 약 10초 | 빈칸 힌트, 이탤릭체 Extra 필드 |
| USMLE Step 2 (23개 노트 유형, 14개 빈칸 유형) | 68 MB | 5,647 | 5,647 (버그 수정 전: 11,199) | 약 10초 | 빈칸, 컬러 강조, 이미지, Extra |
| MileDown's MCAT Decks | 238 MB | 2,888 | 2,888 | 약 5초 | 컬러 빈칸, 다이어그램 (외부 링크는 회색 텍스트로 표시됨) |
| Zanki Physiology & Pathology | 125 MB | 16,966 | 16,966 (버그 수정 전: 20,792) | 약 15초 | 빈칸, 밑줄, 이미지 |
| JLPT "eggrolls" N1–N5 | 121 MB, 10,107개 오디오 | 10,147 | 10,147 | 89초 | 후리가나, 예문, 오디오 버튼 |
여섯 번째 파일로 263장짜리 AnKing MCAT 샘플도 테스트에 사용했는데, 동일한 패키지를 두 번 가져올 때의 대조군으로만 활용했으며 카드를 개별적으로 확인하지는 않았습니다.
모든 카드에서 중점적으로 확인한 항목
- 라이브러리의 카드 수가 데스크톱 Anki의 덱 카드 수와 일치하는가.
- 빈칸 뚫기가 앞면에서는
[…]또는 힌트 텍스트로, 뒷면에서는 강조된 정답으로 표시되며 각 빈칸 번호당 하나의 카드가 생성되는가. - 굵게, 밑줄, 텍스트 색상(AnKing 스타일의 강조)이 그대로 유지되는가.
- 패키지 내 이미지가 Extra 필드에서 참조된 이미지를 포함하여 정상적으로 로드되는가.
- 오디오 필드가 재생 가능한 버튼으로 나타나며, 후리가나(루비 텍스트)가 한자 위에 올바르게 위치하는가.
- 일부 덱에서 카드 상단에 출력하는 헤더와 같은 템플릿 수준의 추가 요소가 그대로 표시되는가.
USMLE Step 2
이번 테스트 세트에서 가장 까다로운 덱이었습니다. 단일 패키지 내에 23개의 노트 유형과 14가지 빈칸 템플릿이 혼합되어 있습니다. 제가 열어본 모든 카드가 정상적인 빈칸 뚫기 카드로 렌더링되었고, 빨간색과 파란색의 텍스트 강조가 살아있었으며, 정답 아래에 Extra 필드도 제대로 표시되었습니다. 심내막염(endocarditis) 카드에 포함된 고화질 사진은 인터넷이 아닌 패키지의 미디어 폴더에서 직접 로드되었습니다.
Zanki Physiology & Pathology
카드 수가 가장 많은 덱입니다. 16,966장의 카드를 가져오는 데 약 15초가 걸렸습니다. 밑줄 친 용어와 이미지가 모두 제대로 넘어왔습니다. 이 덱과 USMLE Step 2에서 눈에 띄는 점이 하나 있었는데, 동일한 노트에서 생성된 카드들(한 빈칸 노트의 c1, c2, c3)이 세션 내에서 연달아 나타났습니다. 데스크톱 Anki는 기본적으로 관련된 카드(siblings)를 다음 날로 미루지만(bury), 제가 테스트한 빌드에서는 이 기능이 작동하지 않았습니다. 이와 관련해서는 아래에서 더 자세히 설명하겠습니다.
MileDown's MCAT Decks
용량이 238MB로 가장 컸는데, 그중 대부분이 이미지였습니다. 카드 수 자체가 적어서 약 5초 만에 임포트가 완료되었습니다. 컬러가 적용된 빈칸과 다이어그램도 문제없이 렌더링되었습니다. 한 가지 아쉬운 점이 있다면, MileDown 덱에는 외부 하이퍼링크가 포함되어 있는데 이 링크들이 탭할 수 있는 형태가 아닌 회색 텍스트로만 표시되었습니다. 텍스트는 남아있지만 링크가 연결되지는 않았습니다.
JLPT "eggrolls" N1–N5
가장 임포트 시간이 오래 걸린 덱으로, 원인은 카드 수가 아닌 미디어 개수였습니다. 10,107개의 오디오 파일을 압축 해제하고 색인화해야 했기 때문입니다. 10,147장의 카드에 89초가 소요되었습니다. 카드 화면에서는 후리가나가 한자 위에 예쁘게 자리 잡았고 예문의 줄바꿈도 유지되었으며 각 오디오 필드는 보라색 재생 버튼으로 변환되었습니다.
First Aid 2017 Pharmacology
작고 전형적인 빈칸 뚫기 덱입니다. 빈칸 힌트와 이탤릭체의 Extra 필드 모두 예상대로 렌더링되었습니다. 유일한 문제는 미관상의 아쉬움이었습니다. 라이브러리에 aervien + tracymcgrady1991 step 1 pharm (FA 2017)이라는 긴 원본 덱 이름이 표시되면서 첫 화면에서 글자가 잘려버렸습니다. 물론 임포트 후 덱 이름을 변경하면 쉽게 해결됩니다.
테스트 중 발견된 버그: 하위 덱 구조가 두 배로 복사되는 문제
USMLE Step 2의 카드는 11,199장으로 임포트되었습니다. 데스크톱 Anki에서는 5,647장으로 나옵니다. Zanki는 16,966장 대신 20,792장이 들어왔습니다. 반면 MileDown과 JLPT는 정확히 일치했습니다.
카드 수가 뻥튀기된 덱과 그렇지 않은 덱의 차이는 바로 덱 구조(deck tree)에 있었습니다. USMLE Step 2의 상위 덱은 자체 카드도 가지고 있으면서 15개의 하위 덱을 포함하고 있습니다. 임포터가 카드가 있는 모든 덱을 나열한 후 하위 덱을 포함하여 각 덱의 노트를 계산하다 보니, 하위 덱의 노트들이 상위 덱에서 한 번, 하위 덱 자체에서 또 한 번, 이렇게 중복으로 수집된 것입니다. Zanki의 경우 자체 카드가 있는 중간 계층 덱이 몇 개 존재해서 22%의 초과가 발생한 반면, MileDown과 JLPT의 상위 덱은 비어 있었기 때문에 중복 계산된 것이 없었습니다. '카드당 카드를 보유한 상위 덱의 수'로 모델링해보니 11,194 / 20,790 / 2,888 / 10,147로 예측되었고, 실제 측정값과도 일치했습니다.
이 문제를 해결하기 위해 각 노트를 해당 노트를 소유한 가장 깊은 레벨의 덱에만 유지하도록 수정했습니다. 이전에는 "최소 100장의 카드"만 확인하던 17개 실제 덱의 로컬 코퍼스 테스트도 이제 정확한 카드 수를 확인하도록 강화하여 24개 테스트를 모두 통과했습니다. 이 수정 사항은 Guru 1.5.1 버전에 적용되었으며, 이 글을 쓰는 시점에 App Store 심사 대기 중입니다. 이전 빌드에서 중첩된 덱을 가져왔고 카드 수가 예상보다 약 두 배 많게 보인다면, 앱을 업데이트한 후 덱을 삭제하고 다시 가져오시길 바랍니다. 기존 라이브러리는 자동으로 덮어쓰기 되지 않습니다.
아쉬웠던 3가지
- 연달아 나오는 빈칸 뚫기 형제 카드들. 한 노트의 c1, c2, c3가 세션에서 연속으로 나타났습니다. 1.5.1 버전의 Guru는 Anki의 "관련된 새 카드 미루기(bury siblings)" 기능처럼 하루에 하나의 노트당 하나의 카드만 보여줍니다.
- "~60 min" 예상 시간. 새 카드가 20장일 때 모든 덱이 동일한 예상 시간을 보여줬습니다. 이는 정확하지도 않을뿐더러 17,000장의 카드를 방금 가져온 사용자 입장에서는 다소 막막하게 느껴질 수 있습니다. 1.5.1 버전부터는 세션에서 실제로 학습할 카드를 기반으로 시간을 예측합니다.
- 덱 이름. 공유 덱은 종종 아주 긴 원본 이름 그대로 들어와 라이브러리에서 잘려 보이곤 합니다. 이 문제는 아직 해결 전이며, 당분간은 임포트 후 덱 이름을 직접 변경해서 사용해 주세요.
본인의 덱으로 직접 테스트해 보기
- 데스크톱 Anki에서: 파일 → 내보내기 → Anki 덱 패키지(.apkg)를 선택합니다. 복습 주기를 그대로 가져오려면 스케줄링 정보 포함을 체크하고, 이미지와 오디오를 위해 미디어 포함도 체크하세요.
- 파일을 iPhone으로 AirDrop하거나 iCloud Drive에 저장한 다음, '파일' 앱에서 탭하여 Guru를 선택합니다. (스크린샷이 포함된 단계별 가이드)
- 라이브러리의 카드 수와 데스크톱 Anki의 카드 수를 비교합니다. 덱에 하위 덱이 있고 숫자가 대략 두 배로 나온다면 1.5.1 이전 빌드를 사용 중인 것입니다.
- 파일을 삭제하기 전에 세션을 시작해서 빈칸 뚫기, 이미지, 오디오 카드를 각각 하나씩 확인해 보세요.
Guru는 완전 무료 앱은 아니지만, 생성하거나 임포트한 것을 모두 합쳐 최대 5개의 최상위 덱까지 무료로 임포트 및 일일 복습 기능을 이용할 수 있습니다. (전체 하위 덱 구조는 최상위 덱 1개로 계산되며, 이미 존재하는 최상위 덱에 하위 덱을 추가로 임포트하는 것도 무료입니다.) 모든 덱은 다시 표준 .apkg 형식으로 내보낼 수 있습니다.
무제한 덱 생성, 덱 편집, 기기 간 동기화, 학습 잠금(Study Lock) 기능은 Guru Pro(월 $4.99, 3일 무료 체험 / 연간 $39.99 / 평생 이용권 $24.99)에서 제공됩니다.
자주 묻는 질문 (FAQ)
임포트 시 이전 복습 기록과 주기도 그대로 유지되나요? "스케줄링 정보 포함" 옵션을 선택해서 패키지를 내보낸 경우, 예정일, 안정도, 난이도 등 스케줄링 상태가 유지됩니다. 이 옵션을 선택하지 않고 내보낸 패키지는 모두 새 카드로 임포트됩니다.
AnKing 덱도 지원하나요? 이번 테스트에 사용된 USMLE Step 2 덱이 14가지 빈칸 뚫기 변형과 컬러 강조가 포함된 AnKing 스타일의 노트 유형을 사용하고 있으며, 모두 정상적으로 렌더링되었습니다. 전체 AnKing Step 덱은 더 많은 미디어를 포함한 큰 파일이므로 임포트에 10초보다는 1분에 가까운 시간이 걸릴 수 있습니다. AnkiHub 업데이트는 Guru로 자동 동기화되지 않으므로, 최신 파일을 다시 내보내어 재임포트해야 합니다. iPhone에서 AnKing과 Zanki 사용하기를 참고해 주세요.
왜 Zanki는 15초가 걸렸는데 오디오 덱은 89초나 걸렸나요? 임포트 시간은 카드 수가 아닌 미디어 파일의 수에 비례합니다. JLPT eggrolls 덱에는 10,107개의 오디오 파일이 있지만, Zanki에는 크기가 크지만 개수는 훨씬 적은 이미지만 포함되어 있기 때문입니다.
이 스크린샷들은 실제 기기에서 찍은 건가요? App Store에 등록된 것과 동일한 빌드를 실행 중인 iOS 시뮬레이터(iPhone 16 Pro Max)에서 캡처했습니다. 임포트 엔진과 렌더러는 실제 기기와 완벽히 동일하며, 실제 iPhone 15나 16에서의 임포트 소요 시간도 거의 비슷합니다.
카드 내 외부 링크가 작동하나요? 아직은 지원하지 않습니다. 위의 MileDown 카드에서 볼 수 있듯, 카드 텍스트 내의 링크는 탭할 수 있는 링크가 아니라 회색 텍스트로 표시됩니다.
여러분의 덱으로 직접 경험해 보세요
Guru는 빈칸 뚫기, 미디어, 하위 덱, 스케줄링 정보를 그대로 유지한 채 .apkg와 .colpkg 파일을 임포트할 수 있습니다. 최대 5개의 덱(생성 및 임포트 합산)까지 무료로 가져오고 일일 복습을 진행할 수 있습니다.
Guru 다운로드