나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-08-17 14:43:18

2023년 7월 트위터 API 사용 제한 사태/경과

파일:상위 문서 아이콘.svg   상위 문서: 2023년 7월 트위터 API 사용 제한 사태
1. 개요2. 과정 요약
2.1. 7월 1일2.2. 7월 2일2.3. 7월 3일2.4. 7월 4일2.5. 7월 6일2.6. 7월 7일2.7. 7월 8일2.8. 7월 10일2.9. 7월 12일2.10. 7월 13일2.11. 7월 15일2.12. 7월 16일2.13. 7월 17일2.14. 7월 20일2.15. 7월 21일2.16. 7월 22일2.17. 7월 23일2.18. 7월 24일2.19. 8월 1일2.20. 8월 3일2.21. 8월 13일2.22. 8월 15일2.23. 8월 19일 (추정)2.24. 8월 24일2.25. 9월 19일2.26. 9월 26일2.27. 12월 21일

1. 개요

2023년 7월 트위터 API 사용 제한 사태의 경과를 모아 둔 문서.

2. 과정 요약

2.1. 7월 1일

서버 문제가 처음으로 대두된 시점으로, 오후 9시경부터 슬슬 타임라인 갱신이 안 되는 계정이 늘어나더니 11시경부터는 웹 사이트 모두 API 사용제한 초과로 인해 거의 모든 기능이 정지되는 오류가 발생했다. 그나마 되던 계정들도 글 쓰는 등의 활동을 몇 번 시도하면 API 초과 현상이 나타났다.

2.2. 7월 2일

7월 2일 오전 2시경 일론 머스크가 이에 대한 트윗을 올렸다.
지나친 수준의 데이터 스크레이핑[1] 및 시스템 조작을 해결하기 위해 다음과 같은 임시적인 제한을 적용했습니다.
인증된 계정[2]은 하루에 6000개의 게시글만
미확인 계정은 하루 600개의 게시글만
새로운 미확인 계정은 300개의 게시글만 조회 할 수 있습니다.
#인스티즈
이 때문에 오류가 아니라 ChatGPT발 크롤링 운운은 핑계고 트위터 블루 구독을 유도하려고 고의로 터트린 게 아니냐는 의혹이 제기되기도 했는데 무언가의 서버 공격이 있어서 트위터가 한나절 단위로 먹통이 되는 사태[3]까지는 너그럽게 봐서 있을 수 있다고 쳐도 이것에 대응한답시고 시스템을 손보거나 문제에 대응하는 인력 투입을 하는 게 아니라 돈 내고 구독하면 일단 해결될 거라는 식으로 이용자에게 부담을 일임하는 조치의 방향성에서 너무나도 장삿속이 느껴지기 때문이다. 당장 트윗을 보기 위한 첫 구독을 유도하기 위해 꾸며낸 사태일 수 있다는 것이다.[4]

오전 3시 45분 경 제한이 인증 계정은 하루 8000개, 비인증 계정은 하루 800개, 신규 비인증 계정은 하루 400개로 완화되었다.# 기사

오전 6시 50분 경 제한이 인증 계정은 하루 10,000개, 비인증 계정은 하루 1000개, 신규 비인증 계정은 하루 500개로 추가 완화되었다.#

오전 10시경 API 문제는 전혀 해결되지 않았고 심지어 작성한 트윗이 전송 오류로 등록되지 않는 문제가 터지고 말았으며 그것도 모자라 일반 트윗뿐만 아니라 DM이나 댓글조차 이런 현상이 발생하는 바람에 아예 글을 쓸 수가 없어 불편해하는 상황까지 속출했으며 좋아요까지 반영되지 않는 사태까지 벌어졌다. 좋아요를 눌러도 도로 초기화되며 없었던 것 취급되는 것이다. 물론 후자는 이전에도 발생한 적이 있었음에도 그동안 본인이 좋아요를 누른 것이 리스트에 남아 있지만 이 사태에서는 아예 리스트에조차 기록되지 않는다. 새로운 팔로우도 추가조차 불가능하며 시도하면 팔로우 수 한도가 되었다는 메세지와 함께 튕겨나가며 추가하려면 아래에 서술된 것처럼 간헐적으로 API량이 리셋되어 기능이 일시적으로 회복하기를 기다릴 수밖에 없게 되었다.

