App Prototyping agent를 사용하여 풀 스택 웹 앱 개발, 게시, 모니터링

이 가이드에서는 App Prototyping agent를 사용하여 Firebase의 Gemini를 통해 풀 스택 앱을 빠르게 개발하고 게시하는 방법을 보여줍니다. 자연어 프롬프트를 사용하여 사진이나 브라우저 내 카메라에서 식품을 식별하고 식별된 식재료가 포함된 레시피를 제공하는 Next.js 앱을 생성합니다. 그런 다음 앱을 미세 조정 및 개선하여 Firebase App Hosting에 게시합니다.

이 가이드를 진행하면서 사용할 다른 기술은 다음과 같습니다.

1단계: 앱 생성

  1. Google 계정에 로그인하고 Firebase Studio를 엽니다.

  2. AI로 앱 프로토타입 제작 필드에 빌드하려는 앱에 대한 설명을 입력합니다. 이미지 기반 레시피 앱을 만드는 이 솔루션의 경우 다음과 같은 프롬프트를 사용하여 카메라, 생성형 AI를 사용하는 앱의 프로토타입을 제작할 수 있습니다.

    Build a web app that can identify food products from an uploaded picture or
    in-browser camera. The app should provide a recipe that contains the
    identified ingredients.
    
  3. AI로 프로토타입 제작을 클릭합니다.

    Gemini는 프롬프트를 기반으로 앱 청사진을 생성하여 제안된 앱 이름, 필수 기능, 스타일 가이드라인을 반환합니다.

  4. 청사진을 검토하고 몇 가지 사항을 변경합니다. 예를 들어 다음 옵션 중 하나를 사용하여 제안된 앱 이름이나 색 구성표를 변경할 수 있습니다.

    • 맞춤설정을 클릭하고 청사진을 직접 수정합니다. 수정한 후 저장을 클릭합니다.

    • 채팅 창의 설명... 필드에 명확한 질문과 맥락을 추가합니다. 이미지를 추가로 업로드할 수도 있습니다.

  5. 앱 프로토타입 제작을 클릭합니다. Gemini에서 앱을 코딩합니다. 앱 설명에 생성형 AI가 필요한 기능이 설명되어 있으므로 Gemini에서 Gemini API 키를 입력하라는 프롬프트를 작성합니다.

  6. 자체 Gemini API 키를 추가하거나 자동 생성을 클릭하여 Gemini API 키를 생성합니다.

2단계: 테스트, 미세 조정, 디버그, 반복

초기 앱이 생성된 후에는 테스트, 미세 조정, 디버그, 반복할 수 있습니다.

  1. 앱 검토 및 상호작용: 코드 생성이 완료되면 앱 미리보기가 표시됩니다. 미리보기와 직접 상호작용하여 테스트할 수 있습니다.

  2. 자연어를 사용하여 앱 반복: 채팅 인터페이스를 계속 사용하여 Gemini에게 기능을 추가하고 앱을 미세 조정해 달라고 요청합니다.

  3. 앱 테스트: 앱 미리보기 창에서 다양한 음식을 보여주는 이미지를 업로드하여 식재료를 식별하고 레시피를 제공하는 앱 기능을 테스트합니다. 원하는 경우 Code 뷰를 사용하여 Firebase Studio 공개 미리보기를 통해 일시적으로 앱을 공개적으로 공유할 수 있습니다.

  4. 코드에서 직접 디버그 및 반복: 코드 전환 아이콘 코드로 전환을 클릭하여 Code 뷰를 엽니다. 여기에서 모든 앱 파일을 확인하고 코드를 직접 수정할 수 있습니다. Prototyper mode at any time.로 다시 전환할 수 있습니다.

    Code 뷰에서는 다음과 같은 유용한 기능도 사용할 수 있습니다.

    • Firebase Studio기본 제공 디버깅 및 보고 기능을 사용하여 앱을 검사, 디버그, 감사합니다.

    • Firebase의 Gemini를 사용하는 AI 지원: 코드 내에서 인라인 또는 대화형 채팅 사용(둘 다 기본적으로 사용 가능) 대화형 채팅을 사용하면 문제를 진단하고 해결 방법을 제공하며 앱을 더 빠르게 수정하는 데 도움이 되는 도구를 실행할 수 있습니다. 채팅에 액세스하려면 작업공간 하단에 있는 sparkGemini를 클릭합니다.

(선택사항) 3단계: App Hosting으로 앱 게시

앱을 테스트하고 만족하면 Firebase App Hosting을 사용하여 웹에 게시할 수 있습니다.

App Hosting을 설정하면 Firebase Studio에서 자동으로 Firebase 프로젝트를 만들고 Cloud Billing 계정 연결 단계를 안내합니다.

