뉴욕 타임스가 Wordle을 바꿨다 내가 증명하는 방법

뉴욕 타임스가 Wordle을 바꿨다 내가 증명하는 방법
Cozy CodingPosted On Jun 30, 20244 min read

2024-06-30-NewYorkTimesHasChangedWordleICanProveIt_0

안녕하세요! 저는 주로 웹 앱 개발을 하는 주간 소프트웨어 개발자입니다. Netflix와 같은 대기업부터 PBS NewsHour와 같은 비영리 단체, 그리고 스타트업까지 다양한 회사에서 일해봤어요. 웹에서 "이걸 어떻게 만들었을까?" 라는 질문에 대한 해답을 찾는 건 제가 즐기는 일 중 하나에요.

Wordle가 인기를 얻기 시작했을 때, 저도 열광적으로 참여했어요. 800일 이상 연속으로 게임을 즐겼죠 (참고로, 그 기간 동안 두 명의 아이가 태어났는데, 네, 출산실에서도 게임을 했어요). 그래서 먼저 한 일 중 하나는 원래 게임을 만든 저자가 어떻게 만들었는지 알아내는 것이었어요.

뉴욕 타임스가 인수하기 전까지, 전체적으로 그냥 간단한 웹 앱이었죠. 제작자는 명확히 앱 스토어에 출시하지 않겠다고 밝히며 웹 기반 게임을 홍보하고 싶다고 말했어요. 점점 인기를 얻는 프로그레시브 웹 앱 (PWA)이 이렇게 많은 주목을 받는 것을 보는 걸 정말 좋아했어요.

온라인에서 모든 것이 가능했기 때문에 소스 코드를 쉽게 확인하고 "저걸 어떻게 한 거지?"라는 질문에 답할 수 있었어요!

추신으로, 그 당시에는 코드가 미니파이드되지 않았기 때문에 JavaScript 개발자에게는 게임이 어떻게 구축되었는지 정확히 볼 수 있어서 특히 쉬웠어요. 게임이 개인 정보를 수집하지 않았던 당시에는 문제가 되지 않았죠.

웹 기반 게임의 두 번째 장점은 크롬 익스텐션을 작성할 수 있다는 것이었어요. 놓친 경우 이전 날짜로 돌아가서 플레이할 수 있으면 멋질 것 같아서 그렇게 생각했죠. 제가 만든 익스텐션은 정확히 그것을 가능하게 했어요. 좌측 상단에 작은 입력란을 추가해놓았어요. 거기에 날짜를 입력하면, 과거로 돌아가서 그 단어를 플레이할 수 있어요!

이미지

그 앱은 빠르게 유명해졌어요. 처음 몇 날 동안 100회 이상 설치되었죠. 더구나 몇 분들로부터 즐기셨다는 친근한 이메일도 받았어요.

그 후... 모든 것이 변했어요.

뉴욕 타임즈에 대해 이야기하기 전에

무엇이 변했는지 설명하기 전에, 당시에 어떻게 단어가 선택되었는지 소개할게요.

클라이언트에서 모든 코드가 실행되었습니다(즉, 당신의 브라우저에서). 사이트를 열 때마다 두 개의 거대한 단어 배열이 로드되었습니다. 첫 번째(14,000단어 이상)는 "허용 가능한 답변"이었고, 즉 당신이 추측으로 입력할 수 있는 단어들이었습니다. 이것이 당신이 터무니없는 말을 입력하는 것을 막는 역할을 합니다.

두 번째는 정렬된 답변 목록이었습니다. 원래 총 2,309개의 단어가 있었으며, 이는 약 6년 가량의 퍼즐을 의미합니다.

페이지를 열 때, 스크립트는 현재 날짜를 가져와 게임 출시 이후 몇 일이 지났는지를 측정했습니다. 예를 들어, 게임이 출시된 지 정확히 1년이 된 날에는, 더 짧은 단어 목록에서 365번째 단어를 찾아 그것이 그 날의 정답이 되었습니다!

내 Chrome 확장 프로그램을 통해 "일 수" 변수를 변경할 수 있게 했어요. 정말 간단하지요!

새 주인의 등장

2022년 1월, 뉴욕 타임스가 언급되지 않은 금액으로 의 권리를 구매했습니다 (누군가가 "700만 달러 미만"이라고 말했습니다). 게임은 뉴욕 타임스로 이주하게 되었고, 핵심 게임 메커니즘은 변경되지 않을 것이라고 약속되었지만, 우리는 무언가가 변할 것이라는 것을 알고 있었습니다.

