파이썬으로 설치형 프로그램과 실행파일 까지 만드는 방법 실제 개발 기록 (전체소스 제공)
“개발을 잘 몰라도, AI와 대화만으로 설치형 프로그램을 만들 수 있을까?”
이번 프로젝트는 그 질문에서 시작했습니다.
목표는 단순하지만 분명했습니다.
Windows PC 바탕화면에서 항상 보이는 달력 + 일정 관리 프로그램
그리고 나중에 Android 앱과 연동 가능한 구조
웹앱이 아닌 완전한 설치형 프로그램으로요.
📌 프로젝트 목표 정리
이번 프로젝트의 핵심 목표는 아래 4가지였습니다.
- Windows 바탕화면에서 실행되는 독립형 캘린더 프로그램
- 날짜별 일정 추가 / 수정 / 삭제
- PC 재부팅 후에도 유지되는 로컬 데이터 저장
- 향후 Android 앱과 동기화 가능한 구조 설계
특히 중요한 조건은 하나였습니다.
❗ 코드는 직접 작성하지 않고, ‘바이브 코딩(자연어 + AI)’으로만 진행
🛠 사용한 기술 스택
왜 이 조합을 선택했을까?
| 구분 | 선택 |
|---|---|
| 언어 | Python |
| UI | PyQt5 |
| 데이터 | 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와 함께라면 어디까지 가능한지를 기록한 실제 사례입니다.
같은 방식으로 뭔가 만들어보고 싶다면,
이 프로젝트 기록이 작은 참고 자료가 되었으면 합니다.
[전체소스]
