BizOps Workspace로 사용자 및 채널을 관리하는 방법

pubnubdevrel

PubNub Developer Relations

Posted on April 4, 2024

BizOps Workspace로 사용자 및 채널을 관리하는 방법

이 사용법 문서는 BizOps Workspace로 통칭되는 PubNub의 데이터 관리 기능에 대해 설명하는 일련의 문서 중 일부입니다:

BizOps Workspace는 애플리케이션을 관리하는 데 도움이 되는 일련의 도구입니다. 이 문서에서는 코드를 수정하지 않고도 사용자 및 채널에 대한 앱 컨텍스트 메타데이터와 이들 간의 "멤버십" 관계를 관리할 수 있는'사용자 관리' 및'채널 관리' 기능을 살펴봅니다. 이 문서에서는 앱 컨텍스트가 무엇이며 사용자 및 채널 관리와 어떻게 관련되는지 설명하고, BizOps Workspace가 솔루션을 관리하는 데 어떻게 도움이 되는지 이해할 수 있도록 대화형 예제를 몇 가지 제시합니다.

앱 컨텍스트란 무엇인가요?

앱 컨텍스트 (이전에는 개체로 알려짐)를 사용하면 다음을 수행할 수 있습니다:

  • 애플리케이션의 사용자 및 채널과 이들 간의 관계에 의미를 부여합니다.
  • 모든 엔티티에 대한 메타데이터를 서버에 저장하여 클라이언트에 글로벌 소스를 간편하게 제공할 수 있습니다. 사용자가 반드시 사람을 나타낼 필요는 없으며, 대신 사용자 개체 내에 디바이스 상태를 저장하는 것이 일반적입니다.
  • 객체의 값이 변경될 때마다 즉각적인 실시간 이벤트를 수신합니다.

모든 애플리케이션에서 앱 컨텍스트를 사용할 수 있지만 특히 채팅 솔루션을 만드는 개발자에게 인기가 높습니다.

앱 컨텍스트 자체는 새로운 것이 아니므로 이미 익숙하다면 '사용자 관리'와 '채널 관리'가 제공하는 기능에 대해 설명하는 다음 섹션으로 건너뛰세요.

앱 컨텍스트는 사용자채널에 대한 일련의 추천 필드와 이들 간의 멤버십에 대한 추천 필드를 제공합니다. 이러한 필드는 대부분 선택 사항이지만 일반적인 채팅 애플리케이션에서 앱 컨텍스트를 어떻게 사용할 수 있는지 살펴보겠습니다.

사용자 앱 컨텍스트

새 사용자가 애플리케이션에 등록될 때 외부 ID 공급자를 통해 해당 사용자를 PubNub에 고유하게 식별할 수 있는 방법이 있을 것이며, 이것이 바로 사용자의 클라이언트가 PubNub SDK를 초기화하는 데 사용할 사용자 ID입니다. PubNub 사용자 ID는 솔루션의 다른 곳에서 동일한 사용자를 식별하는 데 사용하는 ID와 다를 수 있으므로 '외부 ID' 필드에서 이를 추적하는 것이 좋습니다.

사용자 이름, 이메일, 프로필 URL은 설명이 필요하지 않지만, 앱 컨텍스트 내에 보관하면 사용자가 이러한 필드 중 하나를 변경하면 모든 SDK에서 지원하는 앱 컨텍스트 이벤트를 사용하여 변경 사항을 모든 수신 클라이언트에 대규모로 전파할 수 있다는 이점이 있습니다.

채널 앱 컨텍스트

사용자가 채널을 구독하거나 게시할 때마다 PubNub는 자동으로 채널을 생성하지만, 채널은 애플리케이션에 의미 있는 무언가를 나타낼 수 있습니다(예: 채팅 앱에서 채널을 사용하여 소통하는 그룹 채팅이 있거나 라이브 이벤트에서 전용 채널을 사용하여 투표를 관리할 수 있습니다).

