Snowflake CLI 를 설정하여 앱 개발하기

이 항목에서는 공급자가 Snowflake Native Apps 를 개발하고 관리하기 위해 Snowflake CLI 를 설치하고 사용하는 방법에 대해 설명합니다. Snowflake CLI 는 SQL 작업 외에도 개발자 중심의 워크로드를 위해 명시적으로 설계된 오픈 소스 명령줄 도구입니다.

Snowflake CLI 설치 및 구성

Snowflake CLI 를 설치하고 구성하려면 다음 단계를 따릅니다.

  1. 운영 체제에 맞는 Snowflake CLI 를 설치합니다.

    자세한 내용은 Snowflake CLI 설치하기 섹션을 참조하십시오.

  2. Snowflake 계정에 대한 연결을 설정합니다.

    자세한 내용은 Snowflake CLI 구성하기 섹션을 참조하십시오.

Snowflake CLI 프로젝트 및 앱 템플릿 정보

Snowflake CLI 를 사용하여 Snowflake Native App 을 개발하는 경우 프로젝트 내에서 작업합니다. 프로젝트는 Snowflake Native App 에 필요한 모든 파일과 디렉터리가 포함된 디렉터리입니다. 다른 코드 리포지토리와 마찬가지로, 이러한 파일은 Git과 같은 기술을 사용하여 버전을 제어하고 Github와 같은 플랫폼에서 공유할 수 있습니다.

Snowflake는 프로젝트를 설정하는 데 사용할 수 있는 앱 템플릿을 제공합니다. 이러한 템플릿은 `snowflake-cli-templates GitHub 리포지토리<https://github.com/snowflakedb/snowflake-cli-templates>`_에서 사용할 수 있습니다.

사용 가능한 템플릿은 다음과 같습니다.

템플릿

설명

app_basic

앱에 필요한 필수 파일과 디렉터리가 포함된 기본 템플릿입니다.

app_streamlit_java

앱에 필요한 필수 파일 및 디렉터리, Java 확장 코드, 샘플 Streamlit 앱이 포함된 템플릿입니다.

app_streamlit_js

앱에 필요한 필수 파일 및 디렉터리, JavaScript 확장 코드, 샘플 Streamlit 앱이 포함된 템플릿입니다.

app_streamlit_python

앱에 필요한 필수 파일 및 디렉터리, Python 확장 코드, 샘플 Streamlit 앱이 포함된 템플릿입니다.

Snowflake Native App 에 대한 새 프로젝트 설정하기

Snowflake Native App 에 대한 새 프로젝트를 설정하려면 다음 단계를 따릅니다.

  1. init 명령을 실행하여 새 프로젝트를 만듭니다.

    snow init --template <template_name> <project_name>
    
    Copy
  2. 프로젝트 식별자에 대한 값을 입력합니다.

    이 값은 애플리케이션 패키지를 포함하여 Snowflake CLI 를 생성하는 앱 구성 요소의 기본 이름으로 사용됩니다. 이 값은 나중에 프로젝트 정의 파일에서 수정하거나 재정의할 수 있습니다.

이 명령을 실행하면 명령을 실행한 디렉터리에 :file:`<project_name>`이라는 새 디렉터리가 생성됩니다. 이 디렉터리에는 다음과 같은 디렉터리 구조의 Snowflake Native App 에 필요한 파일과 디렉터리가 포함되어 있습니다.

<project_name>/
├── app/
 ├── manifest.yml
 ├── README.md
 ├── setup_script.sql
├── README.md
├── snowflake.yml
Copy

이 디렉터리의 폴더와 파일은 다음 테이블에 설명되어 있습니다.

파일/디렉터리

설명

app/

이 디렉터리에는 앱의 애플리케이션 코드 및 리소스가 포함되어 있습니다. 필요에 따라 이 디렉터리의 파일을 수정하거나 추가할 수 있습니다.

app/manifest.yml