2.3. 7월 3일

ChatGPT의 웹브라우징 플러그인이 더 이상 트위터 URL에 대한 접근이 불가능해졌다.#

오전 7시경 syndication.twitter.com 기능을 이용한 로그인 제한 우회 방법이 막혔다. 접속하면 아이스크림 에러가 뜬다.# 오전 10시 40분 경 다시 복구되었다.

수많은 계정들이 자동화로 판정되어 몇몇 기능이 제한되는 등의 피해를 입었다.# API 제한이 쿠키와 IP를 기반으로 작동하기 때문에 통피와 쿠키 삭제를 반복하면 해당 제안을 우회할 수 있지만 이것이 반복되면 자동화 계정으로 판단되는 경우가 발생했다.

2.4. 7월 4일

밤 12시경 임베드를 사용한 우회 방법이 트윗이 없다고 표시되며 아예 막혔다. 특정 트윗을 보는 임베드는 여전히 정상 작동된다.

TweetDeck[5] 구 버전의 API가 차단되고 신 버전으로 강제로 변경되었으며 TweetDeck 신 버전은 30일 후 Twitter Blue 유료 사용자만 쓸 수 있을 것이라는 공지가 추가되었다.#

트윗덱은 기존에도 웹 트위터 UI의 불편함으로 인해 사용하던 사람들이 많았으며 이 사태에서는 API 사용 제한에도 불구하고 실시간 트윗 스트리밍이 유지되었기 때문에 많은 유저들이 이 사태를 피해 몰려들기도 했다. 이 상황에서 신버전 API를 강제 적용한 것이다.

특히 신버전 트윗덱은 기존 트윗덱 유저들이 원하던 모든 기능이 배제된 최악의 개악을 해 놨는데 이 사태 초창기 유입 원인 중 하나가 되기도 할 정도로 가장 중요한 기능인 트윗 실시간 스트리밍 기능은 API사용 제한과 맞물려 사실상 먹통이 되어 버렸고[6] 레이아웃이나 UI가 예쁘지도 않은 그냥 쓰레기가 되고 말았다. 사실상 이 사고를 기회삼아 트위터를 사실상의 유료 구독형 SNS로 다시 세우려는 행보를 보이면서 사람들은 일론이 오면서 트위터의 모든 것이 박살나고 있다고 분노했다.

2.5. 7월 6일

실시간 트렌드에 Threads가 올라왔으며 일본에서는 벌써 꽤나 많은 사람들이 여기에 계정을 만들기 시작했다.

결국 이 사건의 원인 중 하나로 추정된 비로그인 중에 특정 트윗 확인 불가 정책이 철회되었다. 단 다른 프로필을 보기 위해서는 여전히 로그인이 필요하다. 업계에서는 스레드가 급히 런칭되면서 일론이 스레드를 견제하기 위해서 이랬다는 의견이 대다수였다.# 이 날을 전후하여 API 관련 문제는 대부분 해결되어 사태가 수습되긴 했으나 불편을 호소하는 인원들이 완전히 없어지지는 않았다. 하루종일 트위터를 해도 제한에 걸리지 않는 계정이 있는가 하면 제한에 걸리는 계정도 많이 있었는데 특히 계정을 생성한 지 1년이 채 지나지 않은 새 계정들이 제한에 걸리는 비율이 높았다. 트위터 측으로부터의 공식 발표가 없었으므로 API 제한이 실제로 완화되고 있는 것인지 확인은 불가능한 상태다.