채널에 대한 앱 컨텍스트를 지정하면 해당 채널과 관련된 원하는 메타데이터가 저장되고 업데이트되며, 이러한 업데이트는 선택적으로 모든 관심 있는 클라이언트에게 전파됩니다. 채널에 '사용자 A와 사용자 B 간의 채팅' 등의 이름을 지정할 수 있으며, 채널이 일부 문서 저장소와 관련되어 있을 경우 사용자 지정 'URI' 필드에서 추적할 수 있습니다.

멤버십 앱 컨텍스트

사용자와 채널 모두에 대한 앱 컨텍스트를 정의했으면 이제 사용자가 채널의 '회원' 인지 여부를 지정하여 둘 사이의 관계를 정의할 수 있습니다.

사용자가 채널에 가입하면 같은 채널의 다른 멤버에 대한 업데이트를 받을 수 있으며, 사용자가 '가입'하거나 '탈퇴'할 때뿐만 아니라 해당 사용자의 앱 컨텍스트가 업데이트될 때마다(예: 이름을 업데이트하는 경우) 알림을 받을 수 있습니다.

이는 특히 채팅 앱 개발자에게많은 가치를 제공하는 놀랍도록 강력한 메커니즘입니다. 앱 컨텍스트를 사용하지 않는다면 모든 사용자를 직접 추적하고, 해당 사용자가 어느 채널의 멤버인지, 해당 사용자가 가입하거나 탈퇴하면 같은 채널의 다른 모든 사용자에게 알려야 합니다. 이 문제는 선형적으로 확장되지 않기 때문에 솔루션에 사용자가 많을수록 이 모든 정보를 중앙에서 관리하기가 더 어려워집니다.

앱 컨텍스트를 사용하면 채팅 클라이언트가 내부 상태를 유지하는 데 필요한 모든 정보를 제공받을 수 있으며, 무단 액세스를 방지하기 위해 PubNub 액세스 관리자를 사용하여 해당 데이터를 완벽하게 제어할 수 있습니다.

사용자 및 채널 관리란 무엇인가요?

'사용자 관리'와 '채널 관리'는 PubNub 관리자 포털을 통해 서버에서 애플리케이션의 앱 컨텍스트 데이터를 수정하는 방법을 제공합니다. 예를 들어 사용자 이름이나 채널 설명을 변경하거나 더 이상 필요하지 않은 사용자를 삭제하고 싶을 수 있습니다.

이전에는 애플리케이션의 앱 컨텍스트를 업데이트하려면 SDK 중 하나를 사용하여 필요한 변경을 수행하는 전용 프론트엔드를 개발해야 했습니다. 이 새로운 관리 기능을 사용하면 새로운 개발 없이도 앱 컨텍스트 데이터를 업데이트할 수 있습니다.

사용자 또는 채널 관리를 사용하려면 다음이 필요합니다:

  • 키세트에서 앱 컨텍스트가 활성화되어 있어야 합니다.

  • 애플리케이션에서 앱 컨텍스트를 사용하여 사용자 및/또는 채널에 대한 메타데이터와 해당 엔티티 간의 멤버십을 저장합니다. 어떤 SDK를 사용하든 상관없지만, 새 채팅 앱을 만드는 타입스크립트 개발자에게는 채팅 SDK를 권장하며, 이 기능은 모든 SDK에서 작동합니다.

  • 유료 요금제입니다. 자세한 내용은 BizOps Workspace 문서를 참조하세요.

사용자 관리

사용자 관리 창에서는 다음을 수행할 수 있습니다:

  • 사용자 만들기 또는 삭제

  • 사용자 필터링 및 검색

  • 사용자와 관련된 메타데이터 만들기 또는 업데이트하기

  • 해당 사용자의 채널 멤버십을 만들거나 업데이트합니다.

예를 들어 시스템에서 더 이상 활동하지 않는 사용자를 삭제하거나 해당 사용자를 별도로 프로비저닝할 필요 없이 테스트 목적으로 새 사용자를 만들 수 있습니다.

