Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Code Workspaces 시작과 작업 저장

Code Workspaces는 기반 Code Repository의 브랜치, 병합과 커밋 이력을 사용합니다. JupyterLab 또는 RStudio Workbench로 데이터를 분석하고 코드를 게시할 수 있으며, 커밋한 내용은 코드 뷰어에서 편집기 세션 없이 읽을 수 있습니다.

새 작업공간은 기반 Code Repository와 하나의 자원으로 표현합니다. 기존에 작업공간과 저장소를 별도 자원으로 만든 경우에는 두 자원이 그대로 남습니다. 기존 자원을 공유할 때는 양쪽 권한을 확인해야 합니다.

작업공간 생성

Code Workspaces의 General 탭에서 만들 폴더를 선택합니다. 여기서는 JupyterLab 또는 RStudio Workbench를 만드는 절차를 사용합니다.

기반 저장소의 이름과 위치를 정합니다.

RStudio를 선택하면 라이선스를 정할 수 있으며 대부분 자동 선택됩니다.

프로젝트의 Editor 또는 Owner는 작업공간 설정을 수정할 수 있고 Viewer는 작업공간을 실행할 수 있습니다. 여러 사용자가 참여한다면 모두 기반 저장소에 Viewer 이상 권한이 있어야 합니다. 사용자마다 격리된 세션을 받습니다.

홈 폴더에 만들 수도 있지만 이 위치 때문에 작업공간과 데이터의 사용 범위가 프로젝트로 제한될 수 있습니다. 위치와 데이터 접근 조건을 함께 정합니다.

고급 설정

오른쪽 위 톱니바퀴의 Settings에서 유휴 시간과 자원 프로파일 등을 변경합니다.

설정조건
Auto-shutdown유휴 시간 기본 30분, 설정 최대 6시간
최대 세션 길이24시간
Compute Resources프로젝트 자원 큐의 최대 CPU/메모리 범위. 관리형 프로파일을 사용하면 프로젝트에 가져온 프로파일로 제한
Network Policies관리자가 허용한 경우 외부 API 호출을 위한 정책 선택

자동 종료 뒤 컨테이너가 다시 시작하면 패키지와 데이터의 복원 또는 설치 과정이 필요합니다. 작업의 기준은 저장소에 동기화한 코드와 의존성 선언으로 유지하고, 상태 복원은 아래 체크포인트 조건을 따릅니다. 자원 크기와 유휴 대기 시간은 사용량에 영향을 줍니다.

데이터 가져오기

Data > Add > Read data에서 Foundry 데이터셋, Iceberg 테이블 또는 가상 테이블을 가져옵니다. 데이터 읽기와 쓰기에서 별칭과 형식을 정합니다. 작업공간의 프로젝트 밖에 있는 자원은 프로젝트 참조가 필요하며 사용자의 홈 폴더에 있는 데이터도 이 조건에 포함됩니다.

아직 Foundry에 적재하지 않은 로컬 데이터는 Upload data로 가져옵니다.

일반 Dataset 가져오기에서는 데이터셋 뷰를 입력으로 사용할 수 없습니다. 이 경로가 필요하면 새 데이터셋 또는 기존 데이터셋으로 복사합니다. SQL 조회를 지원하는 데이터셋 뷰는 SQL 읽기로 질의할 수 있습니다. 데이터셋 뷰와 제한 뷰의 읽기 조건은 다른 기능입니다.

패키지 설치

Packages 패널에서 라이브러리를 찾거나 IDE 터미널에서 지원 패키지 관리 명령을 사용합니다.

JupyterLab

Conda 및 PyPI를 지원하며 기본 채널은 conda-forge와 pypi.org입니다. 다른 채널은 기반 저장소에 추가한 뒤 작업공간을 재시작합니다.

Packages에서 패키지를 선택하면 새 JupyterLab 터미널에서 설치 명령을 실행합니다. 직접 설치할 때도 작업공간의 관리형 환경 명령을 사용합니다. 아래 pandas는 설치 방법을 보여 주는 예입니다.

maestro env conda install pandas

PyPI 경로를 선택한다면 다음 명령을 사용합니다. 같은 패키지를 두 방식으로 모두 설치할 필요는 없습니다.

maestro env pip install pandas

관리형 환경은 notebook, 앱과 transform에서 재현할 수 있도록 구성합니다. mamba 또는 pip를 직접 실행하는 설치 경로는 Deprecated 상태입니다.

RStudio

CRAN, Posit Package Manager와 Bioconductor를 지원합니다. 기본으로 Posit Public Package Manager와 Bioconductor에 접근할 수 있습니다. 추가 채널은 기반 저장소에 등록하고 작업공간을 재시작합니다.

인증된 CRAN 채널을 지원하는 renv를 사용합니다. Packages에서 선택하면 RStudio에 붙여 넣을 설치 명령을 생성합니다. CRAN과 Bioconductor의 예는 다음과 같습니다.

renv::install("dplyr")
renv::install("bioc::Biobase")

코드 게시와 브랜치

같은 작업공간의 다른 사용자가 내 코드를 볼 수 있게 하려면 작업 중인 브랜치에 코드를 게시해야 합니다. Source control에서 미게시 변경을 확인하고 필요하면 커밋 메시지를 입력한 뒤 Sync changes를 선택합니다. 접힌 아이콘에는 변경 파일 수가 표시됩니다.

