πŸ—„οΈ Database Architecture

NeuroCatchers + Boston Neuromind 톡합 DB 섀계

🎯 DB μ² ν•™

핡심 원칙:
  • πŸ“Š 데이터 쀑심 섀계 - AI ν•™μŠ΅μ˜ μ—°λ£Œ
  • πŸ”’ ν”„λΌμ΄λ²„μ‹œ μš°μ„  - 읡λͺ…ν™” + κ°€λͺ…ν™” 계측
  • πŸ”— μœ μ—°ν•œ ν™•μž₯ - μˆ˜μ‹­ 개 증상 λͺ¨λ“ˆ μΆ”κ°€ κ°€λŠ₯
  • ⚑ μ„±λŠ₯ μš°μ„  - μ‹€μ‹œκ°„ AI 응닡 지원
  • 🌐 κΈ€λ‘œλ²Œ ν™•μž₯ - λ‹€κ΅­μ–΄ + λ‹€μ§€μ—­

기술 선택 (AWS 기반)

Primary DB

πŸ’Ύ DynamoDB

NoSQL, ν™•μž₯μ„± μ’‹μŒ, AWS 톡합

  • μ‚¬μš©μž 데이터
  • μ„Έμ…˜ 데이터
  • λΉ λ₯Έ 쑰회
Search

πŸ” OpenSearch

λ…Όλ¬Έ 검색, ν…μŠ€νŠΈ 뢄석

  • λ…Όλ¬Έ DB
  • Full-text 검색
  • μœ μ‚¬λ„ 검색
Analytics

πŸ“Š Redshift / Athena

λŒ€λŸ‰ 뢄석, ML ν•™μŠ΅

  • AI ν•™μŠ΅ 데이터
  • 톡계 뢄석
  • λ³΄κ³ μ„œ
Cache

⚑ ElastiCache (Redis)

μ‹€μ‹œκ°„ μ„±λŠ₯

  • μ„Έμ…˜ μƒνƒœ
  • AI 응닡 μΊμ‹œ
  • μ‹€μ‹œκ°„ 계산

πŸ“‹ μ£Όμš” ν…Œμ΄λΈ” (DynamoDB)

1. users ν…Œμ΄λΈ”

Table: users
──────────────────────
user_id String // Partition key (UUID)
email String // Hashed + encrypted
tier String // consumer/professional/clinic
created_at Timestamp
language String // ko, en, ja...
consent_flags Map // {data_use: true, research: true}
demographics Map // age_group, gender (anon)
subscription Map // stripe_id, plan, status
active_modules List // [adhd, anxiety]

2. intake_responses ν…Œμ΄λΈ” (90개 μ„€λ¬Έ)

Table: intake_responses
──────────────────────
response_id String // Partition key
user_id String // GSI
version String // adult/pediatric
created_at Timestamp
biological Map // 15 items β†’ scores
psychological Map // 15 items β†’ scores
social Map // 15 items β†’ scores
computed_axes Map // {arousal: 0.7, valence: -0.3, control: 0.4}
symptom_probs Map // {adhd: 0.78, anxiety: 0.45}

3. sessions ν…Œμ΄λΈ” (치료 μ„Έμ…˜ 기둝)

Table: sessions
──────────────────────
session_id String // Partition key
user_id String // GSI
module String // adhd, anxiety, etc
session_date Timestamp
duration_min Number
protocol String // smr_cz_uptrain, etc
biosignals Map // eeg, hrv, gsr data
subjective Map // mood, focus, etc
ai_decision Map // maintain/modify/...
ai_rationale List // ["TBR decreased 15%", ...]
position_3d Map // Neural Cartography location
notes String

4. user_trajectories ν…Œμ΄λΈ” (3D 경둜)

Table: user_trajectories
──────────────────────
user_id String // Partition key
updated_at Timestamp
position_history List // [{t, x, y, z}, ...]
goal_position Map // Target 3D point
velocity Map // {dx/dt, dy/dt, dz/dt}
progress_score Number // 0-1
detected_region String // adhd/anxiety/flow
confidence Number

