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

# 스트리밍

TypeScript SDK는 라이브 데이터 피드를 위한 실시간 데이터 스트리밍 기능을 제공합니다.

<div id="basic-streaming">
  ## 기본 스트리밍
</div>

실시간 샘플 포스트에 연결합니다:

<CodeGroup>
  ```typescript stream.ts theme={null} theme={null}
  import { Client } from '@xdevplatform/xdk';

  const client: Client = new Client({ bearerToken: 'your-bearer-token' });

  // 공개 포스트 중 1% 샘플
  const stream = await client.stream.postsSample({
    tweetFields: ['id','text','created_at'],
    expansions: ['author_id'],
    userFields: ['id','username','name']
  });

  // 이벤트 수신
  stream.on('data', (event) => {
    // event는 파싱된 JSON 한 줄입니다 (data/includes/matching_rules)
    console.log('New data:', event);
  });

  stream.on('error', (e) => console.error('Stream error:', e));
  stream.on('close', () => console.log('Stream closed'));
  ```

  ```javascript stream.js theme={null} theme={null}
  import { Client } from '@xdevplatform/xdk';

  const client = new Client({ bearerToken: 'your-bearer-token' });
  const stream = await client.stream.postsSample({ tweetFields: ['id','text'] });

  stream.on('data', (event) => {
    console.log('New data:', event);
  });
  stream.on('error', (e) => console.error('Stream error:', e));
  stream.on('close', () => console.log('Stream closed'));
  ```
</CodeGroup>

<div id="async-iteration">
  ## 비동기 반복
</div>

비동기 반복으로 스트림을 처리합니다:

<CodeGroup>
  ```typescript async.ts theme={null} theme={null}
  const stream = await client.stream.postsSample();
  for await (const event of stream) {
    // 각 event는 파싱된 JSON 한 줄입니다 (data/includes/matching_rules)
    console.log(event);
  }
  ```

  ```javascript async.js theme={null} theme={null}
  const stream = await client.stream.postsSample();
  for await (const event of stream) {
    console.log(event);
  }
  ```
</CodeGroup>

<div id="stream-management">
  ## 스트림 관리
</div>

이벤트 기반 스트림에서의 라이프사이클을 제어합니다:

```typescript theme={null}
// 스트림 닫기
stream.close();

// 자동 재연결(래퍼에서 활성화된 경우)
// 기본 EventDrivenStream은 기본 재연결 훅을 노출합니다
```

<div id="error-handling">
  ## 오류 처리
</div>

스트리밍 errors와 재연결을 처리합니다:

```typescript theme={null}
stream.on('error', (event) => {
  const err = event.error || event;
  console.error('Stream error:', err);
});

stream.on('keepAlive', () => {
  // 하트비트 이벤트
});
```

<Info>
  JavaScript/TypeScript용 XDK를 사용한 상세 코드 예제는 [코드 샘플 GitHub 리포지토리](https://github.com/xdevplatform/samples/tree/main/javascript)에서 확인할 수 있습니다.
</Info>
