<aside> 💡 해당 개발일지는 Function의 모든 것이 아닌, 이번 프로젝트에 적용하기 위한 Scheduled Execution 과 Firestore 접근에 대한 내용만 다룹니다.
</aside>
기획을 하고 있을 때까지는 행복했다… 우리 서비스에 서버가 절실하게 필요하다는 사실을 모른채…
얼추 화면 구성을 완료하고, 데이터베이스와 연결지어 내용을 구상하던 중 우리 팀은 서버가 알아서 해줘야 하는 기능이 있다는 사실을 알았다.
바로 예약 상태 값에 관한 일이었는데, 예약 요청이 수락된 이후, 예약 날짜가 되면 상태 값을 “허락” 에서 “대여중” 으로 바꿔주어야 한다는 것이다.
지금까지는 서버가 없기 때문에 최대한 사용자가 요청하여 데이터를 수정하곤 했는데, 위의 작업은 어느 누구도 요청을 하지 않고 있다.
그래서 우리는 다시 한번 구글의 힘을 빌려 Firebase Cloud Function 이라는 것을 사용해보기로 했다.
<aside> 🔥 Firebase Cloud Function 이란, Firebase용 Cloud Functions는 Firebase 기능과 HTTPS 요청에 의해 트리거되는 이벤트에 응답하여 백엔드 코드를 자동으로 실행할 수 있는 서버리스 프레임워크다.
</aside>
우리가 설계한 예약들은 모두 자정 단위로 끊기기 때문에 자정마다 코드를 실행한다면 완벽히 구현히 된다고 생각했다.
Function에는 어떤 종류가 있는지 알아보기로 했다.
보다시피 Function을 호출하는 방법은 매우 많았다. Firebase의 이벤트를 감지하여 자동으로 실행시키는 방법도 존재하고, 직접 원하는 타이밍에 호출할 수 도 있었다.
여기서 내가 사용한 건 일정에 따른 함수 실행 방법이었다.
기본적으로 Cloud Function은 Blaze 요금제를 사용해야했다. 또 Node.js를 사용하고 JavaScript로 작성해야 했기 때문에 설정부터 해주었다.
요금제를 변경하고, node.js를 설치하고 Cloud Function을 설치했다. 이후 Firebase 설정을 해준다.
npm install -g firebase-tools // function 설치
firebase login // Firebase 로그인
Firebase Console에서 Firebase Function을 생성해주고, 이미 등록되어있던 우리 앱을 연결시켜 주었다.
firebase init