플래시카드 학습 앱
Zee 저기, 그러니까요. 6주 후에 추진 시스템 시험이 있는데 저는 스스로 테스트하면서 공부할 때 훨씬 잘 배워요. 플래시카드 앱을 만들어 주실 수 있나요? 파일에서 카드를 불러오고, 앞면을 보여주면, 제가 답을 입력하고, 맞았는지 알려주는 거예요. 그리고 진행 상황을 저장해서 멈춘 곳부터 다시 시작할 수 있으면 좋겠어요. 부탁드려요 🙏
만들 결과물
Deck: python-basics.json (12 cards)
Front: What does len() return for a string?
Your answer: the number of characters
Correct!
Front: What type does input() always return?
Your answer: int
Incorrect. The answer is: str
---
Session complete: 8/12 correct.
Progress saved.필요한 것들
- 클래스와 객체 —
Card클래스와Deck클래스를 사용하면 데이터를 깔끔하게 모델링할 수 있습니다 - 파일과 예외 — JSON 파일에서 덱을 불러오고 저장하며, 첫 실행 시 파일이 없는 경우를 처리합니다
- 모듈과 표준 라이브러리 — 파일 처리를 위한
json, 섞기 위한random - 딕셔너리와 리스트 — 클래스로 감싸기 전의 기본 구조
- 제어 흐름 — 덱을 반복하고, 정답과 오답에 따라 분기합니다
힌트
클래스가 아니라 데이터부터 시작하세요. 카드는 두 개의 문자열입니다: 앞면과 뒷면. 덱은 카드의 리스트입니다. 먼저 이걸 작동시키고, 더 깔끔한 인터페이스를 원한다면 클래스로 감싸세요.
JSON이 파일 형식을 처리합니다. json.load()는 파일을 Python 리스트나 딕셔너리로 읽어옵니다. json.dump()는 다시 파일로 씁니다. json 모듈은 표준 라이브러리에 있습니다.
파일 로드를 try/except로 감싸세요. 스크립트를 처음 실행할 때는 저장 파일이 존재하지 않습니다. FileNotFoundError를 잡으면 충돌하는 대신 빈 덱으로 우아하게 시작할 수 있습니다.
더 나아가기
핵심 학습 루프가 작동하면:
- 틀린 답을 반복하세요. 플레이어가 틀린 카드를 추적하고 세션 끝에 다시 반복합니다.
- 여러 개의 덱. 폴더 내의 사용 가능한
.json파일을 나열하고 사용자가 학습할 덱을 선택하게 합니다. - 간격 반복 학습. 각 카드가 몇 번 정답으로 맞춰졌는지 기록합니다. 덜 자주 맞춘 카드를 더 자주 보여줍니다.

