나를 포함해 이전에도 많은 분들이 포럼에 100일 연속 출석하여 애호가(Aficionado) 배지를 획득하려 노력해 왔습니다. 저는 거의 다 왔습니다. 연속으로 하루나 이틀 정도 빠진 것 같아 보고된 출석 기록이 의심스럽긴 하지만, 실제로 이상한 것은 회계(집계)가 맞지 않는다는 점입니다.
사용자 보고의 분기(Quarterly) 항목에서 저는 92일로 표시되어 있는데, 이는 해당 분기의 전체 기간을 의미해야 합니다.
3단계 요구사항의 관리자 보기에서는 제 출석률이 92/100일, 즉 92%로 보고되며, 이는 50%를 여유 있게 상회합니다.
이 두 가지 사실로부터 우리는 지난 100일 중 93일차부터 100일차 사이에 최소 8일 동안 부재했다는 결론을 내릴 수밖에 없습니다.
그런데: 사용자 보기에서 연간(Annual) 출석률을 확인하면 360일로 표시됩니다. 이는 연중 최대 5일만 결석했다는 뜻입니다(윤일 제외).
즉, 두 통계 중 하나는 정확하지 않거나… 아니면 제가 실수를 한 것입니다.
(물론 심각한 문제는 아니지만, 만약 버그가 있다면 다른 부분에 영향을 미칠 수도 있을 것입니다.)
업데이트: 애호가(Aficionado) 배지를 획득했고, 그 방식으로 계산한 출석률이 100에 도달했습니다. 하지만 레벨 3 요구 사항 계산에서는 93/100으로 표시되고 있으며, 데이터 탐색기(Data Explorer)의 연속 출석일 계산에서는 101일로 나와 있습니다.
이 수치와 몇 가지 다른 수치는 2014/15년경 이곳과 다른 Discourse 인스턴스에서 많은 문의를 불러일으켰습니다. 배지를 얻고 싶어하는 신규 사용자들이 많았고, 당시 우리는 Discourse를 완전히 신뢰하지 않았습니다. 일부 차이는 실제로 버그였기 때문에 대부분의 계산은 상당히 잘 확인되었습니다.
저도 직접 몇 가지를 확인해 보았습니다. 제 데이터를 받아 Discourse에 접속한 UTC 날짜 수를 집계했던 기억이 납니다. 네트워크 모니터링 소프트웨어에서 제공되는 제3자 통계를 가지고 있었기 때문에 Discourse의 통계를 다시 확인할 수 있었습니다. 큰 이상치가 발견되면 좋았겠지만, 제 통계에 대해 Discourse의 수치는 정확했습니다.
그렇다고 해서 지금 문제가 없다는 뜻은 아닙니다. 다만 그럴 가능성이 낮아 보일 뿐입니다.
참고로, 저는 아직 배지를 받지 못했습니다. 이 지구상에서 UTC와 가장 먼 거리에 있는 제가 UTC 기준으로 일하는 것은 어렵기 때문입니다.
해결하지는 못했지만, 알아서 해결되지는 않을 거라고 확신합니다. 그래서 여전히 무언가 잘못되어 있을 것이라고 꽤 확신합니다. 저는 코드를 읽거나 더 깊이 살펴본 적이 없습니다. 말씀드렸듯이, 대부분의 용도에서는 단순한 관심 사항일 뿐이며, 배지나 승급을 일주일 정도 지연시킬 뿐입니다. 하지만 L3 강등에 대한 제 의견은 유효합니다.
저에게 코드를 책임지는 역할이 있다면, 숫자도 제대로 세지 못하는 코드베이스라면 신경 쓰일 것 같습니다. 조사해 볼 가치가 있을 수도 있지만, 모든 사람이 그렇게 만들어진 것은 아닙니다.
제가 실행한 쿼리는 다른 포럼에서도 쉽게 수행할 수 있습니다. 샌드박스에서는 불가능할 것 같은데, 수명이 짧기 때문이죠.