Snowflake CLI 를 설정하여 앱 개발하기¶
이 항목에서는 공급자가 Snowflake Native Apps 를 개발하고 관리하기 위해 Snowflake CLI 를 설치하고 사용하는 방법에 대해 설명합니다. Snowflake CLI 는 SQL 작업 외에도 개발자 중심의 워크로드를 위해 명시적으로 설계된 오픈 소스 명령줄 도구입니다.
Snowflake CLI 설치 및 구성¶
Snowflake CLI 를 설치하고 구성하려면 다음 단계를 따릅니다.
운영 체제에 맞는 Snowflake CLI 를 설치합니다.
자세한 내용은 Snowflake CLI 설치하기 섹션을 참조하십시오.
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 에 대한 새 프로젝트를 설정하려면 다음 단계를 따릅니다.
init명령을 실행하여 새 프로젝트를 만듭니다.snow init --template <template_name> <project_name>
프로젝트 식별자에 대한 값을 입력합니다.
이 값은 애플리케이션 패키지를 포함하여 Snowflake CLI 를 생성하는 앱 구성 요소의 기본 이름으로 사용됩니다. 이 값은 나중에 프로젝트 정의 파일에서 수정하거나 재정의할 수 있습니다.
이 명령을 실행하면 명령을 실행한 디렉터리에 :file:`<project_name>`이라는 새 디렉터리가 생성됩니다. 이 디렉터리에는 다음과 같은 디렉터리 구조의 Snowflake Native App 에 필요한 파일과 디렉터리가 포함되어 있습니다.
<project_name>/
├── app/
├── manifest.yml
├── README.md
├── setup_script.sql
├── README.md
├── snowflake.yml
이 디렉터리의 폴더와 파일은 다음 테이블에 설명되어 있습니다.
파일/디렉터리 |
설명 |
|---|---|
|
이 디렉터리에는 앱의 애플리케이션 코드 및 리소스가 포함되어 있습니다. 필요에 따라 이 디렉터리의 파일을 수정하거나 추가할 수 있습니다. |
|
이 파일은 앱 이름, 버전, 설명, 리소스 등 앱의 메타데이터와 구성을 정의합니다. 자세한 내용은 앱의 매니페스트 파일 만들기 섹션을 참조하십시오. |
|
이 파일은 앱의 개요 및 사용 지침을 제공합니다. 이 파일은 Snowflake Marketplace에 표시되는 README 파일입니다. |
|
이 SQL 스크립트는 앱이 설치될 때 실행됩니다. 앱에 필요한 모든 설정 단계를 포함하도록 이 스크립트를 수정할 수 있습니다. 자세한 내용은 Create the setup script 섹션을 참조하십시오. |
|
이 파일은 프로젝트의 개요 및 앱에서의 Snowflake CLI 사용 지침을 제공합니다. |
|
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
다음 테이블에서는 이 예제의 필드에 대해 설명합니다.
필드 |
설명 |
|---|---|
|
프로젝트 정의 파일 형식의 버전입니다. 현재 버전은 2입니다. |
|
프로젝트의 일부인 엔터티 목록입니다. 각 엔터티에는 고유 식별자와 유형이 있습니다. |
|
애플리케이션 패키지 엔터티의 식별자입니다. 이 이름은 애플리케이션 패키지를 포함하여 Snowflake CLI 를 생성하는 앱 구성 요소의 기본 이름으로 사용됩니다. |
|
엔터티의 유형입니다. 이 경우에는 :code:`application package`입니다. |
|
애플리케이션 패키지가 저장되는 스테이지입니다. |
|
앱의 메타데이터 및 구성을 정의하는 매니페스트 파일의 경로입니다. |
|
애플리케이션 패키지 엔터티의 식별자입니다. 이 이름은 애플리케이션 패키지를 포함하여 Snowflake CLI 를 생성하는 앱 구성 요소의 기본 이름으로 사용됩니다. |
|
애플리케이션 패키지에 포함된 파일 및 디렉터리 목록입니다. 각 아티팩트에는 소스( |
|
애플리케이션 엔터티의 식별자입니다. |
|
애플리케이션의 소스를 지정합니다. 이 경우 |
|
앱에 대해 디버그 모드가 활성화되었는지 여부를 나타내는 부울 값입니다. |
Snowflake Native App 개발¶
프로젝트를 설정하고 프로젝트 정의 파일을 만든 후에는 애플리케이션 패키지를 만들고 매니페스트 파일 및 설정 스크립트를 수정하여 Snowflake Native App 개발을 시작할 수 있습니다.
자세한 내용은 다음 항목을 참조하십시오.