본문으로 건너뛰기

SOL(Sleep Onset Latency) Chain of Debate 바운디드 컨텍스트

1. 컨텍스트 정의

SOL(Sleep Onset Latency) Chain of Debate (CoD) 도메인은 AI 기반 다중 전문가 에이전트 시스템을 통해 수면잠복기(SOL)를 예측하고 개선 방안을 도출하는 바운디드 컨텍스트입니다. Microsoft AI MAI-DxO 논문의 Chain of Debate 방법론을 기반으로 하여 수면잠복기 분석 전문가, 심리상태 분석 전문가, CBT-I 수면행동 전문가, 디지털 수면환경 전문가 간의 토론을 통해 종합적이고 정확한 SOL 예측을 제공합니다.

1.1 주요 책임

  • 취침목표시간 기반 자동 예측 스케줄링 (PredictionScheduler) (요구사항 1.1, 모델 2.1, 5.1)
    • 사용자의 취침목표시간 1시간 전 자동 예측 실행 트리거
    • TimeMachine 가상시간과 실제 스케줄러의 이중 시간 체계 관리
    • 목표시간 변경 시 동적 스케줄 재조정
    • 실패 시 재시도 및 다음 날 자동 스케줄링
  • 치료주기 전체 데이터 기반 SOL 예측 (SOLPrediction) (요구사항 1.2, 모델 2.2, 5.2)
    • lot(lights out time), ast(asleep start time) 기반 SOL 계산: SOL = (ast - lot) / 60분
    • 사용자의 치료주기 시작부터 현재까지의 모든 SOL 데이터 통합 분석
    • 치료 초기 데이터 부족 시 적응형 SOL 분석 로직 적용
    • Chain of Debate 워크플로우를 통한 4개 전문가 에이전트의 협력적 SOL 분석
    • SOL 예측 결과(0-120분)의 신뢰도 점수 및 개선 방안 제공
    • 예측 과정의 투명성을 위한 토론 내역 저장
  • 조건부 전문가 에이전트 분석 시스템 (SOLExpertAnalysis) (요구사항 1.3, 모델 2.3, 5.3)
    • 설문 데이터 존재 시: 4개 전문가 에이전트 모두 참여 (수면패턴분석전문가, 심리상태분석전문가, CBT-I수면행동전문가, 디지털수면환경전문가)
    • 설문 데이터 부재 시: 3개 전문가 에이전트만 참여 (심리상태분석전문가 제외)
    • 각 전문가의 개별 견해 및 근거 자료 보관
    • 참여 에이전트 수에 따른 신뢰도 가중치 자동 조정
  • Chain of Debate 토론 기록 관리 (DebateSession) (요구사항 1.4, 모델 2.4, 5.4)
    • 전문가 간 토론 과정의 모든 라운드 기록
    • 토론 중 제기된 의견 차이 및 합의 과정 추적
    • 최종 합의 결과 및 의사결정 근거 저장
    • 토론 품질 평가 지표 (합의 도달 시간, 의견 일치도 등) 관리
    • 3개 vs 4개 에이전트 참여에 따른 토론 규칙 자동 조정
  • 예측 결과 전용 저장 관리 (PredictionResult) (요구사항 1.5, 모델 2.5, 5.5)
    • 예측 결과를 별도의 전용 테이블에 저장
    • 사용자 알림 없이 백그라운드 저장만 수행
    • 향후 분석 및 의료진 검토를 위한 데이터 보관
    • 예측 히스토리 추적 및 정확도 검증 데이터 축적
  • SOL 개선 권장사항 생성 (SOLRecommendationSet) (요구사항 1.6, 모델 2.6, 5.6)
    • CBT-I 기반 SOL 개선 개인맞춤형 치료 권장사항 생성
    • SOL 단축을 위한 생활습관 개선 권장사항 생성
    • 잠들기 쉬운 환경 조성을 위한 권장사항 생성
    • 권장사항 우선순위 및 예상 효과 제공
  • AI 모델 성능 모니터링 및 품질 관리 (ModelPerformanceMetrics) (요구사항 1.7, 모델 2.7, 5.7)
    • 예측 정확도 추적 및 모니터링
    • 전문가 에이전트별 성능 지표 관리
    • Chain of Debate 토론 품질 지표 관리
    • 모델 개선을 위한 피드백 데이터 수집
  • TimeMachine을 통한 시간 관련 로직 처리 (요구사항 3.6, 규칙 1.1)
  • 다른 도메인과의 데이터 연동 및 통합 분석 지원
    • Sleep 도메인으로부터 치료주기 전체 수면 기록 데이터 조회
    • Questionnaire 도메인으로부터 설문 응답 데이터 조회 (선택적)
    • User 도메인으로부터 사용자 프로필, 취침목표시간, 치료주기 정보 조회
    • Learning 도메인으로부터 학습 참여 기록 및 진도 데이터 조회 (선택적)
    • Agent-Board 도메인과의 사용자 인터랙션 연동
  • 데이터 관리 및 개인정보 보호 (GDPR 준수) (요구사항 1.8, 3.12)
    • 데이터 아카이빙: 비활성 분석 결과 (6개월 미사용) 식별 및 1년 경과 시 콜드 스토리지 이전
    • 데이터 복원: 사용자 재요청 시 아카이빙된 분석 결과 자동 복원
    • 데이터 삭제: 사용자 요청 또는 보관 기간(5년) 만료 시 모든 분석 데이터 영구 삭제
    • 데이터 익명화: 연구 목적 분석을 위한 개인식별정보 제거 처리
    • 데이터 이동성: 사용자 요청 시 분석 결과를 표준 형식(JSON/CSV)으로 추출 제공