앱 컨텍스트를 제공한 모든 사용자는 사용자 관리 보기에 표시됩니다. Chat SDK를 사용하는 경우에는 이 SDK가 앱 컨텍스트를 백그라운드에서 처리합니다(예: Chat SDK의'createUser()' 메서드는 JavaScript의 setUUIDMetadata를 호출). Chat SDK 이외의 다른 SDK를 사용하는 경우에는 앱 컨텍스트 데이터를 수정하기 위한 전용 API가 제공됩니다. 이미 JavaScript API에 대해 언급했지만 Java, Swift, Kotlin, Python, Unity 등 모든 API에 대한 동등한 API가 있습니다.

사용자 관리 문서 페이지에서 사용자 관리 사용 방법을 안내해 드리며, 필요한 경우 새 사용자에 대한 멤버십(채널에 할당)을 만드는 것만 잊지 마세요.

채널 관리

채널 관리 창에서는 사용자 관리 창과 마찬가지로 채널을 만들거나 삭제하고, 채널과 관련된 메타데이터를 업데이트할 수 있을 뿐만 아니라 해당 채널의 회원인 사용자도 업데이트할 수 있습니다.

예를 들어 더 이상 활성화되지 않는 채널을 삭제하거나 새 채널을 만들어 프로덕션 데이터를 건드리지 않고도 환경에서 새로운 기능을 테스트할 수 있습니다.

앱 컨텍스트를 제공한 모든 채널은 채널 관리 보기에 표시됩니다. Chat SDK를 사용하는 경우에는 앱 컨텍스트가 백그라운드에서 처리됩니다. 예를 들어' 채널만들기 ' 메서드 제품군은 JavaScript의 setChannelMetadata()setMemberships를 호출합니다. Chat SDK 이외의 다른 SDK를 사용하는 경우에는 앱 컨텍스트 데이터를 수정하기 위한 전용 API가 제공됩니다.

채널 관리 문서 페이지에서 채널 관리 사용 방법을 안내해 드리며, 필요한 경우 새 채널에 대한 멤버십을 만드는 것(사용자 할당)만 잊지 마세요.

대화형 데모 사용자 및 채널 관리

대화형 데모 앱을 사용하거나 데모를 보면 사용자 및 채널 관리를 훨씬 더 쉽게 이해할 수 있으므로 대화형 데모 앱을 만들었습니다.

애플리케이션 코드는 PubNubDevelopers GitHub 계정에서 찾을 수 있으며, https://pubnubdevelopers.github.io/App-Context-Exerciser/ 에서 호스팅된 버전의 앱을 볼 수 있습니다. PubNub.com에서 이 글을 보고 있다면 아래의 iFrame에 임베드된 앱도 볼 수 있을 것입니다.

이 페이지에서 임베드된 콘텐츠를 볼 수 없는 경우 https://pubnubdevelopers.github.io/App-Context-Exerciser/ 에서도 볼 수 있습니다.

인터랙티브 데모 설정하기

이 데모는 키 세트에 새 사용자를 생성하여 자신을 대표하고 키 세트에서 찾은 모든 채널에 참여하므로 이 데모로 플레이할 때는 새 키 세트를 생성하는 것이 좋습니다.

  1. 관리자 포털에서 새 PubNub 키 집합을 생성합니다.

  2. 이 키세트에서 앱 컨텍스트 활성화

  3. 이 키 집합에서 사용자, 채널멤버십 메타데이터 이벤트를 활성화합니다. 키 구성 페이지의 앱 컨텍스트 섹션 아래에 있는 옵션입니다. 이 옵션을 활성화하지 않으면 앱에 업데이트가 반영되지 않습니다.

  4. 다른 모든 키 구성 옵션은 기본값으로 둡니다.

  5. 첫 번째 단계에서 생성한 게시 및 구독 키를 메모해 둡니다.

  6. 해당 텍스트 상자에 게시 및 구독 키를 입력하고 '저장'을 누릅니다.

대화형 데모 사용

