본문으로 건너뛰기

Groups 정의

1. 개요

이 문서는 시스템 내에서 사용되는 그룹(Group)의 개념, 종류, 그리고 다른 도메인과의 관계를 정의합니다. 그룹은 Group 도메인의 핵심 구성 요소로, 사용자를 분류하고 역할을 할당하는 기초 단위로 사용됩니다.

2. 그룹의 목적 및 역할

  • 사용자 분류: 공통된 특성, 자격, 소속(예: 특정 클리닉 소속 환자, 테스트 사용자, 관리자 집단)에 따라 사용자를 논리적으로 분류합니다.
  • 역할(Role) 할당 단위: 특정 그룹에 역할을 할당하여, 해당 그룹의 모든 멤버에게 동일한 역할을 효율적으로 부여할 수 있습니다.
  • 정책(Policy) 적용 단위: 그룹 단위로 특정 접근 제어 정책을 적용할 수 있습니다.
  • 관리 편의성: 유사한 사용자들을 묶어 관리 작업을 용이하게 합니다.

3. 그룹 유형

시스템 운영 및 비즈니스 요구사항에 따라 다음과 같은 유형의 그룹이 생성될 수 있습니다:

3.1 게스트 그룹 (Guest Groups)

게스트 그룹은 약관 동의만으로 가입한 사용자를 위한 그룹입니다. 이메일/소셜 인증 없이 앱 기능을 체험할 수 있으며, 정식 사용자로 업그레이드 시 적절한 환자 그룹으로 이동합니다.

  • guests: 기본 게스트 그룹 (모든 게스트 사용자)
  • guests.kr: 한국 지역 게스트 그룹
  • guests.de: 독일 지역 게스트 그룹
  • guests.us: 미국 지역 게스트 그룹
  • guests.jp: 일본 지역 게스트 그룹

게스트 그룹의 특징:

  • 제한된 기능 접근: 게스트는 plan.guest 플랜과 함께 서비스 정책에 따라 정의된 제한된 기능만 사용 가능합니다.
  • 자동 만료: 게스트 계정은 서비스 설정에 따른 일정 기간 후 자동 만료되며, TimeMachine/Cloud Scheduler를 통해 관리됩니다.
  • 업그레이드 경로: 인증을 통해 정식 사용자로 업그레이드 시, 서비스 정책에 따라 적절한 그룹으로 이동합니다.
  • userId 유지: 업그레이드 시에도 userId(UUID)가 변경되지 않아 기존 데이터가 그대로 연결됩니다.

3.2 환자 그룹 (Patient Groups)

  • patients.general: 일반 치료 환자 그룹
  • patients.limited-access: 치료 기간 만료 후 제한된 접근 환자 그룹
  • patients.sample: 샘플/체험 환자 그룹
  • patients.clinic-{clinic-id}: 특정 클리닉 소속 환자 그룹
  • patients.special-affiliate: 특수 관계자 그룹 (VIP, 파트너사 임직원 등)

3.3 임상시험 그룹 (Clinical Trial Groups)

  • trials.{trial-id}.patients: 특정 임상시험 참여 환자 그룹
  • trials.{trial-id}.treatment-group: 특정 임상시험 시험군 그룹
  • trials.{trial-id}.control-group: 특정 임상시험 대조군 그룹
  • trials.{trial-id}.coordinators: 특정 임상시험 CRC 그룹
  • trials.{trial-id}.monitors: 특정 임상시험 CRA 그룹
  • trials.{trial-id}.investigators: 특정 임상시험 PI 그룹
  • research.industry-academia.{project-id}: 산학 연구 참여자 그룹

3.4 내부 운영 그룹 (Internal Operations Groups)

  • operators.admin: 시스템 관리자 그룹
  • operators.clinician: 의사/임상의 그룹
  • operators.support: 고객 지원팀 그룹
  • operators.analyst: 데이터 분석가 그룹

3.5 지역별 그룹 (Location-based Groups)

지역별 그룹은 사용자의 지리적 위치, 국가별 규제, 언어권, 치료 프로토콜 등에 따라 사용자를 분류하는 그룹입니다. 이는 국가별로 다른 치료 과정, 콘텐츠, 규제 요구사항을 효율적으로 관리하기 위한 핵심 분류 기준입니다.