앱을 Firebase App Hosting에 게시하려면 다음 안내를 따르세요.

  1. 게시를 클릭하여 새 Firebase 프로젝트를 만들고 App Hosting 설정을 시작합니다. 앱 게시 창이 표시됩니다.

  2. Firebase 프로젝트 단계에서 자동으로 생성된 Firebase 프로젝트의 이름을 확인한 후 다음을 클릭합니다.

  3. Cloud Billing 계정 연결 단계에서 다음 중 하나를 선택합니다.

    • Firebase 프로젝트에 연결할 Cloud Billing 계정을 선택합니다.

    • Cloud Billing 계정이 없거나 새 계정을 만들려면 Cloud Billing 계정 만들기를 클릭합니다. 그러면 Google Cloud 콘솔이 열리며 여기에서 새로운 셀프서비스 Cloud Billing 계정을 만들 수 있습니다. 계정을 만든 후 Firebase Studio로 돌아가 Cloud Billing 연결 목록에서 계정을 선택합니다.

  4. 다음을 클릭합니다. Firebase Studio는 결제 계정을 작업공간과 연결된 프로젝트에 연결합니다. 이 프로젝트는 Gemini API 키를 자동 생성했을 때 또는 게시를 클릭했을 때 생성됩니다. 그런 다음 App HostingGoogle Cloud에서 앱의 완전 관리형 환경을 설정합니다.

  5. 첫 번째 출시 만들기를 클릭합니다. Firebase Studio에서 App Hosting 출시를 시작합니다. 이 작업을 완료하는 데 최대 10분이 걸릴 수 있습니다. 백그라운드에서 어떤 일이 일어나고 있는지 자세히 알아보려면 App Hosting 빌드 프로세스를 참조하세요.

  6. 출시가 완료되면 App Hosting 모니터링 가능성을 기반으로 하는 URL 및 앱 통계와 함께 앱 개요가 표시됩니다. Firebase에서 생성된 도메인 대신 커스텀 도메인(예: example.com 또는 app.example.com)을 사용하려면 Firebase Console에서 커스텀 도메인을 추가하면 됩니다.

App Hosting에 대한 자세한 내용은 App Hosting 및 작동 방식 이해를 참조하세요.

(선택사항) 4단계: 앱 모니터링

App Hosting 앱 개요 패널에서는 앱에 대한 주요 측정항목과 정보를 제공하므로 App Hosting의 기본 제공 모니터링 도구를 사용하여 웹 앱 성능을 모니터링할 수 있습니다. 사이트가 출시되면 게시를 클릭하여 개요에 액세스할 수 있습니다. 이 패널에서 다음을 수행할 수 있습니다.

  • 출시 만들기를 클릭하여 새 버전의 앱을 출시합니다.
  • 앱 방문에서 앱 링크를 공유하거나 앱을 직접 엽니다.
  • 요청 총개수와 최신 출시 상태를 포함하여 지난 7일 간의 앱 성능 요약을 검토합니다. 세부정보 보기를 클릭하여 Firebase Console에서 더 많은 정보에 액세스합니다.
  • 지난 24시간 동안 앱에서 수신한 요청 수를 HTTP 상태 코드별로 분류한 그래프를 봅니다.

앱 개요 패널을 닫은 경우 언제든지 게시를 클릭하여 다시 열 수 있습니다.

출시 및 버전 관리에서 App Hosting 출시 관리 및 모니터링을 자세히 알아보세요.

(선택사항) 5단계: 배포 롤백

앱의 연속 버전을 App Hosting에 배포한 경우 이전 버전 중 하나로 롤백할 수 있습니다. 삭제할 수도 있습니다.

  • 게시된 사이트를 롤백하려면 다음 안내를 따르세요.

    1. Firebase Console에서 App Hosting을 엽니다.

    2. 앱의 백엔드를 찾아 보기를 클릭한 후 출시를 클릭합니다.

    3. 롤백할 배포 옆에 있는 더보기 를 클릭한 후 이 빌드로 롤백을 선택하고 확인합니다.

    출시 및 버전 관리에서 자세히 알아보세요.

  • 웹에서 App Hosting 도메인을 삭제하려면 다음 안내를 따르세요.

    1. Firebase Console에서 App Hosting을 열고 Firebase Studio 앱 섹션에서 보기를 클릭합니다.

    2. 백엔드 정보 섹션에서 관리를 클릭합니다. 도메인 페이지가 로드됩니다.

    3. 도메인 옆에 있는 더보기 를 클릭한 후 도메인 사용 중지를 선택하고 확인합니다.

    이렇게 하면 웹에서 도메인이 삭제됩니다. App Hosting 백엔드를 완전히 삭제하려면 백엔드 삭제의 안내를 따르세요.

(선택사항) 6단계: 배포된 기능에 Genkit 모니터링 사용

