Discourse는 다양한 기능을 갖춘 훌륭한 포럼입니다. 특정 주제에 대한 답변에서 사용자가 수동으로 대상 독자(청중)를 선택할 수 있는 방법이 있는지 궁금합니다. 주제 작성자에게만 답변 가시성을 제한하는 놀라운 ‘discourse-private-reply’ 플러그인이 있다는 점은 알고 있지만, 보다 세밀한 제어 기능을 제공하는 솔루션을 찾고 있습니다.
정리하자면, 특정 주제 내에서 답변을 작성할 때 ‘게시’ 버튼을 클릭하기 전에 내 답변을 볼 수 있는 사용자 화이트리스트를 생성할 수 있기를 바랍니다. 즉, 내가 선택한 사용자만 내 답변을 볼 수 있고, 다른 모든 사용자는 볼 수 없도록 보장하는 것입니다.
개인적으로는 프로그래밍 지식을 갖춘 개발자이지만, Discourse 플러그인 개발은 처음 해보는 것입니다. 제가 원하는 수준의 제어를 제공할 수 있는 기존 플러그인이나 도구가 없다면, 원하는 기능을 구현하기 위한 개발 접근법에 대한 조언이나 가이드를 제공해 주시면 감사하겠습니다. 예를 들어 어떤 '프로세스’에 훅을 걸어야 하는지, 또는 어떤 API를 호출해야 하는지 등에 대한 조언을 부탁드립니다.
이러한 세밀한 수준의 접근이 필요하다면, 일반적인 공개 토픽이 최선의 해결책인지 다시 한번 고려해 볼 필요가 있습니다. 혹시 구체적인 사용 사례에 대해 조금 더 알려 주실 수 있을까요?
좋은 시작점은 역시 저의 private-replies 플러그인일 것입니다. 이 플러그인에는 현재 토픽을 인수로 받는 can_see_post_if_author_among이라는 함수가 있습니다. 이를 수정하여 포스트를 인수로 받도록 변경해야 합니다. 그리고 허용된 사용자를 포스트의 커스텀 필드에 저장한 후, 해당 목록과 조회 중인 사용자를 비교하여 검증하는 로직을 구현해야 합니다.
이 플러그인은 또한 원시 포스트(raw posts), 검색, 토픽 뷰, 사용자 프로필 활동에 대한 액세스 제어 로직도 오버라이드합니다.
그러나 성능과 UX 측면에서 상당한 문제에 직면할 것으로 예상됩니다. 특히 Discourse 플러그인 개발 경험이 없다면 이 작업은 상당한 부담이 될 수 있으므로, 이 접근 방식이 사용자의 경우 최선인지 다시 한번 신중하게 검토해 보시길 권고합니다.
빠른 답변과 이 문제에 대한 통찰을 공유해 주셔서 감사합니다. 교사가 각 학생에게 다른 과제를 부여하고, 학생들이 자신의 답변(보고서)을 Discourse 포럼에 게시해야 하는 사용 사례 예시를 제시하고자 합니다. 이 시나리오에서 1) 교사는 각 학생의 답변을 볼 수 있어야 하고, 2) 일부 학생은 답변을 비공개로 유지하기를 원할 수 있는 반면, 다른 학생은 댓글, 피드백, 상호작용을 원할 수 있습니다. 또한 3) 교사가 공개적으로 보여주기에는 적절하지 않은 댓글을 제공할 수도 있습니다.
게시물에 대한 이러한 제어 필요성은 직원들이 월간 보고서를 작성하거나 환자들이 회복 일지를 작성하는 상황에도 적용될 수 있습니다. 추상적으로 말하자면, 이는 사전에 모든 것을 계획하는 관리자보다는 사용자의 제어 요청에 부응하는 것입니다. 이는 고품질 콘텐츠 제작에 초점을 맞춘 소규모 커뮤니티에서 특히 중요합니다.
Discourse가 수천 명의 사용자를 가진 대규모 커뮤니티를 위한 훌륭한 플랫폼인 동시에, 더 깊은 사고와 심도 있는 논의를 장려하는 작고 정제된 커뮤니티를 구축하는 데에도 훌륭한 선택지입니다. 사용자는 잘 작성된 게시물에 대해 더 많은 제어를 가져야 합니다.
이 기능을 위한 플러그인 개발에 대해, 성능과 사용자 경험의 균형을 맞추는 것에 대한 우려에 감사드립니다. 복잡한 플러그인을 즉시 만드는 것보다, 기존 기능을 최대한 활용하는 것이 더 나은 접근 방식입니다. 예를 들어, 각 과제를 나타내는 여러 하위 카테고리를 가진 카테고리를 생성하고, 학생들이 자신의 작업을 적절한 하위 카테고리에 제출하도록 할 수 있습니다. 이를 통해 각 주제에 대한 제어가 가능해지며, 작성자는 자신의 주제를 공개하거나 특정 사용자 그룹에게만 보이도록 선택할 수 있습니다. 이러한 작은 단계들은 업무량을 줄이고 기능의 효과를 검증하는 데 도움이 될 수 있습니다.
요약하자면, 사용자가 자신의 게시물에 대해 더 많은 제어를 가지는 것은 고품질 콘텐츠와 참여도를 갖춘 틈새 커뮤니티를 만드는 데 필수적입니다. 이는 이러한 커뮤니티를 육성할 뿐만 아니라 Discourse의 잠재적 활용 범위를 확장할 것입니다. 이는 Discourse가 할 수 있는 것을 탐색하는 새로운 방식입니다.
이것은 바로 이 플러그인이 만들어진 목적입니다. #2와#3은 개인 메시지나 채팅으로 처리하시면 됩니다.
작성자는 이미 답변을 공개적으로 보이거나 보이지 않도록 선택할 수 있으며, 플러그인은 작성자와 같은 1차 그룹에 있는 사람들에게만 답변이 보이도록 설정할 수도 있습니다.
서로 다른 접근 권한을 가진 카테고리를 사용하면, 전체 주제를 볼 수 있는 사람과 볼 수 없는 사람을 더욱 세밀하게 제어할 수 있습니다.
다시 말하지만, 작업 방식을 약간만 변경하면 이미 달성할 수 있는 일을 위해 추가적이고 복잡하며 취약한 기능을 구축할 필요는 없습니다.
요약하자면, 이러한 변경이 필요하다는 점을 설득하지 못했습니다. 이 변경들은 사용자뿐만 아니라 플러그인 유지보수 측면에서도 복잡성만 증가시킬 것입니다.