1.2 도메인 용어

  • SOLPrediction: SOL(Sleep Onset Latency) 예측 결과 및 관련 메타데이터
  • PredictionScheduler: 취침목표시간 기반 자동 예측 스케줄링 시스템
  • PredictionResult: 예측 결과 전용 저장 엔티티 (알림 없이 보관용)
  • SOLExpertAnalysis: 개별 전문가 에이전트의 SOL 분석 결과
  • DebateSession: Chain of Debate 토론 세션 전체 기록
  • DebateRound: Chain of Debate 토론의 개별 라운드 기록
  • SOLRecommendationSet: SOL 개선을 위한 권장사항 집합
  • Recommendation: 개별 권장사항 아이템
  • SleepLatencyAnalyst: 수면잠복기 분석 전문가 에이전트
  • PsychologicalStateAnalysisExpert: 심리상태 분석 전문가 에이전트 (선택적 참여)
  • CBTIExpert: 인지행동치료-불면 (CBT-I) 전문가 에이전트
  • DigitalEnvironmentAnalysisExpert: 디지털 수면환경 분석 전문가 에이전트
  • ChainOfDebate: 다중 전문가 에이전트 간 토론을 통한 의사결정 방법론
  • ConditionalWorkflow: 설문 데이터 유무에 따른 3개/4개 에이전트 조건부 실행 워크플로우
  • ConsensusScore: 전문가 간 의견 일치도 점수 (0.0-1.0)
  • ConfidenceScore: 예측 결과의 신뢰도 점수 (0.0-1.0)
  • SOLScore: 예측된 SOL 점수 (0-120분)
  • ModelPerformanceMetrics: AI 모델 성능 지표 집합
  • DebateQualityMetrics: Chain of Debate 토론 품질 지표
  • ExpertAgent: 특정 영역의 전문 지식을 가진 AI 에이전트 추상 개념
  • LangGraph: LangGraph.js 기반 에이전트 워크플로우 실행 엔진
  • PromptTemplate: 전문가 에이전트별 프롬프트 템플릿
  • AgentState: 에이전트 실행 중 유지되는 상태 정보
  • WorkflowExecution: LangGraph 워크플로우 실행 세션
  • SOLPredictionRequest: SOL 예측 요청 엔티티
  • BedtimeGoal: 사용자의 취침목표시간 (Sleep 도메인에서 관리, 참조만)
  • TreatmentCycleData: 치료주기 전체 데이터 집합
  • AdaptiveAnalysis: 치료주기 초기 데이터 부족 시 적응형 분석 로직
  • ScheduleTrigger: 취침목표시간 1시간 전 트리거 이벤트
  • DualTimeSystem: TimeMachine 가상시간과 실제 스케줄러의 이중 시간 체계
  • TimeMachine: 시스템 공식 시간 제공 서비스 (외부 컨텍스트)

