속삭임 답변이 게시글 번호에 노출됩니다

이전 버그 몇 가지와 마찬가지로, 게시물의 링크 상자에서 표시되는 게시물 수를 확인해 보면 게시물 번호가 표시됩니다. 그러나 이 숫자는 오른쪽 탐색 바에 표시된 숫자와 일치하지 않습니다.

이 문제를 보여줄 수 있는 토픽이 될 수 있습니다: Migrate a phpBB3 forum to Discourse - #580 by gerhard

작성 시점 기준으로 해당 토픽의 마지막 게시물이 "580번째 게시물"로 표시되고 있지만, 스크롤 바에는 256 / 257로 표시됩니다. 토픽의 두 번째 게시물을 보면 번호가 303번으로 되어 있으므로, 그 이전에는 몇 개의 속삭임(whispers)이 있었던 것으로 추정됩니다.

또한 이 게시물 이후에도 번호에 공백이 있습니다: Migrate a phpBB3 forum to Discourse - #307 by Canapin

여기에도 속삭임이 있었던 것일까요?

아니요, 그냥 삭제된 게시글들이에요. 버그가 아닙니다.

알겠습니다 - 해당 주제에서 그런 상황이라면, 속삭임(whispers)이 있는 주제를 확인해 주시거나 (아니면 여기서 속삭임을 보낸 뒤 테스트 답글을 남겨보시는 건가요?) 동일한 효과가 나타날 것입니다.

불행히도 이 버그는 제 포럼에서 극도로 민감하거나 과민한 회원들에 의해 발견되었는데, 이들은 뭔가 끔찍한 일이 일어나고 있다고 상상하는 것 같습니다 :frowning:

이 기능이 어떻게 작동할 것이라고 상상하시나요?

  • 게시글 번호는 게시글이 생성될 때(사용 가능한 다음 번호가 할당됩니다) 부여되며, 특정 게시글에 대한 참조/링크가 깨지기 때문에 사후 변경이 불가능합니다.
  • 속삭임(Whispers)은 영구적으로 “Staff Only”(스태프 전용) 플래그가 붙은 주제 내의 게시글일 뿐입니다. 다른 게시글과 마찬가지로 생성될 때 게시글 번호를 부여받습니다. 번호를 다른 방식으로 부여할 계획이신가요?

스태프를 신뢰하지 않는 것이 문제라면, 아마도 여러분의 커뮤니티는 모든 모더레이션 등을 투명하게 공개적으로 수행해야 할 필요가 있는 것일까요?

게시물 #은 스크롤 바에서 계산된 게시물 번호와 일치해야 하며, 따라서 비공개 메시지(whispers)는 비관리자에게 ‘건너뛰기’ 처리됩니다. 비공개 게시물로 링크하는 기능은 여전히 지원될 수 있지만, 예를 들어 /topicid/w-postid와 같이 ‘w’ 접두사가 게시물 ID가 비공개 메시지임을 나타내는 약간 다른 URL 형식을 사용하는 것도 가능합니다.

우리는 매우 개방적입니다. 하지만 그럼에도 불구하고 일부 사용자는 특정 주제에 있는 비공개 메시지의 수를 지적하며 문제를 일으키려는 시도를 멈추지 않습니다.

구체적인 이점이 전혀 없는 일에 너무 많은 노력이 투입되는 것처럼 들립니다.

커뮤니티가 속삭임이 사용될 수 있는 것을 원하지 않는다면, enable whispers 설정을 꺼두는 것이 도움이 될 수 있습니다.

그럼에도 불구하고, 해당 토픽에 삭제된 게시글이 있다면 카운트가 어긋나는 사실은 변하지 않습니다. 그 불일치 때문에 여전히 불안해하거나 편집증적으로 반응할 것이며, 결국 불필요하게 속삭임 기능을 잃게 됩니다.

숫자가 다른 이유는 삭제된 게시글 때문이라는 점을 사용자에게 간단히 설명해 주면 충분할 것입니다. 그 외에는 사용자가 근거 없는 두려움(또는 음모론)을 극복해야 합니다.

커뮤니티 문제는 제쳐두고, 여전히 가장 명백한 카운트 불일치를 수정하는 것은 충분히 간단해야 한다고 생각합니다:

역시 마지막 말은 항상 그런 법이죠 :rofl:

게시물 영구 링크(permalink)에서 속삭임(whispers)을 무시한다면, 관리자는 속삭임에 어떻게 링크를 걸어야 할까요? 그렇다면 TallTrees 님이 제안한 것처럼 속삭임을 위한 새로운 URL 형식을 추가해야 합니다.

저는 이미 이에 대해 다음과 같이 답변했습니다.

결국 우리는 제자리걸음만 하고 있는 셈입니다.

제 이전 게시글에서는 스크린샷에 표시된 것처럼 게시글 번호와 개수가 일치하지 않는 문제의 ‘외관상’ 수정만 요청했습니다. 다른 부분은 효과가 적을 만큼 작업량이 많다고 하셨기 때문에, 그 부분은 포기했습니다.

수년째 지속되고 있는 문제이며, 몇 가지 개선 시도가 이루어진 끝에 현재에 이르렀습니다.

