기본 관리 > 사용자 참여 관리 > > 로컬 및 공유 팀 사용 모범 사례
  
로컬 및 공유 팀 사용 모범 사례
사용자 커뮤니티를 가장 효과적으로 관리하려면 사이트 또는 조직 레벨에서 사용자를 최상으로 구성하는 방법을 분석하십시오. 가능한 경우 사이트 레벨 또는 조직 레벨에서 사용자 정의 그룹을 작성하고 조직 레벨에서 공유 팀을 작성한 다음 응용 프로그램 컨텍스트를 작성할 때 이러한 그룹 및 팀을 사용하십시오.
공유 및 로컬 팀에서 사용할 역할을 결정할 때는 사용할 팀 템플릿을 확인해야 합니다. 그래야만 팀 템플릿에서 사용되는 역할과 컨텍스트 팀의 역할을 적절히 맞출 수 있습니다.
컨텍스트 팀 설계
사용자에게 비즈니스 데이터에 대한 가장 효율적인 액세스 권한을 제공하려면 정교한 액세스 제어와 최적의 시스템 성능을 위해 설계된 컨텍스트 팀을 사용하는 것이 중요합니다.
수천 개의 제품, 프로젝트 또는 라이브러리를 포함하는 사이트에서는 컨텍스트 팀에 대한 구조를 설계할 때 다음 지침을 준수하도록 특히 주의해야 합니다. 장기간 사용되고 있는 팀 설계의 경우에도 이러한 지침에서 최적화 가능성을 발견할 수 있습니다. 소규모 사이트에서도 이러한 최적화 기술이 유용할 수 있습니다.
대체적으로 로컬 팀을 기반으로 전체 팀을 설계하는 것이 가장 쉽습니다. 하지만 로컬 팀은 메모리 및 처리 기능을 매우 많이 사용하는 비즈니스 객체입니다. 팀의 구조가 자세하고 세부적일수록 다음과 같은 시스템 리소스에 대한 수요가 증가합니다.
캐시
데이터베이스 질의
대기열 기반 프로세스(예: 대기열 다시 계산)
시스템 내부 검색 및 일반 사용자 상호 작용
수천 개의 제품 및 컨테이너에서 이용하는 매우 크고 복잡한 팀 구조에서는 시스템 리소스 수요가 매우 높아질 수 있습니다. 팀 구조가 복잡할 경우 팀별 기능이 느려질 수 있을 뿐만 아니라 극단적인 경우 시스템 리소스 수요로 인해 전체 시스템 성능에 부정적인 영향을 줄 수 있습니다. 따라서 신중하게 계획하여 비즈니스 요구 사항을 충족하면서 성능에 부정적인 영향을 주지 않는 최적의 팀 구조를 설계하는 것이 중요합니다.
팀 구조를 설계하는 데 동기 부여가 되는 가장 중요한 요소는 응용 프로그램 컨텍스트 내 컨텐트에 액세스하려는 사용자 커뮤니티의 다양한 분야에 대한 권한 관련 비즈니스 요구 사항을 해결하는 데 있습니다. 팀 설계 프로세스에서 다음 지침을 사용하십시오.
권한 요구 사항을 범주화합니다.
사용자에 대한 권한 요구 사항은 일반적으로 두 개의 범주로 나눌 수 있습니다. 하나는 액세스 권한을 응용 프로그램 컨텍스트의 사용자 역할에 기반하도록 해야 할지 여부, 다른 하나는 액세스 권한을 컨텍스트의 사용자 역할과 독립적으로 사용자에게 부여해야 할지 여부입니다. 이러한 범주를 명확하게 지정하면 액세스 권한을 컨텍스트 독립 참여자에게 부여해야 할지 아니면 컨텍스트 관련 참여자에게 부여해야 할지를 결정할 수 있습니다.
컨텍스트 독립 참여자
객체에 액세스해야 하는 참여자의 경우 자신이 객체가 있는 응용 프로그램 컨텍스트의 멤버인지 여부에 상관없이 사용자, 사용자 정의 그룹, 조직 또는 가역할과 같은 참여자를 사용하여 액세스 제어 규칙을 작성합니다.
예를 들어, 조직의 모든 사용자에게 조직 내 모든 공개 제품의 사양 문서(릴리즈됨 상태)에 대한 읽기 권한이 필요하다고 가정합니다. 사양 문서 유형(릴리즈됨 상태)에 대한 읽기 권한을 조직 참여자에게 부여하여 조직의 /Default/PDM 도메인에서 정의한 정책 액세스 제어 규칙을 통해 이러한 액세스 권한을 적용합니다.
컨텍스트 관련 참여자
컨텍스트에서의 해당 역할에 따라 응용 프로그램 컨텍스트에 있는 객체에 액세스해야 하는 참여자의 경우 시스템 그룹 및 동적 역할을 사용하여 액세스 제어 규칙을 작성합니다. 역할에 대한 액세스 제어 규칙을 작성할 때, 해당 역할에 대한 권한 요구 사항이 응용 프로그램 컨텍스트 간에 다르기 때문에 규칙이 동적 역할에 대한 규칙이어야 할지 여부, 해당 역할에 대한 권한 요구 사항이 컨텍스트 간에 동일한지 여부 또는 시스템 그룹에 대해 규칙을 작성해야 할지 여부를 고려합니다.
예를 들어, 제품 설계를 담당하는 사용자는 특정 데이터 유형에 대한 작성 및 수정 권한이 필요하다고 가정합니다. 이는 설계 작업이 지정된 제품에만 적용됩니다. 공유 또는 로컬 팀에서 설계자와 연관된 동적 역할을 통해 이러한 권한을 적용합니다.
응용 프로그램 컨텍스트를 작성할 때 팀 역할 및 역할에 대한 참여자가 컨텍스트 세트 간에 동일한 경우 공유 팀을 사용하십시오. 팀 역할 또는 역할에 대한 참여자가 응용 프로그램 컨텍스트 간에 다른 경우 로컬 팀을 사용하십시오. 응용 프로그램 컨텍스트 간의 차이가 그리 크지 않다면 로컬로 확장되는 공유 팀을 사용하십시오.
옵션을 짜맞추는 것은 가능하지만 모든 경우에 적합한 단일 옵션을 찾을 필요는 없습니다. 예를 들어, 어떤 제품 및 프로젝트 컨텍스트 세트에는 로컬 팀을 사용하고 다른 제품 및 프로젝트 컨텍스트 세트에는 로컬로 확장되는 공유 팀을 사용하면서 라이브러리 컨텍스트에 대해 공유 팀을 선택할 수도 있습니다.
* 
광범위한 권한 요구 사항의 경우 컨텍스트 독립 참여자를 사용하십시오. 이는 팀 크기를 적정 레벨로 유지하고 시스템 처리 리소스에 대한 영향을 줄입니다. 컨텍스트 간에 권한 요구 사항이 다양한 경우 컨텍스트 관련 참여자를 사용하십시오.
다음 표에는 팀에 대한 권한 관리를 위한 다양한 기술과 성능에 미치는 영향이 자세히 나와 있습니다.
컨텍스트 독립 참여자(사용자, 사용자 정의 그룹, 조직 및 가역할)
시스템 리소스 효율성
가장 적합한 경우
특정 참여자 그룹에 대한 권한 요구 사항이 응용 프로그램 컨텍스트 간에 변경되지 않는 경우에 적합합니다.
사용 방법
참여자를 팀에 추가하지 않아야 합니다. 대신 액세스 제어 규칙을 통해 참여자에게 필요한 권한을 부여해야 합니다.
예제
예 1
전체 조직이 조직 내 모든 공개 제품에서 특정 유형의 데이터에 읽기 권한으로 액세스해야 합니다. 이 경우 조직의 모든 사용자를 모든 제품의 게스트 역할에 추가하는 것도 한 가지 옵션입니다. 이 방법은 처리 시간이 많이 소요됩니다. 대신 조직의 /Default/PDM 도메인과 같은 적합한 관리 도메인에서 특정 객체 유형에 대한 액세스 정책 규칙을 통해 읽기 권한이 사용자에게 제공될 수 있습니다.
예 2
특정 사용자 그룹은 모든 응용 프로그램 컨텍스트에서 규제 준수 검토 기능을 수행합니다. 모든 응용 프로그램 컨텍스트에서 규제 준수 검토 역할을 설정하고 해당 역할에 동일한 사용자를 추가하면 불필요한 부담이 가중됩니다. 대신 사이트의 /(루트) 도메인과 같은 적합한 관리 도메인에서 규제 준수 검토 사용자 정의 그룹에 대한 액세스 정책 규칙을 통해 필요한 권한이 사용자 그룹에 제공될 수 있습니다.
추가 고려 사항
사용자가 응용 프로그램 컨텍스트 팀의 멤버가 아닌 경우 응용 프로그램 컨텍스트가 사용자 인터페이스의 제품, 라이브러리, 프로그램 또는 프로젝트 목록 페이지에 나열되지 않습니다. 하지만 사용자는 응용 프로그램 컨텍스트를 검색할 수 있습니다. 사용자에게 적절한 권한이 있는 경우 응용 프로그램 컨텍스트가 검색됩니다. 액세스되면 응용 프로그램 컨텍스트가 탐색기에서 최근에 액세스한 목록에 로드되고 이후 사용을 위해 해당 위치에서 검색될 수 있습니다.
팀 멤버가 아닌 사용자에게 자동으로 표시되지 않는 작업에 액세스해야 하는 경우 팀의 역할에 대한 작업 구성 설정을 사용하여 이러한 작업을 팀 멤버가 아닌 사용자에게 표시하도록 설정할 수 있습니다. 컨텍스트 템플릿을 통해 해당 규칙을 새 컨텍스트에 자동으로 적용할 수 있습니다. 워크플로 참여와 같은 일부 기능은 팀 멤버가 아닌 사용자에 대해 다르게 설정해야 할 수도 있습니다.
그런 사용자가 응용 프로그램 컨텍스트 내에 있는 다양한 유형의 데이터를 탐색하는 데 필요한 액세스 정책 규칙은 사례별로 다를 수 있습니다. 이러한 권한을 식별하여 적절히 부여해야 합니다.
추가 정보
공유 팀
컨텍스트 관련 참여자(시스템 그룹 및 동적 역할)
시스템 리소스 효율성
가장 적합한 경우
참여자가 컨텍스트에서의 해당 역할을 기반으로 응용 프로그램 컨텍스트에 있는 객체에 액세스할 수 있어야 합니다.
최소한의 변경이나 변경 없이 동일한 팀 구조를 다양한 유사 응용 프로그램 컨텍스트에 적용할 수 있습니다.
모든 응용 프로그램 컨텍스트에서 동일한 역할의 동일한 사용자 또는 그룹 기능이 있는 경우
추가적인 요구 사항을 충족하기 위해 로컬로 확장할 수 있습니다(아래의 추가 고려 사항 참조).
사용 방법
사용자에게 제공될 권한의 일반적인 특징으로 인해 라이브러리 팀에 공유 팀이 사용되는 경우가 있습니다.
또한 서로 다른 제품 및 프로젝트 세트를 처리하는 여러 공유 팀을 작성할 수 있습니다.
추가 고려 사항
공유 팀은 로컬로 확장되지 않은 경우에 가장 효율적입니다. 팀을 로컬로 확장하면 로컬 팀 인스턴스가 작성되며, 공유 팀에게 기대되는 성능 이점이 일부 줄어듭니다. 모든 로컬 팀에서 공유 팀을 수정하는 정도에 따라 공유 팀의 실질적인 이점이 전혀 실현되지 않을 수도 있습니다.
추가 정보
로컬 팀
컨텍스트 관련 참여자(시스템 그룹 및 동적 역할)
시스템 리소스 효율성
가장 적합한 경우
참여자가 컨텍스트에서의 해당 역할을 기반으로 응용 프로그램 컨텍스트에 있는 객체에 액세스할 수 있어야 합니다.
팀 구조는 각 응용 프로그램 컨텍스트에만 한정됩니다.
팀 역할에서 작업을 수행하는 참여자는 각 응용 프로그램 컨텍스트와 관련이 있습니다.
사용 방법
책임을 기반으로 광범위한 사용자 그룹을 작성합니다.
그룹을 팀 내의 특정 역할에 추가합니다.
각 개별 컨텍스트에 고유한 사용자 그룹을 작성하지 마십시오. 재사용 가능한 사용자 그룹을 사용해 보십시오.
추가 고려 사항
로컬 팀에 포함해야 하는 참여자 수를 적절하게 유지하는 것이 좋습니다.
추가 정보
팀을 설계할 때 방지해야 할 몇 가지 공통된 방법이 있습니다. 다음 표에는 다양한 방법과 단점이 나와 있습니다.
비효율적인 팀 설계 방법
단점
모범 사례
조직의 모든 사용자를 모든 팀의 게스트 역할(또는 다른 역할)에 추가하여 응용 프로그램 컨텍스트 데이터에 대한 읽기 권한을 부여합니다.
팀 구조가 클 경우 많은 시스템 리소스가 사용됩니다.
정책 규칙을 사용하여 기본 액세스 권한을 제공하십시오. 팀에 직접 연결해야 할 사용자 수를 적절하게 유지하십시오.
모든 팀에 대해 수백 가지 역할을 작성하여 권한을 매우 정교하게 제어합니다.
팀 구조가 클 경우 많은 시스템 리소스가 사용됩니다.
많은 특수 역할을 정의할 경우 성능 저하를 고려하십시오. 팀 내 역할 수를 적절하게 유지하십시오.
제품 또는 라이브러리 템플릿을 사용하여 모든 제품 또는 라이브러리에서 팀 역할에 대해 작성되어야 할 동일한 정책 액세스 제어 규칙을 지정하십시오.
모든 제품의 동일한 역할에 대해 동일한 정책 액세스 제어 규칙이 작성되어 불필요한 중복이 발생합니다.
가능하면 모든 응용 프로그램 컨텍스트에서 정책 액세스 제어 규칙을 중복하는 대신 조직 레벨에서 동적 역할에 대한 정책 액세스 제어 규칙을 작성하십시오. 자세한 내용은 액세스 제어 규칙에서 동적 역할 사용을 참조하십시오.
제품 내 역할 지정을 위해 임시로 고유한 사용자 그룹을 작성합니다. 그룹은 재사용되지 않고 단일 제품에 한정됩니다.
유사한 참여자 멤버쉽을 가진 많은 사용자 그룹이 생성될 수 있습니다. 이로 인해 사용자 그룹에 대한 유지 관리가 복잡해지고 LDAP에 오버로드됩니다.
컨텍스트별로 고유한 사용자 그룹을 작성하는 대신 재사용 가능한 사용자 그룹에서 사용자를 구성하십시오. 또는 사용자 그룹을 작성하여 역할에 연결하는 대신 사용자를 팀에 직접 연결하십시오. 두 번째 방법은 첫 번째 방법보다 비효율적입니다.
다른 최적화 기술
다음은 팀과 관련하여 몇 가지 유용한 시스템 최적화 기술입니다.
컨텍스트가 단종 상태에 도달하면 팀 멤버쉽을 정리하십시오. DeleteLocalTeamRoles 유틸리티는 기존 응용 프로그램 컨텍스트에서 로컬 팀 역할을 삭제합니다. 자세한 내용은 로컬 팀 역할 삭제를 참조하십시오.
모범 사례 지침에 따라 PrincipalCacheRemoteObjectIdCache에 대한 캐시 크기를 조정합니다. 그러면 캐시를 사용하여 팀 구조 요구 사항을 효율적으로 처리할 수 있습니다. 자세한 내용은 다음 기술 자료 문서를 참조하십시오.
https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS71489
https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS97931
시스템 시작 시 캐시가 준비되도록 PopulateConfirmedUsersInCache 유틸리티를 사용하여 PrincipalCache에서 엔트리를 미리 채웁니다. 자세한 내용은 기술 자료 문서 https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS115189를 참조하십시오.
최적의 캐시 사용을 위해 참여자의 정기적인 유지 관리를 수행하여 연결이 끊긴 상태를 해결합니다. 자세한 내용은 연결이 끊긴 참여자 관리를 참조하십시오.
wt.inf.team.wtusersUseAccessPolicyRules 등록 정보를 true로 설정하는 것이 사이트에 적합한지를 고려하십시오. true로 설정하면 템플릿에서 응용 프로그램 컨텍스트를 작성할 때 시스템에서 생성되는 임시 규칙이 참여자에게 추가되지 않습니다. 자세한 내용은 기술 자료 문서 https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS180319를 참조하십시오.