네이티브 애플리케이션 프레임워크의 선언적 공유에서 사용되는 애플리케이션 패키지¶
공급자는 데이터 콘텐츠와 노트북을 |declarative-app-short|으로 묶는 애플리케이션 패키지를 만듭니다. 이 항목에서는 애플리케이션 패키지가 무엇인지 설명하고 초기 패키지 생성부터 매니페스트 및 노트북 파일 추가에 이르기까지 애플리케이션 패키지를 만드는 대략적인 단계를 설명합니다.
애플리케이션 패키지 및 라이브 버전¶
애플리케이션 패키지는 매니페스트 파일 및 모든 :doc:`Snowflake Notebooks</user-guide/ui-snowsight/notebooks>`를 포함하여 앱을 구성하는 모든 파일의 컨테이너 입니다. 애플리케이션 패키지를 생성하면 애플리케이션 패키지의 라이브(스테이징된) 버전도 생성됩니다. 라이브 버전은 매니페스트 파일 및 노트북 파일과 같은 파일을 추가하거나 업데이트하고 게시하기 전에 환경을 미리 보고 테스트할 수 있는 개발 작업 영역입니다.
앱의 라이브 버전에 만족하면 라이브 버전을 커밋하여 변경할 수 없는 애플리케이션 패키지의 새 버전을 만든 다음 게시할 수 있습니다.
개발에 라이브 버전을 사용하면 게시할 준비가 된 애플리케이션 패키지의 변경 불가능한 단일 버전과 개발을 위한 단일 라이브 버전을 유지 관리하여 버전 관리를 간소화할 수 있습니다. |naf|는 애플리케이션 패키지의 버전 관리를 자동으로 관리하므로 버전 번호를 수동으로 추적할 필요가 없습니다.
|naf|는 모든 애플리케이션 패키지의 라이브 버전을 자동으로 유지 관리합니다. 라이브 버전을 제거하더라도 애플리케이션 패키지의 마지막으로 커밋된 버전에서 새 라이브 버전이 자동으로 생성됩니다.
애플리케이션 패키지 만들기¶
공급자는 **애플리케이션 패키지**를 개발하고 테스트합니다. 애플리케이션 패키지에는 앱에서 데이터를 공유하는 데 필요한 파일이 포함되어 있으며 컨슈머가 데이터에 액세스하는 방법을 정의합니다.
이 과정에는 다음 단계가 포함됩니다.
**애플리케이션 패키지 파일 만들기**(처음에만 해당): 나중에 게시할 애플리케이션 패키지 파일을 생성합니다. 그러면 애플리케이션 패키지의 라이브 버전도 생성됩니다.
애플리케이션 패키지에 콘텐츠 추가:
매니페스트 파일 만들기 또는 업데이트: 이 파일에서는 애플리케이션 패키지와 해당 내용을 설명합니다.
** 노트북 파일 다운로드**. 노트북을 포함하려면 애플리케이션 패키지에 포함할 복사본을 다운로드합니다.
애플리케이션 패키지의 라이브 버전에 파일을 추가합니다.
애플리케이션 패키지 빌드: 이를 통해 매니페스트 파일이 유효하고 매니페스트 파일의 모든 링크가 올바른지 확인할 수 있습니다.
애플리케이션을 테스트합니다. 앱을 설치하고 사용해 봅니다. 변경하고 다시 빌드합니다.
애플리케이션 패키지 커밋: 게시할 수 있는 앱의 변경 불가능한 새 버전을 생성합니다.
**애플리케이션 패키지**를 릴리스합니다. 릴리스된 패키지를 사용하면 |sf-marketplace|에서 비공개적으로 또는 공개적으로 새 목록을 만들 수 있습니다.
이 프로세스는 :doc:`tutorials/getting-started`에 설명되어 있습니다. 이 섹션에는 다양한 스테이징 단계에서 사용할 수 있는 옵션에 대한 추가 세부 정보가 포함되어 있습니다.
새 애플리케이션 패키지 만들기
Create an Declarative Native App package using the command: CREATE APPLICATION PACKAGE … TYPE=DATA:
CREATE APPLICATION PACKAGE DECL_SHARE_APP_PKG TYPE = DATA;
비어 있는 새 애플리케이션 패키지가 생성됩니다. 그러면 편집할 수 있는 애플리케이션 패키지의 라이브 버전도 생성됩니다.
애플리케이션 패키지에 콘텐츠 추가하기¶
애플리케이션 패키지에 다음 내용을 포함합니다.
매니페스트 파일(필수): 앱의 구조를 정의하는 텍스트 기반 파일입니다.
Snowflake 노트북 파일(선택 사항): 공유 뷰와 테이블을 참조하는 컨슈머 환경의 프런트 엔드 역할을 할 수 있는 텍스트 기반 파일입니다. 또한 코드, 참조 시각화, 데이터 표시에 도움이 되는 논리를 포함할 수 있습니다.
매니페스트 파일 만들기 또는 업데이트하기¶
공급자는 애플리케이션 패키지 및 해당 공유 콘텐츠(예: 노트북, 테이블, 뷰)를 설명하는 매니페스트 파일을 만들거나 업데이트합니다. 앱에 포함된 :doc:`앱 역할<app-roles>`과 같은 다른 메타데이터를 정의합니다.
매니페스트 파일의 이름은 ``manifest.yml``이어야 하며, 애플리케이션 패키지의 루트 수준에 추가해야 합니다.
자세한 내용은 Declarative Native App 매니페스트 참조 섹션을 참조하십시오. 연결된 :doc:`tutorials/getting-started`에는 예제 매니페스트 파일이 포함되어 있습니다.
노트북 파일 가져오기¶
:doc:`Snowflake Notebooks</user-guide/ui-snowsight/notebooks>`가 앱에 포함되어야 하는 경우, 애플리케이션 패키지에 포함할 수 있도록 노트북 파일의 복사본을 다운로드합니다.
|sf-web-interface|에서 다음을 수행합니다.
탐색 메뉴에서 Projects » :ui:`Notebooks`를 선택한 후 다운로드할 노트북을 선택합니다.
파일은 로컬 컴퓨터에 <notebook_name>.ipynb 파일로 다운로드됩니다.
참고
노트북 환경에는 Python 및 Streamlit을 포함하여 Anaconda 패키지 세트가 사전 설치되어 있습니다. 노트북에서 추가 Anaconda 패키지를 사용하는 경우 컨슈머의 환경에서 사용할 수 있도록 해당 패키지를 노트북 에 패키지로 추가해야 합니다. 노트북에 Anaconda 패키지를 추가하는 방법에 대한 자세한 내용은 노트북에 Anaconda 패키지 추가하기 섹션을 참조하세요.
라이브 버전에 파일 추가하기¶
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;"
파일이 애플리케이션 패키지에 있는지 확인합니다.
snow sql -q "LIST snow://package/DECL_SHARE_APP_PKG/versions/LIVE"
+--------------------------------------------------------------------------------+ | 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"
애플리케이션 패키지에서 콘텐츠를 제거합니다.
snow sql -q "RM snow://package/<package_name>/versions/LIVE/manifest.yml"
애플리케이션 패키지 빌드하기¶
Build a testable version of the app (and verify that the manifest file is valid and all links work) with the command: ALTER APPLICATION PACKAGE … BUILD.
ALTER APPLICATION PACKAGE DECL_SHARE_APP_PKG BUILD;
매니페스트 파일에 오류가 있는 경우 빌드가 실패하고 오류 수정 방법에 대한 정보를 제공합니다. 해당 오류를 수정하고 애플리케이션 패키지를 다시 빌드합니다.
빌드된 앱은 라이브 상태로 유지되며 애플리케이션 패키지를 계속 변경할 수 있습니다.
건너뛰기!¶
For updates that don’t require further testing, you can skip ahead by building, committing, and releasing an application package all at once using the ALTER APPLICATION PACKAGE … RELEASE LIVE VERSION command.
ALTER APPLICATION PACKAGE DECL_SHARE_APP_PKG RELEASE LIVE VERSION;
애플리케이션 테스트하기¶
애플리케이션 패키지를 빌드한 후 공급자는 라이브 환경에서 기본 테스트를 수행할 수 있습니다.
CREATE APPLICATION … FROM APPLICATION PACKAGE 명령을 사용하여 애플리케이션 패키지에서 앱을 설치합니다. 예:
CREATE APPLICATION DECL_SHARE_APP FROM APPLICATION PACKAGE DECL_SHARE_APP_PKG
필요에 따라 애플리케이션 패키지의 파일을 업데이트한 후 ALTER APPLICATION PACKAGE … UPGRADE USING VERSION LIVE 명령을 사용하여 작동하는지 확인합니다.
ALTER APPLICATION PACKAGE DECL_SHARE_APP_PKG UPGRADE USING VERSION LIVE;
앱 역할과 같은 일부 기능을 테스트하려면 먼저 애플리케이션 패키지의 새 버전을 릴리스한 다음 별도의 컨슈머 계정을 사용하여 테스트해야 합니다. 자세한 내용은 Declarative Native App 설치하기 및 |declarative-app-short|의 콘텐츠에 액세스하기 섹션을 참조하십시오.
선택 사항: 라이브 버전에서 편집 재설정하기¶
If the edits made to the live version of the application package are no longer needed, you can reset the application package to the state before the edits were made with the command: ALTER APPLICATION PACKAGE … ABORT LIVE VERSION
ALTER APPLICATION PACKAGE <package_name> ABORT LIVE VERSION;
이전 명령을 사용하여 현재 라이브 버전을 제거하면 애플리케이션 패키지의 마지막으로 커밋된 버전과 동일한 내용으로 새 라이브 버전이 생성됩니다. 라이브 버전이 마지막으로 커밋된 버전으로 재설정되고 라이브 버전에 대한 모든 변경 사항이 삭제됩니다.
애플리케이션 패키지 커밋하기¶
공급자는 편집할 수 없고 게시할 준비가 된 애플리케이션의 변경 불가능한 새 버전을 빌드합니다.
ALTER APPLICATION PACKAGE 명령을 사용합니다.
ALTER APPLICATION PACKAGE <package_name> COMMIT;
애플리케이션 패키지의 라이브 버전이 제거됩니다. 애플리케이션 패키지의 새 라이브 버전은 추가 개발을 위해 커밋된 새 버전에서 생성됩니다.
애플리케이션 패키지 릴리스하기¶
ALTERAPPLICATIONPACKAGE … RELEASE 또는 ALTER APPLICATION PACKAGE … RELEASE LIVE VERSION 중 하나를 사용하여 애플리케이션 패키지를 릴리스합니다.
커밋된 애플리케이션 패키지를 릴리스합니다.
ALTER APPLICATION PACKAGE <package_name> RELEASE;
애플리케이션 패키지의 라이브 버전을 빌드, 커밋, 릴리스합니다.
ALTER APPLICATION PACKAGE <package_name> RELEASE LIVE VERSION;
애플리케이션 패키지를 릴리스하면 다음이 수행됩니다.
커밋된 앱을 컨슈머와 공유하도록 준비합니다.
공급자가 이미 앱을 컨슈머와 공유한 경우 해당 컨슈머는 새 버전을 자동으로 사용할 수 있습니다.
|sf-marketplace|에 이미 라이브 버전의 앱이 있는 경우 앱을 설치한 컨슈머는 새 버전을 자동으로 사용할 수 있습니다.
애플리케이션 패키지를 릴리스한 후 |sf-marketplace|에서 비공개적으로 또는 공개적으로 앱에 대한 새 목록을 만들 수 있습니다. 자세한 내용은 선언적 공유를 사용하여 목록 만들기 섹션을 참조하십시오.