본문으로 건너뛰기
PatchSo

방법론

이 사이트의 값이 어디서 와서 어떤 계산을 거쳐 화면에 오르는지, 그리고 무엇을 하지 않는지를 적었습니다. 자동화를 쓰는 지점과 사람이 확인하는 지점도 함께 밝힙니다.

이 문서는 분기에 한 번 검토합니다.

1부. 수집 — 무엇을 어디서 얼마나 자주

이 사이트가 다루는 범위

무엇을 대상으로 하고, 왜 그 범위인가요?

이 사이트는 구글플레이 매출 순위 100위 안에 든 적이 있는 한국 모바일게임을 다룹니다. 순위권에 들어온 적이 없는 게임과 PC 게임은 지금 범위 밖입니다.

100위로 자른 이유는 그 구간이 같은 기준으로 끝까지 채울 수 있는 범위이기 때문입니다. 이 사이트의 값은 게임 하나하나의 깊이가 아니라 여러 게임을 같은 잣대로 나란히 놓는 데 있고, 그러려면 몇몇 인기작만 촘촘하고 나머지는 비어 있는 상태를 피해야 합니다. 범위를 넓히면 수집 실패가 늘어 「자료가 없는 게임」이 섞이고, 그 순간 비교라는 목적이 무너집니다.

등수만 가지고 규모를 말하려면 추정을 해야 하는데, 추정치는 한 번 화면에 올라가면 관측값과 구별되지 않은 채 인용됩니다. 그래서 이 사이트는 추정을 하지 않고, 대신 등수라는 사실이 무엇을 말하고 무엇을 말하지 않는지를 화면마다 함께 적습니다.

수집 계층과 주기

어디서, 얼마나 자주, 무엇을 가져오나요?

수집은 성격이 다른 네 계층으로 나뉘어 있습니다. 각 계층이 주는 것과 주지 못하는 것이 다르므로, 화면의 값이 어느 계층에서 왔는지를 알면 그 값을 어디까지 믿을지 정할 수 있습니다.

  • 매출 순위 차트

    주기
    주 1회
    주는 것
    그 시점의 등수와 순위권 진입·이탈
    주지 못하는 것
    주중의 등락과 등수 밖 게임의 위치
  • 스토어 상세(배포 기록)

    주기
    하루 1회
    주는 것
    앱이 갱신된 시점과 짧은 변경 요약
    주지 못하는 것
    무엇이 어떻게 바뀌었는지의 세부
  • 게임사 공식 공지

    주기
    하루 1회
    주는 것
    변경 내용의 근거가 되는 원문 링크
    주지 못하는 것
    공지를 내지 않은 변경
  • PC 패치노트 백필

    주기
    가동 전
    주는 것
    (2차 확장 예정)
    주지 못하는 것
    지금은 아무 값도 만들지 않습니다

수집은 이 웹사이트가 직접 돌리지 않고 별도 저장소의 배치 작업이 맡습니다. 이 사이트는 그 배치가 데이터베이스에 넣어 둔 결과를 읽어 화면을 만듭니다. 그래서 배치가 하루 실패하면 화면이 틀린 값을 보여 주는 것이 아니라 값이 갱신되지 않은 채로 남고, 그 사실은 각 페이지 아래의 데이터 기준일에 드러납니다.

네 번째 계층인 PC 패치노트는 아직 가동하지 않습니다. 언젠가 열린다는 말로 자리를 채우는 대신, 지금은 그 계층에서 오는 값이 하나도 없다는 사실을 그대로 적습니다.

원문을 싣지 않는 이유와 대신 하는 일

공지 원문을 왜 그대로 보여 주지 않나요?

수집한 공지 원문은 변경이 있었는지 알아내고 거기서 사실을 뽑아내는 데에만 씁니다. 화면에는 내보내지 않습니다. 화면에 나가는 문장은 전부 이 사이트가 쓴 것이고, 원문이 필요하면 각 업데이트에 함께 놓인 공식 공지 링크로 갑니다.

  • 타인이 쓴 글을 옮겨 싣지 않기 위해서입니다. 요약과 구조화는 우리 작업이지만 원문은 게임사의 것입니다.
  • 그렇게 만든 페이지는 원문이 사라져도 살아남습니다. 공지가 내려가거나 주소가 바뀌어도 여기 정리한 사실은 그대로 남습니다.

게임 아이콘과 스토어 스크린샷은 스토어 주소를 그대로 가리켜 보여 줄 뿐 이 사이트가 이미지를 내려받아 다시 올리지 않습니다. 아트웍과 영상, 앱 설명문은 저장하지도 표시하지도 않습니다.

2부. 가공·분류 — 어떻게 하나의 사실로 만드는가

하나의 업데이트로 묶는 규칙

스토어 기록과 공지가 따로 있는데 어떻게 한 건이 되나요?