AI 플로우 코드에 원격 분석을 사용 설정하여 Genkit 기능 단계, 입력, 출력을 모니터링할 수 있습니다. Genkit의 원격 분석 기능을 사용하면 AI 흐름의 성능과 사용량을 모니터링할 수 있습니다. 이 데이터를 통해 개선할 영역을 파악하고 문제를 해결하고 성능과 경제성이 개선될 수 있도록 프롬프트와 흐름을 최적화하고 시간 경과에 따른 흐름 사용량을 추적할 수 있습니다.

Genkit에서 모니터링을 설정하려면 원격 분석을 Genkit AI 흐름에 추가한 후 Firebase Console에서 결과를 봅니다.

1단계: Firebase Studio에서 Genkit 플로우 코드에 원격 분석 추가

코드에서 모니터링을 설정하려면 다음 안내를 따르세요.

  1. 아직 Code 뷰가 아니면 코드 전환 아이콘 코드로 전환을 클릭하여 엽니다.

  2. package.json을 확인하여 설치된 Genkit 버전을 확인합니다.

  3. 터미널(Ctrl-Shift-C 또는 macOS의 경우 Cmd-Shift-C)을 엽니다.

  4. 터미널 내부를 클릭하고 package.json 파일과 일치하는 버전을 사용하여 Firebase 플러그인을 설치합니다. 예를 들어 package.jsonGenkit 패키지가 1.0.4이면 다음 명령어를 실행하여 플러그인을 설치해야 합니다.

    npm i --save @genkit-ai/firebase@1.0.4
  5. 탐색기에서 src > ai > flows를 펼칩니다. Genkit 흐름이 포함된 TypeScript 파일 하나 이상이 flows 폴더에 표시됩니다.

  6. 흐름 중 하나를 클릭하여 엽니다.

  7. 파일의 가져오기 섹션 하단에 다음을 추가하여 FirebaseTelemetry를 가져오고 사용 설정합니다.

    import { enableFirebaseTelemetry } from '@genkit-ai/firebase';
    
    enableFirebaseTelemetry();
    

2단계: 권한 설정

Firebase Studio는 Firebase 프로젝트를 설정할 때 필요한 API를 자동으로 사용 설정했지만 개발자가 App Hosting 서비스 계정에 권한을 제공해야 합니다.

권한을 설정하려면 다음 안내를 따르세요.

  1. Google Cloud IAM 콘솔을 열고 프로젝트를 선택한 후 App Hosting 서비스 계정에 다음 역할을 부여합니다.

    • 모니터링 측정항목 작성자(roles/monitoring.metricWriter)
    • Cloud Trace 에이전트(roles/cloudtrace.agent)
    • 로그 작성자(roles/logging.logWriter)
  2. App Hosting앱을 다시 게시합니다.

  3. 게시가 완료되면 앱을 로드하고 사용합니다. 5분 후 앱에서 원격 분석 데이터를 로깅해야 합니다.

3단계: Firebase Console에서 생성형 AI 기능 모니터링

원격 분석이 구성되면 Genkit은 모든 플로우에 대한 요청 수, 성공 여부, 지연 시간을 기록하고 Genkit은 각 특정 플로우에 대한 안정성 측정항목을 수집하고 세부 그래프를 보여주며 캡처된 trace를 로깅합니다.

Genkit으로 구현된 AI 기능을 모니터링하려면 다음 안내를 따르세요.

  1. 5분 후 Firebase Console에서 Genkit을 열고 Genkit의 프롬프트와 응답을 검토합니다.

    Genkit은 다음 안정성 측정항목을 컴파일합니다.

    • 총 요청 수: 플로우에서 수신한 요청 총개수입니다.
    • 성공률: 성공적으로 처리된 요청의 비율입니다.
    • 95번째 백분위수 지연 시간: 플로우의 95번째 백분위수 지연 시간으로, 요청의 95%가 처리되는 데 걸리는 시간입니다.
    • 토큰 사용량:

      • 입력 토큰: 프롬프트에서 모델로 전송된 토큰 수입니다.
      • 출력 토큰: 모델에서 응답에 생성한 토큰 수입니다.
    • 이미지 사용량:

      • 입력 이미지: 프롬프트에서 모델로 전송된 이미지 수입니다.
      • 출력 이미지: 모델에서 응답에 생성한 이미지 수입니다.

    안정성 측정항목을 펼치면 세부적인 그래프가 제공됩니다.

    • 시간 경과에 따른 요청 볼륨
    • 시간 경과에 따른 성공률
    • 시간 경과에 따른 입력 및 출력 토큰 수
    • 시간 경과에 따른 지연 시간(95번째 및 50번째 백분위수)

Genkit에서 Genkit을 자세히 알아보세요.

다음 단계