APPLICATION 오브젝트 만들기 및 테스트하기

이 항목에서는 애플리케이션 패키지에서 APPLICATION 오브젝트를 생성하는 방법을 설명합니다.

APPLICATION 오브젝트 생성 및 테스트 정보

공급자는 Snowflake Native App Framework 를 사용하여 애플리케이션 패키지와 동일한 계정 내에서 APPLICATION 오브젝트를 생성할 수 있습니다. 이를 통해 공급자는 컨슈머에게 게시하기 전에 Snowflake Native App 을 테스트할 수 있습니다. 또한 공급자는 공급자 계정과 컨슈머 계정을 번갈아 사용하지 않고도 단일 계정에서 Snowflake Native App 을 테스트할 수 있습니다.

APPLICATION 오브젝트를 만들고 테스트하는 데 필요한 권한

애플리케이션 패키지에서 APPLICATION 오브젝트를 만들려면 자신의 역할에 다음 권한이 부여되어 있어야 합니다.

  • 사용자의 역할에 부여된 CREATE APPLICATION 계정 수준 권한.

  • 애플리케이션 패키지에 부여된 INSTALL 오브젝트 수준 권한.

다음 예에서는 GRANT <권한> 명령을 사용하여 다음 권한을 계정에 부여하는 방법을 보여줍니다.

GRANT CREATE APPLICATION ON ACCOUNT TO ROLE provider_role;
GRANT INSTALL ON APPLICATION PACKAGE hello_snowflake_package
  TO ROLE provider_role;
Copy

DEVELOP 권한 사용하기

기본적으로, 애플리케이션 패키지를 만드는 데 사용되는 역할은 애플리케이션 패키지를 기반으로 APPLICATION 오브젝트를 만드는 CREATE APPLICATION 명령을 실행할 권한이 있습니다.

하지만 일부 개발 환경에서는 다른 역할을 가진 사용자가 애플리케이션 패키지를 만들고 테스트하도록 허용해야 할 수도 있습니다. 이렇게 하려면 애플리케이션 패키지에 대한 DEVELOP 오브젝트 수준 권한을 역할에 부여하십시오.

DEVELOP 계정 수준 권한은 애플리케이션 패키지를 기반으로 APPLICATION 오브젝트를 만들고 테스트하는 데 필요한 권한을 제공합니다. DEVELOP 권한을 사용하면 액세스 권한이 부여된 애플리케이션 패키지를 사용하여 다음 작업을 수행할 수 있습니다.

  • 애플리케이션 패키지에 지정된 버전 또는 패치 수준을 기반으로 APPLICATION 오브젝트 버전을 생성합니다.

  • ALTER APPLICATION 명령을 사용하여 애플리케이션 패키지의 버전을 업그레이드합니다.

  • 명명된 스테이지에서 파일을 사용하여 APPLICATION 오브젝트를 생성하고 업그레이드합니다.

  • 개발 모드 에서 생성된 APPLICATION 오브젝트에서 디버그 모드를 활성화합니다.

특정 역할에 DEVELOP 권한을 부여하려면 다음 예와 같이 GRANT <권한> 명령을 사용하십시오.

GRANT DEVELOP ON APPLICATION PACKAGE hello_snowflake_package TO ROLE other_dev_role;
Copy

참고

DEVELOP 오브젝트 수준 권한은 단일 애플리케이션 패키지에만 적용됩니다. DEVELOP 권한을 할당하려는 각 애플리케이션에서 GRANT <권한> 를 실행해야 합니다.

애플리케이션 생성 및 테스트를 위한 워크플로

Snowflake Native App Framework 는 애플리케이션 패키지에서 APPLICATION 오브젝트를 만드는 다양한 방법을 제공합니다. 이를 통해 컨슈머에게 게시하기 전에 Snowflake Native App 을 테스트할 수 있습니다. 사용하는 방법은 APPLICATION 오브젝트에서 테스트하려는 부분에 따라 다릅니다.

