손목 위에서 플래시 카드 복습! 개발자가 만든 Anki 앱
24세 개발자가 학습 및 기억력 향상(Memory Improvement)을 위해 개인 프로젝트를 시작함
Garmin 시계용 Anki 앱을 개발하여 손목 위에서 플래시 카드(Flashcard)를 복습하는 시스템 구축
FastAPI, Cloudflare Tunnel, Oracle VM 등을 활용하여 24/7 접속 가능한 환경 구성
LLM 기반 지식 그래프(Knowledge Graph), Obsidian 연동 등 기능 확장을 통해 학습 효율을 극대화함
Garmin 시계용 Anki 앱 아키텍처
본문에서 개발자는 Garmin 시계용 Anki 앱을 만들기 위해 여러 기술을 조합했다.
MonkeyC: Garmin 시계의 네이티브 앱 개발을 위한 언어
AnkiConnect: Anki와 연동하기 위한 API
FastAPI: API 서버 구축 및 Cloudflare Tunnel을 통한 외부 접근 허용
Oracle VM: 24/7 서버 운영을 위한 가상 머신
이러한 기술 스택을 통해 개발자는 손목 위에서 Anki 플래시 카드(Flashcard)를 복습할 수 있는 시스템을 구축했다.
메모리 제약 극복을 위한 최적화
Garmin 시계의 메모리 제약으로 인해 개발자는 앱 성능 최적화에 집중했다.
Paginated Sync: 전체 데크(Deck)를 한 번에 동기화하는 대신, 10개의 카드를 순차적으로 가져오는 방식
중간 데이터 복사 제거: 메모리 사용량 증가를 막기 위해 불필요한 데이터 복사 제거
결과: 메모리 사용량 감소 및 앱 안정성 향상
이러한 최적화를 통해 개발자는 제한된 환경에서도 Anki 앱을 원활하게 사용할 수 있도록 했다.
LLM 기반 기능 확장
개발자는 LLM(Large Language Model)을 활용하여 Anki 앱의 기능을 확장했다.
AnkiGraph: LLM을 사용하여 카드 간의 관계를 분석하고 지식 그래프(Knowledge Graph) 생성
Obsidian 연동: 생성된 지식 그래프를 Obsidian으로 내보내어 학습 내용 시각화 및 지식 관리 효율 증대
Claude 통합: 노트(Note)를 플래시 카드로 변환하는 기능 추가
이러한 기능 확장을 통해 개발자는 학습 효율을 극대화하고, 지식 관리 시스템을 구축했다.
프로젝트의 기술적 도전과 한계
본 프로젝트는 여러 기술적 도전을 극복하고, 학습 효율을 높이는 데 기여했지만, 몇 가지 한계점도 존재한다.
의존성 문제: 24/7 서버 유지를 위해 Oracle VM에 의존
Garmin 플랫폼 제약: Garmin 시계의 메모리 및 API 제약
과도한 의존: 암기 위주의 학습은 이해 부족(Lack of Understanding)을 초래할 수 있음
결론적으로, 이 프로젝트는 학습 보조 도구(Learning Aid)로서 유용하지만, 깊이 있는 사고를 대체할 수는 없다.