네이티브 애플리케이션 프레임워크의 선언적 공유에서 사용되는 애플리케이션 패키지

공급자는 데이터 콘텐츠와 노트북을 |declarative-app-short|으로 묶는 애플리케이션 패키지를 만듭니다. 이 항목에서는 애플리케이션 패키지가 무엇인지 설명하고 초기 패키지 생성부터 매니페스트 및 노트북 파일 추가에 이르기까지 애플리케이션 패키지를 만드는 대략적인 단계를 설명합니다.

애플리케이션 패키지 및 라이브 버전

애플리케이션 패키지는 매니페스트 파일 및 모든 :doc:`Snowflake Notebooks</user-guide/ui-snowsight/notebooks>`를 포함하여 앱을 구성하는 모든 파일의 컨테이너 입니다. 애플리케이션 패키지를 생성하면 애플리케이션 패키지의 라이브(스테이징된) 버전도 생성됩니다. 라이브 버전은 매니페스트 파일 및 노트북 파일과 같은 파일을 추가하거나 업데이트하고 게시하기 전에 환경을 미리 보고 테스트할 수 있는 개발 작업 영역입니다.

앱의 라이브 버전에 만족하면 라이브 버전을 커밋하여 변경할 수 없는 애플리케이션 패키지의 새 버전을 만든 다음 게시할 수 있습니다.

개발에 라이브 버전을 사용하면 게시할 준비가 된 애플리케이션 패키지의 변경 불가능한 단일 버전과 개발을 위한 단일 라이브 버전을 유지 관리하여 버전 관리를 간소화할 수 있습니다. |naf|는 애플리케이션 패키지의 버전 관리를 자동으로 관리하므로 버전 번호를 수동으로 추적할 필요가 없습니다.

|naf|는 모든 애플리케이션 패키지의 라이브 버전을 자동으로 유지 관리합니다. 라이브 버전을 제거하더라도 애플리케이션 패키지의 마지막으로 커밋된 버전에서 새 라이브 버전이 자동으로 생성됩니다.

애플리케이션 패키지 만들기

공급자는 **애플리케이션 패키지**를 개발하고 테스트합니다. 애플리케이션 패키지에는 앱에서 데이터를 공유하는 데 필요한 파일이 포함되어 있으며 컨슈머가 데이터에 액세스하는 방법을 정의합니다.

이 과정에는 다음 단계가 포함됩니다.

  1. **애플리케이션 패키지 파일 만들기**(처음에만 해당): 나중에 게시할 애플리케이션 패키지 파일을 생성합니다. 그러면 애플리케이션 패키지의 라이브 버전도 생성됩니다.

  2. 애플리케이션 패키지에 콘텐츠 추가:

    1. 매니페스트 파일 만들기 또는 업데이트: 이 파일에서는 애플리케이션 패키지와 해당 내용을 설명합니다.

    2. ** 노트북 파일 다운로드**. 노트북을 포함하려면 애플리케이션 패키지에 포함할 복사본을 다운로드합니다.

    3. 애플리케이션 패키지의 라이브 버전에 파일을 추가합니다.

  3. 애플리케이션 패키지 빌드: 이를 통해 매니페스트 파일이 유효하고 매니페스트 파일의 모든 링크가 올바른지 확인할 수 있습니다.

  4. 애플리케이션을 테스트합니다. 앱을 설치하고 사용해 봅니다. 변경하고 다시 빌드합니다.

  5. 애플리케이션 패키지 커밋: 게시할 수 있는 앱의 변경 불가능한 새 버전을 생성합니다.

  6. **애플리케이션 패키지**를 릴리스합니다. 릴리스된 패키지를 사용하면 |sf-marketplace|에서 비공개적으로 또는 공개적으로 새 목록을 만들 수 있습니다.

이 프로세스는 :doc:`tutorials/getting-started`에 설명되어 있습니다. 이 섹션에는 다양한 스테이징 단계에서 사용할 수 있는 옵션에 대한 추가 세부 정보가 포함되어 있습니다.