가장 먼저 발생한 일은 내 Chrome 확장 프로그램이 종료되었습니다. NYT는 "부가 기능" 게임을 만드는 것을 좋아하지 않았습니다. 게다가 코드가 결국 크게 변경되어 내 확장 프로그램이 쓸모 없어졌습니다. 하나의 웹사이트에서만 작동하도록 설계된 확장 프로그램은 거의 쉬울 대응책이 없이 중단될 수 있습니다.

뉴욕 타임스 버전의 소스 코드를 찾아보려고 노력했지만 해독하기가 어려웠습니다. 먼저 코드가 압축되어 있어서 "words"와 같은 일반 변수 이름이 "w"와 같은 것으로 단축되어 검색이 불가능했습니다.

그러나 퍼즐에서 사용된 실제 단어와 같은 요소들은 압축해서는 안 됩니다. 예를 들어 "브라보"와 같은 것을 검색할 수 있어야 합니다 (몇 일 전의 해답).

안타깝게도, 이제 게임은 완전히 클라이언트에서 운영되지 않습니다. iOS와 Android용 네이티브 버전이 출시된 이후, NYT는 모든 것을 클라이언트 앱에서 돌릴 수 없게 되었습니다. 변경 사항이 필요한 경우 3개의 다른 코드베이스를 업데이트해야 합니다.

(저는 비슷한 앱들과의 경험을 바탕으로 한 추측입니다. 개발자들과 직접 대화한 적은 없습니다)

대신, 앱은 서버로 요청을 보내 그 날짜의 해답이 담긴 JSON 파일을 받습니다.

요기에서 확인할 수 있어요: 링크

이것이 고객이 2024년 6월 3일에 가져온 객체에요 (네, 만약 속이기를 원하신다면 미래 날짜를 입력할 수 있어요).

그래서, 우리는 단어를 가져오기 위한 새로운 방법이 생겼지만, 게임은 여전히 기본적으로 같아요. 광고, 로그인 및 기타 NYT 관련 쓰레기만 제외하면요...

하지만, 선택된 단어들이 바뀌었다는 사실이 밝혀졌어요.

Brave New Wordle

마스터 리스트가 더 이상 없어서 최신 코드를 가져와서 내 보관 코드와 비교할 수 없었습니다. 그러나 그동안의 퍼즐 목록을 살펴보고 내가 가지고 있던 원래 정답 목록과 비교할 수는 있었습니다.

새로 발견한 단어들은 다음과 같습니다:

  1. PIOUS
  2. LASER
  3. KAZOO
  4. BALSA
  5. SNAFU
  6. GUANO

그럼... 왜 이런 단어들일까요?

먼저 알아야 할 사실은 Wordle의 창시자가 영국인이라는 것입니다. “Snafu”는 미국 약어로, 상황 정상: 전부 엉망이라는 뜻입니다. 아마 뉴욕 타임즈는 그냥 게임을 미국식으로 변형하고 싶었을지도 모르겠네요?

그런데 “Balsa”와 “Guano”는 어떻게 해야 할까요? 여기에 더하자면, 이 게임은 어느 한 사람이 자신의 부인을 위해 만든 것입니다. 아마 그저 배제할 단어에 대해 설며으로 결정한 것 같습니다. 이상하게도, 그 두 단어는 “수용 가능한 답변” 목록에 나타납니다. 다만, 유효한 "답변"으로 선택되지 않았을 뿐입니다.

혹은 이러한 단어들이 추가된 이유가 다른 무슨 이유가 있을 수도 있습니다 (그리고 앞으로 만나게 될 다른 단어). 결국에는, 원래 2,309개의 단어 중 거의 절반에 다다랐습니다. NYT가 이 게임을 계속 유지하고 싶다면, 어떤 것을 생각해내야 할 것입니다. 아마도 6글자로???

#또 다른 Chrome Extension을 만들까요?

아마도 그것은 안 될 것 같아요. 하루 솔루션 요청을 빼앗아 다른 날짜를 제시하는 것을 작성할 수는 있지만, 클라이언트 측 코드에서 신뢰성 있게 할당할 수 없습니다. 왜냐하면 최소화된 코드는 매 릴리스마다 변경될 수 있기 때문이죠.