이 파일은 앱 이름, 버전, 설명, 리소스 등 앱의 메타데이터와 구성을 정의합니다. 자세한 내용은 앱의 매니페스트 파일 만들기 섹션을 참조하십시오.

app/README.md

이 파일은 앱의 개요 및 사용 지침을 제공합니다. 이 파일은 Snowflake Marketplace에 표시되는 README 파일입니다.

app/setup_script.sql

이 SQL 스크립트는 앱이 설치될 때 실행됩니다. 앱에 필요한 모든 설정 단계를 포함하도록 이 스크립트를 수정할 수 있습니다. 자세한 내용은 Create the setup script 섹션을 참조하십시오.

README.md

이 파일은 프로젝트의 개요 및 앱에서의 Snowflake CLI 사용 지침을 제공합니다.

snowflake.yml

Snowflake에 배포할 수 있는 오브젝트를 설명하는 프로젝트 정의 파일입니다. 앱의 일부인 리소스를 정의하려면 이 파일을 수정해야 합니다.

프로젝트 정의 파일을 만듭니다.

Snowflake CLI 는 프로젝트 정의 파일을 사용하여 Snowflake에 배포할 수 있는 오브젝트를 설명합니다. 이 파일의 이름은 snowflake.yml 로 지정해야 합니다. 이 파일은 애플리케이션 패키지의 이름을 결정하고 Snowflake Native App 의 일부인 리소스를 지정합니다.

프로젝트 정의 파일에 대한 자세한 내용은 프로젝트 정의 파일 섹션을 참조하세요.

다음은 Snowflake Native App 에 사용되는 간단한 snowflake.yml 파일의 예제입니다.

definition_version: 2
entities:
  hello_snowflake_package:
    type: application package
    stage: stage_content.hello_snowflake_stage
    manifest: app/manifest.yml
    identifier: hello_snowflake_package
    artifacts:
       - src: app/*
         dest: ./
  hello_snowflake_app:
    type: application
    from:
       target: hello_snowflake_package
    debug: false
Copy

다음 테이블에서는 이 예제의 필드에 대해 설명합니다.

필드

설명

definition_version

프로젝트 정의 파일 형식의 버전입니다. 현재 버전은 2입니다.

entities

프로젝트의 일부인 엔터티 목록입니다. 각 엔터티에는 고유 식별자와 유형이 있습니다.

hello_snowflake_package

애플리케이션 패키지 엔터티의 식별자입니다. 이 이름은 애플리케이션 패키지를 포함하여 Snowflake CLI 를 생성하는 앱 구성 요소의 기본 이름으로 사용됩니다.

type

엔터티의 유형입니다. 이 경우에는 :code:`application package`입니다.

stage

애플리케이션 패키지가 저장되는 스테이지입니다.

manifest

앱의 메타데이터 및 구성을 정의하는 매니페스트 파일의 경로입니다.

identifier

애플리케이션 패키지 엔터티의 식별자입니다. 이 이름은 애플리케이션 패키지를 포함하여 Snowflake CLI 를 생성하는 앱 구성 요소의 기본 이름으로 사용됩니다.

artifacts

애플리케이션 패키지에 포함된 파일 및 디렉터리 목록입니다. 각 아티팩트에는 소스(src) 및 대상(dest)이 있습니다.

hello_snowflake_app

애플리케이션 엔터티의 식별자입니다.

from

애플리케이션의 소스를 지정합니다. 이 경우 hello_snowflake_package 애플리케이션 패키지에서 생성됩니다.

debug

앱에 대해 디버그 모드가 활성화되었는지 여부를 나타내는 부울 값입니다.

Snowflake Native App 개발

프로젝트를 설정하고 프로젝트 정의 파일을 만든 후에는 애플리케이션 패키지를 만들고 매니페스트 파일 및 설정 스크립트를 수정하여 Snowflake Native App 개발을 시작할 수 있습니다.

자세한 내용은 다음 항목을 참조하십시오.