손목 위에서 플래시 카드 복습! 개발자가 만든 Anki 앱

by DD
2개월 전
조회수 14

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)로서 유용하지만, 깊이 있는 사고를 대체할 수는 없다.

Anki On My Wrist