데모에 게시 및 구독 키를 입력하면 데모가 실행됩니다:

  • 키 집합에 자신을 나타낼사용자를 만듭니다.

  • 키 세트에서 사용 가능한 현재 사용자 및 채널을 쿼리합니다. 채널을 찾지 못하면 몇 가지 테스트 채널과 사용자를 생성합니다.

  • 대화형 데모를 나타내는 사용자는 찾은 모든 채널에 가입하여 해당 채널 및 관련 사용자에 대한 업데이트를 받을 수 있습니다. 이것이 매우 허용적인 것처럼 느껴진다면 프로덕션에서는 무단 액세스를 방지하는 액세스 관리자가 키 세트에 활성화되어 있다는 것을 기억하세요.

  • 이제 PubNub 관리자 포털의 BizOps 워크스페이스에서 '사용자 관리' 및 '채널 관리' 기능으로 전환합니다.

  • 사용자 관리 및 채널 관리 화면에서 각각 기본 사용자 및 채널이 생성된 것을 볼 수 있습니다.

  • 사용자, 채널 및 멤버십에 대한 앱 컨텍스트를 업데이트합니다. 데모 앱에 업데이트가 반영된 것을 볼 수 있습니다.

  • 필요한 경우 '데이터 새로 고침' 버튼을 사용하여 앱 컨텍스트에서 최신 업데이트를 가져옵니다. 테스트 애플리케이션의 사용자와 멤버십을 공유하지 않은 사용자 또는 채널을 만든 경우에만 이 작업을 수행하면 됩니다.

위 스크린샷은 사용자 user_1에 대한 앱 컨텍스트, 특히 이름 및 이메일 필드를 업데이트하고 일부 사용자 지정 데이터를 추가하는 것을 보여줍니다.

위 스크린샷은 채널 test_channel3에 대한 앱 컨텍스트, 특히 이름 및 설명 필드와 일부 사용자 지정 데이터를 업데이트하는 것을 보여줍니다.

위 스크린샷은 testchannel_3에서 모든 사용자를 제거하여 이제 채널에 멤버가 없는 것을 보여줍니다. 멤버십이 더 이상 '멤버십' 보기에 표시되지 않는다는 점에 유의하세요.

PubNub Chat SDK 사용 예시

사용자 및 채널 관리는 모든 SDK 및 사용 사례에서 작동하지만 특히 채팅 앱을 만드는 개발자에게 유용합니다. 개발자는 타입스크립트를 사용하여 채팅 SDK를 대상으로 그린필드 채팅 애플리케이션을 만드는 것이 좋으므로 이 섹션에서는 해당 SDK에서 사용되는 이러한 관리 기능을 설명합니다.

Chat SDK의 일부로 제공되는 샘플 채팅 애플리케이션은 단일 채널을 통해 두 사용자 간의 1:1 직접 대화에 대한 간단한 예를 보여줍니다. 앞서 언급했듯이 Chat SDK는 앱 컨텍스트를 사용하여 이러한 사용자와 채널 간의 관계를 저장하므로 BizOps 워크스페이스를 사용하여 해당 데이터를 업데이트할 수 있습니다.

이 단계를 직접 수행하는 경우 백엔드에서 업데이트를 확인하려면 채팅 애플리케이션을 새로 고쳐야 하는데, 이는 이 매우 간단한 앱이 앱 컨텍스트의 변경 사항을 수신하도록 작성되지 않았기 때문입니다. 이는 애플리케이션의 한계이지 Chat SDK의 한계가 아니며, streamUpdates() API 제품군을 통해 업데이트를 수신할 수 있기 때문에 이러한 한계는 Chat SDK의 한계가 아닙니다.

샘플 채팅 앱을 사용하여 채널 데이터를 관리하려면 채널 이름을 수정하고 브라우저를 새로 고친 후 앱 상단에 업데이트된 이름이 표시되는 것을 확인할 수 있습니다.

사용자 데이터를 관리하려면 userData 구조를 약간 변경해야 하며, 그렇지 않으면 앱을 다시 로드할 때마다 변경 사항이 다시 작성됩니다.

예를 들어 '사용자 관리'에서 수정할 수 있도록 하려는 설정에 주석을 달면 됩니다:

data: { name: "Mary Watson" /* custom: { initials: "MW", avatar: "#ffab91" }*/ },
Enter fullscreen mode Exit fullscreen mode