한편 트위터 CEO 린다 야카리노트위터는 모방될지언정 대체될 수 없다는 트윗을 올렸다. 스레드의 런칭을 겨냥한 트윗으로 보이는데 이 트윗에 대한 반응은 '그 트위터 일론이 다 박살내놨는데 지금 뭔 소리를 하는거냐?'가 대다수였다. 이후 일론 머스크는 향후 트위터가 최고 사용자를 갱신할 것이라고 호언장담했으나 스레드 개시 첫날인 6일과 7일 사이 트위터 트래픽은 이전 주의 5%가 빠진 것으로 집계되었다.#

2.6. 7월 7일

일본에서는 유명인들을 필두로 Threads로 이주하는 사람들의 수가 빠르게 늘어나기 시작했지민 스레드는 트위터와 사용 환경이 굉장히 다르기 때문에 완벽한 대체제가 되어 주지 못하고 있다. 일본에서는 보통 두 개를 병행하여 사용했다. 무엇보다 스레드와 트위터의 분위기도 다르고[7] 스레드 역시 각종 기능이 덜 구현된 사실상의 베타 테스트판이나 마찬가지라 스레드에 대한 불만을 토로하는 트위터 유저들이나 트위터로 복귀하는 인원들이 많았다.#

2.7. 7월 8일

개선된 커뮤니티 기능과 DM 그룹챗을 위해 서클 기능이 삭제된다고 일론 머스크는 발표했다.# 이제 트위터에 남는 멀쩡한 기능은 대체 뭐가 있는 거냐는 것이 대다수의 반응이었다. 이것도 일론 머스크의 기존 유지보수 인원 대량해고로 인한 영향으로 보인다. 더 이상 서클 기능을 유지 보수할 수 없기에 삭제하는 것.

트윗덱 구버전을 다시 선택할 수 있게 되었지만 역시 어떤 공지도 없었기 때문에 언제 또 삭제될지, 아니면 얼마나 유지될지, 이것도 블루 구독자만 가능한 것인지 유저들은 불안에 떨게 되었다. 게다가 구버전 하단에 신버전을 사용해 보라는 팝업창을 박아 놓고 끌 수도 없게 만들어 놓은 바람에 졸렬하다고 비난받았다.

2.8. 7월 10일

작동이 안 되었던 비공식 오픈 소스 트위터 뷰어 웹사이트인 Nitter가 다시 작동하기 시작했다.#

2.9. 7월 12일

오후 11시 30분 경부터 타임라인과 프로필에 트윗이 표시되지 않는 등의 오류가 잠시 발생했다.

2.10. 7월 13일

7월 8일에 잠시 돌아왔던 구 트윗덱에서 트윗 전송 기능이 작동하지 않게 되었으며 리트윗도 불가능해졌다. 일부 서드파티 어플들도 불가능한 현상이 있으며 API의 일부를 사용 제한한 것으로 추정된다.

2.11. 7월 15일

오후 10시 경부터 팔로우 타임라인 갱신과 검색이 불가능한 상태가 발생했다. 다만 이전에 명확히 개수 제한이 있고 일일 제한에 도달하면 절대로 갱신되지 않던 것과는 달리 여러 번 새로고침을 시도하면 갱신이 되는 것으로 보인다. 자꾸 API를 건드리기 때문인 모양인 듯하다. 추천 타임라인은 멀쩡히 작동해서 스레드를 따라하냐고 조롱을 받았다.

2.12. 7월 16일

16일 오후 11시 경부터 다시 타임라인 읽기가 안 되고 트윗이 안 써지는 등의 오류가 발생했으며 일부 계정에서는 로그인이 풀리고 다시 로그인이 안 되는 현상도 발생했다. 로그인하려고 할 때마다 로그인 처음 화면으로 돌아갔다고 한다. 당일 11시 45분경에 복구되었다.

2.13. 7월 17일

제한된 API를 모두 사용하면 트위터 블루를 구독하여 제한을 해제하라는 메시지가 뜨기 시작했다. # 결국 일론 머스크는 API 제한 정책을 임시 제한이 아닌 완전 상시화할 셈으로 보인다.