필요한 투명성과 눈에 띄지 않는 것의 조합이라고 생각합니다. (네, 부분적으로 모순되는 표현입니다.)

게시물을 순서대로 표시하는 원칙을 타협하지 않겠습니다. (예: 트위터와 같은 대형 플랫폼이 삭제된 게시물 문제를 다루는 방식과 같습니다.) 이러한 번호 불일치는 그 원칙을 유지하기 위한 불가피한 비용으로 보입니다.

트위터가 어떤 조치를 취하고 있는지 설명을 좀 더 자세히 해주거나 참고 자료를 링크해 주실 수 있을까요? 저는 트위터를 사용하지 않아서, 여기서 디스커스가 어떻게 처리하고 있는지 비교·대조할 기준이 없습니다.

간단히 말하면 :blush: 그 날짜를 확인해 보세요

답글 표시 순서를 끊임없이 바꾸어 삭제되거나 원치 않는 답글을 쉽게 묻어 버릴 수 있으며, 이를 입증할 간단한 방법도 없습니다.

또한, 자극적인 답변은 알고리즘에 의해 상단으로 올려져 불을 끄는 대신 논쟁의 불씨를 부채질합니다.

아… 큐레이션된 순서 관련 문제군요. 삭제된 게시글 기록 등에 이 기능이 어떤 영향을 미칠지 생각해보지 못했네요.

네, 전적으로 동의합니다.

그래서 저는 같은 화면에 표시되는 두 개의 '게시물 번호’가 일치하는 것이 더 좋다고 생각합니다(화면 캡처는 위 제 게시물에 있습니다). URL에 있는 게시물 번호(보통 스크롤이 필요합니다)가 실제 게시물 순서 번호를 드러내더라도 말입니다.

페이지의 스크롤러가 각 게시물의 ‘가시적인’ 번호를 알고 있으므로, 이걸 게시물 대화상자에서 재사용하는 것이 왜 어려운지 모르겠습니다. 하지만 저는 코드도 살펴본 적이 없으니요!

저도 코드가 이를 어떻게 처리하는지 정확히 알지는 못하지만, 제 추측으로는 삭제되지 않고 속삭임이 아닌 게시물의 수를 PostgreSQL 인덱스를 사용하여 집계하는 데이터베이스 쿼리로 전체 개수를 빠르게 계산할 수 있을 것 같습니다.

반면에, 각 게시물의 실제 번호(속삭임과 삭제된 게시물을 무시하고)를 표시하는 것은 성능에 막대한 페널티를 초래하면서도 거의 이점이 없을 수 있습니다. 새로운 게시물이 생성되거나 삭제될 때마다 게시물 번호를 업데이트하는 백그라운드 프로세스를 통해 구현할 수도 있지만(그동안 번호가 틀린 상태가 될 수 있음), 이 역시 좋은 옵션은 아닙니다.

저에게 두 옵션 모두 좋지 않게 들리지만, 전체 개수가 어떻게 계산되는지 대략 추측해 보면 (게시물 ID를 먼저 가져오고 나중에 총량을 계산하는 방식이라면, 요청하신 내용을 더 적은 페널티로 달성할 가능성이 더 높을 수 있습니다).

(여기서는 URL 변경이 아닌 표시 번호 변경만을 고려하고 있습니다. URL을 변경하면 시간이 지남에 따라 잘못된 게시물을 가리키는 링크가 생기기 때문에 훨씬 나쁜 결과를 초래할 테니까요)

저는 이 번호 매기기의 "문제"를 트레이드오프로 생각합니다. 이상적인 시나리오는 아니지만, 다른 가능성들 중에서 현재 방식이 가장 좋다고 생각합니다. 게다가 실제로 이상적인 시나리오는 어떤 것일까요? (그래서 트레이드오프라고 말하는 것입니다)

백그라운드에서 처리해야 할 또 다른 작업은 다른 주제에서 링크가 참조된 URL을 변경하는 것입니다.
여기서도 문제가 발생할 수 있습니다: 다른 사이트로 공유된 링크입니다.
URL이 시간 슬라이더에 맞게 변경되면, 이전에 공유되었던 URL과 일치하지 않게 됩니다.

그렇지는 않을 것 같습니다. 페이지를 아래로 스크롤하면 오른쪽 스크롤/내비게이션 바에 이미 실제 표시되는 게시물 번호가 나타나고 있습니다. 이 요청은 단순히 게시물을 링크할 때 팝업 상자에서 이 번호를 사용하자는 것입니다.

링크 상자:

스크롤 바:
image

이 주제에서는 두 번호가 일치합니다(아마도 삭제된 게시물이나 속삭임이 없기 때문이겠죠). 좋습니다 :slight_smile:

이 주제로는 테스트할 수 없는데, 숫자가 이미 정확하기 때문입니다. 하지만 타임라인의 현재 숫자가 정확하고 게시글과 연결할 수 있다면, 프론트엔드 쪽만 소폭 수정하면 됩니다. 그래서 네, 페널티 없이 달성할 수 있겠네요(게시글 번호만 바뀌고 URL은 바뀌지 않는 한).

네, 정확히 그겁니다. 타임라인은 올바르게 처리하고 있으므로, 게시글 번호(단, URL은 제외)에 해당 데이터와 로직을 재사용하는 것만 있으면 됩니다.