애플리케이션 패키지를 만드는 단계를 보여주는 다이어그램: 라이브 패키지를 추가하고, 빌드하고, 커밋하고, 릴리스합니다. 이 다이어그램은 라이브 버전을 한 번에 빌드, 커밋, 릴리스하기 위해 건너뛸 수 있는 선택적 단계도 보여줍니다.

새 애플리케이션 패키지 만들기

Create a Declarative Native App package using the command: CREATE APPLICATION PACKAGE … TYPE=DATA:

CREATE APPLICATION PACKAGE DECL_SHARE_APP_PKG TYPE = DATA;
Copy

비어 있는 새 애플리케이션 패키지가 생성됩니다. 그러면 편집할 수 있는 애플리케이션 패키지의 라이브 버전도 생성됩니다.

애플리케이션 패키지에 콘텐츠 추가하기

애플리케이션 패키지에 다음 내용을 포함합니다.

  • 매니페스트 파일(필수): 앱의 구조를 정의하는 텍스트 기반 파일입니다.

  • Snowflake 노트북 파일(선택 사항): 공유 뷰와 테이블을 참조하는 컨슈머 환경의 프런트 엔드 역할을 할 수 있는 텍스트 기반 파일입니다. 또한 코드, 참조 시각화, 데이터 표시에 도움이 되는 논리를 포함할 수 있습니다.

앱 패키지 구성 요소 다이어그램

매니페스트 파일 만들기 또는 업데이트하기

공급자는 애플리케이션 패키지 및 해당 공유 콘텐츠(예: 노트북, 테이블, 뷰)를 설명하는 매니페스트 파일을 만들거나 업데이트합니다. 앱에 포함된 :doc:`앱 역할<app-roles>`과 같은 다른 메타데이터를 정의합니다.

매니페스트 파일의 이름은 ``manifest.yml``이어야 하며, 애플리케이션 패키지의 루트 수준에 추가해야 합니다.

자세한 내용은 Declarative Native App 매니페스트 참조 섹션을 참조하십시오. 연결된 :doc:`tutorials/getting-started`에는 예제 매니페스트 파일이 포함되어 있습니다.

Snowflake 데이터 공유에서 매니페스트 파일 만들기 또는 업데이트

참고

다음 내용은 Snowflake에서 지원되지 않습니다. 모든 코드는 “있는 그대로” 제공되며 보증되지 않습니다.

Snowflake에 기존 데이터 공유가 있는 경우 공유 도구의 오픈 소스 매니페스트를 사용하여 매니페스트 파일을 자동으로 생성할 수 있습니다. Snowflake에서 제공하는 이 도구는 지정된 공유의 오브젝트를 기준으로 매니페스트 파일을 생성합니다. 이 도구에는 생성된 매니페스트 파일을 사용자 지정하는 옵션도 포함되어 있습니다. 이 도구는 다음과 같은 방법으로 사용할 수 있습니다.

  • 명령줄 인터페이스(CLI)를 사용하여 매니페스트 파일을 생성합니다.

  • 이 도구를 기존 Python 자동화 워크플로에 라이브러리로 통합합니다.

이 도구를 다운로드하고 사용하는 방법에 대한 자세한 내용은 GitHub에서 `공유의 Snowflake 매니페스트<https://github.com/snowflakedb/native-apps-examples/tree/main/snowflake-manifest-from-share-library>`_ 리포지토리를 참조하세요.

참고

공유 도구의 매니페스트는 데이터 공유의 데이터베이스, 스키마, 테이블 및 뷰를 사용하여 매니페스트 파일만 생성합니다. 이 도구는 생성된 매니페스트 파일에 다른 오브젝트를 포함하지 않습니다.

노트북 파일 가져오기

:doc:`Snowflake Notebooks</user-guide/ui-snowsight/notebooks>`가 앱에 포함되어야 하는 경우, 애플리케이션 패키지에 포함할 수 있도록 노트북 파일의 복사본을 다운로드합니다.

