✈ MM_클라우드 마이그레이션

개요

  • 해당 프로젝트는 Swift Native iOS 애플리케이션이다.
  • 프로젝트 ‘MeloMeter’의 기능 확장 및 유지보수를 위해 FireBase Cloud에서 다른 Cloud로의 마이그레이션 작업이 필요함을 느꼈다.


처음 Cloud서비스를 FireBase로 선택한 이유


1. 빠른 개발과 배포

FireBase는 백앤드 인프라를 별도로 구축하지 않고도 앱 개발을 시작할 수 있는 Backend-as-a-Service(BaaS) 플랫폼이다. iOS 어플리케이션을 서버 설정, 데이터베이스 구축, 인증 시스템 구현 등 복잡한 작업 없이 빠르게 개발/배포가 가능했다.

BaaS란?

서비스형 백엔드(BaaS) 는 개발자가 웹 또는 모바일 애플리케이션의 모든 백그라운드 측면을 아웃소싱하여 프런트엔드만 작성하고 유지 관리하면 되는 클라우드 서비스 모델이다. BaaS 벤더는 사용자 인증, 데이터베이스 관리, 원격 업데이트, 푸시 알림(모바일 앱용), 클라우드 스토리지, 호스팅 등 서버에서 이루어지는 활동을 위해 미리 작성된 소프트웨어를 제공한다.

2. 실시간 데이터 동기화

Firebase의 Realtime Database와 Cloud Firestore는 실시간 데이터 동기화를 지원하며, 짧은 지연시간을 제공하여 MeloMeter의 사용자 간의 위치 데이터 공유나 채팅 기능 등 실시간 기능 구현에 용이하다.

3. 통합 서비스 제공

Firebase는 인증(Authentication), 클라우드 메시징(Cloud Messaging), 호스팅(Hosting), 스토리지(Storage), 분석(Analytics) 등 다양한 서비스를 통합적으로 제공하여, 별도의 외부 서비스 연동 없이도 앱의 주요 기능을 구현할 수 있다.

ex) 클라우드 메시징을 사용한 유저 통합 알림 / 유저 핸드폰 인증, 로그인 서비스



FireBase의 한계


1. 벤더 종속성

Firebase는 Google의 서비스로, 특정 기능이나 API에 종속되어있다. Realtime Database와 Cloud Firestore 모두 독자규격을 갖도록하여 프로젝트 규모와 기능이 확장될 수록 다른 벤더로의 이전이 점점 더 어려워진다.

2. 데이터 쿼리 제한

Firebase는 공식적으로 RDB를 지원하지 않는다. 또한 Realtime Database는 NoSQL기반 이므로 복잡한 쿼리나, 트렌젝션을 처리하기에 적합하지 않다. 따라서 각 상황에 맞추어 DB를 선택할 수 있는 여타 클라우드 서비스와 다르게 확장에 제한적이다.

3. 데이터 마이그레이션의 어려움

데이터 구조나 API의 차이로 Firebase에서 다른 데이터베이스로의 마이그레이션은 복잡하고 시간이 많이 걸릴 수 있다. 위엑서 언급한 내용이나, 이또한 프로젝트 규모가 커질수록 단점으로 다가올 수 있다.

4. iOS 지원의 제한

Firebase는 Google이 개발한 플랫폼으로, Android에 비해 iOS에 대한 지원이 상대적으로 부족하다. 예를 들어, Firebase Test Lab은 Android에 비해 iOS 기기 지원이 제한적이며, 일부 기능은 iOS에서 완벽하게 작동하지 않는다.

가장 큰 이유

위의 단점 모두 FireBase에서도 어느정도 해결 할 수 있는 문제이다.
그럼에도 Cloud를 이전하려고 하는 가장큰 이유는 BaaS기반의 클라우드 서비스에서 다양한 캐쉬전략, 트렌젝션 관리 등 좀더 자유롭게 백앤드로 로직을 개발하고, 유연하게 관리하기 위함이 크다