이 문제에 대해 추가 조사를 진행했고, 이제 논리적으로 어떻게 이러한 결론에 도달했는지 이해하게 되었습니다. 하지만 PR #24294는 롤백되어야 한다고 생각합니다.
내장 토픽은 일반적으로 사용자가 서핑하는 과정에서 생성됩니다
Discourse의 내장 토픽(embedded topics) 기능은 문서화가 매우 부족합니다. 관련 문서가 이것뿐입니다. Embed Discourse comments on another website via Javascript 이 문서에서는 WordPress 플러그인 없이 Discourse를 어떤 블로그에든 통합하는 방법을 설명하고 있습니다.
Discourse가 권장하는 구현 방식에서는 블로그 게시물에 단순히 _방문_하는 것만으로 해당 게시물에 대한 토픽이 Discourse에 자동으로 생성됩니다.
블로그에는 수백 개의 게시물이 있을 수 있으므로, 이는 사용자가 블로그를 서핑하는 것만으로 수백 개의 빈 토픽 스레드가 자동으로 생성되어 포럼을 사실상 스팸으로 오염시키는 결과를 초래합니다. 이것이 embed unlisted가 기본적으로 true로 설정된 이유입니다. 이를 통해 블로그 _독자_가 자동으로 수백 개의 빈 토픽을 생성하지 않도록 방지합니다.
WordPress 토픽은 블로그 소유자가 게시(Publish)를 클릭하여 생성될 수 있으며, 이는 완전히 다른 개념입니다
WP 플러그인에는 WordPress에 게시물을 게시하는 동시에 포럼에도 게시물을 "게시(Publish)"하도록 할 수 있는 확인란이 있습니다.
블로그 소유자가 게시를 클릭할 때, 우리는 포럼에 토픽이 생성되고 _목록에 표시(listed)_되기를 원합니다. 이것이 WP 플러그인에서 “Publish unlisted” 설정이 embed unlisted 설정을 따르지 않는 _별도의 설정_으로 만들어졌던 이유입니다.
WP 플러그인에 아예 게시 기능이 없다면 어떻게 될지 상상해 볼 수 있습니다. 블로그 소유자가 블로그 게시물을 게시한 후 해당 게시물을 확인합니다. _확인_하는 행위(사용자로서)가 포럼에 목록에 표시되지 않는(unlisted) 토픽을 생성합니다. 그런 다음 블로그 소유자는 포럼으로 이동하여 내장 토픽을 수동으로 클릭하여 표시(visible)로 변경할 수 있습니다.
하지만 블로그 소유자로서 실제로 포럼에 목록에 표시되고 보이는 토픽이 나타나기를 원할 때, 즉 블로그 게시물을 포럼에 크로스 게시(cross-publish)하고 싶을 때, 이는 번거롭고 혼란스럽습니다.
따라서 WP 플러그인에는 embed unlisted 설정을 오버라이드하여 포럼에 실제로, 진정으로 크로스 게시할 수 있도록 하는 별도의 설정이 있었습니다.
게시를 위한 별도 설정이 존재한 것은 역사적 특이점이 아니었습니다
여기서 무슨 일이 일어났는지는 다음과 같습니다. "WP 플러그인이 embed unlisted 기능을 따르지 않는 이유가 무엇인지 아는 사람이 있는가?"라고 물었고, 마침 그 이유를 기억할 수 있는 사람이 없었던 것입니다.
하지만 제가 그 기능이 존재했던 이유를 보여줬기를 바랍니다. 그것은 의도적으로 설계된 것이었고, 이제 그것이 깨져버린 것입니다.
내장된 목록 미표시(unlisted) 토픽이 아예 존재해야 하는 것이 정말 싫습니다
많은 사람들이 지적했듯이, 최종 사용자가 블로그 게시물을 읽는 것만으로 Discourse에 토픽을 생성할 수 있다는 것은 이상합니다.
이상적으로는, 블로그 소유자가 게시물을 게시(Publish)할 때 공개적으로 목록에 표시되는 내장 토픽이 생성되어야 합니다. 그러면 사용자는 해당 토픽에 정상적으로 답변할 수 있습니다.
하지만 블로그 게시물이 토픽 생성 없이 게시되었다면, 사용자가 블로그 게시물을 _확인_할 때 토픽을 생성하는 것은 여전히 의미가 없습니다. 대신, 누군가 블로그 게시물에 _답변_할 때 내장 토픽이 생성되어야 합니다.
목록에 표시되지 않는 내장 토픽을 생성하는 것은 그 동작을 시뮬레이션하기 위한 해킹(hack)입니다. 누군가 답변하면 해당 목록 미표시 토픽이 자동으로 목록에 표시됩니다.