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

# X ID

> 형식, 순서, ID 인플레이션, JavaScript 클라이언트에서의 안전한 처리 방법을 포함하여 X API의 게시물 및 사용자에 대한 64비트 Snowflake ID를 이해하세요.

X API의 모든 객체 — 게시물, 사용자, 리스트, DM, spaces — 에는 고유 ID가 있습니다. 이러한 ID가 어떻게 작동하는지 이해하면 안정적인 통합을 구축할 수 있습니다.

***

## ID 형식

X ID는 "Snowflake"라는 시스템을 사용해 생성된 **64비트 부호 없는 정수**입니다. 각 ID는 다음을 인코딩합니다:

* **타임스탬프** — 객체가 언제 생성되었는지
* **워커 번호** — 어떤 서버가 ID를 생성했는지
* **시퀀스 번호** — 해당 밀리초 내 순서

이는 ID가 대략 시간순으로 정렬됨을 의미합니다: 더 높은 ID는 일반적으로 더 새로운 객체를 나타냅니다.

<Tip>
  ID는 단일 객체 유형 내에서만이 아니라 X 전체에서 전역적으로 고유합니다.
</Tip>

***

## 문자열 vs. 정수 표현

<Warning>
  **코드에서는 항상 문자열 ID를 사용하세요.** 일부 프로그래밍 언어(예: JavaScript)는 64비트 정수를 정확하게 표현할 수 없습니다.
</Warning>

JavaScript에서 정수는 53비트로 제한됩니다. 이로 인해 큰 ID에서 정밀도가 손실됩니다:

```javascript theme={null}
// This loses precision!
const id = 10765432100123456789;
console.log(id.toString()); // "10765432100123458000" — wrong!

// Use strings instead
const id = "10765432100123456789";
console.log(id); // "10765432100123456789" — correct!
```

### API 버전

| 버전             | ID 형식                                          |
| :------------- | :--------------------------------------------- |
| **X API v2**   | ID가 기본적으로 문자열로 반환됨                             |
| **X API v1.1** | `id`(정수)와 `id_str`(문자열) 모두 반환 — 항상 `id_str` 사용 |

***

## ID 작업

### ID 저장

데이터베이스에 ID를 문자열 또는 64비트 정수로 저장하세요:

| 데이터베이스     | 권장 유형                              |
| :--------- | :--------------------------------- |
| PostgreSQL | `BIGINT` 또는 `TEXT`                 |
| MySQL      | `BIGINT UNSIGNED` 또는 `VARCHAR(20)` |
| MongoDB    | String                             |
| SQLite     | `TEXT` (SQLite 정수는 최대 63비트)        |

### ID 비교

시간순으로 ID를 비교할 때:

```python theme={null}
# Python - safe for 64-bit integers
if int(id1) > int(id2):
    print("id1 is newer")

# JavaScript - compare as strings (lexicographically works for same-length IDs)
# Or use BigInt
if (BigInt(id1) > BigInt(id2)) {
    console.log("id1 is newer");
}
```

***

## 일반적인 ID 유형

| 객체           | 예시 ID                 | 비고                   |
| :----------- | :-------------------- | :------------------- |
| Post (Tweet) | `1234567890123456789` | Tweet ID라고도 함        |
| User         | `2244994945`          | 오래된 계정은 더 짧은 ID를 가짐  |
| List         | `1234567890`          |                      |
| Space        | `1YqGodQbNXDxv`       | 영숫자, Snowflake 형식 아님 |
| DM Event     | `1234567890123456789` |                      |

***

## 관련 리소스

<CardGroup cols={2}>
  <Card title="Data Dictionary" icon="book" href="/x-api/fundamentals/data-dictionary">
    각 객체 유형에 대한 ID 필드를 확인하세요.
  </Card>

  <Card title="Post Lookup" icon="magnifying-glass" href="/x-api/posts/lookup/introduction">
    ID로 게시물을 가져오세요.
  </Card>
</CardGroup>
