작성 시점 기준으로 해당 토픽의 마지막 게시물이 "580번째 게시물"로 표시되고 있지만, 스크롤 바에는 256 / 257로 표시됩니다. 토픽의 두 번째 게시물을 보면 번호가 303번으로 되어 있으므로, 그 이전에는 몇 개의 속삭임(whispers)이 있었던 것으로 추정됩니다.
게시물 #은 스크롤 바에서 계산된 게시물 번호와 일치해야 하며, 따라서 비공개 메시지(whispers)는 비관리자에게 ‘건너뛰기’ 처리됩니다. 비공개 게시물로 링크하는 기능은 여전히 지원될 수 있지만, 예를 들어 /topicid/w-postid와 같이 ‘w’ 접두사가 게시물 ID가 비공개 메시지임을 나타내는 약간 다른 URL 형식을 사용하는 것도 가능합니다.
우리는 매우 개방적입니다. 하지만 그럼에도 불구하고 일부 사용자는 특정 주제에 있는 비공개 메시지의 수를 지적하며 문제를 일으키려는 시도를 멈추지 않습니다.
저도 코드가 이를 어떻게 처리하는지 정확히 알지는 못하지만, 제 추측으로는 삭제되지 않고 속삭임이 아닌 게시물의 수를 PostgreSQL 인덱스를 사용하여 집계하는 데이터베이스 쿼리로 전체 개수를 빠르게 계산할 수 있을 것 같습니다.
반면에, 각 게시물의 실제 번호(속삭임과 삭제된 게시물을 무시하고)를 표시하는 것은 성능에 막대한 페널티를 초래하면서도 거의 이점이 없을 수 있습니다. 새로운 게시물이 생성되거나 삭제될 때마다 게시물 번호를 업데이트하는 백그라운드 프로세스를 통해 구현할 수도 있지만(그동안 번호가 틀린 상태가 될 수 있음), 이 역시 좋은 옵션은 아닙니다.
저에게 두 옵션 모두 좋지 않게 들리지만, 전체 개수가 어떻게 계산되는지 대략 추측해 보면 (게시물 ID를 먼저 가져오고 나중에 총량을 계산하는 방식이라면, 요청하신 내용을 더 적은 페널티로 달성할 가능성이 더 높을 수 있습니다).
(여기서는 URL 변경이 아닌 표시 번호 변경만을 고려하고 있습니다. URL을 변경하면 시간이 지남에 따라 잘못된 게시물을 가리키는 링크가 생기기 때문에 훨씬 나쁜 결과를 초래할 테니까요)
저는 이 번호 매기기의 "문제"를 트레이드오프로 생각합니다. 이상적인 시나리오는 아니지만, 다른 가능성들 중에서 현재 방식이 가장 좋다고 생각합니다. 게다가 실제로 이상적인 시나리오는 어떤 것일까요? (그래서 트레이드오프라고 말하는 것입니다)