다음 단계는 APPLICATION 오브젝트 테스트를 위한 일반적인 워크플로를 간략하게 설명한 것입니다.

  1. 스테이지의 콘텐츠를 사용하여 APPLICATION 오브젝트를 만듭니다.

    이를 통해 설정 스크립트 또는 애플리케이션 코드 파일의 새 버전을 빠르게 테스트할 수 있습니다. 자세한 내용은 스테이징된 파일을 사용하여 애플리케이션 만들기 섹션을 참조하십시오.

  2. 버전 또는 패치에서 APPLICATION 오브젝트를 만듭니다.

    애플리케이션 패키지에 대한 버전 또는 패치를 정의한 후 이 버전을 사용하여 APPLICATION 오브젝트를 만들어 이 버전을 테스트할 수 있습니다. 버전 또는 패치 수준에서 애플리케이션 만들기 섹션을 참조하십시오.

  3. APPLICATION 오브젝트를 업그레이드합니다.

    애플리케이션 패키지 버전이 올바르게 작동하는지 확인한 후 기존 APPLICATION 오브젝트를 새 버전으로 업그레이드할 수 있습니다. 다음 두 가지 방법 중 하나로 업그레이드할 수 있습니다.

    • 스테이지를 사용하여 애플리케이션 업그레이드하기(단일 계정)

    • 버전에서 애플리케이션 업그레이드하기(단일 계정)

  4. 애플리케이션 패키지에서 직접 APPLICATION 오브젝트를 만듭니다.

    APPLICATION 오브젝트가 올바르게 작동하는지 확인한 후 버전 또는 스테이지 파일을 지정하지 않고 애플리케이션 패키지에서 APPLICATION 오브젝트를 만들 수 있습니다. 이렇게 하면 기본 릴리스 지시문을 사용하여 APPLICATION 오브젝트가 생성됩니다.

    자세한 내용은 스테이징된 파일을 사용하여 애플리케이션 만들기 섹션을 참조하십시오.

  5. 목록에서 Snowflake Native App 을 설치합니다.

    계정에서 애플리케이션 패키지와 APPLICATION 오브젝트가 모두 올바르게 작동하는지 확인한 후 애플리케이션 패키지를 목록에 추가하고 Snowsight 를 사용하여 설치를 테스트할 수 있습니다.

    자세한 내용은 스테이징된 파일을 사용하여 애플리케이션 만들기 섹션을 참조하십시오.

애플리케이션 만들기

Snowflake Native App Framework 를 사용하면 계정에 직접 APPLICATION 오브젝트를 설치하여 Snowflake Native App 을 테스트한 후 고객과 공유할 수 있습니다. CREATE APPLICATION 명령은 APPLICATION 오브젝트를 만들기 위한 다양한 구문을 지원합니다.

참고

다음 섹션에서는 애플리케이션 패키지와 필수 매니페스트 파일 및 설정 스크립트를 만들었다고 가정합니다.

스테이징된 파일을 사용하여 애플리케이션 만들기

명명된 스테이지에 업로드된 매니페스트 파일과 설정 스크립트를 사용하여 APPLICATION 오브젝트를 만들 수 있습니다. 이를 통해 애플리케이션 패키지에 버전을 추가하지 않고도 이러한 파일의 변경 사항을 테스트할 수 있습니다.

다음 예와 같이 스테이징된 파일을 사용하여 CREATE APPLICATION 명령으로 APPLICATION 오브젝트를 만듭니다.

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING '@hello_snowflake_code.core.hello_snowflake_stage';
Copy

버전 또는 패치 수준에서 애플리케이션 만들기

애플리케이션 패키지에서 버전 또는 패치 수준을 지정한 후 해당 버전 또는 패치 수준을 기반으로 APPLICATION 오브젝트를 만들 수 있습니다.

특정 버전에서 APPLICATION 오브젝트를 만들려면 다음 예와 같이 CREATE APPLICATION 명령을 사용하십시오.

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1_0;
Copy

특정 패치 수준에서 APPLICATION 오브젝트를 만들려면 다음 예와 같이 CREATE APPLICATION 명령을 사용하십시오.

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1_0 PATCH 2;
Copy

릴리스 지시문을 기반으로 애플리케이션 만들기

애플리케이션 패키지에서 릴리스 지시문을 지정한 후 릴리스 지시문을 기반으로 APPLICATION 오브젝트를 만들 수 있습니다. 이는 사용자 지정 릴리스 지시문 또는 기본 릴리스 지시문일 수 있습니다.

릴리스 지시문을 기반으로 애플리케이션 패키지를 만들려면 다음 예와 같이 CREATE APPLICATION 명령을 사용하십시오.

CREATE APPLICATION hello_snowflake_app FROM APPLICATION PACKAGE hello_snowflake_package;
Copy

스테이지를 사용하여 애플리케이션 업그레이드하기

명명된 스테이지에서 파일을 사용하여 APPLICATION 오브젝트를 업그레이드하려면 다음 예와 같이 ALTER APPLICATION 명령을 사용하십시오.

ALTER APPLICATION HelloSnowflake
  UPGRADE USING @CODEDATABASE.CODESCHEMA.AppCodeStage;
Copy

버전 또는 패치에서 애플리케이션 업그레이드하기

특정 버전을 사용하여 만든 APPLICATION 오브젝트를 업그레이드하려면 다음 예와 같이 ALTER APPLICATION 명령을 사용하십시오.

ALTER APPLICATION HelloSnowflake
 UPGRADE USING VERSION "v1_1";
Copy

사용 가능한 APPLICATION 오브젝트 보기

계정에 제공되는 APPLICATION 오브젝트의 목록을 보려면 다음 예와 같이 SHOW APPLICATIONS 명령을 사용하십시오.

