Tray Quiz Solver
트레이 아이콘 클릭 → 화면 캡처 → Gemini가 정답 선지를 골라 트레이에 띄우는 Windows 상주 앱
- 상태
- 정보 없음
- 기간
- 2026-09
- 형태
- 개인
- 역할
- 기획·개발
- 스택
- Pythonpywin32PillowGemini
- 링크
- 비공개 저장소
최근 52주 활동
활동 정보 없음무엇을 하나요
화면에 보이는 여러 서술형 보기 가운데 옳은 것을 Gemini에게 판단받고, 그 결과를 작업 표시줄 트레이 아이콘으로 바로 보여 주는 Windows 상주 도구예요. 창을 바꾸거나 글자를 복사할 필요 없이 트레이 아이콘 클릭 한 번으로 끝나요.
트레이의 Q 아이콘을 누르면 주 모니터를 캡처해 Gemini에 보내요. 옳다고 판단한 보기의 번호(예: 1, 3, 4)가 아이콘 하나에 한 글자씩 트레이에 나란히 떠요.
무엇을 만들었나요
- 클릭, 화면 캡처, Gemini 분석, 결과 아이콘 표시까지 이어지는 상주 앱
- 숫자(①②③ 포함), 한글 자모, 알파벳 라벨 인식과 정규화
- 처리 중·결과 없음·오류 상태를 메인 아이콘 글자와 툴팁으로 표시하고, 오류는 로그 파일에 기록
- 설치용 배치 파일과 여러 해상도 아이콘이 들어간 바탕화면 바로가기 생성 스크립트
기술적으로 눈여겨볼 점
- 흔히 쓰는 트레이 라이브러리는 아이콘 하나를 전제로 해서, pywin32로 Shell_NotifyIcon을 직접 호출했어요. 숨김 창 하나에 여러 아이콘을 ID별로 추가·수정·삭제하고, 탐색기가 재시작되면 아이콘을 다시 등록하며, 아이콘 핸들이 새지 않게 정리해요. 새 아이콘이 왼쪽에 붙는 트레이 동작에 맞춰, 번호 순서대로 보이도록 추가 순서를 뒤집었어요.
- Gemini 응답은 JSON 형식으로 강제하고, 라벨을 정규화하고 중복을 없애고 순서를 맞추는 파서를 순수 함수로 분리해 pytest로 검증했어요.
- 캡처와 API 호출은 워커 스레드에서 돌려요. 처리 중에 다시 클릭하면 무시하고, 도중에 '지우기'나 '종료'를 누르면 결과를 반영하지 않아요. 고해상도 화면에서 메뉴가 흐려지지 않도록 DPI 인식도 설정했어요.
- 요청 한도 초과(429)나 서버 과부하(503) 같은 API 오류는 툴팁에 짧은 안내 문구로 바꿔 보여 줘요.