피드로 돌아가기
Dev.toBackend
원문 읽기
Fetching X Timelines with API v2 Pay-Per-Use: Cost Breakdown, Caching, and the Gotchas
개발자가 X API v2 Pay-Per-Use 모델로 타임라인 페칭을 구현해 월 2~3달러의 저비용 운영 실현
AI 요약
Context
기존 X(Twitter) 타임라인 표시는 비대한 embed 위젯이거나 월 200달러의 API 요금제에만 선택지가 있었다. 소규모 프로젝트에서 공식 X 타임라인을 경제적으로 제공할 방법이 없었다.
Technical Solution
- 사용자명 조회와 타임라인 페칭을 2단계 프로세스로 분리: Step 1에서 사용자 ID 획득($0.010), Step 2에서 최대 10개 포스트 페칭($0.005/포스트)
- WordPress wp_remote_get() 함수로 Bearer 토큰 기반 App-only OAuth 2.0 인증 구현
- API 응답에서 retweet 처리: expansions 파라미터에 referenced_tweets.id 포함해 원본 포스트를 includes.tweets에서 조회
- WordPress Transients와 Stale-While-Revalidate 패턴 조합: 캐시된 콘텐츠를 즉시 반환하고 백그라운드에서 갱신
- 429 Rate Limit 응답 시 set_transient()로 1시간 쿨다운 설정해 추가 API 호출 차단
Impact
10개 포스트 × 일 3회 갱신 기준 월 최대 $5.40에서 X의 24시간 중복 청구 제외 규칙으로 인해 실제 비용 $2~3/월 달성. 두 번째와 세 번째 일일 갱신에서는 신규 포스트에만 과금되어 저빈도 계정의 추가 비용 거의 없음.
Key Takeaway
Pay-Per-Use 요금제에서는 중복 청구 제외와 SWR 캐싱 패턴을 결합해야 API 비용을 최소화할 수 있으며, retweet 처리 시 expansions 파라미터 활용과 includes 섹션 검색이 필수 구현 요소이다.
실천 포인트
WordPress에서 외부 API 데이터를 다루는 프로젝트에서 WordPress Transients와 Stale-While-Revalidate 패턴을 조합하면 방문자 대기 시간을 제거하면서 API 호출을 최소화할 수 있다. 또한 API 응답의 expansions 파라미터로 관계 데이터를 미리 요청하고 includes 섹션에서 조회하는 구조를 채택하면 추가 API 호출 없이 retweet과 같은 참조 관계를 처리할 수 있다.