Flutter Code Push, 이제 Shorebird로 해결! (사용법 및 특징 완벽 분석)
모바일 앱 개발 환경에서 빠른 업데이트와 버그 수정은 서비스의 성공과 직결되는 중요한 요소입니다. 웹 애플리케이션은 변경 사항을 즉시 배포할 수 있지만, 모바일 앱은 각 플랫폼(Google Play Store, Apple App Store)의 심사 과정을 거쳐야 하므로 업데이트 반영에 시간이 소요됩니다. 특히 긴급한 버그 수정이나 개선 사항 반영이 필요할 때, 이 심사 과정은 개발팀과 사용자 모두에게 큰 부담이 될 수 있습니다.
이러한 문제를 해결하기 위한 기술 중 하나가 'Code Push'입니다. Code Push는 앱 스토어 심사 없이 앱의 코드 일부(주로 UI 및 비즈니스 로직)를 OTA(Over The Air) 방식으로 사용자 기기에 직접 배포하여 업데이트하는 방식을 의미합니다. React Native 진영에서는 이미 널리 사용되는 기술이지만, Flutter에서는 공식적인 지원이 부족했습니다.
하지만 최근 Flutter 생태계에도 Code Push 솔루션이 등장했는데, 그중 대표적인 것이 바로 Shorebird입니다.
1. Shorebird란 무엇인가?
Shorebird는 Flutter 애플리케이션을 위해 특별히 설계된 Code Push 서비스입니다. Flutter의 창시자 중 일부와 핵심 개발자들이 Google을 나와 설립한 회사에서 만든 서비스로, Flutter 앱의 Dart 코드를 OTA 방식으로 업데이트할 수 있게 해줍니다. 즉, 앱 스토어의 재심사 없이도 사용자에게 새로운 기능이나 버그 수정 사항을 빠르게 전달할 수 있습니다.
Shorebird는 Flutter 엔진을 일부 수정하여 업데이트 기능을 구현하며, 이를 통해 개발자는 앱의 업데이트 주기를 단축하고 사용자 경험을 개선할 수 있습니다.
2. Shorebird의 주요 특징
Shorebird는 Flutter 개발자들에게 다음과 같은 주요 특징과 이점을 제공합니다.
- Flutter 앱 전용 OTA 업데이트: Flutter 앱의 Dart 코드 변경 사항을 사용자 기기에 직접 푸시할 수 있습니다.
- 빠르고 간편한 적용: 기존 Flutter 앱에 Shorebird를 적용하는 데는 일반적으로 몇 분 정도 소요되며, 복잡한 코드 변경이 필요하지 않습니다.
- Dart 코드 업데이트: UI 로직, 비즈니스 로직 등 Dart 언어로 작성된 코드의 업데이트에 중점을 둡니다. 네이티브 코드(Kotlin, Swift 등) 변경은 여전히 스토어 업데이트가 필요합니다.
- 플랫폼 지원: Android와 iOS 플랫폼을 모두 지원합니다. (iOS의 경우, 최신 Flutter Stable 버전과 Shorebird 버전이 필요할 수 있습니다.)
- 스토어 규정 준수: App Store 및 Play Store의 가이드라인을 준수하도록 설계되었습니다.
- CI/CD 통합: Codemagic과 같은 CI/CD 도구와 통합하여 릴리스 및 패치 과정을 자동화할 수 있습니다.
3. Shorebird 사용 방법
Shorebird를 사용하여 Code Push를 구현하는 기본 단계는 다음과 같습니다.
- Shorebird CLI 설치: 터미널 명령어를 통해 Shorebird Command Line Interface(CLI) 도구를 설치합니다.
curl --proto '=https' --tlsv1.2 https://raw.githubusercontent.com/shorebirdtech/install/main/install.sh -sSf | bash # (Windows의 경우 PowerShell 명령 사용) - Shorebird 로그인: 설치된 CLI를 사용하여 Shorebird 계정에 로그인합니다.
shorebird login - 프로젝트 초기화: Flutter 프로젝트 디렉토리 내에서
shorebird init명령어를 실행하여 프로젝트에 Shorebird 설정을 추가합니다. 이 과정에서shorebird.yaml파일이 생성되고, 앱이 Shorebird 콘솔에 등록됩니다.shorebird init - 최초 릴리스 생성: 앱의 초기 버전을 Shorebird에 등록합니다. 이 릴리스 버전은 스토어에 배포되는 기본 버전이 됩니다.
shorebird release android # 또는 shorebird release ios - 코드 수정: 앱의 Dart 코드를 수정하여 업데이트할 내용을 반영합니다.
- 패치 생성 및 배포: 수정된 코드를 기반으로 패치를 생성하고 배포합니다. 이 패치가 사용자 기기에 OTA 방식으로 전달됩니다.
shorebird patch android # 또는 shorebird patch ios - 업데이트 확인: 사용자는 앱을 재시작할 때 Shorebird가 백그라운드에서 패치를 확인하고 적용합니다.
shorebird preview명령어를 사용하여 특정 릴리스나 패치가 적용된 앱을 에뮬레이터나 기기에서 미리 확인할 수도 있습니다.
4. Shorebird 도입 시 고려사항
Shorebird는 매우 유용한 도구이지만, 도입을 고려할 때 몇 가지 사항을 확인해야 합니다.
- 가격 정책: Shorebird는 패치가 사용자 기기에 설치되는 횟수(Patch Installs)를 기준으로 과금합니다. 무료 플랜에서는 월 5,000 패치 설치까지 지원하며, 사용량이 이를 초과하면 유료 플랜으로 전환해야 합니다. Pro, Business, Enterprise 등 다양한 유료 플랜이 제공되므로 프로젝트 규모와 필요에 따라 선택할 수 있습니다. 사용자 규모가 큰 서비스는 비용이 증가할 수 있으므로 예산을 고려해야 합니다.
- 업데이트 범위: Shorebird는 Dart 코드 업데이트에 최적화되어 있습니다. 네이티브 종속성 변경, Flutter SDK 버전 업데이트, 앱 아이콘이나 이름 변경 등은 여전히 스토어 배포를 통해 이루어져야 합니다.
- iOS 지원 및 성능: 초기에는 iOS 지원이 제한적이었으나 현재는 정식 지원되고 있습니다. 다만, 플랫폼별 동작 방식에 차이가 있을 수 있으므로 충분한 테스트가 필요합니다.
- 서비스 성숙도: React Native의 Code Push 솔루션에 비해 상대적으로 새로운 서비스이므로, 커뮤니티 지원이나 안정성 측면에서 지속적인 관찰이 필요할 수 있습니다.
결론
Shorebird는 Flutter 개발자들에게 앱 업데이트 과정을 혁신할 수 있는 강력한 도구를 제공합니다. 스토어 심사 시간을 기다리지 않고 버그 수정이나 작은 기능 개선을 사용자에게 신속하게 전달할 수 있다는 점은 매우 큰 장점입니다. 특히 사용자 경험에 민감하거나 빠른 개선 주기가 필요한 서비스에게 Shorebird는 매력적인 선택지가 될 수 있습니다.
물론 비용, 업데이트 범위 제한 등의 고려사항이 있지만, Flutter 앱의 개발 및 운영 효율성을 크게 높일 잠재력을 가지고 있습니다. Flutter 프로젝트에 Code Push 도입을 고민하고 있다면 Shorebird를 적극적으로 검토해볼 가치가 있습니다.