|sf-web-interface|에서 다음을 수행합니다.

  1. 탐색 메뉴에서 Projects » :ui:`Notebooks`를 선택한 후 다운로드할 노트북을 선택합니다.

  2. 왼쪽 창에서 노트북 옆에 있는 :ui:`…`|raa|:ui:`Download`를 선택합니다.

파일은 로컬 컴퓨터에 <notebook_name>.ipynb 파일로 다운로드됩니다.

참고

노트북 환경에는 Python 및 Streamlit을 포함하여 Anaconda 패키지 세트가 사전 설치되어 있습니다. 노트북에서 추가 Anaconda 패키지를 사용하는 경우 컨슈머의 환경에서 사용할 수 있도록 해당 패키지를 노트북 에 패키지로 추가해야 합니다. 노트북에 Anaconda 패키지를 추가하는 방법에 대한 자세한 내용은 Add Anaconda packages to a notebook 섹션을 참조하세요.

라이브 버전에 파일 추가하기

snow://package/<package_name>/versions/LIVE/ URL 스키마를 사용하여 :doc:`Snowflake CLI</developer-guide/snowflake-cli/index>`에서 SQL 명령을 통해 파일을 추가하고 액세스합니다. 예제:

  • 애플리케이션 패키지에 파일을 추가합니다.

    snow sql -q "PUT file:////Users/test_user/Documents/manifest.yml  snow://package/DECL_SHARE_APP_PKG/versions/LIVE/ OVERWRITE=TRUE AUTO_COMPRESS=false;"
    
    snow sql -q "PUT file:////Users/test_user/Documents/NOTEBOOK.ipynb  snow://package/DECL_SHARE_APP_PKG/versions/LIVE/ OVERWRITE=TRUE AUTO_COMPRESS=false;"
    
    Copy
  • 파일이 애플리케이션 패키지에 있는지 확인합니다.

    snow sql -q "LIST snow://package/DECL_SHARE_APP_PKG/versions/LIVE"
    
    Copy
    +--------------------------------------------------------------------------------+
    | name                          | size | md5     | last_modified                 |
    |-------------------------------+------+---------+-------------------------------|
    | /versions/live/manifest.yml   | 304  | 843a... | Wed, 23 Jul 2025 08:27:26 GMT |
    | /versions/live/NOTEBOOK.ipynb | 832  | b014... | Wed, 23 Jul 2025 04:32:22 GMT |
    +--------------------------------------------------------------------------------+
    
  • 애플리케이션 패키지에서 파일을 다운로드합니다.

    snow sql -q "GET snow://package/<package_name>/versions/LIVE/manifest.yml file://manifest.yml"
    
    Copy
  • 애플리케이션 패키지에서 콘텐츠를 제거합니다.

    snow sql -q "RM snow://package/<package_name>/versions/LIVE/manifest.yml"
    
    Copy

애플리케이션 패키지 빌드하기

ALTER APPLICATION PACKAGE … BUILD 명령을 사용하여 앱의 테스트 가능한 버전을 빌드하고 매니페스트 파일이 유효하고 모든 링크가 작동하는지 확인합니다.

ALTER APPLICATION PACKAGE DECL_SHARE_APP_PKG BUILD;
Copy

매니페스트 파일에 오류가 있는 경우 빌드가 실패하고 오류 수정 방법에 대한 정보를 제공합니다. 해당 오류를 수정하고 애플리케이션 패키지를 다시 빌드합니다.

빌드된 앱은 라이브 상태로 유지되며 애플리케이션 패키지를 계속 변경할 수 있습니다.

건너뛰기!

추가 테스트가 필요하지 않은 업데이트의 경우 ALTER APPLICATION PACKAGE … RELEASE LIVE VERSION 명령을 사용하여 애플리케이션 패키지를 한 번에 빌드, 커밋, 릴리스하여 건너뛸 수 있습니다.

ALTER APPLICATION PACKAGE DECL_SHARE_APP_PKG RELEASE LIVE VERSION;
Copy