2.14. 7월 20일

니코니코 동화가 연동트윗 서비스를 종료했다.

2.15. 7월 21일

오픈 소스 비공식 뷰어인 Nitter가 프로필에 트윗이 없다고 뜨며 다시 작동되지 않기 시작했다.#

7월 21일부터 DM 가능 횟수가 트위터 블루를 구독하지 않은 무료 이용자들은 일일 20건, 트위터 블루를 구독한 유료 이용자들은 일일 500건으로 제한된다.#1@(아카이브)#2 원래는 무료 이용자든, 유료 이용자든 상관없이 일일 1,000건까지였던 것과 비교하면 상당히 제한을 둔 것이다.

다만 일본 유저들은 이미 트위터에 정착하여 다른 곳으로 떠나기를 꺼리며 유료 회원 과금을 고려하는 사람도 보이고 스레드로 이주하였던 유저들도 금세 스레드의 기능적 결함에 실망하여 트위터로 돌아와 제한을 참고 버티며 사용하는 사람들이 다수가 되었다.

2.16. 7월 22일

갑자기 일부 계정에서 트위터의 알림(일본에서는 고지(告知)) 기능이 작동하지 않게 되었다. 보통 트윗에 덧글, 리트윗을 남기거나 좋아요를 누르면 a님이 내 트윗(또는 답글)을 마음에 들어 합니다나 상대방이 작성한 덧글이 알림을 통해 오는데, 오류가 생기면서 상대방이 소식을 못 보고 지나치는 등의 문제가 발생한 것이다. 반면 새 트윗 알림이나 상대방의 팔로워 신청만은 멀쩡히 갱신된다. 후술된 23~24일의 상황으로 보아 다수의 무고한 계정들이 쉐도우밴 당하는 피해를 입은 것으로 보인다.

2.17. 7월 23일

22일의 알람 갱신 불가에 이어 계정 자체가 아예 정지되어 못쓰는 피해까지 늘어나기 시작했다. 이 때문에 트위터의 실시간 트랜드에도 유령 계정, 계정 정지가 올라왔다.

2.18. 7월 24일

X로 리브랜딩 한지 하루도 되지 않아 무고하게 쉐도우밴 당한 계정들이 쉐도우밴이 풀리기는커녕 영구정지를 당하는 피해가 속출하기 시작했다.

2.19. 8월 1일

Tweetdeck이 X Pro로 리브랜딩된다는 소식과 함께 오류 메시지를 계속 표시했다.

2.20. 8월 3일

영어 외 타언어로 설정 시 멀쩡한 번역이 발번역이 되거나 아예 영어로만 표시되는 현상이 발생했다.

2.21. 8월 13일

13일 오후 11시부터 웹 트위터에서 미디어(동영상, 이미지)에 오류가 생겨 볼 수 없는 현상이 발생했다.

2.22. 8월 15일

오픈 소스 비공식 뷰어인 Nitter가 또 먹통이 됐다.# 검색할 때 "No items found(결과를 찾지 못했습니다.)"라고 뜨면서 오류가 발생했다.

URL을 이용해 'nitter.net/(유저명)' 형식으로 입력해서 들어올 때도 오류가 발생했는데 표시는 다음과 같다.
An error has occured in one of your routes.
Detail: fatal.nim(53) sysFatal
asyncfutures.nim(385) read
asyncfutures.nim(385) read
asyncfutures.nim(385) read
asyncfutures.nim(385) read
asyncfutures.nim(385) read
asyncfutures.nim(385) read
packedjson.nim(294, 19) `false` unexpected end of object

2.23. 8월 19일 (추정)

트윗덱 구버전이 완전히 막혔다. 소스코드 보기를 이용해 구버전으로 되돌려 사용해도 X Pro 결제를 하지 않았다면 최초 1번만 신 트윗덱이 뜨고 이후부턴 자동으로 결제 페이지로 이동된다.

2.24. 8월 24일

