배경
우리는 공개 접근과 개인정보 보호 사이의 균형을 맞추기 위해 사이트를 설정하려고 노력하고 있습니다:
- 사이트는 전반적으로 공개되어 있으며, 익명 사용자는 둘러볼 수 있고 검색 엔진은 인덱싱할 수 있습니다. 사용자 이름은 공개됩니다.
- 실명(성명)과 프로필은 반공개(semi-public)로 간주됩니다. 이들은 다른 커뮤니티 구성원에게만 노출되어야 하며(웹 크롤러나 익명 방문자에게는 노출되어서는 안 됩니다).
- 이메일 주소는 완전히 비공개로 간주됩니다. 관리자만 이에 접근할 수 있어야 하며(접근은 모니터링됩니다).
Discourse는 기본적으로 (1)과 (3)을 처리합니다. (좋습니다!) 우리는 (2)를 달성하는 데 어려움을 겪고 있습니다.
"게시물에 이름 표시"를 비활성화하고 "공개 대상에서 사용자 프로필 숨기기"를 활성화하면 더 나은 것처럼 보이는 결과를 얻을 수 있지만, (2)를 완전히 달성하지는 못합니다. 사용자 검색 결과와 배지 수상자 목록에는 여전히 실명이 표시됩니다. (*) 그리고 UI에서 실명이 표시되지 않는 경우에도 서버는 여전히 이를 전송하고 있습니다 — 예를 들어, 가져온 토픽의 JSON에서 모든 게시물 객체에는 “name”(그리고 “display_username”?)이 여전히 채워져 있습니다.
우리는 사용자에게 "실명은 다른 커뮤니티 구성원에게만 노출됩니다"라는 약속을 하고 싶지만, 서버가 모든 곳에서 실명을 누출하고 있다면 그렇게 할 수 없습니다.
제안된 기능
"실명 노출을 그룹으로 제한"이라는 설정을 도입하면 어떨까요? 이 설정은 다음 특성을 가집니다:
- 설정 값은 그룹의 허용 목록(allowlist)입니다("모든 사용자, 익명 사용자 포함"을 의미하는 특정 값 포함).
- 클라이언트 세션에서 온 쿼리가 허용 목록과 일치하면, 서버는 실명을 응답합니다. 그렇지 않으면, 실명을 담을 모든 필드는 null 값이 됩니다(또는 객체에서 제외되는 등).
이것이 우리의 (2)를 처리해 줄 것이라 생각합니다 — 그리고 실명 표시 기준을 TL1로 설정하는 것(versus TL0)도 가능하게 해줄 것입니다.
제가 요청하는 것이 기존 “이름 활성화” 설정의 더 세분화된 버전일 수 있다는 생각이 듭니다(그 설정을 비활성화하면 서버 측에서 약속한 대로 작동하고 클라이언트에 실명을 노출하지 않는다면요). 그러면 구현이 정말 쉬울 수도 있습니다… ![]()
이것이 Discourse 코어에 실현 가능한 기능처럼 보입니까?
(대안으로, 플러그인으로 구현 가능해 보입니까? 코어에서 구현되기를 원하지만, 실제로 사이트를 대중에 공개할 수도 있어야 합니다.)
(*: 익명 사용자가 사용자 검색을 수행하고 배지 수상자 목록을 보는 것 — 그리고 이를 통해 우리 사용자 목록을 쉽게 가져가는 것 — 을 방지하는 것은 완전히 다른 주제이며, 다른 토픽에서 다룰 것입니다.)