“Groups” 인덱스 페이지(예: /groups 또는 /g)는 자동 그룹의 가시성 설정을 존중하여 그에 따라 표시해야 합니다. Moderators 그룹에 대해서는 이렇게 작동하지만, 다른 그룹에는 그렇지 않습니다. 이는 GroupsController.index()에 하드코딩된 예외로 인해 발생하며, 이 때문에 비(非)스태프 사용자가 다른 자동 그룹을 가시성 설정과 무관하게 인덱스 페이지에서 전혀 볼 수 없게 됩니다.
이러한 예외적 동작은 적어도 두 가지 측면에서 문제적입니다:
관리자가 비스태프 사용자를 위해 자동 그룹을 인덱스에 표시하길 원하더라도 이를 방지합니다.
가시성 설정과 실제 가시성 사이의 불일치는 위험할 정도로 혼란을 야기합니다. 특히, 설정이 자동 그룹에 대해 무시되거나 무관한 것처럼 보이게 합니다(예: “아, 자동 그룹은 이 설정을 어떻게 하든 항상 스태프 전용이구나…”), 하지만 실제로는 해당 설정이 여전히 특정 그룹 페이지(예: /g/trust_level_0)와 그 멤버 목록에 대한 접근을 제어합니다.
관련 코드 주석은 이 예외적 동작이 “페이지를 덜 복잡하게 보이게 하기 위해 모든 비스태프에게 자동 그룹을 숨기는” 것이 의도된 것이라고 명시하고 있습니다 — 하지만 이를 달성하기 위해 이 메커니즘이 필요하지는 않습니다. 인덱스 페이지를 덜 복잡하게 보이게 하기를 원하는 관리자는 다른 어떤 그룹과 마찬가지로 자동 그룹의 가시성을 마음대로 설정하면 됩니다.
이 동작을 구현하는 app/controllers/groups_controller.rb의 6줄 코드를 단순히 제거하는 것을 제안합니다.
Discourse의 신규 설치에 대해 “덜 복잡한” 인덱스로 기본 설정하는 것이 그렇게 중요하다고 여겨진다면, 더 나은 메커니즘은 시스템이 처음 생성할 때 자동 그룹의 가시성 설정을 기본적으로 스태프 전용으로 설정하는 것이 아니라, 비스태프 사용자를 위해 인덱스 페이지의 기본 필터를 "비자동(non-automatic)"으로 설정하는 것입니다.
(가시성 설정은 접근 제어입니다 — 인덱스 페이지의 외관과 무관하게, 합리적인 기본 접근 수준을 구성하는 값이 기본값이어야 합니다.)
네, "당연하지"라고 할까요… 제 원래 제안에 이를 반영하여 수정했습니다. "가시성"은 접근 제어(access control)이므로 그렇게 취급해야 합니다(예: UI가 제도의 외형을 조절하기 위해 제어 항목을 왜곡하는 대신, 해당 제어의 상태를 투명하게 반영해야 합니다).
맞습니다! 비스태프(비관리자)를 위한 필터 드롭다운에 “자동(automatic)” 옵션이 제공되지 않는다는 점을 놓치고 있었습니다. (자동 그룹을 숨기는 동일한 6줄의 코드 블록에 의해 생략되고 있으므로, 해당 코드를 제거하면 이 문제도 함께 해결됩니다.)
백엔드 코드에는 이미 “non_automatic” 필터가 정의되어 있지만, 필터 드롭다운에서 누구에게도(스태프든 비스태프든) 제공되지 않는 것 같습니다.
"비스태프 사용자를 위한 자동 그룹을 인덱스에 표시한다"고 하셨을 때, 비스태프 사용자가 자동 그룹 필터에 접근하여 그들을 볼 수 있도록 허용하는 것을 의미하시나요?
이것은 정당한 우려입니다. 우리는 관리자 경험을 더 직관적이고 일관되게 만들려고 노력하고 있으며, 이는 사람들이 쉽게 실수를 할 수 있는 영역인 것 같습니다. 이 특정 사례에 대한 다른 불만을 들어본 적은 없지만, 동작이 일관되도록 수정하는 데 가치를 있다고 생각합니다.
이 두 가지 항목은 타당해 보입니다. 그러나 자동 그룹의 가시성 설정을 변경하는 것의 의도치 않은 결과는 없나요?
해당 인용문에서 저는 구체적으로 “비스태프 사용자가 /g 인덱스 페이지를 볼 때 자동 그룹을 표시한다”는 의미였습니다. 필터 설정과 무관하게, 현재 “Moderators”를 제외한 자동 그룹은 비스태프 사용자를 위한 /g 인덱스 페이지에 나열되는 것이 허용되지 않습니다.
나중 게시글(이 글 바로 앞의 글)에서 저는 필터 드롭다운에 “자동 그룹” 옵션을 스태프 사용자에게만 제공하는 것이 아니라 모든 사용자에게 제공해야 한다고 추가로 주장했습니다. 이를 비스태프 사용자에게 숨길 좋은 이유는 없다고 생각합니다. (드롭다운 메뉴에 무엇이 표시되든, URL 바에 올바른 키워드를 입력할 수 있는 모든 사용자는 여전히 필터를 사용할 수 있습니다.)
제가 작성한 게시글 전에 기본 정리(de-cluttering)에 대한 제안을 수정했음을 참고해 주세요. 인용하신 것은 원래 버전입니다. 제 첫 번째 게시글의 수정/현재 텍스트는 다음과 같습니다(간결성을 위해 취소선을 제거함):
변경 사항의 관점에서 다시 표현하고, 우선순위를 조금 조정해 보겠습니다:
A. 비스태프(non-staff) 사용자의 인덱스에서 자동 그룹을 제거하는 것을 중단합니다.
B. 비스태프 사용자의 드롭다운 메뉴에서 “자동 그룹” 필터를 제거하는 것을 중단합니다.
C. 모든 사용자에게 드롭다운 메뉴에 “비자동 그룹(Non-Automatic Groups)” 필터를 제공합니다.
D. /g에서 기본적으로 “비자동 그룹” 필터를 적용합니다.
3번 항목과 비교했을 때 C와 D의 표현은 의도적인 것입니다. UI는 어떤 필터링이 적용 중인지 매우 투명하게 보여줘야 한다고 생각합니다. 필터가 선택되지 않았다면, UI는 필터링되지 않은 뷰, 즉 사용자에게 표시/접근 가능한 모든 그룹을 보여줘야 합니다.
3번을 "필터가 선택되지 않으면 조용히 non_automatic 필터를 사용한다"고 해석할 수도 있지만, 그렇게 하면 여전히 혼란스럽다고 생각합니다. 필터가 선택되지 않았다면 단순히 필터가 적용되지 않아야 합니다. 반대로, 필터가 적용 중이라면 그 이름이 사용자에게 명확하게 드러나야 합니다.
좀 더 자세히 들어가 보겠습니다: 필터 선택 문제의 일부는 "그룹 유형으로 필터링"이라는 힌트가 필터 미선택 메뉴 항목의 레이블에 억지로 끼워 맞춰진 데서 기인합니다. 필터 미선택 항목의 레이블을 "모든 그룹(All Groups)"으로 표시하는 것이 궁극적으로 더 명확할 것이라고 생각합니다. 그리고 추가적인 “비자동 그룹” 항목을 추가하면, 두 항목 중 어느 것을 기본값으로 설정해도 됩니다. 이렇게 하면 (a) 사용자가 필터링된 뷰를 보고 있는지 명확해지고, (b) 필터링되지 않은 뷰로 전환하는 방법도 명확해집니다.
제 판단이라면, 필터 메뉴 항목의 레이블을 다음과 같이 지정하겠습니다:
모든 그룹(All Groups)
내가 속한 그룹(Groups I belong to)(내 그룹(My Groups)은 모호하기 때문에.)
내가 소유한 그룹(Groups I own)
공개 그룹(Public Groups)
비공개 그룹(Private Groups)(폐쇄(Closed)는 "서비스 중단"이나 "더 이상 사용되지 않음"처럼 들리기 때문에.)
자동 그룹(Automatic Groups)
비자동 그룹(Non-Automatic Groups)
그리고 __텍스트 박스__의 힌트 문자열을 "모든 그룹"에서 "그룹 이름으로 필터링"으로 변경하겠습니다.
이 문제를 함께 생각해 주셔서 감사합니다. 당분간 그룹 목록 UX에 큰 변화를 주기보다는, 모든 사용자에게 동일한 방식으로 그룹 목록 기능이 작동하도록 하는 아이디어에 동의합니다.
이 모든 제안은 좋은 아이디어입니다. 다만 "Automatic"과 "Non-Automatic"은 어색하고 기술적인 느낌이 강해서 의미가 잘 전달되지 않는다고 생각합니다. 자동 그룹은 사용자가 획득하거나 부여받은 권한과 관련된 것이므로, 이를 반영할 수 있는 라벨을 찾아보는 것은 어떨까요?
저도 같은 생각을 가지고 이곳에 왔습니다. 현재 '공개 + 비공개 그룹’으로 불리는 항목을 기본 보기로 설정하고, 이를 위해 해당 옵션을 도입하는 것이 더 좋다고 생각합니다. 또한 '내 그룹’이라는 표현의 모호성을 제거하는 것도 합리적인 방안입니다. '내 그룹’은 '내가 소유한 그룹’을 의미할 수 있고, '비공개 그룹’은 더 이상 활동하지 않는 것처럼 들릴 수 있으니까요.
이것들은 다음과 같은 표현과 매우 유사해 보입니다:
시스템 그룹
사용자 그룹, ‘공개 및 비공개 그룹’, 또는 단순히 그룹
이 필터 항목에서 제공되는 그룹의 순서를 구성할 수 있게 하고, 첫 번째 항목을 항상 기본 보기로 설정하여 우리가 선택할 수 있게 하면 어떨까요? 아니면 모두에게 적합한 적절한 기본 순서를 찾거나, 이 보기 중 하나를 기본값으로 설정하는 것을 허용하는 것도 또 다른 방안이 될 수 있습니다.
또한 '자동/시스템 그룹’에 사람이 읽기 쉬운 이름 별명을 부여할 수 있게 하면 좋겠습니다. 예를 들어, 일부 언어는 정규 그룹의 ‘전체 이름’ 필드와 같이 첫 글자를 대문자로 선호합니다. 선택 사항이지만 적절한 기본 설명 텍스트를 제공하면, 사이트 관리자가 관리 메뉴를 통해 설명에 추가 정보를 입력하지 않는 경우에도 이러한 항목들이 덜 ‘기술적인’ 느낌을 줄 수 있습니다.
‘자동’ 그룹과 ‘비자동’ 그룹 사이에 아이콘이나 박스를 연회색으로 채우는 것과 같은 시각적 구분도 도입할 수 있을 것입니다.
“자동(Automatic)”은 구현 세부 사항, 즉 사용자가 자동으로 그룹에 추가되는 방식을 가리키는 것처럼 들립니다. 일반 사용자의 관점에서는 그다지 의미가 없다고 생각합니다. 또한 엄밀히 말해 정확하지도 않습니다. 사용자는 스태프 그룹에 자동으로 추가되지 않으니까요. 자동 그룹에 가장 정확한 이름은 아마 “사전 생성된 그룹(pre-seeded groups)”일 것입니다만, 그건 아주 나쁜 이름입니다.
“시스템(System)” 그룹이라는 이름은 괜찮아 보이지만, 자동 그룹을 “신뢰 수준(Trust Levels)”과 “스태프(Staff)”로 나누는 건 어떨까요? 그룹 유형 필터는 다음과 같은 형태가 될 수 있습니다:
내 그룹
내가 소유한 그룹
공개 그룹
비공개 그룹
신뢰 수준
스태프
필요하다면 trust level groups public과 같은 사이트 설정을 만들어 신뢰 수준 그룹이 그룹 페이지에 표시될지 여부를 결정할 수도 있습니다.