2. 하위 컨텍스트

SOL CoD 도메인은 기능들이 밀접하게 연관되어 있으며 Chain of Debate 워크플로우로 통합되어 있어 별도의 하위 컨텍스트로 분리하지 않습니다.

3. 컨텍스트 경계

3.1 상위/의존 컨텍스트

  • Sleep Domain: 사용자 수면 기록, 수면 통계, rTIB 데이터, 취침목표시간 제공 (Customer-Supplier 관계: SOL CoD가 Sleep 데이터 필요)
  • Questionnaire Domain: 사용자 설문 응답 데이터 제공 (선택적) (Customer-Supplier 관계: SOL CoD가 Questionnaire 데이터 필요)
  • User Domain: 사용자 프로필, 치료 주기 정보, DTA Wide 앱 내부 사용 패턴 제공 (Customer-Supplier 관계: SOL CoD가 User 정보 필요)
  • Learning Domain: 학습 참여 기록, 진도 데이터, 학습 세션 정보 제공 (선택적) (Customer-Supplier 관계: SOL CoD가 Learning 데이터 필요)

3.2 하위/제공 컨텍스트 (SOL CoD가 의존하는 컨텍스트)

  • TimeMachine Domain: 정확한 시간 정보 및 시간대 처리 제공 (Supplier)
  • LangGraph.js Framework: AI 에이전트 워크플로우 실행 엔진 제공 (Supplier)

3.3 협력 컨텍스트

  • Agent-Board Domain: 사용자와 에이전트 간 상호작용 및 분석 결과 표시 (향후 연동 예정, Shared Kernel 관계)

3.4 외부 시스템

  • LLM Services (OpenAI GPT, Claude 등): 전문가 에이전트의 추론 엔진
  • Vector Database: 수면 관련 지식 베이스 및 유사 사례 검색

4. 컨텍스트 매핑

4.1 Sleep Domain과의 관계 (Customer-Supplier)

SOL CoD 컨텍스트는 SOL 패턴 분석을 위해 Sleep 컨텍스트로부터 치료주기 전체의 포괄적인 수면 데이터(lot, ast 포함)를 제공받습니다.

4.2 Questionnaire Domain과의 관계 (Customer-Supplier)

SOL CoD 컨텍스트는 설문 기반 분석을 위해 Questionnaire 컨텍스트로부터 사용자의 주관적 수면 평가 데이터를 선택적으로 제공받습니다.

4.3 TimeMachine Domain과의 관계 (Supplier)

SOL CoD 컨텍스트는 사용자별 가상시간 관리와 실제 스케줄링을 위해 TimeMachine과 이중 시간 체계로 협력합니다.

4.4 User Domain과의 관계 (Customer-Supplier)

SOL CoD 컨텍스트는 치료 맥락 파악과 DTA Wide 앱 내부 디지털 환경 분석을 위해 User 컨텍스트로부터 치료주기 및 앱 내부 사용 데이터를 제공받습니다.

4.5 Learning Domain과의 관계 (Customer-Supplier)

SOL CoD 컨텍스트는 CBT-I 학습 연계 분석을 위해 Learning 컨텍스트로부터 사용자의 학습 참여 및 진도 데이터를 선택적으로 제공받습니다.

5. 도메인 이벤트