포스트와 인용 표시 등에 문제가 생겼는데 일각에서는 도메인을 twitter.com에서 x.com으로 변경하려는 시도를 했기 때문으로 추정되었다.

다만 이 문제는 곧바로 해당 변경이 롤백되면서 해결되었다. 이후 호환성 문제를 일부 해결하였는지, 게시물 공유 시 다시 x.com으로 시작하는 주소가 부여되기 시작했다.[8]

2.25. 9월 19일

X 서비스 전면 유료화 논란이 일어난 지 하루 지난 2023년 9월 19일 티빙에서 사용 빈도가 낮은 SNS 계정 회원가입 지원 종료를 사유로 대며 트위터 계정 신규 회원가입 종료를 선언한다는 공지가 업데이트되었다.

2.26. 9월 26일

상술한 7월에서 2개월 지나서 또 유령 계정을 당하는 쉐도우밴 사태가 재발생하였다.

2.27. 12월 21일

15시경부터 15시 40분 사이 X의 게시물이 타임라인에 나타나지 않는 현상이 발생했다.

서버 복구 후에도 이때를 전후하여 올린 게시물의 조회수를 읽을 수 없다.


[1] 파싱, 크롤링이라고도 하며 특정 프로그램을 통해 데이터를 추출하는 것을 뜻한다.[2] 색깔에 관계 없이 인증 배지가 있는 계정[3] 일론 머스크가 트위터를 인수하기 전에는 사실상 없는 일이었다.[4] 그렇다고 API 초과로 인해 더 많은 트윗을 보려고 트위터 블루를 구독할 수 있냐면 그것도 못 한다. 애초에 API 제한으로 트위터 기능이 마비되는 상태라서 구독을 시도하면 "이 국가에서도 twitter blue를 제공하기 위해 준비중"이라고만 뜨면서 지원하는 국가에서도 구독이 불가능해서 아무것도 못 하는 상태가 된다. 일단 해당 문제는 API가 초과되지 않은 다른 플랫폼을 통해 트위터에 접속해 구독을 시도하면 해결되긴 한다.[5] 트위터의 서드 파티 클라이언트 중 하나로, 트위터 공식에 인수되어 유일하게 공식 인증을 받은 서드 파티 클라이언트다. 가장 큰 특징은 트위터 타임라인의 실시간 스트리밍이 되어 새로 올라오는 트윗을 바로 확인해 볼 수 있다는 것이다. 더불어 트위터 API 지원이 중단된 상태에서 몇 안 되는 구 버전 API가 사용 가능한 서드파티 클라이언트였다.[6] 실시간 스트리밍 기능을 옵션만 건드려주면 켜 줄 수 있긴 했다. 다만 실시간 스트리밍 기능을 켤 수는 있었지만 API 제한은 똑같이 적용됐기 때문에 타임라인 업데이트 속도가 빠른 유저는 1시간도 되지 않아 트윗덱 자체가 고장나 버리는 사태가 발생했다. 심지어 트위터 업데이트도 API를 하나하나 카운트하면서 되었는지 구 트윗덱과 달리 0.5~1초에 하나씩 느릿느릿하게 업데이트되었다. 그럼 트윗덱을 왜 쓰지[7] 스레드의 인원들은 계정이 연동된 인스타에서 넘어온 인원들이 대다수라 기존 트위터 유저들의 머릿수도 압도하고 분위기도 인스타 유저 위주로 빠르게 재편되었다. 트위터 유저 중 익명계정을 자주 사용하던 유저들은 특히 기존 유저들 및 운영사측의 전통적인 실명제 유도 분위기로 적응을 힘들어하는 편이다. 엎친 데 덮친 격으로 기존 인스타 계정과 연동하지 않으면 계정이 정지되는 현상이 자주 발생해 신규 유저들은 가입을 포기한 경우도 있다.[8] 다만 여전히 트위터 도메인으로 리다이렉트된다.

파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는
문서의 r292
, 번 문단
에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r292 (이전 역사)
문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)