Swift 없이 Ruby on Rails 앱을 App Store에 출시한 여정
Ruby on Rails to App Store, No Swift Required
핵심 요약
- 반응형 웹과 PWA로 시작하여 최종적으로 RubyNative를 활용해 Swift 코드 한 줄 없이 iOS 앱을 App Store에 성공적으로 출시했다.
- Hotwire Native는 Rails 개발자에게 친숙하지만 Xcode와 Swift에 대한 기초 지식이 필요하며 코드베이스가 복잡해질 수 있는 단점이 있다.
- RubyNative는 YAML 설정과 HTML/CSS만으로 네이티브 앱을 구축할 수 있게 해주며, 개발자가 Ruby 지식만으로도 앱 스토어 심사를 통과하도록 돕는다.
도입
개인 금융 관리 앱 'Foxance'를 개발하며 겪은 여정을 다룹니다. 처음에는 반응형 웹과 PWA로 시작했으나, 더 나은 사용자 경험과 앱 스토어 등록을 위해 다양한 네이티브 접근 방식을 시도했습니다. 특히 Swift나 Xcode에 익숙하지 않은 Rails 개발자가 어떻게 기술적 장벽을 극복하고 실제 서비스를 출시했는지에 대한 실전 경험을 공유합니다.
상세 요약
개인 금융 관리 앱 Foxance의 시작
기존 가계부 앱들의 복잡함에 지쳐 엑셀로 관리하던 저자는 결국 Ruby on Rails를 이용해 직접 금융 관리 도구를 구축하기로 결정했습니다. AI의 도움을 받아 빠르게 프로젝트를 셋업하고 테스트와 배포를 마쳤으며, 실생활에서 수입과 지출을 관리하는 데 최적화된 기능을 구현했습니다. 초기에는 모바일 사용성을 고려하여 Tailwind CSS를 활용한 반응형 웹 디자인을 적용했습니다.
모바일 전략의 진화: PWA에서 Hotwire Native까지
반응형 웹만으로는 부족함을 느껴 PWA(Progressive Web App)를 도입했습니다. 이를 통해 홈 화면에 앱을 추가하고 모바일 앱처럼 사용할 수 있었으나, 푸시 알림이나 백그라운드 페치와 같은 Safari의 제한 사항 때문에 네이티브 앱에 대한 갈증은 여전했습니다.
그다음 단계로 시도한 것은 디버깅 Hotwire Native 파트 1: Hotwire Native 작동 방식 이해에서 다루는 것과 같은 Hotwire Native 방식이었습니다. Rails 백엔드를 그대로 사용하면서 네이티브 앱을 구축할 수 있다는 장점이 있었지만, Xcode와 Swift에 대한 지식이 부족한 상태에서 네이티브한 느낌을 구현하는 데 한계가 있었습니다. 특히 코드베이스가 조건문으로 복잡해지고 CSS 관리가 어려워지는 문제에 직면했습니다.
RubyNative를 통한 Swift 없는 앱 스토어 출시
최종적으로 선택한 도구는 Joe Masilotti의 프로젝트인 RubyNative였습니다. 이 도구의 가장 큰 특징은 다음과 같습니다.
- Swift/Xcode 불필요: Swift 코드를 한 줄도 작성하지 않고, Xcode를 열지 않고도 네이티브 앱을 구축할 수 있습니다.
- 설정 기반 개발: YAML 파일 설정과 기존의 HTML/CSS 지식만으로 앱의 구조를 정의합니다.
- 빠른 출시: 저자는 RubyNative를 사용하여 로컬에서 네이티브 앱을 빠르게 구현했으며, Joe Masilotti의 직접적인 도움을 받아 이틀 만에 App Store 심사를 통과했습니다.
기술적 접근 방식 비교
저자는 자신이 시도한 네 가지 방식의 장단점을 다음과 같이 정리했습니다.
1. 반응형 웹 (Responsive Web)
- 장점: 추가 인프라나 배포 과정이 필요 없으며 단일 코드베이스로 유지 가능합니다.
- 단점: 네이티브 앱의 사용자 경험을 제공하지 못하며 브라우저의 기술적 제약이 큽니다.
2. PWA (Progressive Web App)
- 장점: 기존 웹 앱 위에 빠르게 구축할 수 있으며 홈 화면 추가가 가능합니다.
- 단점: 에코시스템 지원이 제한적이며 네이티브 앱의 느낌을 완전히 재현하기 어렵습니다.
3. Hotwire Native
- 장점: Rails 개발자가 최소한의 Swift 지식으로 네이티브 앱을 만들 수 있습니다.
- 단점: 코드베이스에 조건문이 많아지고, 여전히 Xcode와 Swift에 대한 기본 이해가 필수적입니다. Hotwire Native v1.2.x 출시 및 RailsConf 워크숍 소식과 같은 최신 업데이트를 지속적으로 팔로우해야 합니다.
4. RubyNative
- 장점: Ruby 지식만으로 네이티브 앱을 배포할 수 있으며 Swift 학습 곡선이 없습니다.
- 단점: 앱 스토어 등록 비용이 발생하며, 도구가 아직 성숙해가는 단계라 완벽한 네이티브 느낌을 주지 못할 수 있습니다.
결론 및 시사점
Foxance는 현재 App Store에 정식 등록되어 운영 중입니다. 비록 디자인이나 QA 측면에서 완벽하지는 않지만, 개발자가 자신의 문제를 해결하기 위해 익숙한 도구(Ruby)를 활용해 실제 제품을 시장에 내놓았다는 점에 의의가 있습니다. Ruby 생태계 내에는 웹 개발자가 모바일의 장벽을 넘을 수 있게 돕는 다양한 도구들이 존재하며, 이를 적극적으로 탐색하고 시도하는 것이 중요합니다.
결론
완벽한 네이티브 앱은 아니더라도 Ruby 생태계의 도구들을 활용해 개인의 문제를 해결하고 실제 제품을 출시하는 것이 가능하다는 점을 시사합니다. RubyNative와 같은 도구는 복잡한 모바일 개발 환경에 익숙하지 않은 웹 개발자에게 앱 스토어 진입 장벽을 낮춰주는 실질적인 대안이 될 수 있습니다.