네이티브 애플리케이션 프레임워크의 선언적 공유에서 사용되는 애플리케이션 패키지¶
공급자는 데이터 콘텐츠와 노트북을 |declarative-app-short|으로 묶는 애플리케이션 패키지를 만듭니다. 이 항목에서는 애플리케이션 패키지가 무엇인지 설명하고 초기 패키지 생성부터 매니페스트 및 노트북 파일 추가에 이르기까지 애플리케이션 패키지를 만드는 대략적인 단계를 설명합니다.
애플리케이션 패키지 및 라이브 버전¶
애플리케이션 패키지는 매니페스트 파일 및 모든 :doc:`Snowflake Notebooks</user-guide/ui-snowsight/notebooks>`를 포함하여 앱을 구성하는 모든 파일의 컨테이너 입니다. 애플리케이션 패키지를 생성하면 애플리케이션 패키지의 라이브(스테이징된) 버전도 생성됩니다. 라이브 버전은 매니페스트 파일 및 노트북 파일과 같은 파일을 추가하거나 업데이트하고 게시하기 전에 환경을 미리 보고 테스트할 수 있는 개발 작업 영역입니다.
앱의 라이브 버전에 만족하면 라이브 버전을 커밋하여 변경할 수 없는 애플리케이션 패키지의 새 버전을 만든 다음 게시할 수 있습니다.
개발에 라이브 버전을 사용하면 게시할 준비가 된 애플리케이션 패키지의 변경 불가능한 단일 버전과 개발을 위한 단일 라이브 버전을 유지 관리하여 버전 관리를 간소화할 수 있습니다. |naf|는 애플리케이션 패키지의 버전 관리를 자동으로 관리하므로 버전 번호를 수동으로 추적할 필요가 없습니다.
|naf|는 모든 애플리케이션 패키지의 라이브 버전을 자동으로 유지 관리합니다. 라이브 버전을 제거하더라도 애플리케이션 패키지의 마지막으로 커밋된 버전에서 새 라이브 버전이 자동으로 생성됩니다.
애플리케이션 패키지 만들기¶
공급자는 **애플리케이션 패키지**를 개발하고 테스트합니다. 애플리케이션 패키지에는 앱에서 데이터를 공유하는 데 필요한 파일이 포함되어 있으며 컨슈머가 데이터에 액세스하는 방법을 정의합니다.
이 과정에는 다음 단계가 포함됩니다.
**애플리케이션 패키지 파일 만들기**(처음에만 해당): 나중에 게시할 애플리케이션 패키지 파일을 생성합니다. 그러면 애플리케이션 패키지의 라이브 버전도 생성됩니다.
애플리케이션 패키지에 콘텐츠 추가:
매니페스트 파일 만들기 또는 업데이트: 이 파일에서는 애플리케이션 패키지와 해당 내용을 설명합니다.
** 노트북 파일 다운로드**. 노트북을 포함하려면 애플리케이션 패키지에 포함할 복사본을 다운로드합니다.
애플리케이션 패키지의 라이브 버전에 파일을 추가합니다.
애플리케이션 패키지 빌드: 이를 통해 매니페스트 파일이 유효하고 매니페스트 파일의 모든 링크가 올바른지 확인할 수 있습니다.
애플리케이션을 테스트합니다. 앱을 설치하고 사용해 봅니다. 변경하고 다시 빌드합니다.
애플리케이션 패키지 커밋: 게시할 수 있는 앱의 변경 불가능한 새 버전을 생성합니다.
**애플리케이션 패키지**를 릴리스합니다. 릴리스된 패키지를 사용하면 |sf-marketplace|에서 비공개적으로 또는 공개적으로 새 목록을 만들 수 있습니다.
이 프로세스는 :doc:`tutorials/getting-started`에 설명되어 있습니다. 이 섹션에는 다양한 스테이징 단계에서 사용할 수 있는 옵션에 대한 추가 세부 정보가 포함되어 있습니다.
새 애플리케이션 패키지 만들기
CREATE APPLICATION PACKAGE … TYPE=DATA 명령을 사용하여 Declarative Native App 패키지를 만듭니다.
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"
애플리케이션 패키지 빌드하기¶
ALTER APPLICATION PACKAGE … BUILD 명령을 사용하여 앱의 테스트 가능한 버전을 빌드하고 매니페스트 파일이 유효하고 모든 링크가 작동하는지 확인합니다.
ALTER APPLICATION PACKAGE DECL_SHARE_APP_PKG BUILD;
매니페스트 파일에 오류가 있는 경우 빌드가 실패하고 오류 수정 방법에 대한 정보를 제공합니다. 해당 오류를 수정하고 애플리케이션 패키지를 다시 빌드합니다.
빌드된 앱은 라이브 상태로 유지되며 애플리케이션 패키지를 계속 변경할 수 있습니다.
건너뛰기!¶
추가 테스트가 필요하지 않은 업데이트의 경우 ALTER APPLICATION PACKAGE … RELEASE LIVE VERSION 명령을 사용하여 애플리케이션 패키지를 한 번에 빌드, 커밋, 릴리스하여 건너뛸 수 있습니다.
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|의 콘텐츠에 액세스하기 섹션을 참조하십시오.
선택 사항: 라이브 버전에서 편집 재설정하기¶
애플리케이션 패키지의 라이브 버전에 대한 편집 내용이 더 이상 필요하지 않은 경우 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|에서 비공개적으로 또는 공개적으로 앱에 대한 새 목록을 만들 수 있습니다. 자세한 내용은 선언적 공유를 사용하여 목록 만들기 섹션을 참조하십시오.