cloudfunctions 5

[FireBase]CloudFunctions 최적화 - 파일 쪼개기

클라우드 펑션스의 최적화 방안중 콜드 스타트를 최대로 줄이기 위한 방법중 하나로 파일 쪼개기가 있습니다.기본적으로 파일하나에 다수의 함수가 있다면 import 와 글로벌 변수를 공유 하게 됩니다.이러한 상황을 최대한 줄이기 위해서 파일 쪼개기를 사용 합니다.하나의 ts 파일에 하나의 함수만 작성 합니다. import { CallableRequest, onCall } from "firebase-functions/v2/https";export const function_test = onCall({}, async (req: CallableRequest) => { return { code: "success" };}); test.ts 파일이고 하나의 함수만 담습니다.이렇게 구성하면 function_test 에 ..

Firebase 2025.05.29

[Firebase]CloudFunctions Error 리포팅

CloudFunctions 에서 에러가 발생한다 기본적 직접 확인하기 전까지 알 수 없습니다.그래서 내 함수가 잘 돌아가고 있는지 아닌지 알수 없기 때문에 주기적으로 확인 해야 하는데 이러한 문제를 줄이기 위해서 구글 클라우드의 에러 이포팅을 사용하여 이메일혹은 다양한 추가 채널로 에러를 전달 받습니다.여기서 이메일로 에러 리포팅 받는 방법을 알아 보겠습니다. 일단 Firebase를 사용하고 프로젝트를 만들었다면 Google Cloud 에 대응하는 프로젝트가 존재 합니다.Google Cloud 들어가서 해당 프로젝트를 선택합니다. 일단 IAM 에 들어가서 전달 받을 이메일을 추가 해야 합니다. 기존에 시스템이 만들어둔 계정이 있고 자신의계정이 있는데받는사람이 자신의 계정이라면 별도로 추가할 필요는 없지만..

Firebase 2025.05.15

[Firebase] CloudFunctions Promise.all() 로 최적화

Firebase CloudFunctions 는 서버리스 환경으로 사용한 만큼 비용을 내는 구조이기 때문에 최적화가 상당히 중요하며 비용을 아낄 수 있는 방법 입니다.가장 가볍고 빠르게 얻을수 있는 방법은 비동기 요청이 순차적으로 처리되는지 확인 하는 것 입니다.예를들어 firestore 에서 데이터를 3번 가져오는데 매번 0.5초씩 걸린다고 치면await(0.5초) -> await(0.5초) -> await(0.5초) 총 1.5초가 소요 됩니다.하지만 3개 모두 동시에 수행하게 되면 0.5초로 끝나버리게 됩니다.이때 사용하는 것이 Promise.all 입니다.Promise.all([promise1, promise2, promise3])같이 묶인 작업중에서 가장 늦게 끝나는 것 까지 기다렸다 다음 코드로 ..

Firebase 2025.05.12

[Firebase]CloudFunctions 콜드 스타드 와 메가 함수

서버리스 환경에서 콜드 스타트는 피할 수 없는 문제 입니다.서버를 관리하지 않아도 된다는 편리함이 있지만 콜드스타트라는 문제를 가지고 있고 1~3초 가량 콜드스타트가 문제가 없다면 상관 없겠지만 대부분의 상황에서는 문제가 있습니다. 콜드스타트서버리스 함수는 사용량이 없으면 인스턴스가 모두 종료되고 다시 요청이 들어오면 새로운 인스턴스를 생성하여 함수 실행 준비를 합니다.이때 소요되는 시간이 보통 1~3초 가량으로 예상하는데 이것이 콜드 스타트 입니다.한번 인스턴스가 생성된 이후 바로 종료시키지 않고 살려두는데 이때 다시 요청이 오면 warm 상태이기 때문에 바로 실행 되서 1~3초의 시간을 절약 할 수 있습니다. 콜드스타트가 길어지는 원인기본 인스턴스를 띄우는 것 말고도 콜드스타트가 길어지는 원인이 있습..

Firebase 2025.05.11

[Firebase]Cloud Functions 의 캐싱 전략

Cloud Functions의 캐싱전략은 크게 2가지로 나뉘게 됩니다.1. 메모리 캐싱2. 외부 자원 사용 모두 다른 서버리스 환경에서도 동일하게 적용할 수 있는 방법 입니다. 1. 메모리 캐싱1번은 static 변수에 저장해서 인스턴스가 살아 있는 동안 static 변수를 유지하는 전략 입니다.메가 함수 전략과도 잘 맞는 방법이지요.사용자가 많고 함수가 꾸준히 호출되는 서비스에도 적합한 방법입니다.사용법은 간단합니다.Cloud Function 함수 외부에 변수를 넣게 되면 static 상태가 되고 이는 warm 상태일 동안 변수가 유지됩니다.let cachedData: any = null;export const getConfig = onRequest(async (req, res) => { if (ca..

Firebase 2025.05.10