이 페이지에서는 App Hosting에 관해 자주 묻는 질문 (FAQ)의 답변을 제공합니다.
App Hosting FAQ
App Hosting는 Next.js 및 Angular 이외의 프레임워크를 지원하나요?
App Hosting는 Next.js 및 Angular에 사전 구성된 빌드 및 배포 지원을 제공합니다. Google은 이러한 프레임워크를 이해하고 네이티브 구성을 해석하기 위해 노력하고 있습니다. 개발자 커뮤니티는 여러
다른 프레임워크의 App Hosting 프레임워크 어댑터를 지원합니다. 또한 빌드 및 시작 스크립트가 있는 Node.js 애플리케이션의 경우 App Hosting가 빌드를 시도하지만 성공을 확실하게 보장할 수는 없습니다. 프레임워크 통합을 참고하세요.
Firebase App Hosting는 어떤 지역을 지원하나요?
App Hosting의 리전은 시간이 지남에 따라 확장될 가능성이 높습니다. 최신 정보는 App Hosting 위치를 참고하세요.
배포에 GitHub 이외의 GitLab 또는 다른 Git 제공업체를 사용할 수 있나요?
현재는 불가능하지만 다른 제공업체에 대한 지원은 App Hosting의 장기 로드맵에 있습니다.
Firebase Console UI에서 저장소를 찾을 수 없는 이유는 무엇인가요?
Firebase Console에서 새 백엔드를 만들 때 저장소가 옵션 목록에 표시되지 않으면 먼저 목록 새로고침을 선택해 보세요. 원하는 저장소를 여전히 사용할 수 없는 경우 GitHub의 새 저장소에 대한 액세스 권한 부여 옵션을 사용하여 저장소를 추가해야 할 수 있습니다.
또한 Firebase App Hosting GitHub 애플리케이션으로 저장소를 관리할 수 있습니다. 이렇게 하려면 GitHub 프로필로 이동하여 설정을 선택한 다음 애플리케이션을 선택합니다. Firebase App Hosting 애플리케이션의 표 행에서 구성을 클릭하여 저장소를 관리합니다.
App Hosting 프로젝트와 연결된 저장소를 변경하려면 어떻게 해야 하나요?
현재 저장소는 변경할 수 없습니다. 하지만 동일한 프로젝트 내에서 기본 저장소와 연결된 새 백엔드를 만들거나 별도의 프로젝트에서 새 백엔드를 만들 수 있습니다.
헤더는 프레임워크에 종속됩니다. 프레임워크에서 평소에 하던 대로 합니다.
App Hosting를 사용한 로컬 개발을 위한 에뮬레이터가 있나요?
예. Firebase 로컬 에뮬레이터 도구 모음의 일부인 App Hosting 에뮬레이터를 사용하여 App Hosting 배포 전에 앱의 로컬 테스트를 실행할 수 있습니다. 로컬에서 앱 배포 테스트 를 참고하세요.
App Hosting에는 오류가 표시되지만 Cloud Build에는 표시되지 않는 이유는 무엇인가요?
이 경우 Cloud Run에서 오류가 발생했을 수 있습니다.
출시 상태를 확인합니다.
연결된 GitHub 계정을 변경하거나 삭제하려면 어떻게 해야 하나요?
연결된 GitHub 계정을 삭제하려면 Developer Connect를 열고 프로젝트가 선택되어 있는지 확인한 다음 firebase-app-hosting-github-oath
연결과 apphosting-github-conn-
로 시작하는 연결을 삭제합니다. 이제 Firebase 콘솔에서 App Hosting를 열면 새 GitHub 연결을 설정할 수 있습니다.
App Hosting 사이트에 쿠키를 설정하려면 어떻게 해야 하나요?
App Hosting 미리보기 출시 시에는 사용할 수 없었지만 이제 Set-Cookie
HTTP 응답 헤더가 예상대로 작동합니다.
일반적인 App Hosting 제한사항 및 문제 해결
- Cache-Control 헤더가 CDN 캐시를 60분으로 제한하도록 수정되었습니다. 이 제한은 제품의 GA 출시 직후 삭제됩니다.
- App Hosting의 CDN은 캐시 키에 특정 요청 헤더 집합만 포함할 수 있습니다. 이 목록에는 NextJS의
RSC
, Next-Router-State-Tree
, Next-Router-Prefetch
, Next-Router-Segment-Prefetch
, Next-Url
헤더와 Cloud CDN의 표준 Accept
, Accept-Encoding
, Access-Control-Request-Headers
, Access-Control-Request-Method
, Origin
, Sec-Fetch-Dest
, Sec-Fetch-Mode
, Sec-Fetch-Site
, X-Goog-Allowed-Resources
, X-Origin
가 포함됩니다. 응답에 여기에 나열되지 않은 값이 포함된 Vary
헤더가 있으면 Google CDN에서 이를 캐시하지 않습니다.
- 캐시되지 않은 정적 파일은 Cloud Run에서 제공됩니다. 이후 버전에서는 성능 향상을 위해 App Hosting 출처에서 저장되고 제공됩니다.
- 백엔드 생성 시 Firebase 콘솔에 '빌드가 없으며 유효하지 않음' 오류가 간헐적으로 표시될 수 있습니다.
- 동일한 프로젝트의 모든 백엔드는 GitHub 조직/계정을 공유합니다.
이러한 리포지터리는 해당 조직/계정의 여러 저장소에 연결할 수 있습니다.
서로 다른 GitHub 계정에 연결된 백엔드를 만들려면 백엔드를 별도의 프로젝트에 배치합니다.
Angular 앱 제한사항 및 문제 해결
Angular에 대한 App Hosting 지원은 현재 적극적으로 개발 및 확장 중이지만 다음과 같은 제한사항이 있습니다.
- I18n: 핵심 I18n 기능은 작동하지만 SSR 페이지로 직접 이동하면 오류가 발생할 수 있습니다.
- 현지화: 다양한 언어의 버전을 빌드하는 기능은 지원되지 않습니다.
- 빌더: 현재 애플리케이션 빌더만 지원됩니다.
- 환경 및 Monorepo 도구: 애플리케이션 타겟이 2개 이상인 Angular 프로젝트는 실패합니다. 더 완벽한 모노레포 지원을 위해 Nx를 사용하세요.
Next.js 제한사항 및 문제 해결
- 기본적으로 기본 제공 NextJS 이미지 최적화는
images.unoptimized
를 명시적으로 false로 설정하거나 맞춤 이미지 로더를 사용하지 않는 한 앱 호스팅에서 사용 중지됩니다. Next.js에서 이미지 로드 최적화를 참고하세요.
- 백분율 인코딩 문자가 포함된 URL 경로는 Cloud Run에 의해 디코딩됩니다. 이로 인해 Next.js 병렬 라우팅과 같이 인코딩된 URL 경로만 예상하는 기능에 문제가 발생할 수 있습니다.
- 현재 App Hosting는 미들웨어를 사용하여 NextJS 앱의 캐싱을 제한합니다.
시간이 지남에 따라 캐시 적중률이 개선됩니다.
- 퍼센트 인코딩된 문자가 포함된 URL 경로는 Cloud Run에서 디코딩됩니다.
이로 인해 Next.js 병렬 라우팅과 같이 인코딩된 URL 경로만 예상하는 기능에 문제가 발생할 수 있습니다.