같은 게임에서 스토어 배포와 공식 공지가 같은 변경을 가리키면 하나의 업데이트로 합칩니다. 판단은 세 가지를 함께 봅니다 — 두 기록의 날짜가 서로 가까운지, 어느 소스를 우선할지, 그리고 공지에 적힌 버전 문자열이 스토어의 것과 맞아떨어지는지입니다.

합치는 이유는 같은 변경이 두 번 세어지는 것을 막기 위해서입니다. 배포와 공지를 따로 세면 배포 간격이 실제보다 짧아지고, 그 값에서 나오는 예상일도 함께 어긋납니다.

합치지 못하고 남는 경우도 있습니다. 앱 갱신 없이 서버에서만 처리된 변경은 공지만 있고 스토어 기록이 없습니다. 그때는 공지 쪽 기록만으로 한 건을 만들고, 배포 시점이 아니라 공지 시점을 날짜로 씁니다. 반대로 스토어 기록만 있고 공지가 없는 경우에는 무엇이 바뀌었는지를 알 수 없으므로 시점만 남깁니다.

업데이트 유형 자동 분류

여덟 가지 유형은 누가 어떻게 붙이나요?

분류는 공지 제목과 본문에서 정해진 표현을 찾는 규칙으로 이루어집니다. 큰 언어 모델의 추론을 쓰지 않습니다 — 규칙은 왜 그렇게 분류됐는지를 사람이 되짚을 수 있고, 틀렸을 때 어디를 고쳐야 하는지가 분명하기 때문입니다.

유형은 배타적 분류가 아니라 태그입니다. 콜라보에 신규 캐릭터가 딸려 오면 두 유형이 함께 붙고, 그래서 유형별 건수를 모두 더하면 전체 배포 건수보다 클 수 있습니다.

  • 평가 데이터셋

    기준
    골든 데이터셋 150건 — 유형 여덟 종에 각 열 건 이상
  • 측정 주기

    기준
    월 1회 정기 측정
  • 목표

    기준
    분류 정밀도 90퍼센트 · 재현율 85퍼센트
  • 미달 시 조치

    기준
    그 유형에 대해 개별 페이지 승격을 일시 중단합니다

이 표의 값은 설계가 정한 목표이며 오늘 측정된 실적이 아닙니다. 목표와 실적을 한 문장에 섞으면 무엇을 약속한 것인지 알 수 없게 되므로, 이 문서는 기준만 밝히고 실제 성적은 각 지표의 화면에서 따로 공개합니다.

자체 요약문은 어떻게 만들어지나

화면의 요약 문장은 사람이 쓰나요, 기계가 쓰나요?

조립이란 이미 사실로 확인된 값들을 문장 골격에 끼워 넣는 일입니다. 그리고 그 골격은 하나가 아닙니다. 자료가 처음 쌓이는 게임인지, 값이 비어 있는지, 표본이 모자란지, 오래 조용했는지, 순위가 크게 움직였는지, 유형이 하나인지 여럿인지에 따라 문장의 구조 자체가 갈라집니다.

원문을 바꿔 쓰는 것이 아닙니다. 남의 글을 다른 표현으로 옮기는 것은 결국 복제이고, 그렇게 만든 문장은 원문이 사라지면 근거를 잃습니다. 조립한 문장은 우리가 확인한 값에서 나오므로 어느 값이 틀렸는지를 되짚을 수 있습니다.

업데이트에서 등장한 캐릭터나 콜라보 대상을 뽑아내는 일도 자동입니다. 목표는 정밀도 85퍼센트와 오탐률 10퍼센트 이하이며, 자동으로 뽑힌 것이 곧바로 독립된 페이지가 되지는 않습니다. 운영자가 승격을 승인한 대상만 페이지를 갖습니다.

3부. 예측 — 무엇을 계산하고 무엇을 계산하지 않는가

다음 업데이트 예상일을 구하는 법

예상일은 어떤 계산으로 나오나요?

먼저 그 게임의 배포일을 시간순으로 늘어놓고 이웃한 두 날짜 사이의 일수를 모두 구합니다. 그 값들의 중앙값을 대표 간격으로 삼고, 마지막 배포일에 더해 다음 예상일을 만듭니다. 최근 여섯 개 간격만으로 다시 계산한 이동 중앙값도 함께 내어 두 값을 나란히 보여 줍니다.

평균을 쓰지 않는 이유는 한 번의 예외가 전체를 끌어올리기 때문입니다. 대규모 점검이 길어지거나 시즌 사이에 공백이 생기면 그 한 간격이 다른 모든 간격보다 몇 배 길어지고, 평균은 그 값에 끌려갑니다. 중앙값은 가운데 값을 고르므로 양 끝의 극단이 대표값을 밀어내지 못합니다.