환자 지역별 그룹

  • patients.kr: 한국 지역 환자 그룹 (한국어 콘텐츠, K-FDA 규제 적용)
  • patients.de: 독일 지역 환자 그룹 (독일어 콘텐츠, EMA/BfArM 규제 적용)
  • patients.us: 미국 지역 환자 그룹 (영어 콘텐츠, FDA 규제 적용)
  • patients.jp: 일본 지역 환자 그룹 (일본어 콘텐츠, PMDA 규제 적용)

운영진 지역별 그룹

  • operators.kr: 한국 지역 운영진 그룹
  • operators.de: 독일 지역 운영진 그룹
  • operators.us: 미국 지역 운영진 그룹

임상시험 지역별 그룹

  • trials.kr.{trial-id}: 한국 지역 임상시험 그룹
  • trials.de.{trial-id}: 독일 지역 임상시험 그룹
  • trials.us.{trial-id}: 미국 지역 임상시험 그룹

지역별 그룹의 특징:

  • 콘텐츠 지역화: 각 그룹은 해당 지역의 언어, 문화적 맥락에 맞는 치료 콘텐츠를 제공받습니다.
  • 규제 준수: 국가별 의료기기 및 디지털 치료제 규제 요구사항을 자동으로 적용합니다.
  • 치료 프로토콜 차별화: 지역별 의료 관행과 임상 가이드라인에 따른 치료 과정 차이를 반영합니다.
  • 플랜과의 독립성: 서비스 수준(Plan)과 독립적으로 운영되어, 동일한 치료 플랜이라도 지역에 따라 다른 경험을 제공할 수 있습니다.

3.6 개발 및 테스트 그룹 (Development Groups)

  • testers.internal: 내부 테스터 그룹
  • developers.backend: 백엔드 개발자 그룹
  • developers.frontend: 프론트엔드 개발자 그룹
  • developers.mobile: 모바일 개발자 그룹

3.7 시뮬레이션 그룹 (Simulation Groups)

시뮬레이션 그룹은 agentz-studio의 Agent Simulator에서 생성된 가상 사용자(Persona)를 위한 그룹입니다. 실제 사용자 데이터와 분리하여 관리하며, 비즈니스 메트릭 분석에서 제외됩니다.

  • simulations: 기본 시뮬레이션 그룹 (모든 시뮬레이션 사용자)
  • simulations.kr: 한국 지역 시뮬레이션 그룹
  • simulations.de: 독일 지역 시뮬레이션 그룹
  • simulations.us: 미국 지역 시뮬레이션 그룹
  • simulations.jp: 일본 지역 시뮬레이션 그룹

시뮬레이션 그룹의 특징:

  • 테스트 데이터 분리: 실제 사용자 데이터와 분리하여 비즈니스 분석 오염 방지
  • 비즈니스 메트릭 제외: 사용량, 전환율 등 비즈니스 지표에서 자동 제외
  • 유연한 생명주기: 시뮬레이션 종료 시 데이터 정리 또는 보관 선택 가능
  • Persona 기반 식별: 각 시뮬레이션 사용자는 Persona와 연결되어 추적 가능
  • MCP 도구 지원: Agent의 MCP 도구(create_simulation_user, get_simulation_user, delete_simulation_user)로 생성/조회/삭제 가능

시뮬레이션 그룹의 사용 사례:

  • Agent Simulator에서 Persona 기반 대화 테스트
  • 설문(ISI, PHQ-9 등) 응답 저장 및 결과 조회 테스트
  • MCP 도구 통합 테스트 (user_profile_summary, get_questionnaire_results 등)
  • CI/CD 파이프라인에서의 자동화 테스트

4. 그룹과 다른 도메인의 관계

4.1 그룹과 역할(Role) 관계

  • 다대다 관계: 한 그룹은 여러 역할을 가질 수 있으며, 한 역할은 여러 그룹에 할당될 수 있습니다.
  • 권한 계산: 그룹에 속한 사용자는 해당 그룹에 할당된 모든 역할의 권한을 갖게 됩니다.
  • IAM 도메인 연동: 역할 관리는 IAM 도메인과 연동하여 수행됩니다.

