파이썬으로 설치형 프로그램과 실행파일 까지 만드는 방법 실제 개발 기록 (전체소스 제공)

“개발을 잘 몰라도, AI와 대화만으로 설치형 프로그램을 만들 수 있을까?”

이번 프로젝트는 그 질문에서 시작했습니다.
목표는 단순하지만 분명했습니다.

Windows PC 바탕화면에서 항상 보이는 달력 + 일정 관리 프로그램
그리고 나중에 Android 앱과 연동 가능한 구조

웹앱이 아닌 완전한 설치형 프로그램으로요.


📌 프로젝트 목표 정리

이번 프로젝트의 핵심 목표는 아래 4가지였습니다.

  • Windows 바탕화면에서 실행되는 독립형 캘린더 프로그램
  • 날짜별 일정 추가 / 수정 / 삭제
  • PC 재부팅 후에도 유지되는 로컬 데이터 저장
  • 향후 Android 앱과 동기화 가능한 구조 설계

특히 중요한 조건은 하나였습니다.

코드는 직접 작성하지 않고, ‘바이브 코딩(자연어 + AI)’으로만 진행


🛠 사용한 기술 스택

왜 이 조합을 선택했을까?

구분선택
언어Python
UIPyQt5
데이터SQLite
실행 파일PyInstaller

이유는 단순합니다.

  • Python은 비개발자도 진입 장벽이 낮고
  • PyQt는 Windows 네이티브 느낌을 가장 잘 살릴 수 있으며
  • SQLite는 서버 없이도 안정적인 데이터 저장이 가능하고
  • PyInstaller로 단일 파일 배포가 가능하기 때문입니다.

🖥️ 1단계: Windows 데스크톱 캘린더 구현

가장 먼저 구현한 것은 기본 달력 UI입니다.

구현된 주요 기능

  • 월별 달력 표시
  • 오늘 날짜 강조
  • 이전 / 다음 달 이동
  • 날짜 클릭 시 일정 목록 표시

처음에는 “그냥 달력만 나오면 되겠지”라고 생각했지만,
막상 써보니 업무용으로는 부족했습니다.

그래서 바로 다음 단계로 넘어갔습니다.


📝 2단계: 일정 관리 기능 추가

업무용 캘린더의 핵심은 결국 일정 관리입니다.

추가한 기능은 다음과 같습니다.

  • 일정 추가 / 수정 / 삭제
  • 시간, 설명, 색상 지정
  • 완료 여부 체크
  • 날짜별 일정 자동 저장

이 모든 데이터는 SQLite 파일 하나로 관리됩니다.

👉 프로그램 폴더에 생성되는 .db 파일 하나만 백업하면
모든 일정이 그대로 복원됩니다.


💾 3단계: 로컬 저장 구조 설계 (중요)

이번 프로젝트에서 꽤 신경 쓴 부분입니다.

왜 로컬 저장을 먼저 선택했을까?

  • 회사 PC 환경에서는 외부 서버 접근이 제한되는 경우가 많고
  • 개인 업무 일정은 클라우드보다 로컬이 더 안전한 경우도 많기 때문입니다.

그래서 구조를 이렇게 잡았습니다.

[ UI (PyQt) ]
      ↓
[ Repository ]
      ↓
[ SQLite Database ]

이 구조 덕분에
👉 나중에 Firebase / REST API / Android 앱 연동을 붙이기도 쉽습니다.


⚠️ 예상치 못한 문제: 회사 SSL / 보안 환경

가장 큰 난관은 코드가 아니라 환경이었습니다.

발생한 문제

  • 회사 네트워크에서 PyPI SSL 인증서 오류
  • PyQt5, PyInstaller 설치 실패
  • EXE 생성 단계에서 계속 중단

해결 방법

  • --trusted-host 옵션 사용
  • 미러 서버 활용
  • 오프라인 wheel 파일 설치 가이드 제공

결국 회사 보안 환경에서도 설치 가능한 배치 파일 세트를 완성했습니다.

이 부분은 “실무 개발”에서 정말 중요한 경험이었습니다.


📦 4단계: 실행 파일 생성

최종 목표였던 독립 실행 파일도 완성했습니다.

실행 파일의 장점

  • Python 설치 불필요
  • 더블 클릭으로 실행
  • 다른 PC로 복사해서 바로 사용 가능

생성 명령은 단순하지만,
앞선 SSL 문제를 해결하지 않으면 절대 여기까지 올 수 없었습니다.


📎 첨부 파일 안내

이 글과 함께 아래 파일들을 블로그에 첨부할 예정입니다.

📁 첨부 파일

  • Python 전체 소스 코드
  • 실행용 배치 파일
  • EXE 생성용 스크립트
  • 완성된 실행 파일 (DesktopCalendar)
  • 사용 설명서 (README)

👉 코드를 몰라도

  • 압축 해제
  • 실행
  • 바로 사용 가능하도록 구성했습니다.

✍️ 이번 프로젝트를 통해 느낀 점

이 프로젝트를 통해 확실히 느낀 점이 있습니다.

이제 “개발을 할 줄 아는 사람”과
“개발을 설계할 수 있는 사람”의 경계가 빠르게 무너지고 있다

코드를 직접 치지 않아도,

  • 요구사항을 명확히 말할 수 있고
  • 문제를 설명할 수 있고
  • 결과를 검증할 수 있다면

👉 실제 제품 수준의 프로그램도 만들 수 있다는 걸 확인했습니다.


🔮 다음 단계 계획

다음 단계는 자연스럽게 이어집니다.

  • Android 앱 버전 제작
  • PC ↔ 모바일 일정 동기화
  • 알림 기능 추가
  • 반복 일정 / 태그 기능

이 역시 바이브 코딩 방식으로 계속 진행할 예정입니다.


마무리

이 글은 단순한 개발 튜토리얼이 아닙니다.

  • “개발을 못 해도”
  • “회사 환경이 빡세도”
  • “시간이 많지 않아도”

👉 AI와 함께라면 어디까지 가능한지를 기록한 실제 사례입니다.

같은 방식으로 뭔가 만들어보고 싶다면,
이 프로젝트 기록이 작은 참고 자료가 되었으면 합니다.

[전체소스]

이 글이 도움이 되었나요?좋아요/추천은 다시 누르면 취소됩니다.
hong
발행: 2026.02.09 최종 검토: 2026.02.10

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다