통계를 붙이면 무엇을 바꿀 수 있을까. K-POP PULSE의 8월 3일 분석 설계는 그래프 종류보다 알고 싶은 질문을 먼저 적었다. 어디서 들어오는지, 어느 글을 읽는지, 허브에서 영상을 재생하는지, 작은 팀의 페이지도 열리는지를 나누어 물었다.

나는 이 질문 목록이 모든 기능의 구현 완료표가 되지 않도록 읽었다. 설계 문서와 뒤에 남은 실제 대시보드 출력은 서로 다른 근거다. 이 글은 그 질문을 홈페이지 제작의 결정과 연결하고, 수집할 수 없는 정보도 함께 적는 방법을 공개한다.

먼저 바꾸고 싶은 화면이나 작업을 고른다

조회 수만 많으면 어떤 메뉴를 고쳐야 할지 알기 어렵다. 홈에서 기사를 찾기 어려운지 보려면 목록 노출과 기사 이동이 필요하고, 허브의 재생 기능을 보려면 버튼 누름과 실제 재생을 나누어야 한다. 질문이 달라지면 필요한 사건과 비교 기준도 달라진다.

설계에는 홈에서 기사, 허브로 이어지는 이동과 기사 노출·클릭·읽기·공유의 관계가 들어 있었다. 나는 화면을 만들어 두고 아무 숫자나 붙이는 순서보다, 다음 작업을 선택할 질문을 먼저 남기는 방법을 택하려 한다. 질문이 없는 지표는 쌓여도 행동으로 이어지기 어렵다.

서버가 받은 요청과 브라우저가 보낸 행동을 나눈다

당시 설계는 서버 쪽 요청과 브라우저가 보낸 행동 신호를 서로 다른 층으로 두었다. HTML을 요청한 기록은 클릭이나 스크롤을 설명하지 못한다. 반대로 브라우저 신호만 읽으면 스크립트가 차단된 방문과 다른 종류의 요청이 빠질 수 있다. 어느 층의 숫자인지 표의 제목에도 남길 필요가 있었다.

두 층을 더해 전체 사람 수로 만드는 것도 답이 아니다. 같은 방문의 다른 관측이 겹칠 수 있기 때문이다. 나는 요청량, 브라우저 관측, 운영 확인과 봇 분류를 먼저 구별하고 각 지표가 무엇을 포함하는지 설명하려 한다. 행동 신호가 왔다는 사실도 사람의 신원을 인증한 결과는 아니다.

읽기와 재생에도 판정의 정의가 필요하다

문서의 완독 기준은 스크롤 깊이와 일정한 체류 조건을 함께 요구했다. 이는 끝부분으로 이동했다는 신호와 머문 시간을 조합한 운영 정의다. 실제 이해 여부나 모든 독자의 읽기를 증명하는 측정은 아니다. 긴 글과 짧은 글의 같은 체류 시간을 그대로 비교하지 않으려는 목적도 함께 읽었다.

영상 버튼을 눌렀다고 플레이어가 시작됐다고 쓰지 않는다. 버튼 사건과 실제 재생 신호, 다음 영상으로 넘어간 신호는 관측 지점이 다르다. 이 구별은 홈페이지의 버튼이 고장 났는지, 찾기 어려운지, 자료가 적은지 살피는 데 도움이 된다. 아직 심지 않은 신호의0을 관심 없음으로 해석하지 않는다.

적게 모으겠다는 약속과 알고 싶은 범위를 함께 쓴다

설계는 원문 IP와 정확한 브라우저 문자열을 남기지 않고, 일별 구분과 임시 세션을 사용하는 방향을 적었다. 같은 사람을 날짜 너머로 연결하기 어려워지면 재방문 질문도 그 범위에 맞춰야 한다. 해시를 쓴다는 말만으로 모든 정보가 익명이라고 단정하지 않는다. 무엇을 수집하고 남기는지 실제 저장 경로를 따로 확인해야 한다.

분석 저장소를 본문 저장소와 분리하려던 이유에는 기록량과 백업 책임도 있었다. 남길 기간, 전송 실패의 처리, 화면에 주는 비용을 질문 옆에 둔다. 문서 안의 백업 주기 표현도 한 곳으로 맞춰 확인할 대상이다. 이 글은 당시의 모든 보관·성능·개인정보 조건을 현재 구현에서 검증했다고 선언하지 않는다.

질문·관측·판단·미확인을 같은 카드에 남긴다

다른 홈페이지에 가져갈 때는 질문, 필요한 사건, 해당 기간과 분모, 다음 작업, 아직 확인하지 못한 범위를 한 장에 적겠다. 예를 들어 기사 링크를 찾기 어려운지 묻는다면 노출을 실제 측정했는지부터 살핀다. 클릭만 있을 때 노출 대비 클릭률을 만들어 낼 수는 없다.

원본 설계에는 작은 팀의 페이지도 노출되고 소비되는지 확인하는 질문이 있었다. 많이 본 팀만 더 보이게 하는 목표와 다른 선택이다. 나는 숫자가 어떤 제작 원칙에 쓰이는지까지 남기려 한다. 현재 STAGE24에 별도로 만든 통계 프로그램은 다른 구현이며, 이 설계의 모든 요구사항이 그대로 이식됐다는 뜻은 아니다.