5. face_analysis ν…Œμ΄λΈ” (관상 데이터)

Table: face_analysis
──────────────────────
analysis_id String // Partition key
user_id String // GSI
timestamp Timestamp
image_hash String // Image stored separately
source String // photo/video
emotion_scores Map // happy, sad, angry...
facs_units Map // Action units (AU1-AU28)
micro_expressions List // Detected subtle emotions
rppg_hr Number // Heart rate from face
rppg_hrv Number
structural Map // Asymmetry, tension
features_3d Map // Contribution to axes

6. research_papers ν…Œμ΄λΈ” (λ…Όλ¬Έ DB)

Table: research_papers // Indexed in OpenSearch
──────────────────────
paper_id String // DOI or unique ID
title String
authors List
year Number
journal String
abstract String
keywords List
conditions List // [adhd, learning, ...]
modalities List // [eeg, hrv, ...]
ai_summary String // Claude-generated
evidence_level String // A/B/C
citation_count Number
source String // pubmed, scholar, etc
added_at Timestamp

7. symptom_modules ν…Œμ΄λΈ” (증상 λͺ¨λ“ˆ 메타데이터)

Table: symptom_modules
──────────────────────
module_id String // adhd, anxiety, etc
name String // "ADHD NeuroTracker Pro"
version String
variables Map // Key variables + weights
protocols List // Available protocols
cluster_3d Map // Cartography cluster center
targets_by_age Map // Age-stratified targets
rating_scales List // ASRS, Conners, etc
references List // Linked paper IDs
pricing Map // Tier pricing
is_active Boolean

8. chatbot_conversations ν…Œμ΄λΈ”

Table: chatbot_conversations
──────────────────────
conversation_id String // Partition key
user_id String // GSI
module String // adhd, anxiety
character Map // Name, personality settings
messages List // [{role, content, timestamp}]
context_summary String // Long-term memory
started_at Timestamp
last_message_at Timestamp

9. appointments ν…Œμ΄λΈ” (bnd μ „μš©)

Table: appointments // Boston Neuromind specific
──────────────────────
appointment_id String // Partition key
user_id String // GSI
type String // offline/online
scheduled_at Timestamp
duration_min Number
therapist_id String
status String // scheduled/confirmed/done/cancelled
session_id String // Linked session after completion
equipment_rental Map // If rental included

10. equipment_rentals ν…Œμ΄λΈ” (bnd μ „μš©)

Table: equipment_rentals // Boston Neuromind specific
──────────────────────
rental_id String // Partition key
user_id String // GSI
equipment_type String // muse, hrv_sensor, etc
equipment_sn String // Serial number
rental_start Date
rental_end Date
deposit_status String
offline_sessions_count Number // Must be >= 3
monthly_fee Number
status String // active/returned/overdue

πŸ”— ν…Œμ΄λΈ” 관계

μ‚¬μš©μž 1λͺ…μ˜ 전체 데이터 흐름:

users (user_id)
  β”œβ”€β”€ intake_responses (초기 90λ¬Έν•­ λ‹΅λ³€)
  β”œβ”€β”€ user_trajectories (3D 곡간 경둜)
  β”œβ”€β”€ sessions[] (μ—¬λŸ¬ 치료 μ„Έμ…˜)
  β”œβ”€β”€ face_analysis[] (μ–Όκ΅΄ 뢄석 기둝)
  β”œβ”€β”€ chatbot_conversations[] (챗봇 λŒ€ν™”)
  β””── (bnd) appointments[] + rentals[]

AI μ‹œμŠ€ν…œ μ°Έμ‘°:

sessions/intake β†’ symptom_modules β†’ research_papers
(μ„Έμ…˜ 데이터) (증상 μ •μ˜) (κ·Όκ±° λ…Όλ¬Έ)

⚑ μ‹€μ œ μ‚¬μš© μ˜ˆμ‹œ

μ˜ˆμ‹œ 1: μ‹ κ·œ μ‚¬μš©μž μ‹œμž‘