애플리케이션 테스트하기

애플리케이션 패키지를 빌드한 후 공급자는 라이브 환경에서 기본 테스트를 수행할 수 있습니다.

CREATE APPLICATION … FROM APPLICATION PACKAGE 명령을 사용하여 애플리케이션 패키지에서 앱을 설치합니다. 예:

CREATE APPLICATION DECL_SHARE_APP FROM APPLICATION PACKAGE DECL_SHARE_APP_PKG
Copy

필요에 따라 애플리케이션 패키지의 파일을 업데이트한 후 ALTER APPLICATION PACKAGE … UPGRADE USING VERSION LIVE 명령을 사용하여 작동하는지 확인합니다.

ALTER APPLICATION PACKAGE DECL_SHARE_APP_PKG UPGRADE USING VERSION LIVE;
Copy

앱 역할과 같은 일부 기능을 테스트하려면 먼저 애플리케이션 패키지의 새 버전을 릴리스한 다음 별도의 컨슈머 계정을 사용하여 테스트해야 합니다. 자세한 내용은 Declarative Native App 설치하기|declarative-app-short|의 콘텐츠에 액세스하기 섹션을 참조하십시오.

선택 사항: 라이브 버전에서 편집 재설정하기

애플리케이션 패키지의 라이브 버전에 대한 편집 내용이 더 이상 필요하지 않은 경우 ALTER APPLICATION PACKAGE … ABORT LIVE VERSION 명령을 사용하여 애플리케이션 패키지를 편집이 수행되기 전의 상태로 재설정할 수 있습니다.

ALTER APPLICATION PACKAGE <package_name> ABORT LIVE VERSION;
Copy

이전 명령을 사용하여 현재 라이브 버전을 제거하면 애플리케이션 패키지의 마지막으로 커밋된 버전과 동일한 내용으로 새 라이브 버전이 생성됩니다. 라이브 버전이 마지막으로 커밋된 버전으로 재설정되고 라이브 버전에 대한 모든 변경 사항이 삭제됩니다.

애플리케이션 패키지 커밋하기

공급자는 편집할 수 없고 게시할 준비가 된 애플리케이션의 변경 불가능한 새 버전을 빌드합니다.

ALTER APPLICATION PACKAGE 명령을 사용합니다.

ALTER APPLICATION PACKAGE <package_name> COMMIT;
Copy

애플리케이션 패키지의 라이브 버전이 제거됩니다. 애플리케이션 패키지의 새 라이브 버전은 추가 개발을 위해 커밋된 새 버전에서 생성됩니다.

애플리케이션 패키지 릴리스하기

ALTERAPPLICATIONPACKAGE … RELEASE 또는 ALTER APPLICATION PACKAGE … RELEASE LIVE VERSION 중 하나를 사용하여 애플리케이션 패키지를 릴리스합니다.

  • 커밋된 애플리케이션 패키지를 릴리스합니다.

    ALTER APPLICATION PACKAGE <package_name> RELEASE;
    
    Copy
  • 애플리케이션 패키지의 라이브 버전을 빌드, 커밋, 릴리스합니다.

    ALTER APPLICATION PACKAGE <package_name> RELEASE LIVE VERSION;
    
    Copy

애플리케이션 패키지를 릴리스하면 다음이 수행됩니다.

  • 커밋된 앱을 컨슈머와 공유하도록 준비합니다.

  • 공급자가 이미 앱을 컨슈머와 공유한 경우 해당 컨슈머는 새 버전을 자동으로 사용할 수 있습니다.

  • |sf-marketplace|에 이미 라이브 버전의 앱이 있는 경우 앱을 설치한 컨슈머는 새 버전을 자동으로 사용할 수 있습니다.

애플리케이션 패키지를 릴리스한 후 |sf-marketplace|에서 비공개적으로 또는 공개적으로 앱에 대한 새 목록을 만들 수 있습니다. 자세한 내용은 선언적 공유를 사용하여 목록 만들기 섹션을 참조하십시오.