개발 이야기

왜 카톡방마다 서로 다른 문제를 풀까?

정답 데이터는 함께 사용하면서도 현재 문제와 진행 기록은 방마다 분리해, 각 카톡방이 자기 속도로 플레이할 수 있게 만든 이유를 설명합니다.
2026-08-187분 읽기카맨틀 운영팀

먼저 기억할 것

  • 모든 방은 같은 정답 후보 데이터를 사용하지만 현재 정답과 진행 위치는 방 상태에 따로 저장합니다.
  • 방 식별자와 답안지 버전을 이용해 같은 조건에서는 일관된 정답 순서를 선택합니다.
  • 정답, 패스와 힌트는 요청이 발생한 방의 상태만 변경합니다.
  • 방별 진행은 경쟁의 공정성보다 단톡방마다 대화 속도가 다른 현실을 반영하기 위한 선택입니다.

단톡방마다 플레이 속도가 다릅니다

어떤 방은 점심시간에 여러 사람이 몰려 한 문제를 몇 분 만에 풉니다. 어떤 방은 하루에 단어 몇 개만 주고받으며 같은 문제를 며칠 동안 이어갑니다. 모든 방을 하나의 전역 문제에 묶으면 빠른 방의 정답이 느린 방의 놀이를 끝내 버립니다.

카맨틀은 정답을 맞힌 방만 다음 문제로 이동하게 만들었습니다. 옆 방의 활동량이나 정답 시각이 우리 방의 현재 문제를 바꾸지 않으므로 각 단톡방이 자기 대화 흐름에 맞춰 플레이할 수 있습니다.

오늘의 문제처럼 같은 출발선이 필요한 경험은 별도 모드로 분리하고, 일반 문제는 방별 진행을 유지합니다.

공유하는 것은 답안지이고 진행 상태는 공유하지 않습니다

정답 후보, 가까운 단어 목록과 힌트는 미리 만든 답안지 파일에서 읽습니다. 이 데이터는 여러 방이 재사용해 같은 계산을 반복하지 않도록 합니다.

반면 현재 정답 번호, 문제 시작 시각, 추측 수, 방의 상위 단어와 힌트 사용량은 방 상태에 저장합니다. 한 방에서 점수가 높은 단어를 찾았다고 다른 방의 상위 기록이 바뀌지 않습니다.

공유 데이터와 방 상태를 나눈 덕분에 무거운 유사도 자료는 효율적으로 재사용하면서도 게임 진행은 독립적으로 유지할 수 있습니다.

방마다 다른 순서도 무작위로만 정하지 않습니다

카맨틀은 방 식별자와 현재 답안지 버전을 바탕으로 정답 시작 위치와 이동 순서를 계산합니다. 같은 방과 같은 버전이라는 조건에서는 다시 계산해도 일관된 순서를 얻을 수 있습니다.

단순히 매 요청마다 임의의 정답을 뽑으면 서버 재시작이나 저장 실패 뒤에 진행을 복원하기 어렵습니다. 결정 가능한 순서는 방 상태와 답안지의 관계를 확인하고 테스트하는 데 도움이 됩니다.

방마다 시작점과 순서가 달라질 수 있지만 정답 후보 품질 기준은 같은 답안지 안에서 공유합니다.

정답과 패스는 현재 방만 이동시킵니다

정답을 맞히면 해당 방의 풀이 기록을 저장하고 다음 정답을 선택합니다. 다른 방의 풀이 횟수와 현재 정답에는 변화가 없습니다.

일반 문제에서 패스를 선택할 때도 요청한 방의 상태만 다음 문제로 이동합니다. 이미 건너뛴 문제를 관리하는 정보 역시 그 방의 진행 문맥에 속합니다.

이 경계가 있어야 동시에 들어온 여러 방의 요청을 처리하더라도 한 방의 결과가 다른 방의 상태를 덮어쓰지 않습니다.

주간 답안지가 바뀌면 방 상태도 새 버전에 맞춥니다

정답 후보와 힌트 품질을 갱신하기 위해 답안지는 버전을 가집니다. 방 상태에도 어떤 답안지를 기준으로 진행 중인지 버전을 함께 저장합니다.

다음 요청에서 방의 버전과 현재 활성 답안지가 다르면 새 릴리스 기준으로 상태를 맞춥니다. 이전 버전의 정답 번호를 새 파일에 그대로 적용해 엉뚱한 단어를 판정하는 일을 피하기 위한 처리입니다.

버전 전환은 모든 방의 상태를 한꺼번에 덮어쓰는 작업이 아니라 각 방이 다시 활동할 때 현재 릴리스와 맞추는 경계로 동작합니다.

방별 진행이 만드는 것은 기록보다 대화의 연속성입니다

방별 정답은 누가 더 유리한 문제를 받았는지 겨루기 위한 구조가 아닙니다. 오랫동안 대화가 없는 방도 돌아왔을 때 자기 문제를 이어갈 수 있게 하는 것이 우선입니다.

주간 리더보드는 서로 다른 문제를 푼 방의 활동량을 보여 주기 때문에 세부 난도를 완전히 같은 조건으로 비교하는 대회 표와는 다릅니다. 현재 분위기를 보는 기록에 가깝습니다.

같은 문제를 같은 날 비교하고 싶을 때는 오늘의 문제를, 우리 방의 흐름을 이어가고 싶을 때는 일반 문제를 사용하면 두 설계의 차이가 분명해집니다.

작성 및 검토: 카맨틀 운영팀

실제 구현 코드, 수정 기록, 테스트 과정에서 확인한 내용을 바탕으로 운영팀이 작성했습니다.

콘텐츠 작성 원칙 보기

댓글

이 글을 읽고 든 생각이나 플레이 경험을 남겨 주세요.

0

아직 댓글이 없습니다.

이어서 읽기

직접 한 판 해볼까요?

글로 감을 잡았다면 브라우저 체험에서 바로 단어를 던져볼 수 있어요.

플레이 방법 보기공지