5.1 발행하는 이벤트

  • SOLPredictionScheduled: 취침목표시간 기반 SOL 예측 스케줄링 완료 (모델 6.1)
  • BedtimeGoalChanged: 사용자 취침목표시간 변경에 따른 스케줄 재조정 (모델 6.1)
  • PredictionTriggerFired: 스케줄된 시간 도달로 SOL 예측 프로세스 자동 시작 (모델 6.1)
  • SOLPredictionRequested: SOL 예측 요청 접수 (수동 요청 시) (모델 6.1)
  • SOLPredictionStarted: Chain of Debate SOL 분석 프로세스 시작 (모델 6.1)
  • TreatmentCycleDataCollected: 치료주기 전체 SOL 데이터 수집 완료 (모델 6.2)
  • AdaptiveAnalysisActivated: 데이터 부족으로 적응형 SOL 분석 로직 활성화 (모델 6.2)
  • ConditionalWorkflowDetermined: 설문 데이터 유무에 따른 워크플로우 결정 완료 (모델 6.3)
  • SOLExpertAnalysisCompleted: 개별 전문가 에이전트 SOL 분석 완료 (모델 6.3)
    • SleepLatencyAnalysisCompleted: 수면잠복기 분석 완료
    • PsychologicalStateAnalysisCompleted: 심리상태 분석 완료 (조건부)
    • CBTIAnalysisCompleted: CBT-I SOL 분석 완료
    • DigitalEnvironmentAnalysisCompleted: 디지털 수면환경 분석 완료
  • DebateRoundStarted: Chain of Debate 토론 라운드 시작 (모델 6.4)
  • DebateRoundCompleted: Chain of Debate 토론 라운드 완료 (모델 6.4)
  • ConsensusReached: 전문가 간 SOL 예측 합의 도달 (모델 6.4)
  • ConsensusFailure: 최대 토론 라운드 내 합의 실패 (모델 6.4)
  • SOLPredictionCompleted: 최종 SOL 예측 완료 (모델 6.1)
  • PredictionResultStored: SOL 예측 결과가 전용 테이블에 저장 완료 (알림 없음) (모델 6.5)
  • SOLPredictionFailed: SOL 예측 실패 (데이터 부족, 시스템 오류 등) (모델 6.1)
  • SOLRecommendationsGenerated: SOL 개선 권장사항 생성 완료 (모델 6.6)
  • ModelPerformanceUpdated: AI 모델 성능 지표 업데이트 (모델 6.7)
  • DebateQualityEvaluated: 토론 품질 평가 완료 (모델 6.4)
  • UserFeedbackReceived: 사용자 SOL 예측 결과 피드백 수신 (향후 연동 시) (모델 6.1)
  • PredictionAccuracyValidated: SOL 예측 정확도 검증 완료 (실제 결과와 비교) (모델 6.7)
  • ScheduleRetryTriggered: SOL 예측 실패 시 재시도 스케줄링 (모델 6.1)
  • NextDayPredictionScheduled: 실패 시 다음 날 자동 스케줄링 (모델 6.1)
  • AnalysisDataArchivedEvent: SOL 분석 데이터가 콜드 스토리지로 아카이빙됨 (모델 6.8)
  • AnalysisDataRestoredEvent: SOL 분석 데이터가 콜드 스토리지에서 복원됨 (모델 6.8)
  • UserAnalysisDataDeletionRequestedEvent: 사용자 SOL 분석 데이터 삭제 요청됨 (모델 6.8)
  • UserAnalysisDataDeletedEvent: 사용자 SOL 분석 데이터가 영구 삭제됨 (모델 6.8)
  • AnalysisDataAnonymizedEvent: SOL 분석 데이터가 익명화됨 (모델 6.8)
  • AnalysisDataExtractionRequestedEvent: 사용자 SOL 분석 데이터 추출 요청됨 (모델 6.8)
  • AnalysisDataExtractedEvent: 사용자 SOL 분석 데이터 추출 완료됨 (모델 6.8)

