User Management 도메인 바운디드 컨텍스트
1. 컨텍스트 개요
User Management Bounded Context는 운영자가 App-User 정보를 조회하고 치료 진행 상황을 파악할 수 있도록 지원합니다. 사이트별 권한 제어를 통해 운영자는 본인 사이트의 App-User만 접근할 수 있으며, 외부 시스템은 토큰 기반으로 제한적인 리포트 조회가 가능합니다.
비즈니스 목적: 운영자와 외부 시스템이 App-User의 치료 진행 상황과 데이터를 안전하게 조회하고, 수면 일기·목표·설문 응답을 통합한 리포트를 생성하여 치료 효과 분석을 지원
포함:
- App-User 목록 조회 및 검색 (사이트별 권한 제어)
- App-User 리포트 생성 (수면 일기, 목표 로그, 설문 응답 통합)
- 치료 일차 계산 및 통계 집계 (LOT/AET 일관성, 수면 기록률)
- 외부 액세스 토큰 기반 리포트 조회
제외:
- 인증 및 토큰 발급 (Auth-Ops Domain 소관)
- 권한 및 그룹 관리 (IAM Domain 소관)
- 수면 일기·목표 데이터 관리 (Sleep Domain 소관)
- 설문 응답 데이터 관리 (Questionnaire Domain 소관)
2. 유비쿼터스 언어
| Term | Definition |
|---|---|
| App-User | 디지털 치료제를 이용하는 app-user. 사용자 주기(UserCycle) 단위로 치료를 진행 |
| 사용자 주기 (UserCycle) | App-User의 치료 기간 단위. StartAt부터 EndAt까지의 기간으로 정의되며, 하나의 치료 과정을 의미 |
| 리포트 (Report) | App-User의 치료 진행 상황을 요약한 문서. 수면 일기, 목표 달성, 설문 응답 등을 포함 |
| 운영자 (OperationUser) | 사이트를 관리하는 의료진. operators.site.admin 또는 operators.site.member 그룹 소속 |
| 플랫폼 관리자 | 모든 사이트에 접근 가능한 관리자. operators.medi-dashboard.admin 그룹 소속 |
| 사이트 (Site) | 의료기관 또는 기관. 각 사이트는 독립적으로 App-User를 관리 |
| 치료 일차 (Day) | 사용자 주기 시작일부터 현재(또는 종료일)까지의 일수 + 1 |
| LOT (Lights Off Time) | 취침 시각. App-User가 잠들려고 누운 시각 |
| AET (Actual End Time) | 기상 시각. App-User가 아침에 일어난 실제 시각 |
| 일관성 퍼센티지 | 목표 달성률. LOT/AET 목표를 지킨 비율 (%) |
| rTIB 알고리즘 | 권장 침대 시간 계산 알고리즘. 수면 효율 기반으로 최적 수면 시간 제안 |
| 외부 액세스 토큰 | 외부 시스템이 특정 App-User 리포트에 접근하기 위한 TokenTypeMdAccess 타입 토큰 |
| 마지막 로그인 시간 (LastLogin) | App-User가 가장 최근에 로그인한 시각 |
3. 컨텍스트 맵
3.1 관계 개요
용어 설명:
- 의존 (Depends on): 다른 Context의 데이터나 API를 호출하여 사용. 상대 Context가 없으면 동작 불가.
- 발행 (Publishes to): 이벤트를 다른 Context로 발행. 상대 Context의 처리 결과는 관심 없음.
- 구독 (Subscribes from): 다른 Context에서 발행한 이벤트를 받아서 처리.
3.2 App-User List Context
책임:
- App-User 목록 조회 및 필터링 (검색, 상태, 사이트, 담당자)
- 사이트별 권한 검증 (operators.site.admin/member는 본인 사이트만)
- 페이징 및 정렬 처리 (마지막 로그인 시간 포함)
- 그룹 정보 표시 플래그 설정 (Welt 사이트 소속 계정)
포함 Aggregate:
- AppUser
관계:
- 의존: Auth-Ops Context (운영자 정보 조회, 사이트 검증)
- 의존: IAM Context (운영자 그룹 및 권한 확인)
- 의존: Sleep Context (마지막 로그인 시간 조회)
3.3 App-User Report Context
책임:
- App-User 리포트 생성 (사용자 주기 기반)
- 치료 일차 계산 (StartAt~EndAt 또는 현재 시간)
- 수면 일기·목표·설문 데이터 통합 조회
- 통계 계산 (성공 횟수, 일관성 퍼센티지, 수면 기록률)
- 리포트 요약 정보 생성
포함 Aggregate:
- AppUserReport
관계:
- 의존: Sleep Context (수면 일기, 수면 목표 로그, 목표 성공 기록 조회)
- 의존: Questionnaire Context (설문 응답 조회)
3.4 External Access Context
책임:
- 외부 액세스 토큰 검증 (TokenTypeMdAccess)
- 토큰 클레임 추출 및 userCycleId 일치 검증
- 외부 시스템의 제한적 리포트 접근 제어
포함 Aggregate:
- ExternalAccess
관계:
- 의존: Auth-Ops Context (토큰 검증 및 클레임 추출)
- 의존: App-User Report Context (검증 성공 후 리포트 조회)
변경 이력
| 버전 | 날짜 | 작성자 | 변경 내용 |
|---|---|---|---|
| 0.1.0 | 2025-12-31 | dalia@weltcorp.com | 문서 최초 작성 - GetAppUsers, GetAppUserReport, GetAppUserReportWithExternalAccessToken 기반 |