멤버십 업데이트는 샘플 채팅 앱을 사용하여 표시하기가 조금 까다롭지만, 가장 쉬운 방법은 각 메시지가 전송될 때 현재 멤버 수를 출력하도록 handleSend() 함수를 수정하여 앱을 다시 로드할 필요 없이 업데이트를 확인할 수 있도록 하는 것입니다.

다음과 같이 handleSend() 함수를 수정합니다:

const members = await channel.getMembers()
await channel.sendText(text + "... channel members total: " + members.total)
Enter fullscreen mode Exit fullscreen mode

위의 스크린샷은 간단한 설명이 필요한데, 그 결과는 다음과 같습니다.

  1. 멤버십에 대한 앱 컨텍스트 데이터를 수정하지 않고 메시지를 전송하면 채널 멤버가 두 명이라는 메시지가 표시됩니다.

  2. 채널에서 멤버 중 한 명을 삭제해도 어떤 멤버가 삭제되었는지는 중요하지 않습니다.

  3. 다른 메시지를 보내면 이번에는 채널 멤버가 1명만 있다는 메시지가 표시됩니다.

  4. 2단계를 반복하면 이후의 모든 메시지에는 채널에 멤버가 0명이라고 표시됩니다.

잠깐만요... 제가 채널의 멤버가 아닌데 왜 여전히 메시지를 받고 있나요? 이는 일반적인 질문이며, 설명서에서 언급했듯이 채널 만들기 API로 설정된 멤버십과는 별개로 메시지를 수신하려면 connect() 를 호출하여 구독해야 하며, BizOps Workspace는 후자와만 관련이 있습니다.

요약

이전에는 전용 애플리케이션과 개발 노력이 필요했던 사용자 및 채널 메타데이터를 손쉽게 관리할 수 있는 기능을 BizOps Workspace를 통해 제공할 수 있습니다.

이 글에서는 새 애플리케이션을 만드는 데 중점을 두었지만, BizOps 워크스페이스는 기존 애플리케이션을 사용하는 개발자에게도 똑같이 유용합니다. 애플리케이션이 한동안 프로덕션 PubNub 채팅 앱의 권장 개발 패턴인 앱 컨텍스트를 사용하도록 작성되었다면 코드를 변경하지 않고도 이 글에서 설명한 기능을 활용할 수 있을 것입니다.

사용자 관리 및 채널 관리는 모든 PubNub SDK에서 작동합니다. 하지만 앱 컨텍스트가 Chat SDK의 기본 아키텍처에 내장되어 있으므로 Chat SDK를 사용하는 개발자는 더 쉽게 채택할 수 있습니다. Chat SDK를 사용하는 경우 사용자 및 채널 관리는 "그냥 작동"합니다.

도움이나 지원이 필요하면 언제든지 전담 지원팀에 문의하거나 개발자 지원팀( devrel@pubnub.com)으로 이메일을 보내주세요.

펍넙이 어떤 도움을 드릴 수 있나요?

이 문서는 원래 PubNub.com에 게시되었습니다.

저희 플랫폼은 개발자가 웹 앱, 모바일 앱, IoT 디바이스를 위한 실시간 상호작용을 구축, 제공, 관리할 수 있도록 지원합니다.

저희 플랫폼의 기반은 업계에서 가장 크고 확장성이 뛰어난 실시간 에지 메시징 네트워크입니다. 전 세계 15개 이상의 PoP가 월간 8억 명의 활성 사용자를 지원하고 99.999%의 안정성을 제공하므로 중단, 동시 접속자 수 제한 또는 트래픽 폭증으로 인한 지연 문제를 걱정할 필요가 없습니다.

PubNub 체험하기

라이브 투어를 통해 5분 이내에 모든 PubNub 기반 앱의 필수 개념을 이해하세요.

설정하기

PubNub 계정에 가입하여 PubNub 키에 무료로 즉시 액세스하세요.

시작하기

사용 사례나 SDK에 관계없이 PubNub 문서를 통해 바로 시작하고 실행할 수 있습니다.

💖 💪 🙅 🚩
pubnubdevrel
PubNub Developer Relations

Posted on April 4, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related