Q : 그러나 그것은 또한 비즈니스 로직을 프론트 엔드, Angular2 웹앱에 두어야한다는 것을 의미합니다 .
예. 서버가 지원하지 않으면 비즈니스를 어딘가에 구현해야합니다.
Google을 인수 한 후 Firebase는 자체 백엔드를 배치 할 여유가없는 (또는 필요하지 않은) 모바일 앱 개발자를위한 플랫폼으로 발전했습니다. 스토리지, 로그인, 분석 및 메시지 서비스와 같은 대부분의 서비스는 상당히 번거롭지 만 일부 비즈니스 관련 규칙을 수행하는 데 사용할 수있는 클라우드 기능 (일부 람다) 도 제공합니다 . 그러나 엔터프라이즈 응용 프로그램이나 복잡한 도메인 및 비즈니스 논리를 가진 대규모 응용 프로그램의 경우 이러한 종류의 지원이 부족합니다.
따라서 추측 할 수 있듯이 Firebase는 백엔드가 비즈니스 전용 작업을 호스트하고 운영하는 데 전념하는 것을 면제하지 않습니다.
Q : 미래에 언젠가 모바일 앱 프런트 엔드를 만들고 싶다면 비즈니스 로직 코드를 복제해야합니까?
반드시 그런 것은 아닙니다. 웹 응용 프로그램이 Angular에 구축 된 경우 NativeScript 와 같은 크로스 플랫폼을 사용하면 웹 구성 요소, 라이브러리, 유틸리티, 모델 등을 재사용 할 수 있습니다. 주제에 대해 자세히 다루지 않았으므로 완전한 호환성을 보장 할 수 없습니다. 키는 TypeScript 에 있으며 Angular 및 NativeScript 모두 TS를 코딩해야합니다.
문제 는 배포 및 버전 관리를 위해 Javascript를 호스팅 할 위치 입니다. 단어 CDN .
Q : 대안은 비즈니스 로직을 포함하고 데이터 저장소에 Firebase를 사용하는 백엔드를 만드는 것이지만, 조금 이상하게 보입니다 (ORM 또는 직접 백엔드에서 무언가를 사용하여 동일한 결과를 얻을 수는 없습니다) 더 많은 작업없이 결과?)
몇 가지 고려 사항
한편으로 데이터베이스 호스팅, 롤아웃, 관리 및 유지 관리는 별거 아닙니다. 보안, 확장 성, 가용성 등을 다루는 것은 말할 것도 없습니다. 따라서 DB 공급자가 이러한 일을 돌보는 것이 흥미 롭습니다. 요즘 우리 데이터베이스를 클라우드에 배치하는 것은 미친 생각이 아닙니다. 물론, 우리가 은행을 위해 미들웨어와 백엔드를 구현하고 있다면 이것을 제안하지 않을 것입니다. 그러나 고객의 세션, 사용자 프로필, 환경 설정 및 일반적으로 고객 측에 존재하는 이러한 종류의 데이터 또는 우리가 신경 쓰지 않는 데이터에는 적합합니다.
반면에 백엔드를 갖는 것은 간단한 이유로 분리 할 수 있습니다.
고객을 관리 및 제어하지 않는 모든 종류의 서비스에 고객을 연결하는 대신, 고객이 서비스 종료 또는 중단과 같은 문제에 대해 걱정할 필요가 없도록 서버 측 애플리케이션을 배포합니다. 변화. 또한 백엔드는 외관처럼 작동하기 때문에 단순성을 얻습니다.
Q : 예를 들어 Firebase를 사용하려는 사람들은 일반적으로 이러한 종류의 앱을 어떻게 구성합니까?
프로젝트마다 다릅니다. 예를 들어 Firebase + 백엔드를 사용합니다.
중포 기지 DB 간 데이터를 공유하는 장치 - 계정 - 세션 . 또한 변경 로그로서 백엔드를 일시적으로 사용할 수없는 경우 클라이언트가 쓰기 작업을 로그에 전송하고 나중에 동기화됩니다.
Firebase Cloud Messages 는 업스트림 / 다운 스트림 푸시 알림 및 주제를 제공합니다. 우리는 펍 / 서브 메시지 교환을 위해이 서비스를 사용합니다.
Firebase 분석 주로 메트릭스에 사용됩니다.
비즈니스와 관련된 모든 것을위한 백엔드