5.2 구독하는 이벤트

  • BedtimeGoalUpdated: Sleep 도메인에서 취침목표시간 변경 시 (스케줄 재조정 트리거)
  • SleepLogRecorded: 새로운 수면 기록 생성 시 (데이터 업데이트 알림)
  • QuestionnaireResponseSubmitted: 새로운 설문 응답 제출 시 (분석 데이터 업데이트)
  • LearningProgressUpdated: Learning 도메인에서 학습 진도 업데이트 시 (학습 참여도 재평가 트리거)
  • LearningSessionCompleted: 새로운 학습 세션 완료 시 (학습 데이터 업데이트 알림)
  • TimeMachineTimeChanged: TimeMachine에서 시간이 과거로 변경되었을 때 (관련 분석 데이터 재처리 트리거)
  • UserTreatmentSuspended: 사용자 치료 활동 일시 정지 시 (분석 스케줄링 중단)
  • UserTreatmentResumed: 사용자 치료 활동 재개 시 (분석 스케줄링 재개)
  • UserCycleStarted: 새로운 치료주기 시작 시 (초기 스케줄링 설정)
  • UserCycleEnded: 사용자 치료 주기 종료 시 (최종 분석 리포트 생성 고려)

6. 보안 정책

  • SOL 예측 결과, 전문가 분석 내용, 개인맞춤형 권장사항 등 민감 데이터는 private 스키마에 저장하여 접근 제어 (모델 1, 규칙 6.1)
  • Chain of Debate 토론 내역은 의료진 검토 목적으로만 접근 가능하도록 제한 (요구사항 3.8, 규칙 2.1)
  • AI 모델 추론 과정의 프롬프트 및 응답은 개인정보 마스킹 처리 후 저장 (요구사항 3.11, 규칙 2.2)
  • TimeMachine 시간 변경 시 일관성 유지를 위해 미래 시점 SOL 분석 데이터 자동 삭제 (요구사항 3.9, 규칙 1.2)
  • 외부 LLM 서비스 연동 시 개인식별정보 전송 금지 및 API 키 보안 관리 (요구사항 3.13, 규칙 3.1)
  • 취침목표시간 기반 SOL 예측 스케줄링 시스템의 접근 권한은 시스템 계정으로만 제한 (규칙 4.1)
  • SOL 예측 결과 전용 테이블은 읽기 전용으로 사용자 접근 제한, 의료진만 조회 가능 (규칙 4.2)
  • GDPR 등 데이터 보호 규정 준수 필요 (요구사항 2.2)
  • 데이터 관리 및 개인정보 보호 정책 (요구사항 1.8, 2.1, 2.2, 2.3, 3.12)
    • 데이터 보관: 5년 보관 후 자동 파기 (SOL 분석 결과, 토론 내역, 권장사항 포함)
    • 데이터 아카이빙: 비활성 6개월 후 식별, 1년 후 콜드 스토리지 이전 (압축/암호화)
    • 데이터 복원: 사용자 재요청 시 자동 복원 (3초 이내 완료 목표)
    • 데이터 삭제/익명화: 사용자 요청 시 즉시 삭제, 연구 목적 시 익명화 보관 가능
    • 데이터 이동성: 사용자 요청 시 표준 형식으로 추출/제공 (암호화)
    • 보안: SOL 분석 결과 및 토론 내역 암호화 저장(AES-256+), 전송 시 TLS 1.3+ 사용
    • 가용성: SOL 예측 서비스 고가용성 및 장애 복구 보장, 99.9% 가동률 목표

7. 기술 스택

  • NestJS (메인 프레임워크)
  • TypeScript (언어)
  • LangGraph.js (AI 에이전트 워크플로우)
  • PostgreSQL (분석 결과 저장소, Prisma 사용)
  • Redis (에이전트 상태 캐싱, 토론 세션 관리, 스케줄링 상태)
  • Prisma (ORM)
  • Node-cron (스케줄링 시스템)
  • OpenAI API / Claude API (LLM 서비스)
  • Vector Database (ChromaDB/Pinecone - 지식 베이스)
  • (이벤트 시스템) GCP Pub/Sub (도메인 이벤트 발행/구독용)

8. 변경 이력

버전날짜작성자변경 내용
0.1.02025-08-31bok@weltcorp.com최초 작성 (core-domain 승격, 취침시간 기반 트리거, 치료주기 전체 데이터, 조건부 워크플로우 반영)
0.1.12025-09-01bok@weltcorp.comLearning 도메인 통합 추가, 디지털수면환경 앱 데이터 제약사항 반영, Learning 이벤트 구독 추가