피드로 돌아가기
I Built a Desktop Pet That Reminds My Mom About Birthdays (and It Got Out of Hand)
Dev.toDev.to
Frontend

PyQt5와 JSON 기반 Local-first 데스크톱 리마인더 설계

I Built a Desktop Pet That Reminds My Mom About Birthdays (and It Got Out of Hand)

kaiCATs2026년 5월 7일1beginner

Context

사용자 편의성을 위해 항상 최상단에 위치하는 데스크톱 펫 형태의 리마인더 시스템 요구. 클라우드 의존성 없는 완전한 Local-first 데이터 관리와 자연어 기반의 일정 제어 기능 구현 필요.

Technical Solution

  • Python 및 PyQt5 기반의 Always-on-Top 윈도우 설계로 사용자 접근성 확보
  • 별도 DB 서버 없이 %APPDATA% 경로 내 JSON 파일을 활용한 경량 Local Storage 아키텍처 채택
  • ML 모델 없이 Rule-based 파싱을 통한 자연어 명령어 처리 및 Fuzzy Search 기반의 데이터 검색 로직 구현
  • QCalendarWidget의 테마 제약 문제를 해결하기 위해 내부 테이블 수정을 배제한 최소한의 스타일링 전략 적용
  • PyInstaller를 활용한 단일 Executable 빌드로 배포 및 설치 프로세스 간소화

1. 외부 라이브러리의 내부 위젯 테마 수정 시 발생하는 시각적 Artifact 확인

2. ML 미도입 자연어 처리 시 언어별 시간 표현 및 슬랭으로 인한 Edge Case 정의

3. 데이터 규모가 작고 개인화된 서비스의 경우 JSON 기반 Local Storage를 통한 오버헤드 제거 검토

원문 읽기