> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-run-filter-ui-updates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 코드 저장 및 비교

> 코드 저장을 활성화하고, 코드 비교로 여러 W&B run의 코드를 비교하며, Jupyter 세션 이력을 캡처하세요.

이 페이지에서는 코드 저장을 활성화하여 여러 W\&B run에서 사용된 코드를 비교하고 Jupyter 세션에서 실행된 셀을 검토하는 방법을 설명합니다. 코드를 저장하면 실험을 더 쉽게 재현하고 트레이닝 코드의 변경이 결과에 어떤 영향을 미치는지 파악하는 데 도움이 됩니다.

기본적으로 W\&B는 최신 Git 커밋 해시만 저장합니다. UI에서 실험 간 코드를 비교할 수 있도록 추가 코드 기능을 활성화할 수 있습니다.

`wandb` 버전 0.8.28부터 W\&B는 `wandb.init()`를 호출하는 기본 트레이닝 파일의 코드를 저장할 수 있습니다.

<div id="save-library-code">
  ## 라이브러리 코드 저장
</div>

코드 저장을 활성화하면 W\&B는 `wandb.init()`를 호출한 파일의 코드를 저장합니다. 추가 라이브러리 코드를 저장하는 방법은 세 가지입니다.

<div id="call-log_code-after-wandbinit">
  ### `wandb.init` 후 `log_code`를 호출합니다
</div>

`wandb.init()`를 호출한 후 `wandb.Run.log_code(".")`를 호출합니다:

```python theme={null}
import wandb

with wandb.init() as run:
  run.log_code(".")
```

<div id="pass-a-settings-object-with-code_dir">
  ### `code_dir`를 설정한 설정 객체 전달하기
</div>

`code_dir`를 설정한 설정 객체를 `wandb.init()`에 전달하세요:

```python theme={null}
import wandb

wandb.init(settings=wandb.Settings(code_dir="."))
```

현재 디렉터리와 그 아래의 모든 하위 디렉터리에 있는 모든 Python 소스 코드 파일을 [artifact](/ko/models/ref/python/experiments/artifact)로 캡처합니다. W\&B가 저장하는 소스 코드 파일의 유형과 위치를 더 세밀하게 제어하려면 [레퍼런스 문서](/ko/models/ref/python/experiments/run#log_code)를 참조하세요.

<div id="set-code-saving-in-the-ui">
  ### UI에서 코드 저장 설정
</div>

코드로 코드 저장을 설정하는 것 외에도, 팀 또는 조직 수준에서 UI의 기본값을 구성할 수 있습니다. 다음 섹션에서는 팀 수준 및 조직 수준 설정을 설명합니다.

<div id="team">
  #### 팀
</div>

기본적으로 W\&B는 모든 팀에서 코드 저장을 비활성화합니다. 팀에서 이 기능을 켜려면 먼저 조직 관리자가 조직 수준에서 이를 켜야 합니다. [조직](#organization) 섹션을 참조하세요.

팀 관리자는 팀 **Settings** 페이지를 열고 **Privacy** 섹션으로 이동한 다음, 해당 팀의 run에 대해 **Enable code saving by default**를 설정할 수 있습니다. 이 옵션은 조직 관리자가 조직 전체에 코드 저장 제한을 강제 적용하지 않은 경우에만 사용 가능합니다. 내비게이션 단계는 [팀의 개인정보 보호 설정 구성](/ko/platform/hosting/privacy-settings#configure-privacy-settings-for-a-team)을 참조하세요.

<div id="organization">
  #### 조직
</div>

조직 관리자는 조직 **Settings**를 열어 **Privacy** 섹션으로 이동한 다음, **Enforce default code saving restrictions**를 켜서 모든 팀에서 코드 저장이 기본적으로 꺼진 상태로 유지되도록 할 수 있습니다. 이 설정이 강제 적용되는 동안에는 팀 관리자가 팀에 대해 **Enable code saving by default**를 켤 수 없습니다. 조직 제어 기능의 전체 목록은 [모든 팀에 개인정보 보호 설정 강제 적용](/ko/platform/hosting/privacy-settings#enforce-privacy-settings-for-all-teams)을 참조하세요.

<div id="code-comparer">
  ## 코드 비교
</div>

코드 비교 패널은 워크스페이스에서 서로 다른 W\&B run의 코드를 나란히 표시합니다.

서로 다른 W\&B run에서 사용된 코드를 비교합니다:

1. 페이지 오른쪽 상단에 있는 **Add panels** 버튼을 선택합니다.
2. **TEXT AND CODE** 드롭다운을 펼친 후 **Code**를 선택합니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-run-filter-ui-updates/NiSC63JCbbxJ3Isf/images/app_ui/code_comparer.png?fit=max&auto=format&n=NiSC63JCbbxJ3Isf&q=85&s=09d8c40221584e6a4b21395c971a997e" alt="코드 비교 패널" width="887" height="337" data-path="images/app_ui/code_comparer.png" />
</Frame>

<div id="jupyter-session-history">
  ## Jupyter 세션 이력
</div>

W\&B는 Jupyter 노트북 세션에서 실행한 코드의 이력을 저장합니다. Jupyter에서 `wandb.init()`를 호출하면 W\&B가 후크를 추가해 현재 세션에서 실행한 코드 이력이 포함된 Jupyter 노트북을 자동으로 저장합니다.

run에 대해 저장된 노트북 이력을 보려면 다음과 같이 하세요:

1. 코드가 있는 프로젝트 워크스페이스로 이동합니다.
2. 프로젝트 사이드바에서 **Artifacts** 탭을 선택합니다.
3. **code** artifact를 펼칩니다.
4. **Files** 탭을 선택합니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-run-filter-ui-updates/u2rTBovWry-45m2Q/images/app_ui/jupyter_session_history.gif?s=aae185eee59f4864acfe168120d3648f" alt="Jupyter 세션 이력" width="3868" height="2574" data-path="images/app_ui/jupyter_session_history.gif" />
</Frame>

그러면 세션에서 실행된 셀과 IPython의 `display` 메서드를 호출해 생성된 모든 출력이 표시됩니다. 이를 통해 특정 run에서 Jupyter 내에서 정확히 어떤 코드가 실행되었는지 확인할 수 있습니다. 가능하면 W\&B는 노트북의 최신 버전도 저장하며, 이 파일은 code 디렉터리에서도 찾을 수 있습니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-run-filter-ui-updates/u2rTBovWry-45m2Q/images/app_ui/jupyter_session_history_display.png?fit=max&auto=format&n=u2rTBovWry-45m2Q&q=85&s=dd2c256d499646ec7b6df4e83408977b" alt="Jupyter 세션 출력" width="3826" height="1840" data-path="images/app_ui/jupyter_session_history_display.png" />
</Frame>
