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

# v1에서 v2로

> v1.1 statuses/filter 엔드포인트를 사용해 왔다면, 이 가이드가 도움이 될 수 있습니다. migrate를 다루는 X API v2 standard 티어 레퍼런스입니다.

### Standard v1.1과 X API v2 비교

v1.1 [statuses/filter](https://developer.x.com/en/docs/x-api/v1/tweets/filter-realtime/api-reference/post-statuses-filter) 엔드포인트를 사용해 왔다면, 이 가이드가 standard와 X API v2 filtered stream 엔드포인트 간의 공통점과 차이점을 이해하는 데 도움이 됩니다.

* **공통점**
  * 요청 파라미터 및 연산자
  * Post 편집 히스토리 및 메타데이터 지원
* **차이점**
  * 엔드포인트 URL
  * App 및 Project 요구사항
  * 인증 방식
  * 규칙 볼륨 및 지속적인 스트림
  * 응답 데이터 형식
  * 요청 파라미터
  * 복구 및 이중화 기능의 가용성
  * 쿼리 연산자

#### 공통점

**요청 파라미터 및 연산자**

Standard v1.1 statuses/filter 엔드포인트에는 스트림을 필터링하기 위해 요청과 함께 전달할 수 있는 몇 가지 파라미터가 있습니다. v2 filtered stream에서는 boolean 로직으로 연결하여 원하는 게시물을 필터링할 수 있는 [연산자](/x-api/posts/filtered-stream/integrate/operators) 세트를 대신 사용합니다. 사용 가능한 연산자 중 일부는 기존 standard v1.1 파라미터의 직접적 대체입니다.

다음 standard v1.1 요청 파라미터는 X API v2에 동등한 연산자가 있습니다:

| **Standard**                                               | **X API v2**                                                                                                 |
| :--------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------- |
| follow - 스트림으로 게시물이 전달되어야 하는 사용자를 나타내는 쉼표로 구분된 user ID 목록. | 특정 사용자와 관련된 게시물을 찾는 데 도움이 되는 다양한 연산자:<br /><br />\* @<br />\* from:<br />\* to:<br />\* 등                    |
| track - 스트림으로 어떤 게시물이 전달될지 결정하는 데 사용되는 쉼표로 구분된 문구 목록.      | 특정 키워드와 관련된 게시물을 찾는 데 도움이 되는 다양한 연산자:<br /><br />\* keyword<br />\* "exact phrase match"<br />\* #<br />\* 등 |

**Post 편집 히스토리 및 메타데이터 지원**

두 버전 모두 편집 히스토리를 설명하는 메타데이터를 제공합니다. 자세한 내용은 [filtered stream API 레퍼런스](/x-api/posts/filtered-stream/introduction)와 [Post 편집 기본 페이지](/x-api/fundamentals/edit-posts)를 참고하세요.

#### 차이점

**엔드포인트 URL**

* Standard v1.1 엔드포인트:
  * [https://stream.x.com/1.1/statuses/filter.json](https://stream.x.com/1.1/statuses/filter.json)
* X API v2 엔드포인트:
  * [https://api.x.com/2/tweets/search/stream](https://api.x.com/2/tweets/search/stream)
  * [https://api.x.com/2/tweets/search/stream/rule](https://api.x.com/2/tweets/search/stream/rule)

**App 및 Project 요구사항**

X API v2 엔드포인트는 요청 인증 시 [Project](/resources/fundamentals/developer-apps)에 연결된 [developer App](/resources/fundamentals/developer-apps)의 자격 증명을 사용해야 합니다. 모든 X API v1.1 엔드포인트는 App의 자격 증명이나 App에 연결된 App의 자격 증명을 사용할 수 있습니다.

**인증 방식**

Standard 엔드포인트는 [OAuth 1.0a User Context](/resources/fundamentals/authentication)를 지원하지만, X API v2 filtered stream 엔드포인트는 [OAuth 2.0 App-Only](/resources/fundamentals/authentication#oauth-2-0)(Application-only 인증이라고도 함)를 지원합니다. X API v2 버전으로 요청하려면 요청 인증에 App Access Token을 사용해야 합니다.

Developer Console에서 App과 app을 생성했을 때 제공된 App Access Token이 더 이상 없다면, Developer Console의 앱 "Keys and tokens" 페이지로 이동해 새로 생성할 수 있습니다. 프로그래밍 방식으로 App Access Token을 생성하려면 이 [OAuth 2.0 App-Only 가이드](/resources/fundamentals/authentication#app-only-authentication-and-oauth-2-0-bearer-token)를 참고하세요.

**규칙 볼륨 및 지속적인 스트림**

Standard v1.1 엔드포인트는 스트리밍 연결 필터링에 단일 규칙을 지원합니다. 규칙을 변경하려면 스트림 연결을 끊고 수정된 필터링 규칙을 파라미터로 포함한 새 요청을 보내야 합니다.

X API v2 filtered stream 엔드포인트는 단일 스트림에 여러 규칙을 적용할 수 있으며, 스트림 연결을 유지한 상태에서 규칙을 추가하거나 제거할 수 있습니다.

**응답 데이터 형식**

Standard v1.1과 X API v2 엔드포인트 버전의 가장 큰 차이점 중 하나는 페이로드에 반환되는 필드를 선택하는 방식입니다.

Standard 엔드포인트에서는 많은 응답 필드가 기본으로 반환되며, 파라미터를 사용해 페이로드에 반환할 특정 필드 또는 필드 집합을 지정할 수 있습니다.

X API v2 버전은 기본적으로 Post id와 text 필드만 전달합니다. 추가 필드나 객체를 요청하려면 [fields](/x-api/fundamentals/fields) 및 [expansions](/x-api/fundamentals/expansions) 파라미터를 사용해야 합니다. 이 엔드포인트에서 요청한 게시물 필드는 기본 Post 객체에 반환됩니다. 확장된 user, media, poll 또는 place 객체와 필드는 응답 내 includes 객체에 반환됩니다. 그런 다음 Post 객체와 확장된 객체에 있는 ID를 매칭하여 확장된 객체를 Post 객체와 다시 연결할 수 있습니다.

이러한 새 파라미터에 대한 자세한 내용은 각 가이드나 [fields와 expansions 사용법](/x-api/fundamentals/data-dictionary/reference#how-to-use-fields-and-expansions) 가이드에서 확인하시길 권장합니다.

또한 standard v1.1 필드를 새로운 v2 필드에 매핑하는 데 도움이 되는 [데이터 형식 마이그레이션 가이드](/x-api/migrate/data-format-migration#migrating-from-standard-v1-1s-data-format-to-v2)를 준비했습니다. 이 가이드는 특정 필드를 반환하려면 v2 요청과 함께 어떤 expansion 및 field 파라미터를 전달해야 하는지도 안내합니다.

특정 필드를 요청하는 방식의 변화 외에도, X API v2는 Post 및 [user](/x-api/fundamentals/data-dictionary/reference#user) 객체를 포함하여 API가 반환하는 객체에 새로운 JSON 설계를 도입했습니다.

* JSON 루트 레벨에서, standard 엔드포인트는 statuses 배열에 Post 객체를 반환하지만 X API v2는 data 배열을 반환합니다.
* Retweeted 및 Quoted "statuses" 대신, X API v2 JSON은 Retweeted 및 Quoted Tweets라고 표기합니다. contributors, user.translator\_type 등 다수의 레거시 및 폐기 예정 필드가 제거되고 있습니다.
* favorites(Post 객체)와 favourites(user 객체) 두 표현을 모두 사용하는 대신, X API v2는 like라는 용어를 사용합니다.
* X는 값이 없는(예: null) JSON 값을 페이로드에 기록하지 않는 방식을 채택했습니다. Post 및 user 속성은 non-null 값이 있을 때만 포함됩니다.

또한 다음을 포함한 새로운 필드 세트를 [Post 객체](/x-api/fundamentals/data-dictionary/reference#tweet)에 도입했습니다:

* [conversation\_id](/x-api/fundamentals/conversation-id) 필드
* context와 entities를 포함하는 두 개의 새로운 [annotations](/x-api/fundamentals/post-annotations) 필드
* 여러 개의 새로운 [metrics](/x-api/fundamentals/metrics) 필드
* 특정 게시물에 누가 답글을 달 수 있는지 보여주는 새 reply\_setting 필드

**요청 파라미터**

X API v2에서 **지원되지 않는** standard filtered stream 요청 파라미터 집합도 있습니다:

| Standard v1.1 parameter                                                       | Details                                                                                                                                             |
| :---------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |
| locations - 게시물을 필터링할 bounding box 집합을 지정하는 쉼표로 구분된 longitude,latitude 쌍의 목록. | X API v2용 위치 기반 연산자는 아직 출시되지 않았습니다.                                                                                                                 |
| Delimited                                                                     | v1.1 엔드포인트에서 이를 string length로 설정하면, statuses가 스트림에서 구분되어 클라이언트가 상태 메시지의 끝까지 몇 바이트를 읽어야 하는지 알 수 있음을 나타냅니다.<br /><br />이 기능은 X API v2에서는 사용할 수 없습니다. |
| Stall\_warnings                                                               | v1.1 엔드포인트에서 이 파라미터를 true로 설정하면, 클라이언트가 연결이 끊길 위험에 처했을 때 주기적인 메시지가 전달됩니다.<br /><br />X API v2에서는 stall warning이 기본적으로 주기적으로 전송되는 개행 문자와 함께 전송됩니다.   |

**복구 및 이중화 기능의 가용성**

X API v2 버전의 filtered stream은 스트리밍 가동 시간을 극대화하고 5분 이하의 연결 끊김으로 인해 놓쳤을 수 있는 게시물을 복구하는 데 도움이 되는 복구 및 이중화 기능을 도입합니다.

이중 연결(redundant connections)을 사용하면 특정 스트림에 최대 두 번 연결할 수 있어, 하나의 연결이 실패하더라도 스트림 연결을 항상 유지하는 데 도움이 됩니다.

backfill\_minutes 파라미터를 사용해 최대 5분 동안 놓친 데이터를 복구할 수 있습니다.

두 기능 모두 [Academic Research access](/x-api/getting-started/about-x-api)를 통해서만 사용할 수 있습니다. 이 기능에 대한 자세한 내용은 [복구 및 이중화 기능](/x-api/fundamentals/recovery-and-redundancy) 통합 가이드에서 확인하세요.

**새로운 쿼리 연산자**

X API v2는 두 가지 새로운 기능을 지원하기 위해 새로운 연산자를 도입합니다:

* **[Conversation IDs](/x-api/fundamentals/conversation-id)** - X에서 대화가 전개될 때 대화의 일부인 게시물을 표시할 수 있는 conversation ID가 제공됩니다. 대화 내 모든 게시물은 conversation\_id가 대화를 시작한 게시물의 Post ID로 설정됩니다.
  * conversation\_id:
* \*\*[X Annotations](/x-api/fundamentals/post-annotations)\*\*는 게시물에 대한 컨텍스트 정보를 제공하며 entity 및 context annotation을 포함합니다. Entity는 사람, 장소, 제품, 조직으로 구성됩니다. Context는 표면화된 entity가 속한 도메인 또는 주제입니다. 예를 들어 게시물에 언급된 사람들은 운동선수, 배우 또는 정치인 여부를 나타내는 context를 가질 수 있습니다.
  * context: - 관심 있는 context가 주석 처리된 게시물에 매칭.
  * entity: - 관심 있는 entity가 주석 처리된 게시물에 매칭.

***

## 코드 예시

### filtered stream에 규칙 추가 (v2)

**Standard v1.1과 v2 예시**

전체 마이그레이션 예시는 공식 X API 문서를 참조하세요.