동기화하면 CI가 실행되고 등록한 Code Workspace 앱마다 새 버전을 게시합니다. 독립적인 앱, 분석, transform과 모델 개발을 한 저장소에 과도하게 섞으면 게시가 서로 영향을 주므로 작업공간을 목적에 맞춰 분리합니다.

위쪽 브랜치 선택기에서 기존 브랜치를 선택하거나 Create new branch로 새 브랜치를 만듭니다. 미게시 변경이 있으면 체크아웃 전에 동기화를 요청합니다.

입력 데이터는 현재 브랜치와 설정한 fallback을 기준으로 읽습니다. 출력 데이터셋에 쓰면 현재 브랜치에 기록합니다. master로 병합하려면 Propose changes를 선택하여 PR 미리보기를 엽니다.

transform은 Code Workspaces에서 게시합니다. 기반 저장소는 작업공간 인프라에 맞춘 저장소이므로 거기에서 직접 transform을 게시할 수 없습니다.

공유

오른쪽 위 Share를 사용합니다.

작업공간과 기반 저장소가 별도 자원인 기존 구성에서는 저장소 권한도 공유해야 코드를 볼 수 있습니다. 설정 변경은 프로젝트 Editor/Owner, 작업공간 실행은 Viewer 역할 조건을 따릅니다.

세션 수명과 재시작

처음 여는 사용자는 /home/user/repo에 기반 저장소를 복제한 새 작업공간을 받습니다. 세션은 유휴 시간에 따라 자동 종료되며 최대 24시간 실행합니다. 종료 시 저장한 상태는 유효한 체크포인트가 있으면 같은 사용자가 다음에 열 때 복원합니다.

설정 변경을 반영하려면 Active > Restart workspace를 선택합니다.

작업공간은 수동 재시작 전에 체크포인트를 자동으로 만들고 최신 코드의 동기화를 요청합니다. 수동 재시작은 기본적으로 저장소의 커밋 상태에서 새 세션을 시작하며 이전 체크포인트를 자동 복원하지 않습니다. 이전 데이터, 메모리 변수와 설치 패키지 상태 등이 그대로 남는다고 가정하지 않습니다.

이전 상태를 선택해 복원하려면 Active > Restore checkpoint를 사용합니다. 데이터 체크포인트 복원은 세션을 재시작하고 당시 홈 폴더 상태를 복원합니다.

코드 동기화와 체크포인트

방식저장 범위생성 및 보존
Code sync/home/user/repo의 파일을 기반 저장소에 커밋사용자가 Sync changes 실행. 저장소 이력으로 보존
Data checkpointrepo의 미커밋 변경, libs, envs 및 data기본 10분마다 및 종료 전 생성. 사용자별로 최대 30일
Code checkpointrepo의 코드와 미커밋 변경. 큰 파일과 일반 데이터 확장자 제외종료 전에만 생성. 별도 보존 기한 없음

코드 동기화는 메모리 변수, 환경에 설치된 패키지, 데이터 또는 코드 셀 출력 상태를 보존하지 않습니다. Sync changes가 성공하면 톱니바퀴 > Open code repository에서 커밋과 이력을 볼 수 있습니다.

데이터 체크포인트는 다음 경로를 보관합니다.

  • /home/user/repo: 미커밋 변경을 포함한 저장소 파일
  • /home/user/libs: 설치한 패키지
  • /home/user/envs: Conda 환경
  • /home/user/data: 사용자가 내려받은 추가 데이터
  • RStudio의 메모리 변수: /home/user/repo/.RData

데이터 체크포인트는 다른 사용자와 공유되지 않습니다. 수동 재시작, 수동 중지 또는 자동 종료 전에도 생성합니다. 비활성 작업공간에서는 새로 만들지 않으므로 30일 넘게 사용하지 않은 경우 저장소의 동기화 상태나 코드 체크포인트에서 복구해야 합니다.

Restricted outputs mode에서는 데이터 체크포인트를 끄지만 코드 체크포인트는 유지합니다. 코드 체크포인트의 크기/확장자 필터링은 최선 노력 방식이며 코드에 넣은 실제 데이터까지 제거하는 보장은 아닙니다. 데이터셋 내용을 .py 같은 코드 파일에 넣지 않습니다.

협업과 복구의 기준은 자주 동기화한 코드 및 재현 가능한 의존성 설정으로 유지합니다. 체크포인트는 세션 상태 복구에 사용합니다.

데이터 파일 위치

작업공간은 /home/user/repo/에서 큰 파일과 .csv, .gz, .parquet, .pdf, .xlsx 같은 일반 데이터 파일을 찾아 위치 이동을 안내합니다.

디렉터리용도와 저장 범위
data-checkpoint세션 사이에 복원할 데이터. 체크포인트에 저장하고 시작을 막지 않도록 백그라운드에서 복원. 코드 동기화에서는 제외
data-tmp임시 데이터. 체크포인트나 저장소에 저장하지 않으며 종료 시 폐기

이동할 파일을 선택해 안내에 따라 옮긴 뒤 코드의 파일 경로 접두사도 바꿉니다. 그대로 두면 다음 실행이 repo 안에 데이터를 다시 만들어 경고가 반복됩니다.

게시한 대시보드/transform 또는 다른 사용자에게 제공할 데이터는 작업공간 파일에만 두지 않고 Foundry 데이터셋에 저장합니다.