Firebase 애플리케이션을 오픈 소스 친화적으로 만드는 방법

서버리스 기술 및 오픈 소스



Firebase와 같은 서버리스 기술은 소규모 프로젝트에 매우 저렴하기 때문에 취미 개발자에게 훌륭한 옵션입니다. 그러나 서버리스의 특성으로 인해 멋진 프로젝트를 오픈 소스 커뮤니티와 공유하는 데 어려움을 겪었을 수 있습니다. 앱의 많은 부분이 플랫폼 공급자(GCP, AWS 등)에 의해 관리됩니다.

프로젝트를 공유하는 가장 확실한 첫 번째 방법은 기여자를 Firebase 프로젝트에 초대하는 것입니다. 이는 기여자에게 큰 장애물입니다. 왜냐하면 그들은 유지 관리자에게 연락하여 유지 관리자의 신뢰를 얻을 때까지 앱을 실행할 수도 없기 때문입니다.

또 다른 접근 방식은 기여자가 자신의 Firebase 프로젝트를 설정하고 프로젝트에 연결할 수 있도록 프로젝트를 구성 가능하게 만드는 것입니다. 이것은 첫 번째 접근 방식보다 낫지만 기여자에게는 여전히 성가신 일입니다.

균형을 무너 뜨려





제 제안은 다음과 같습니다. 리포지토리가 Firebase 프로젝트에 연결되어 있음을 인정하되 로컬 에뮬레이터를 사용하여 기여 장애물을 제거하세요.

에뮬레이터는 자격 증명 없이 실행할 수 있으므로 이 접근 방식에서는 모든 사람을 Firebase 프로젝트에 초대할 필요가 없습니다.

이 접근 방식의 단점은 다른 Firebase 프로젝트에서 코드를 사용하기가 더 어려워진다는 것입니다. 기여자가 구성 단계를 건너뛰면 더 쉽게 시간을 가질 수 있기 때문에 이것이 합리적인 절충안이라고 생각합니다.



다음은 프로젝트를 보다 기여하기 쉽게 만드는 몇 가지 Firebase 관련 팁입니다.

로컬 앱을 제로 구성으로 만들기



기여자가 환경 변수를 설정하지 않고 로컬에서 앱을 실행할 수 있는지 확인하거나 최소한 구성 프로세스를 최소화하십시오.

기여자가 수동으로 제공할 필요가 없도록 Firebase API 키, 인증 도메인, 프로젝트 ID, 앱 ID 등에 유효한 기본값을 제공합니다.

이상적으로 기여자는 yarn && yarn firebase emulator:start 를 실행하여 시작할 수 있어야 합니다.

.firebaserc 커밋



Firebase 프로젝트 이름으로 저장소에 .firebaserc를 체크인하십시오.

{
  "projects": {
    "default": <your-project-name>
  }
}


이렇게 하면 리포지토리가 Firebase 프로젝트에 연결되므로 이 방법에 반대하는 조언이 많습니다. 그러나 Firebase 로컬 에뮬레이터는 .firebaserc 파일이 누락된 경우 개발자에게 Firebase 자격 증명으로 로그인하도록 요청합니다. 따라서 기여자의 구성 번거로움을 최소화하기 위한 중요한 단계입니다.

외부 서비스를 사용하는 경우



애플리케이션이 Stripe, Mailchimp 등과 같은 외부 서비스를 사용하는 것이 일반적입니다. 이러한 서비스에 액세스하기 위해 비밀이 필요한 경우 Google CloudSecret Manager를 사용하십시오. 기여자는 귀하의 비밀에 액세스할 수 없으므로 MSW과 같은 것을 사용하여 이러한 서비스를 조롱하는 것이 좋습니다.

Firebase 호스팅을 사용하는 경우



Firebase 호스팅 서비스를 사용하는 경우 프록시가 올바르게 구성되었는지 확인하세요. 다음은 호스팅 구성의 예입니다( firebase.json ).

{
  "hosting": {
    "public": "app/dist",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "rewrites": [
      {
        "source": "/api/**",
        "function": "api"
      },
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}




로컬 개발을 위해 개발 서버를 사용하는 경우 다음과 같이 다른 리버스 프록시를 설정해야 합니다.



결론



서버리스 기술로 오픈 소스 애플리케이션을 구축하려면 추가 노력이 필요하지만 확실히 가능합니다. 이 게시물에서는 Firebase만 다루었지만 로컬 에뮬레이션을 제공하는 다른 도구가 있습니다(예: LocalStack ). 사용할 플랫폼을 고려하고 있다면 로컬 에뮬레이션 지원 또는 Docker 이미지가 있는 플랫폼을 선택하십시오.

서버리스로 전환하면 인프라 세부 정보에 대한 제어 권한이 줄어듭니다. 그러나 이것이 기여자의 경험을 타협할 필요가 있다는 의미는 아닙니다. 즐거운 수준으로 설정 프로세스를 간소화할 수 있음을 알 수 있습니다.

좋은 웹페이지 즐겨찾기