SHOW APPLICATIONS
Copy

개발 모드 정보

명명된 스테이지에서 버전을 지정 하거나 애플리케이션 파일을 지정 하여 애플리케이션 패키지에서 APPLICATION 오브젝트를 만들 때 APPLICATION 오브젝트는 개발 모드에 있는 것으로 간주됩니다.

개발 모드를 사용하면 단일 계정 내에서 APPLICATION 오브젝트를 테스트하고 문제를 해결할 수 있습니다. 개발 모드에서는 애플리케이션 패키지의 특정 버전을 기반으로 APPLICATION 오브젝트를 만들고 테스트할 수 있습니다. 스테이지에서 애플리케이션 파일을 사용하여 APPLICATION 오브젝트를 만들고 테스트할 수도 있습니다. 이렇게 하면 설정 스크립트 또는 애플리케이션 논리에 대한 변경 사항을 빠르게 테스트할 수 있습니다.

개발 모드에서는 APPLICATION 오브젝트의 내부 상태를 확인할 수 있는 디버그 모드 를 추가로 제공하는데, 이 모드가 제공되지 않으면 컨슈머가 그 상태를 볼 수 없을 것입니다.

예를 들어 개발 모드에서는 APPLICATION 오브젝트 내의 오브젝트에 대해 SHOW 또는 DESC 명령을 실행하면 컨슈머에게 보기 권한이 부여된 오브젝트만 표시됩니다. 하지만 DEBUG 모드에서는 APPLICATION 오브젝트 내의 오브젝트를 전부 볼 수 있습니다.

디버그 모드 활성화하기

Snowflake Native App Framework 를 사용하면 디버그 모드에서 APPLICATION 오브젝트를 테스트할 수 있습니다. 디버그 모드를 사용하면 APPLICATION 오브젝트 내의 모든 오브젝트를 보고 수정할 수 있습니다. 컨슈머에게 표시되지 않는 오브젝트(예: 데이터베이스 역할에 부여되지 않은 오브젝트 또는 공유 콘텐츠 오브젝트)를 이 모드에서는 볼 수 있습니다.

디버그 모드에서 APPLICATION 오브젝트를 사용하려면 다음 사항이 필수적입니다.

  • APPLICATION 오브젝트를 개발 모드에서 만들어야 합니다. 즉, 애플리케이션이 스테이지의 특정 버전 또는 파일을 기반으로 해야 합니다.

  • APPLICATION 오브젝트에서 디버그 모드를 명시적으로 설정해야 합니다.

참고

애플리케이션 패키지를 포함하는 동일한 계정 내에서 개발 모드에서 만든 APPLICATION 오브젝트에 대해서만 디버그 모드를 활성화 및 비활성화할 수 있습니다.

APPLICATION 오브젝트에서 디버그 모드를 활성화하려면 다음 예와 같이 ALTER APPLICATION 명령을 사용하십시오.

ALTER APPLICATION hello_snowflake_app SET DEBUG_MODE = TRUE;
Copy

이 명령은 hello_snowflake_app 이라는 APPLICATION 오브젝트의 디버그 모드를 활성화합니다. 마찬가지로, 디버그 모드를 비활성화하려면 다음 예와 동일한 명령을 사용하십시오.

ALTER APPLICATION hello_snowflake_app SET DEBUG_MODE = FALSE;
Copy

이 명령은 hello_snowflake_app 이라는 APPLICATION 오브젝트의 디버그 모드를 비활성화합니다.

참고

이 명령을 실행하려면 APPLICATION 오브젝트에 대한 OWNERSHIP 권한이 있어야 합니다. 또한 애플리케이션 패키지에 대한 DEVELOP 권한도 있어야 합니다.

또한 개발 모드와 애플리케이션 패키지와 동일한 계정에서 APPLICATION 오브젝트를 만들어야 합니다.

애플리케이션을 활성 컨텍스트로 설정하기

APPLICATION 오브젝트를 세션의 현재 활성 컨텍스트로 설정하려면 다음 예와 같이 USE APPLICATION 명령을 실행하십시오.

USE APPlICATION hello_snowflake_app;
Copy

참고

이 명령을 실행하려면 APPLICATION 오브젝트에 대한 USAGE 권한이 자신의 역할에 부여되어 있어야 합니다.

설치된 애플리케이션의 세부 정보 보기

APPLICATION 오브젝트의 세부 정보를 보려면 다음 예와 같이 DESCRIBE APPLICATION 명령을 실행하십시오.

DESC APPLICATION hello_snowflake_app;
Copy

개발 모드 에서는 이 명령으로 앱 데이터베이스 역할을 통해 컨슈머에게 노출되는 스키마만 표시합니다.

디버그 모드 에서는 이 명령으로 인스턴스 및 애플리케이션 패키지의 모든 스키마를 표시합니다.