1. κ°€μž…:
  β†’ users ν…Œμ΄λΈ”μ— μƒˆ row 생성
  β†’ consent_flags μ„€μ •

2. BPS 90λ¬Έν•­ λ‹΅λ³€:
  β†’ intake_responses μ €μž₯
  β†’ computed_axes μžλ™ 계산
  β†’ symptom_probs μžλ™ 계산

3. μ–Όκ΅΄ 사진 μ—…λ‘œλ“œ (선택):
  β†’ face_analysis μ €μž₯
  β†’ features_3d μΆ”κ°€

4. 3D μœ„μΉ˜ 계산:
  β†’ user_trajectories μ΄ˆκΈ°ν™”
  β†’ position_history 첫 point

5. λͺ¨λ“ˆ μΆ”μ²œ:
  β†’ symptom_modules 쑰회
  β†’ research_papers κ·Όκ±° μ œμ‹œ

μ˜ˆμ‹œ 2: μ„Έμ…˜ μ§„ν–‰

1. μ„Έμ…˜ μ‹œμž‘:
  β†’ ElastiCache에 μ„Έμ…˜ μƒνƒœ μ €μž₯
  β†’ μ‹€μ‹œκ°„ μƒμ²΄μ‹ ν˜Έ μˆ˜μ§‘

2. AI κ²°μ •:
  β†’ user_trajectories 쑰회 (κ³Όκ±° 경둜)
  β†’ 3D 곡간 ν˜„μž¬ μœ„μΉ˜ μ—…λ°μ΄νŠΈ
  β†’ AI κ²°μ • (maintain/modify/...)

3. μ„Έμ…˜ μ™„λ£Œ:
  β†’ sessions ν…Œμ΄λΈ”μ— μ €μž₯
  β†’ user_trajectories μ—…λ°μ΄νŠΈ
  β†’ 뢄석 κ²°κ³Ό ElastiCache에 μΊμ‹œ

πŸ”’ ν”„λΌμ΄λ²„μ‹œ + λ³΄μ•ˆ

HIPAA λŒ€μ‘ (Professional tier):
  • AWS BAA 체결
  • PHI μ•”ν˜Έν™” (at rest + in transit)
  • μ ‘κ·Ό 감사 둜그
  • 7λ…„ 보쑴 μ •μ±…

데이터 3단계

Level μœ ν˜• ν™œμš© 보호 μˆ˜μ€€
1 μ™„μ „ 읡λͺ… (평균, 톡계) ML ν•™μŠ΅, 곡개 λ¦¬μ„œμΉ˜ 자유
2 κ°€λͺ…ν™” (UUID) μ„œλΉ„μŠ€ κ°œμ„ , 뢄석 쀑간 (λ™μ˜)
3 식별 κ°€λŠ₯ (이메일, μ–Όκ΅΄) μ„œλΉ„μŠ€ 제곡만 엄격 (μ•”ν˜Έν™”)
πŸ’‘ 법적 μ ‘κ·Ό:
  • Consumer tier: 일반 SaaS (Google/OpenAI μˆ˜μ€€)
  • Professional tier: HIPAA μ™„μ „ μ€€μˆ˜
  • Consent λͺ…μ‹œ + μ˜΅νŠΈμ•„μ›ƒ μ˜΅μ…˜
  • 데이터 μ‚­μ œ ꢌ리 (GDPR λŒ€μ‘)

πŸ’° μ˜ˆμƒ λΉ„μš© (AWS)

단계 μ‚¬μš©μž 수 μ›” λΉ„μš©
개발/베타< 100$20-50
초기 런칭1,000$100-200
μ„±μž₯10,000$500-1,000
ν™•μž₯100,000$3,000-5,000
κΈ€λ‘œλ²Œ1,000,000+$20,000+

μ°Έκ³ : Free tier $200 ν¬λ ˆλ”§μœΌλ‘œ 초기 λͺ‡ 달 거의 무료. μ‚¬μš©μž λ‹Ή μ‹€μ œ 수읡 ($19-79) λŒ€λΉ„ 인프라 λΉ„μš©μ€ 1-2% μˆ˜μ€€.