예측 구간은 중앙값에 1.4826을 곱한 MAD를 더하고 뺀 범위입니다. MAD는 각 간격이 중앙값에서 떨어진 거리들의 중앙값이며, 중심을 중앙값으로 잡았으니 흩어짐도 같은 계열로 재야 이상치에 함께 견고합니다. 1.4826은 정규분포에서 MAD를 표준편차와 같은 눈금으로 바꿔 주는 고정 계수입니다.

이 구간은 다음 배포가 반드시 그 안에 들어온다는 약속이 아니라 지금까지의 흔들림이 어느 정도였는지의 요약입니다. 예상일 하나만 크게 보여 주면 없는 정확도를 주장하게 되므로 폭을 함께 냅니다.

이 예측은 복각·픽업·미래시 예측이 아닙니다

그 캐릭터가 언제 돌아오는지도 알 수 있나요?

복각·픽업 일정은 이 사이트의 수집 범위에 들어 있지 않습니다. 우리가 보는 것은 스토어의 배포 기록과 게임사 공식 공지 링크이고, 그 안에 개별 캐릭터의 재등장 일정은 담겨 있지 않습니다.

한 번의 배포에 여러 콘텐츠가 함께 실리기 때문에, 배포일을 알아도 그날 무엇이 복각되는지는 알 수 없습니다.

대신 이 사이트는 두 가지를 드립니다 — 다음 배포가 언제쯤일지, 그리고 그 게임이 새 캐릭터를 얼마나 자주 추가해 왔는지입니다.

복각·픽업 확률 정보가 필요하시면 각 업데이트에 함께 놓인 게임사 공식 공지 링크를 확인해 주세요.

표본이 모자랄 때 우리가 하는 일

간격이 몇 건 없는 게임은 어떻게 하나요?

간격 표본이 적으면 계산은 되지만 그 값을 믿을 근거가 없습니다. 그래서 표본 수에 따라 무엇을 보여 줄지를 미리 정해 두었습니다.

  • 3건 미만

    표시
    예측 불가
    화면에서 하는 일
    예측 블록 자체를 그리지 않습니다
  • 3~4건

    표시
    참고용
    화면에서 하는 일
    예상일을 보여 주되 참고용임을 함께 붙입니다
  • 5건 이상

    표시
    정식
    화면에서 하는 일
    예상일과 구간을 정식으로 표시합니다

「예측 불가」는 예측이 틀렸다는 뜻이 아니라 계산하지 않았다는 뜻입니다. 근거가 모자란 자리를 그럴듯한 숫자로 채우면 읽는 사람은 그것을 관측된 값과 구별하지 못합니다.

마지막 배포일 자체를 알 수 없는 게임도 있습니다. 그때는 자리를 비워 두는 대신 업데이트 시점을 확인할 수 없어 예측을 제공하지 않는다고 적습니다. 침묵하면 「업데이트가 없었다」로 읽히지만 실제 상태는 「우리가 모른다」이고, 두 사실은 다릅니다.

예상일이 지나면 실제 배포일과 비교해 적중 여부를 셉니다. 차이가 사흘 이내면 적중으로 보며, 이 기준은 이 사이트가 정한 것이고 업계 표준이 아닙니다. 평가 표본이 다섯 건 미만이면 적중률을 표시하지 않습니다 — 두세 건으로 비율을 말하면 없는 정밀도를 주장하는 것이 됩니다.

4부. 순위·효과 — 성격을 밝히고 쓰는 법

순위 지표의 성격과 한계

순위 값을 어디까지 믿어도 되나요?

순위 관측은 주 1회입니다. 그래서 이 사이트가 아는 것은 각 주차의 한 시점에서 그 게임이 어디에 있었는가뿐이고, 관측과 관측 사이의 움직임은 남지 않습니다.

  • 순위권에 머문 기간은 주차 수로만 적고 일수로 환산하지 않습니다. 다섯 주차에서 관측됐다는 사실이 서른다섯 날 연속을 뜻하지는 않기 때문입니다.
  • 순위권 밖으로 나간 구간은 값을 비우고 추이 그래프에서 선을 끊습니다. 0이나 101로 채우면 관측되지 않은 등수를 만들어 낸 것이 됩니다 — 순위권 밖은 「낮다」가 아니라 「이 자료로는 모른다」입니다.
  • 순위는 상대값입니다. 어떤 게임이 지난주와 똑같이 운영돼도 옆 게임이 움직이면 등수가 바뀝니다.

업데이트 효과 분석은 상관이지 인과가 아닙니다

업데이트가 순위를 올렸다고 말할 수 있나요?

이 사이트는 업데이트가 있던 주의 직전 순위와 그 뒤 한 주·두 주의 순위를 함께 기록합니다. 그것이 보여 주는 것은 두 값이 같은 시간축에서 어떻게 움직였는가이고, 한쪽이 다른 쪽을 만들었다는 뜻은 아닙니다.

