이전 기본값을 제거하고 한 단계로 추가하는 것과, 중간에 잠시 멈추고 두 단계로 나누어 수행하는 것의 차이점은 무엇인가요?
처음에는 이 과정이 모든 개인 맞춤 설정을 초기화하는 줄 잠깐 생각했습니다. 하지만 제 테스트 결과에 따르면 그런 일은 일어나지 않습니다. 이전에 사이드바 기본 설정에 없었던 카테고리를 사용자가 직접 추가한 경우, 설정이 비워졌다고 해서 그 카테고리가 제거되지 않습니다. 설정에 이전에 구성되었던 항목만 제거됩니다.
따라서 모든 사용자의 사이드바를 동일하게 만들려면 다음 작업을 수행해야 합니다.
설정에 모든 카테고리를 추가합니다(가능하다면 모든 사용자에게 이 설정을 오버라이드하지 않는 것이 좋습니다)
그런 다음 설정에서 모든 카테고리를 제거하고 모든 사용자에게 이 설정을 오버라이드합니다
(몇 분 정도 기다립니다?)
새 카테고리를 추가하고 모든 사용자에게 이 설정을 오버라이드합니다
여기서 2단계와 4단계를 분리해야 하는 이유는 1단계가 모든 사용자에게 적용되지 않았기 때문입니다. 1단계를 모든 사용자에게 적용하여 모든 사용자의 사이드바에 모든 카테고리가 표시되도록 한 후, 몇 분 후 원하지 않는 카테고리를 제거하는 방법도 있지만, 그러면 몇 분 동안 사용자 경험이 나빠질 수 있습니다.
@Moin
여기서 백필(backfilling)이 작동하는 방식은 일반적으로 기대하는 것과는 약간 다릅니다. default navigation menu categories 설정이 업데이트될 때 단순히 모든 사용자의 사이드바 카테고리를 초기화하지 않습니다. 대신 다음과 같이 처리합니다.
관리자가 설정에 몇 가지 카테고리를 추가하면, 해당 카테고리가 이미 설정되어 있지 않은 모든 사용자의 사이드바에 새로 추가된 항목만 추가됩니다.
설정에서 몇 가지 카테고리를 제거하면, 해당 카테고리는 모든 사용자의 사이드바에서 제거됩니다.
따라서 백필은 설정의 상태를 모든 사용자에게 강제하지 않고, 설정에 있는 기존 값과 새로 추가되거나 제거된 값 사이의 차이(delta)만 반영합니다.
이렇게 하는 주요 이유는 개별 사용자의 설정을 보존하기 위해서입니다.
이 동작이 도입된 PR은 다음과 같습니다:
모든 사용자에게 동일한 카테고리를 적용하는 두 가지 방법을 확인했습니다.
모두 추가, 과거에 적용, 일부 제거, 과거에 적용.
모두 제거, 과거에 적용, 일부 추가, 과거에 적용.
최근 대규모 사이트에서 이 작업을 수행하려 했을 때, 방법 1은 제대로 작동하지 않았고 방법 2는 작동했습니다. 그래서 방법 2를 문서화했습니다.
시간이 나시면 여러 사용자를 대상으로 두 가지 방법 모두를 시도해 보시기 바랍니다. 이 방법이 도움이 된다면, 업데이트가 예상대로 작동했는지 확인하기 위해 SQL 쿼리를 작성해 드릴 수 있습니다. 의견 주시면 알려주세요.
모든 사용자의 사이드바에 동일한 카테고리가 표시되는 결과를 얻기 위해, 사용자가 사이드바에 추가한 카테고리(제 예시에서는 category4)가 제거되어야 하는 단계는 어디인가요?
여기서 말씀하신 내용에 따르면, 해당 카테고리가 설정에서 제거되지 않았기 때문에(설정에도 없었으므로) 제거될 것으로 기대하지 않습니다. 하지만 모든 사용자에게 동일한 카테고리를 강제 적용하기 위해 해당 단계를 사용했다고 말씀하셨습니다.
만약 모든 카테고리를 추가했다면(방법 1), category4가 추가되고 제거되었을 것이므로 사라질 것으로 기대합니다. 그 부분은 이해합니다. 하지만 가이드에서는 방법 2를 사용해야 한다고 되어 있어, 제 이해와 테스트에서 무엇을 놓치고 있는지 궁금합니다.