> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 쓰기 전 로그

> 쓰기 전 로그로 W&B Weave 트레이스 데이터 캡처의 복원력 향상

쓰기 전 로그(WAL)는 API 요청을 서버로 전송하기 전에 디스크에 저장합니다. 기본적으로 클라이언트는 요청을 메모리에 버퍼링하므로, 프로세스가 예기치 않게 종료되면 버퍼링된 데이터가 손실됩니다. Weave의 WAL은 요청을 전송하기 전에 디스크에 먼저 기록하여 이 문제를 해결합니다.

WAL을 활성화하면 클라이언트는 각 API 요청을 먼저 로컬 JSONL 파일에 기록한 다음, 이 파일을 서버로 플러시합니다. 프로세스에 크래시가 발생하거나 서버에 연결할 수 없더라도 데이터는 디스크에 그대로 남아 있으며, 클라이언트가 다시 실행되면 Weave가 자동으로 전송합니다.

WAL은 프로세스가 중단될 수 있거나 서버를 일시적으로 사용할 수 없는 환경에서 특히 유용합니다.

* **컨테이너 오케스트레이션**: 백그라운드 스레드가 트레이스 업로드를 마치기 전에 파드가 축출되거나 OOM으로 강제 종료될 수 있는 경우
* **분산 트레이닝**: 여러 프로세스가 병렬로 트레이스를 기록하고, 그중 어느 프로세스든 실패할 수 있는 경우
* **불안정한 네트워크**: Weave 서버와의 연결이 간헐적으로 끊기는 환경
* **배치 작업**: 크래시로 트레이스 데이터가 손실되면 피해가 큰 장기 실행 작업

서버리스 함수처럼 수명이 짧은 환경에서는 프로세스가 종료되기 전에 `weave.flush()` 또는 `weave.finish()`를 호출하여 모든 데이터가 업로드되도록 하는 것도 고려하세요. 자세한 내용은 [워커 프로세스의 트레이스 데이터 손실](/ko/support/weave/articles/trace-data-loss-in-worker-processes)을 참조하세요.

<Note>
  쓰기 전 로그는 옵트인 방식입니다. 향후 릴리스에서는 기본적으로 활성화될 예정입니다.
</Note>

<h2 id="enable-the-write-ahead-log">
  쓰기 전 로그 활성화
</h2>

Weave 클라이언트에서 WAL을 활성화하려면 `WEAVE_ENABLE_WAL` 환경 변수를 `true`로 설정하세요.

```bash theme={"system"}
export WEAVE_ENABLE_WAL=true
```

`weave.init()`을 호출하기 전에 Python 코드에서 설정할 수도 있습니다.

```python theme={"system"}
import os
os.environ["WEAVE_ENABLE_WAL"] = "true"
```

그 밖에 코드를 변경할 필요는 없습니다. WAL은 기존 Weave 트레이싱 코드와 별도 수정 없이 그대로 함께 작동합니다.

<h2 id="how-it-works">
  작동 방식
</h2>

WAL을 활성화하면 다음과 같이 동작합니다.

1. Weave는 Weave API에 대한 각 호출(객체 생성, call 시작, call 종료 등)을 메모리에만 보관하지 않고 디스크의 JSONL 파일에 추가합니다.
2. 각 프로세스는 자체 로그 파일에 기록하므로 병렬 프로세스 간에 충돌이 발생하지 않습니다.
3. 백그라운드 전송기가 로그 파일을 읽어 그 내용을 Weave 서버로 플러시합니다.
4. 데이터 전송이 완료되면 Weave는 해당 로그 파일을 삭제합니다.

로그 파일은 작업 디렉터리 내의 `.weave/wal/`에 entity 및 프로젝트별로 정리되어 저장됩니다. 각 파일에는 원시 API 요청이 한 줄에 하나씩 JSON 객체 형태로 저장됩니다.

클라이언트는 시작할 때 이전 실행에서 남은 로그 파일이 있는지 확인합니다. 로그 파일이 있으면 전송기가 새 데이터와 함께 이를 플러시합니다. 따라서 프로세스가 크래시되더라도 다음에 클라이언트를 실행하면 Weave가 해당 프로세스에서 기록한 데이터를 자동으로 복구합니다.

<h2 id="environment-variables">
  환경 변수
</h2>

다음 환경 변수로 WAL 동작을 제어할 수 있습니다.

| 변수 | 유형 | 기본값 | 설명 |
| - | - | - | - |
| `WEAVE_ENABLE_WAL` | `bool` | `false` | 쓰기 전 로그를 활성화합니다. `true`로 설정하면 Weave는 API 요청을 서버로 보내기 전에 로컬 디스크에 먼저 기록합니다. |
| `WEAVE_DISABLE_WAL_SENDER` | `bool` | `false` | WAL 전송기를 비활성화합니다. `true`로 설정하면 Weave는 요청을 로컬 디스크에 기록하지만 서버로 플러시하지는 않습니다. 디버깅할 때 유용합니다. |

Weave에서 사용 가능한 전체 환경 변수 목록은 [환경 변수](/ko/products/wandb/weave/guides/core-types/env-vars) 레퍼런스 페이지를 참조하세요.


## Related topics

- [서버 응답 캐싱](/ko/products/wandb/weave/guides/platform/server-caching.md)
