작업 공간¶
중요
2025년 9월부터 Snowflake는 계정을 워크시트에서 작업 공간으로 점진적으로 업그레이드합니다. 작업 공간이 기본 SQL 편집기가 됩니다. 자세한 내용은 워크시트에서 작업 공간으로 계정 기본 설정하기 섹션을 참조하십시오.
개요¶
Workspaces는 데이터 분석, 모델 개발, 데이터 파이프라인 구축에 사용할 수 있는 여러 데이터 타입의 코드를 생성, 조직 및 관리할 수 있는 통합 편집기를 제공합니다.
워크스페이스 는 비공개이며 작업을 빌드, 실험 및 테스트할 수 있는 개발 환경을 제공합니다. 워크스페이스의 모든 내용은 파일 기반이므로 더 복잡한 프로젝트에서 작업하고 버전 관리, 협업 및 기존 워크플로와의 조정을 위해 Git과 쉽게 통합할 수 있습니다.
사용자가 처음으로 워크스페이스에 액세스하면 Snowflake는 내부의 사용자별 데이터베이스(이전에는 개인 데이터베이스)를 자동으로 생성합니다. 이 데이터베이스는 워크스페이스를 저장하는 데만 사용되며 테이블이나 뷰와 같은 표준 오브젝트를 포함할 수 없습니다. 사용자에게 워크스페이스 기능을 활성화하는 것 외에 어떠한 추가 기능이나 권한도 부여하지 않습니다.
관리자는 사용자가 이 데이터베이스에 대해 OWNERSHIP, USAGE, CREATE SCHEMA 권한이 있는 것으로 표시되는 것을 확인할 수 있습니다. 이러한 권한은 워크스페이스와 상호 작용하는 데 필요한 필수이며 다른 리소스에 대한 액세스에는 영향을 미치지 않습니다.
워크스페이스 환경¶
워크스페이스은 6개의 섹션 또는 창 으로 구성된 새로운 편집기입니다.
워크스페이스: 모든 파일과 폴더를 위한 1개의 공간. 파일을 드래그하여 폴더 간에 이동합니다. 중첩 폴더를 사용해 논리적인 카테고리 아래 관련 워크시트를 그룹화하면 평면적인 목록을 검색하지 않고도 특정 워크시트를 빠르게 찾을 수 있습니다. 각 사용자는 “내 워크스페이스”라는 기본 워크스페이스가 있으며, 이 워크스페이스는 Snowflake에 의해 자동으로 프로비저닝됩니다. Workspaces 메뉴에서 + Add New 를 선택하여 새 워크스페이스를 생성할 수도 있습니다. 기본 워크스페이스은 삭제하거나 이름을 변경할 수 없습니다.
워크시트: 소유하고 있거나 권한이 있는 워크시트를 열고 편집합니다. 워크시트에 대한 편집 권한만 있는 경우에는 편집 내용이 저장되지 않습니다. 워크시트를 워크스페이스의 파일로 변환하려면 워크시트를 워크스페이스 내의 폴더로 끌어서 놓습니다. 워크스페이스 쿼리는 몇 가지 작은 차이점(UI 성능 향상 및 동일한 SQL 파일에서 2개의 쿼리를 동시에 실행하는 기능 등)을 제외하고 워크시트와 유사하게 실행됩니다.
데이터베이스 탐색기: 계정의 모든 데이터베이스, 각 데이터베이스의 스키마, 기타 오브젝트에 대한 계층적 뷰로, 유형별로 구성됩니다. 필터를 사용하여 오브젝트를 검색할 수 있습니다. Show databases I can query`를 선택해 사용할 수 없는 오브젝트를 필터링하여 뷰를 단순화할 수도 있습니다. 세로 줄임표 |vertical-ellipsis|(추가 작업) 버튼에서 사용할 수 있는 옵션은 오브젝트 유형에 따라 다르지만, 편집기에서 이름을 배치하거나, 이름을 복사하거나, 정의를 보는 등의 기능을 포함하고 있습니다. :ui:`Database Explorer 또는 File Explorer`를 열거나 닫으려면 작업 공간 윈도우의 하단 도구 모음에서 :ui:`File Explorer 아이콘 |file-explorer-open-close|을 선택합니다.
편집기: 쿼리를 편집하고 나란히 분할하여 여러 파일을 동시에 볼 수 있습니다. 인라인 코파일럿을 사용하면 편집기 작업 영역 내에서 바로 제안 및 완성 기능을 이용할 수 있습니다.
결과: 결과를 나란히 분할하거나 고정하여 쉽게 비교할 수 있습니다.
쿼리 기록: 실행한 모든 쿼리의 기록을 봅니다. Current File`은 현재 열려 있고 편집기에서 선택한 파일의 과거 쿼리를 보여줍니다. 현재 파일 또는 모든 파일로 필터링합니다. :ui:`All Files`는 모든 파일에서 실행한 모든 과거 쿼리를 표시합니다. 이 뷰를 열거나 닫으려면 작업 공간 윈도우의 하단 도구 모음에서 :ui:`Query History 아이콘 |query-history-open-close|를 선택하세요.
파일 및 폴더 생성하기 및 작업하기¶
워크스페이스에서 익숙한 IDE 및 소스 제어 규칙을 사용하여 코드를 승인, 조직 및 실행할 수 있습니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Projects » Workspaces 를 선택합니다.
해당 폴더 옆의 + 를 선택합니다. 워크스페이스를 처음 사용하는 경우 + Add New 를 선택합니다.
다음 옵션 중에서 선택하여 새 파일 또는 폴더를 생성하거나 기존 파일 또는 폴더를 업로드합니다.
SQL File: 편집기에 빈 SQL 파일을 편집기의 탭으로 새로 생성합니다. 기본적으로
.sql은 이름 없는 파일에 추가됩니다. 편집기는 이를 SQL 파일로 인식하고 구문 강조 표시 및 자동 완성 기능을 활성화합니다.File: 새 파일을 생성합니다. 파일 이름과 확장자 이름을 지정합니다. 확장자이 편집기에서 인식되는 경우(예: Java, JavaScript 또는 Scala) 코드 강조 표시 및 자동 완성 기능이 활성화됩니다.
Folder: 워크스페이스 내에 새 빈 폴더를 생성합니다.
Upload Files: 워크스페이스의 원하는 위치에 1개 이상의 파일을 업로드하십시오. 편집기는 파일 확장자을 사용하며 파일을 열 때 적절한 아이콘, 동작 및 구문 강조 표시를 적용합니다. 예를 들어,
.sql파일은 SQL 특정 기능을 표시합니다.Upload Folder: 선택한 워크스페이스에 추가할 파일 또는 폴더를 1개 이상 선택합니다.
파일 관리하기¶
워크스페이스, 파일, 폴더의 이름을 바꾸고, 삭제하고, 옮기고, 조직화할 수 있습니다.
워크스페이스, 파일 또는 폴더의 이름을 바꾸거나 삭제하려면 다음과 같이 하십시오.
워크스페이스에 폴더를 생성하려면 워크스페이스 옆의 + 또는 기존 폴더를 선택합니다.
파일과 폴더를 조직하려면 파일이나 폴더를 같은 워크스페이스의 다른 위치로 끌어서 놓습니다. 워크시트를 워크스페이스으로 끌어서 놓을 수도 있습니다.
1개의 레이아웃에서 여러 파일 또는 결과 보기¶
탭과 분할 창으로 여러 파일을 관리하면 여러 가지 장점이 있습니다.
코드 또는 결과를 나란히 비교하십시오. 다른 워크시트에서 작업하는 동안 한 워크시트 쿼리를 빠르게 참조할 수 있습니다.
더 효율적으로 멀티태스킹하십시오. 변환을 줄이면서 여러 셀, 출력 또는 파일을 한 번에 볼 수 있습니다.
워크스페이스 레이아웃을 조정하려면 Workspaces 창에서 세로 줄임표
(추가 작업)를 선택하고 적절한 옵션을 선택합니다.
Split right
Split down
Close others
Git 리포지토리와 통합하기¶
작업 영역은 Snowflake에 로컬로 설정하거나 개발 중인 작업 영역을 Git 리포지토리의 분기와 동기화할 수 있습니다. 워크스페이스에서는 가능합니다.
새 분기 생성하기, 분기 변환 또는 원격 분기 가져오기 .
Git 리포지토리의 최신 변경 내용을 워크스페이스로 가져옵니다.
업데이트된 파일 을 커밋하고 Git 리포지토리에 다시 푸시하십시오.
워크스페이스에서 직접 충돌을 확인하고 해결 하십시오.
Git 워크스페이스 생성하기¶
Snowsight 에서 직접 파일을 개발하고 관리하기 위해 Git 리포지토리에 연결된 워크스페이스을 생성할 수 있습니다.
참고
Git 리포지토리에는 하나 이상의 분기가 포함되어야 합니다. 빈 리포지토리는 지원되지 않습니다.
Git 동기화된 새 워크스페이스를 생성하려면 다음과 같이 하십시오.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Projects » Workspaces 를 선택합니다.
Workspaces 메뉴에서 From Git repository 를 선택합니다.
Git 리포지토리(예:
https://www.github.com/my-user/my-repo-name)에서 URL 복사본을 복사한 다음 Repository URL 필드에 붙여넣습니다.선택 사항입니다. 새 Git 동기화 워크스페이스의 이름을 바꿉니다.
API Integration 메뉴에서 API 통합을 선택합니다.
API 통합은 계정 관리자가 생성하며 4단계에서 사용 중인 Git 리포지토리 URL에 대한 액세스를 허용해야 합니다. 자세한 내용은 Git을 사용하기 위해 Snowflake 설정하기 섹션을 참조하세요.
또한 GitHub 를 Git 공급자로 사용하고 인증에 OAuth 를 선호하는 경우 계정 관리자는 API 통합을 생성하여 OAuth 를 지원해야 합니다. 예:
CREATE OR REPLACE API INTEGRATION api_integration_name API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://github.com/') API_USER_AUTHENTICATION = ( TYPE = snowflake_github_app ) ENABLED = TRUE;
API 통합에서 인증 방법을 선택합니다.
OAuth2 - GitHub 리포지토리로 인증하려면 Sign in 을 선택합니다. 로그인한 후에는 이후 세션에서 자격 증명을 제공할 필요가 없습니다. PrivateLink 환경에서는 OAuth2 를 사용할 수 없습니다.
Personal access token - 토큰이 포함된 오브젝트가 저장된 데이터베이스와 스키마를 선택합니다. 새 시크릿을 생성하려면 + Secret 을 선택하고 필수 권한을 입력합니다. API 통합은 이 시크릿 또는 모든 시크릿에 대한 액세스를 허용하도록 구성해야 합니다.
Public repository - 인증이 필요 없는 공개 리포지토리를 사용하는 경우 이 옵션을 선택합니다. 워크스페이스에서 이 공개 리포지토리로 변경 내용을 커밋하거나 푸시할 수 없습니다.
Create 를 선택합니다.
새 분기 생성하기¶
현재 분기에서 새 분기를 생성해 독립적으로 변경 작업을 할 수 있습니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Projects » Workspaces 를 선택합니다.
Changes 탭을 선택합니다.
리포지토리 드롭다운을 선택합니다.
+ New 를 선택합니다.
새 분기 이름을 지정한 다음 Create 를 선택합니다.
다른 지점으로 변환¶
저장했지만 커밋하지 않은 변경 내용이 있는 경우 분기를 변환하기 전에 해당 변경 내용을 처리하는 방법을 선택해야 합니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Projects » Workspaces 를 선택합니다.
Git 워크스페이스 뷰에서 Changes 를 선택합니다.
분기 메뉴에서 변환하려는 분기를 선택합니다.
팁: 목록을 필터링하려면 분기 이름을 입력하십시오.
원격 분기 가져오기¶
Snowsight 외부에서 새 분기를 만든 경우(예: Git 공급자에서 만든 분기) Fetch All 옵션을 사용하여 Git 동기화 작업 영역으로 가져올 수 있습니다. 그러면 사용 가능한 원격 지점 목록이 업데이트됩니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Projects » Workspaces 를 선택합니다.
Git 워크스페이스 뷰에서 Changes 를 선택합니다.
Pull 메뉴 옆의 아래쪽 화살표를 선택한 다음 Fetch All 을 선택합니다. 가져오기가 완료되면 새로 생성된 원격 분기가 분기 목록에 나타나고 체크아웃에 사용할 수 있습니다.
업데이트된 파일 보기¶
마지막으로 커밋 및 푸시에 성공한 이후 추가, 삭제 또는 수정된 모든 파일을 뷰로 볼 수 있습니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Projects » Workspaces 를 선택합니다.
폴더 뷰 상단에서 Changes 를 선택합니다. 수정된 파일은 M, 추가된 파일은 A, 삭제된 파일은 D 로 표시됩니다 .
편집기에서 변경 사항의 시각적 차이를 보려면 파일을 선택합니다.
업데이트 커밋 및 푸시¶
변경 내용을 검토한 후에는 워크스페이스 내에서 원격 Git 리포지토리에 커밋하고 푸시할 수 있습니다.
업데이트된 파일을 원격 Git 리포지토리에 커밋하고 푸시합니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Projects » Workspaces 를 선택합니다.
폴더 뷰 상단에서 Changes 를 선택합니다.
Commit message 필드에 커밋 메시지를 작성합니다.
Push 을 선택합니다.
커밋 메시지를 작성하고 Push 를 선택하여 업데이트를 Git 리포지토리에 푸시합니다.
참고
충돌이 감지되면 먼저 끌어오라는 메시지가 표시됩니다. Pull 을 선택하여 충돌이 있는 파일 목록을 검토합니다.
충돌 보기 및 해결하기¶
푸시 중에 충돌이 발생하면 다시 커밋하기 전에 워크스페이스에서 직접 충돌을 확인하고 해결할 수 있습니다.
워크스페이스의 폴더 뷰 상단에서 Changes 를 선택합니다. 1개 이상의 파일에 충돌이 있는 경우 뷰 상단에 메시지가 표시됩니다. 충돌이 있는 파일은 빨간색 M 으로 표시됩니다.
편집기에서 충돌의 시각적 차이를 보려면 파일을 선택합니다. File with conflicts 에서 차이점은 인라인으로 강조 표시되어 있습니다.
현재 변경 사항, 수신되는 변경 사항 또는 두 가지 변경 사항을 모두 수락합니다. 병합 결과가 표시됩니다.
Diff View 에서 현재 버전과 원격 버전을 나란히 볼 수 있습니다.
Accept all current 또는 Accept all remote 를 선택합니다.
충돌을 해결한 후 Push 를 선택합니다.
커밋 메시지를 작성합니다.
Push 을 선택합니다.
바로 가기 키¶
워크시트는 키보드 단축키를 제공하여 빠르게 탐색하고, 뷰를 사용자 지정하고, 쿼리를 편집할 수 있도록 도와줍니다. 다음 테이블에는 일반적으로 사용되는 키보드 단축키가 식별되어 있습니다.
작업 |
MacOS 바로 가기 |
Windows 바로 가기 |
|---|---|---|
선택한 항목 실행 |
command + return |
CTRL + Enter |
모두 실행 |
command + shift + return |
CTRL + Alt + Enter |
창을 가로로 분할 |
control + \ |
CTRL + \ |
창을 세로로 분할 |
control + shift + \ |
CTRL + Shift + \ |
초점이 맞춰진 탭 닫기 |
control + W |
CTRL + W |
선택한 파일 복사 |
command + C |
CTRL + C |
선택한 파일 잘라내기 |
command + X |
CTRL + X |
선택한 위치에 파일 붙여넣기 |
command + V |
CTRL + V |
쿼리 결과 창 열기 |
control + option + ↑ |
CTRL + Alt + ↑ |
쿼리 결과 창 닫기 |
control + option + ↓ |
CTRL + Alt + ↓ |
인라인 Copilot 열기 |
command + I |
CTRL + I |
코드 주석 처리 |
command + / |
CTRL + / |
파일 맨 위로 이동 |
command + home 또는 command + ↑ |
CTRL + home 또는 CTRL + ↑ |
파일 맨 아래로 이동 |
command + end 또는 command + ↓ |
CTRL + end 또는 CTRL + ↓ |
액세스 및 동작 관리¶
작업 공간으로의 전환을 관리할 수 있는 컨트롤을 통해 관리자는 관리형 롤아웃을 위한 여러 가지 옵션을 선택할 수 있습니다. SQL 쿼리의 기본 편집기를 설정하고, 작업 공간 기능을 비활성화하고, 기존 보안 정책과의 잠재적인 충돌을 해결할 수 있습니다.
기본 편집기 설정 또는 되돌리기¶
계정 전체 기본 편집기를 모든 사용자의 작업 공간으로 설정하려면 다음을 수행합니다.
ALTER ACCOUNT SET USE_WORKSPACES_FOR_SQL = 'always';
이 설정을 되돌리고 이전 기본 편집기를 사용하되, 작업 공간을 기본 편집기로 설정하는 모든 Snowflake 관리형 BCR을 유지하려면 다음을 수행합니다.
ALTER ACCOUNT UNSET USE_WORKSPACES_FOR_SQL;
이전 편집기로 되돌리고 작업 공간을 기본 편집기로 설정하는 모든 Snowflake 관리형 BCR을 일시적으로 무시하려면 다음을 수행합니다.
ALTER ACCOUNT SET USE_WORKSPACES_FOR_SQL = 'never';
참고
작업 공간은 결국 사용 중단되며 위의 명령은 더 이상 작동하지 않습니다. 이전에 이 매개 변수를 설정한 경우 워크시트가 사용 중단되면 자동으로 지워집니다. Snowflake는 사용 중단 날짜가 제공되면 사전에 공지합니다. 자세한 내용은 워크시트에서 작업 공간으로 계정 기본 설정하기 섹션을 참조하십시오.
작업 공간 비활성화¶
워크스페이스를 비활성화하려면 ENABLE_PERSONAL_DATABASE 계정 수준 매개 변수를 FALSE 로 설정합니다.
ALTER ACCOUNT SET ENABLE_PERSONAL_DATABASE = FALSE;
이 매개 변수를 사용하려면 ACCOUNTADMIN 권한이 필요합니다. FALSE 로 설정한 후에는 워크스페이스가 함수 함수를 수행하지 않지만 Snowsight 탐색 메뉴에는 워크스페이스가 계속 목록에 표시됩니다.
보조 역할을 워크스페이스에 사용하도록 설정할 필요는 없지만, 보조 역할을 명시적으로 차단하는 세션 정책이 있는 경우 현재 제한으로 인해 세션 정책이 제거될 때까지 워크스페이스가 함수할 수 없습니다.
삭제된 사용자의 작업 공간 복구¶
사용자가 삭제되더라도 PDB(개인 데이터베이스) 및 해당 작업 공간 내의 모든 파일은 유지됩니다. 그런 다음, PDB의 이름이 :code:`DROPPED_USER$<dropped_user_name>_<timestamp>`로 바뀝니다.
참고
작업 공간의 복구는 DROP 명령을 실행한 개인에게만 국한되지 않습니다. PDB는 명령을 시작한 역할에 해당 소유권을 유지하므로 동일한 역할을 가진 모든 사용자는 작업 공간을 복구할 수 있습니다.
삭제된 사용자의 PDB에서 작업 공간을 복구하려면 다음 단계를 따릅니다.
삭제된 사용자의 PDB를 찾습니다. LIKE 함수와 함께 SHOW DATABASES 명령을 사용하여 특정 데이터베이스를 찾습니다.
SHOW DATABASES LIKE 'dropped_user%';
PDB에서 작업 공간을 확인합니다. SHOW WORKSPACES IN DATABASE 명령을 사용하여 사용 가능한 작업 공간을 나열합니다.
SHOW WORKSPACES IN DATABASE DROPPED_USER$dropped_user_1754344912;
복구된 작업 공간에서 새 작업 공간을 만듭니다. CREATE WORKSPACE … FROM 명령을 사용하여 복구된 작업 공간에서 새 작업 공간을 만듭니다.
그러면 콘텐츠가 새 위치에 복사되어 액세스할 수 있게 됩니다.
참고
USER$ 한정자를 사용하여 작업 공간을 자신의 개인 데이터베이스에 넣어야 합니다. 그렇지 않으면 오류가 발생합니다. 데이터베이스 이름 끝에 있는 타임스탬프는 각기 다릅니다.
FROM 'snow://workspace/DROPPED_USER$dropped_user_1754344912.PUBLIC."to_be_recovered"/versions/head';
제한 사항¶
워크스페이스는 공유를 지원하지 않습니다.
:doc:`쿼리 필터</user-guide/ui-snowsight-filters>`는 지원되지 않습니다. 필터가 포함된 모든 쿼리는 실패합니다.
워크스페이스 파일은 Universal Search 결과에 포함되지 않습니다.
새 워크스페이스 UI 와 이전 워크시트 UI 에서 동일한 워크시트를 동시에 열고 편집하면 변경 내용이 손실될 수 있습니다.
워크시트의 경우 실행 컨텍스트 설정(역할, 웨어하우스 및 네임스페이스)이 새 워크시트 UI 와 이전 워크시트 UI 간에 동기화되지 않습니다.