2026. 7. 5. 20:59ㆍAI Product Building/SwiftBeam
윈도우 유저를 위한
마지막 디테일
Inno Setup으로 전문적인 설치 프로그램 만들기
지난 편에서 우리는 구글과 애플의 까다로운 스토어 심사를 무사히 통과했습니다. 이제 모바일 유저들은 스토어에서 편리하게 SwiftBeam을 다운로드할 수 있게 되었죠. 하지만 우리에게는 또 하나의 큰 숙제가 남아있습니다. 바로 윈도우(Windows) 데스크탑 유저들입니다. 윈도우용 Flutter 앱을 빌드하면 수많은 DLL 파일과 실행 파일이 담긴 폴더가 생성됩니다. 개발자가 아닌 일반 사용자에게 이 폴더를 통째로 전달하고 "알아서 실행하세요"라고 하는 것은 친절하지 못한 행동이죠. 오늘은 윈도우 유저들에게 '신뢰'와 '편리함'을 주는 전문적인 설치 프로그램(Installer) 제작기를 공유합니다.
1. "다운로드하고 바로 쓰고 싶어요"
사용자가 웹사이트에서 SwiftBeam_Windows.zip 파일을 내려받아 압축을 풀고, 그 안에서 swiftbeam.exe를 찾아 실행하는 과정은 생각보다 번거롭습니다. 무엇보다 윈도우 보안 시스템인 'SmartScreen'이 출처를 알 수 없는 파일이라며 경고창을 띄우기 일쑤죠.
전문적인 설치 프로그램은 이 과정을 '다음 > 다음 > 완료'라는 익숙한 흐름으로 바꿔줍니다. 바탕화면에 아이콘을 만들고, 시작 메뉴에 앱을 등록하며, 나중에 필요 없어지면 '프로그램 추가/제거'에서 깔끔하게 지울 수 있는 기능을 제공합니다. 이 과정 자체가 사용자에게는 "이 앱은 믿고 설치해도 되는 정식 소프트웨어구나"라는 안도감을 줍니다.
2. 1인 개발자의 든든한 도구: Inno Setup
윈도우 설치 프로그램을 만드는 도구는 다양합니다. InstallShield처럼 유료이면서 강력한 도구도 있고, NSIS처럼 자유도가 높은 도구도 있죠. 하지만 SwiftBeam은 오픈 소스이면서도 강력한 기능을 갖춘 Inno Setup을 선택했습니다.
- 📜 스크립트 기반 제어: 모든 설치 과정이 .iss라는 텍스트 파일 하나로 정의됩니다. 버전 관리(Git)가 매우 용이하죠.
- 🎨 풍부한 커스터마이징: 라이선스 동의 화면, 설치 경로 선택, 시작 메뉴 그룹 생성 등 전문적인 설치 마법사의 모든 기능을 손쉽게 구현할 수 있습니다.
- ⚡ 자동화 용이성: 명령줄(Command Line) 빌드를 지원하여, Flutter 빌드부터 설치 파일 생성까지 하나의 스크립트로 자동화할 수 있습니다.
3. "무엇을 담을 것인가?" - 의존성 관리의 기술
윈도우용 Flutter 앱을 배포할 때 가장 중요한 것은 '의존성(Dependencies)'을 빠짐없이 챙기는 것입니다. swiftbeam.exe만 덜렁 포함시킨다면 "라이브러리가 없어 실행할 수 없습니다"라는 에러 메시지만 보게 될 것입니다.
[Files]
Source: "build\windows\runner\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
SwiftBeam의 Inno Setup 스크립트는 build\windows\runner\Release 폴더 내의 모든 파일을 통째로 패키징합니다. 여기에는 Flutter 엔진인 flutter_windows.dll과 우리가 사용한 각종 플러크인들의 DLL 파일들이 포함되죠. 또한, 윈도우 시스템에 C++ 재배포 가능 패키지(Visual C++ Redistributable)가 설치되어 있는지 확인하고 필요시 설치를 유도하는 로직도 추가하여 실행 성공률을 극대하게 높였습니다.
4. PowerShell로 구현한 '원클릭 빌드'
버전 업데이트가 잦은 개발 단계에서 매번 Inno Setup 컴파일러를 켜고 수동으로 빌드하는 것은 고역입니다. SwiftBeam 프로젝트 폴더에는 build_windows_installer.ps1이라는 비밀 무기가 있습니다.
이 PowerShell 스크립트는 다음과 같은 일을 순식간에 처리합니다.
- flutter build windows --release 명령어로 최신 윈도우 버전을 빌드합니다.
- Inno Setup 컴파일러(iscc.exe)를 호출하여 .iss 스크립트를 기반으로 SwiftBeam_Setup.exe를 생성합니다.
- 생성된 결과물을 배포용 폴더로 옮기고 버전 이름을 붙입니다.
이러한 자동화 덕분에 1인 개발자인 저도 지치지 않고 윈도우 버전을 꾸준히 업데이트할 수 있었습니다.
5. 윈도우 유저에게 다가가는 가장 겸손한 방법
설치 프로그램은 사용자가 우리 서비스를 경험하기 위해 통과해야 하는 첫 번째 관문입니다. 이 관문이 삐걱거리거나 불친절하다면 아무리 멋진 전송 기능을 만들어도 소용없겠죠. Inno Setup을 통해 완성한 깔끔한 설치 과정은 SwiftBeam이 지향하는 '친절한 기술'의 마지막 퍼즐 조각이었습니다.
이제 모든 플랫폼에 SwiftBeam이 뿌려졌습니다. 하지만 출시가 끝이 아닙니다. 실제 유저들이 사용하기 시작하면 생각지도 못한 버그와 요구사항들이 쏟아지기 마련이죠. 다음 편에서는 출시 직후 마주한 생생한 현장의 목소리와 '사용자 피드백을 반영한 Hotfix 전략'에 대해 이야기해보겠습니다.
다음 편 예고: [SwiftBeam #24] "사용자의 목소리를 듣다" - 출시 후 발견된 버그 수정과 업데이트 전략
윈도우 데스크탑 환경에서도 완벽한 경험을 제공하는 Team M2Y의
기술력!
설치부터 사용까지 매끄럽게 설계된 저희의 다양한 앱들을 만나보세요.
'AI Product Building > SwiftBeam' 카테고리의 다른 글
| [SwiftBeam #24] "사용자의 목소리를 듣다" - 출시 후 발견된 버그 수정과 업데이트 전략 (0) | 2026.07.06 |
|---|---|
| [SwiftBeam #22] "스토어 출시라는 거대한 산" - 구글 플레이 & 앱스토어 심사 준비 체크리스트 (0) | 2026.07.04 |
| [SwiftBeam #21] "눈이 편안한 전송" - 다크 모드와 브랜드 컬러를 담은 테마 시스템 설계 (0) | 2026.07.03 |
| [SwiftBeam #20] "지속 가능한 개발을 위해" - 사용자 경험을 해치지 않는 AdMob 광고 적용기 (1) | 2026.07.02 |
| [SwiftBeam #19] "전 세계 어디서든 편리하게" - l10n과 arb 파일로 글로벌 서비스 준비 (0) | 2026.07.01 |