Search
🎡

Cloud Function (Express.js)

생성일
2020/10/11 11:04
태그
Firebase Cloud Function
Firebase
속성
속성 1
속성 2
2021/01/30 08:55
Firebase Firestore, realtime database 를 이용하면서 비지니스 로직을 클라이언트 내부에 갖게 하여 개발해온 지금까지의 방식에 한계를 느끼고 Cloud function 으로 차츰 넘어가려고 합니다.
Cloud function 을 이용하지 않고 모바일에서 Firebase, Firestore 를 이용하면 아래와 같은 문제가 생깁니다.
비지니스 로직을 클라이언트가 갖고 있어서 신규 기능 단계에서 마이그레이션 복잡도가 증가
Cloud function 을 이용하게 되면 비지니스 로직을 모바일로부터 분리할 수 있어서, 신규 기능 및 유지보수에 장점이 있습니다.
마이그레이션 no no ⇒ API version up yes yes
const functions = require('firebase-functions'); const express = require('express'); const app = express(); var request = require('request'); app.get('/abc/:path', async (req, res) => { res.status(200).json(req.params.path); return; }); exports.api = functions.https.onRequest(app);
JavaScript
복사
Nodejs 에서 express 를 사용하는 방식과 동일합니다.
Cloud function 에서의 차이가 있다면 가장 마지막 줄. Firebase Cloud function 플랫폼에서 인식할 수 있는 함수로 선언하는 것입니다.
exports.api = functions.https.onRequest(app);
JavaScript
복사
주의사항
개발이 완료되었다고 바로 배포를 하게되면 테스트도 거치지 못한 코드가 운영환경으로 배포되는 일이 생깁니다.
firebase deploy
JavaScript
복사
로컬에서 충분히 테스트가 검증된 이후 Firebase 에 배포되어야 하며 local 에서 테스트 환경을 만드는 방법은
firebase serve
JavaScript
복사
위 명령어로 가능합니다.
웹 브라우저에서
http://localhost:5000/mosi-ac123/us-central1/api/abc/bbbbbb
JavaScript
복사
를 호출하면 만들었던 라우터에 의해
결과가 출력됩니다.
궁금증
트래픽이 몰리는 경우 문제가 발생하지 않을까?
무중단 배포가 지원될까?