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

# Ops와 Call, 트레이스 이해하기

> Ops와 Call, 트레이스가 W&B Weave 트레이싱 시스템의 기반이 되는 방식을 알아보세요.

<div id="ops">
  ## Ops
</div>

**Op**는 버전 관리되고 추적되는 함수입니다. 함수에 `@weave.op()`(Python) 데코레이터를 적용하거나 `weave.op()`(TypeScript)으로 감싸면, Weave가 해당 함수의 코드, 입력, 출력, 실행 메타데이터를 자동으로 캡처합니다. Ops는 트레이싱, evaluation scorer, 그리고 추적되는 모든 계산의 구성 요소입니다.

<CodeGroup>
  ```python Python theme={null}
      @weave.op
      async def my_function(){
        ...  }
  ```

  ```typescript Typescript theme={null}
  function myFunction() {
      ...
  }

  const myFunctionOp = weave.op(myFunction)
  ```
</CodeGroup>

<div id="calls">
  ## Calls
</div>

**Call**은 Op의 로깅된 실행 기록입니다. Op가 실행될 때마다 Weave는 다음을 캡처하는 Call을 생성합니다.

* 입력 인수
* 출력 값
* 타이밍 및 지연 시간
* 부모-자식 관계(중첩된 Call의 경우)
* 발생한 모든 오류

Calls는 Weave UI에서 **Traces**로 표시되며, 디버깅, 분석, 평가를 위한 데이터를 제공합니다. 전체 Call 객체 구조와 속성은 [Call 스키마 레퍼런스](/ko/weave/guides/tracking/call-schema-reference)를 참조하세요.

Calls는 [OpenTelemetry](https://opentelemetry.io) 데이터 모델의 스팬(span)과 유사합니다. Call은 다음과 같은 특성을 가질 수 있습니다.

* Trace에 속할 수 있습니다(같은 실행 컨텍스트에 있는 Call의 집합)
* 부모 및 자식 Calls를 가질 수 있으며, 트리 구조를 형성합니다

<div id="traces">
  ## 트레이스
</div>

트레이스는 동일한 실행 컨텍스트를 공유하는 Call의 전체 트리입니다. 각 트레이스에는 전체 Call 트리를 가져오는 데 사용할 수 있는 ID(`trace_id`)가 포함됩니다. Call의 id만 사용해 Call 정보를 가져오면 지정된 Call에 대한 데이터만 반환되며, 해당 Call의 하위 Call 데이터는 반환되지 않습니다.

<div id="threads">
  ## 스레드
</div>

스레드는 단일 세션 또는 대화와 관련된 트레이스의 컬렉션입니다. 스레드를 사용하면 개별 Call이 아니라 \[전체 대화] 전체를 대상으로 분석하거나 스코어링할 수 있습니다.

다음 다이어그램은 스레드, 트레이스, Call 간의 관계를 보여줍니다:

```
Thread: "session-abc"
  ├── Turn 1 (trace_id: aaa) → user says "Hi"
  │     ├── LLM call
  │     └── format response
  ├── Turn 2 (trace_id: bbb) → user says "What is the capitol of Paris?"
  │     ├── RAG retrieval
  │     ├── LLM call
  │     └── format response
  └── Turn 3 (trace_id: ccc) → user says "Thanks"
        └── LLM call
```