같은 주에 경쟁작의 이벤트가 끝났을 수도, 스토어의 추천 배치가 바뀌었을 수도, 계절적인 흐름이 겹쳤을 수도 있습니다. 이 사이트가 가진 자료로는 그중 어느 것이 원인인지 가릴 수 없습니다. 그래서 화면에도 「업데이트가 순위를 올렸다」고 쓰지 않고 두 값을 나란히 놓기만 합니다.

집계에는 앞뒤 순위가 모두 관측된 업데이트만 넣습니다. 배포 전이나 후에 순위권 밖이어서 값이 없는 경우는 변화량을 계산할 수 없으므로 제외하고, 제외된 건수도 화면에 함께 밝힙니다.

5부. 사람·정정·공개 범위

사람이 하는 일

어디까지 자동이고 어디부터 사람인가요?

수집과 분류와 요약문 조립은 자동으로 이루어집니다. 사람은 그 자동화가 무엇을 보고 어떻게 판단할지를 정하고, 결과를 확인하고, 틀린 것을 고칩니다.

  • 어떤 게임의 어느 공지를 볼지 소스를 등록하고 관리합니다.
  • 분류 규칙에 쓰이는 표현 사전을 손질합니다.
  • 검수 대기열에서 유형·등장 대상·요약문이 맞는지 확인합니다.
  • 등장 대상이 독립된 페이지를 가질지 승격을 승인합니다.
  • 공식 공지 원문 링크가 살아 있는지 주 1회 확인합니다.
  • 접수된 정정 요청을 처리합니다.

게시를 늦추지 않는 이유는 업데이트 정보가 시점에 민감하기 때문입니다. 대신 검토 전 페이지에서는 광고를 띄우지 않습니다. 아직 확인하지 않은 자동 생성 문장 옆에 광고를 먼저 놓는 순서를 만들지 않기 위해서입니다.

개별 페이지에 검수 표시를 하지 않는 이유

어느 페이지가 검수됐는지 표시해 주면 안 되나요?

「검수됨」 같은 표시를 붙이면 그것이 붙지 않은 페이지가 자동으로 열등해 보입니다. 실제로는 아직 차례가 오지 않았을 뿐인데, 이용자는 표시의 유무로 사실 여부를 판단하게 됩니다.

검수는 개별 페이지의 속성이 아니라 사이트 차원의 절차입니다. 그래서 어느 페이지에도 검수 상태나 정정 이력을 표시하지 않고, 절차가 있다는 사실을 이 문서와 사이트 소개, 정정 기록에서 밝힙니다.

같은 이유로 정정된 페이지에도 정정 표시를 남기지 않습니다. 무엇을 언제 고쳤는지는 개별 페이지가 아니라 집계로 공개합니다.

틀린 것을 고치는 절차

사실과 다른 내용을 발견하면 어떻게 되나요?

문의 창구로 알려 주시면 24시간 안에 확인에 착수합니다. 접수된 내용을 원 출처와 대조해 확인하고, 확인되면 고칩니다. 확인되지 않았을 때도 그렇게 판단한 이유를 답합니다.

무엇을 언제 왜 고쳤는지는 기록으로 남겨 월별 집계로 공개합니다. 고친 사실을 조용히 덮으면 같은 종류의 오류가 반복되는지 아무도 알 수 없기 때문입니다.

저작권 관련 문의와 게시 중단 요청도 같은 창구에서 같은 시간 기준으로 받습니다. 권리자의 요청으로 내린 자료는 다시 올리지 않습니다.

갱신 주기와 페이지가 없는 이유

값은 얼마나 자주 바뀌고, 왜 없는 페이지가 있나요?

집계와 예측을 만드는 계산은 매일 한 번 돕니다. 그 계산이 마지막으로 성공한 시각을 데이터 기준일로 삼아 모든 페이지 아래에 적습니다. 계산이 실패한 날에는 값이 틀리는 것이 아니라 갱신되지 않은 채 남고, 그 사실이 기준일에 드러납니다.

유형과 월을 겹친 조합처럼 두 축을 교차한 페이지는 그 조합에 해당하는 기록이 충분히 쌓였을 때만 만듭니다. 기록이 두세 건뿐인 조합까지 페이지로 만들면 읽을 것이 거의 없는 문서가 대량으로 생기기 때문입니다.

그래서 어떤 조합의 페이지가 없다면 빠뜨린 것이 아니라 만들지 않기로 한 것입니다. 그 조합의 내용은 상위 화면이 대신 담고 있습니다.

이 문서 자체는 분기에 한 번 검토합니다. 절차가 바뀌면 문서를 먼저 고치고, 바뀐 절차를 그다음에 적용합니다.

함께 보면 좋은 곳