4.2 그룹과 사용자(User) 관계

  • 다대다 관계: 한 사용자는 여러 그룹에 속할 수 있으며, 한 그룹에는 여러 사용자가 속할 수 있습니다.
  • 최소 소속 보장: 모든 사용자는 시스템 생성 시점에 반드시 하나 이상의 그룹에 속해야 합니다.
  • User 도메인 연동: 사용자-그룹 관계는 사용자 유형에 따라 적절한 스키마에 저장됩니다.

4.3 그룹과 플랜(Plan) 관계

  • 독립적 운영: 그룹과 플랜은 서로 다른 차원의 권한과 제한을 제공하는 독립적인 개념입니다.
  • 조직/기능적 권한: 그룹은 사용자의 조직적 소속과 기능적 역할을 정의합니다.
  • 서비스 수준: 플랜은 사용자가 이용할 수 있는 서비스 수준과 사용 제한을 정의합니다.

4.4 지역별 그룹과 다른 도메인의 특별한 관계

지역별 그룹과 콘텐츠 관계

  • 다차원 권한 계산: 최종 권한 = 그룹 권한 ∩ 플랜 권한
  • 콘텐츠 필터링: 지역별 그룹은 사용자가 접근할 수 있는 콘텐츠의 지역적 범위를 결정합니다.
  • 언어 및 문화적 맥락: 동일한 치료 플랜이라도 그룹에 따라 다른 언어와 문화적 맥락의 콘텐츠를 제공합니다.

지역별 그룹과 규제 준수

  • 자동 규제 적용: 사용자의 지역별 그룹에 따라 해당 국가의 의료기기 규제가 자동으로 적용됩니다.
  • 데이터 거버넌스: GDPR(유럽), HIPAA(미국), 개인정보보호법(한국) 등 지역별 데이터 보호 규정을 자동 적용합니다.
  • 감사 및 보고: 지역별 규제 기관에 대한 감사 보고서를 그룹별로 생성할 수 있습니다.

지역별 그룹과 치료 프로토콜

  • 프로토콜 차별화: 동일한 치료 목표라도 지역별 의료 관행에 따라 다른 프로토콜을 적용합니다.
  • 임상 가이드라인 준수: 각 지역의 정신건강 치료 가이드라인에 맞는 치료 과정을 제공합니다.
  • 지역별 전문가 네트워크: 해당 지역의 의료진과 연결하여 전문적인 지원을 제공합니다.

5. 그룹 관리

  • 생성/수정/삭제: 그룹의 생성, 이름/설명 수정, 삭제는 주로 Group Admin 권한을 가진 역할에 의해 수행됩니다.
  • 멤버 관리: 그룹에 사용자를 추가하거나 제거하는 작업은 그룹 관리 권한이 있는 역할에 의해 수행됩니다.
  • 역할 할당: 그룹에 역할을 할당하거나 제거하는 작업은 IAM 도메인과 연동하여 수행됩니다.

6. 변경 이력

버전날짜작성자변경 내용
0.1.02025-04-17bok@weltcorp.com최초 문서 생성
0.3.02025-05-01bok@weltcorp.com의사(Clinician)와 의료 제공자(Healthcare Provider) 그룹 명확히 구분
1.0.02025-07-16bok@weltcorp.comGroup 도메인 분리에 따른 전면 재작성: IAM에서 독립, 그룹-플랜 독립성 확보
1.1.02025-07-17bok@weltcorp.com지역별 그룹(Location-based Groups) 개념 추가: 국가별 치료 과정 차이 관리를 위한 그룹 분류 체계 도입
1.2.02025-12-17bok@weltcorp.com게스트 그룹(Guest Groups) 추가: 약관 동의만으로 가입한 게스트 사용자 분류 체계 도입, IAM Group 기반 게스트/정식 사용자 구분
1.3.02026-01-16bok@weltcorp.com시뮬레이션 그룹(Simulation Groups) 추가: Agent Simulator 가상 사용자 분류 체계 도입, MCP 도구 지원, 비즈니스 메트릭 분리