# AIOCD 기술 아키텍처

## 1. 전체 구조

```
┌─────────────────────────────────────────────────────────────┐
│                      사용자 계층 (User)                      │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐       │
│  │   교정의     │  │   병원장     │  │   환자      │       │
│  │   웹 UI     │  │   대시보드   │  │   모바일    │       │
│  └──────────────┘  └──────────────┘  └──────────────┘       │
└─────────────────────────────────────────────────────────────┘
                           ↓
┌─────────────────────────────────────────────────────────────┐
│                   프론트엔드 (Frontend)                      │
│  Next.js 14 + React 18 + TypeScript                         │
│  - 의사용 웹: /dashboard                                    │
│  - 관리자: /admin                                           │
│  - 환자 앱: /patient (Q3 2026)                             │
└─────────────────────────────────────────────────────────────┘
                           ↓
┌─────────────────────────────────────────────────────────────┐
│                    API 게이트웨이                            │
│  Vercel API Routes / Node.js Express                        │
│  - 인증 (Auth) / 권한 (RBAC)                               │
│  - 요청 검증 / 에러 처리                                    │
│  - 로깅 / 모니터링                                          │
└─────────────────────────────────────────────────────────────┘
                           ↓
┌─────────────────────────────────────────────────────────────┐
│                  비즈니스 로직 계층                          │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐       │
│  │ 진단 엔진    │  │ 치료계획     │  │ 콘텐츠 생성 │       │
│  │(AI 분류)    │  │ 생성 엔진    │  │ 엔진        │       │
│  └──────────────┘  └──────────────┘  └──────────────┘       │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐       │
│  │ 시뮬레이션   │  │ 학습 플랫폼  │  │ 보고서 생성 │       │
│  │ 엔진         │  │              │  │              │       │
│  └──────────────┘  └──────────────┘  └──────────────┘       │
└─────────────────────────────────────────────────────────────┘
                           ↓
┌─────────────────────────────────────────────────────────────┐
│                     데이터 계층                              │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐       │
│  │ Supabase     │  │ Vector DB    │  │ File Storage│       │
│  │ (PostgreSQL) │  │ (pgvector)   │  │ (AWS S3)    │       │
│  └──────────────┘  └──────────────┘  └──────────────┘       │
│  ┌──────────────┐  ┌──────────────┐                         │
│  │ Neo4j        │  │ Redis Cache  │                         │
│  │ (Graph)      │  │ (Session)    │                         │
│  └──────────────┘  └──────────────┘                         │
└─────────────────────────────────────────────────────────────┘
                           ↓
┌─────────────────────────────────────────────────────────────┐
│                 외부 서비스 연동                             │
│  - Claude API (AI 콘텐츠 생성)                             │
│  - WebCeph API (세팔로 데이터 연동)                         │
│  - Stripe (결제)                                           │
│  - SendGrid (이메일)                                       │
└─────────────────────────────────────────────────────────────┘
```

---

## 2. 핵심 컴포넌트

### A. AI 진단 엔진
```
입력: 치과 이미지 + 세팔로 데이터
처리:
  1. 이미지 전처리 (정규화, 크기 조정)
  2. CNN 모델 (ResNet-50) → 부정교합 분류
  3. 세팔로 분석 (각도 계산 + 편차 분석)
  4. 결과 종합 (진단 점수 계산)
출력: 진단 리포트 JSON
```

### B. 치료계획 생성 엔진
```
입력: 진단 결과 + 환자 정보
처리:
  1. 온톨로지 기반 규칙 적용
  2. 유사 케이스 검색 (Vector DB)
  3. 치료 옵션 생성 (3~5개)
  4. 의사 추천도 순위 매김
출력: 치료계획 + 예상 기간/비용
```

### C. 3D 시뮬레이션 엔진
```
입력: 초기 3D 모델 + 치료계획
처리:
  1. 3D 모델 로드 (Three.js)
  2. 진행도별 위치 계산 (월별, 분기별, 최종)
  3. 애니메이션 생성
출력: 3D 동영상 (MP4)
```

---

## 3. 기술 스택

### 프론트엔드
```
- Framework: Next.js 14
- UI Library: React 18
- 상태관리: Zustand
- 스타일: TailwindCSS
- 3D 렌더링: Three.js
- API 호출: Axios
- 인증: NextAuth.js
```

### 백엔드
```
- Runtime: Node.js 20
- Framework: Vercel API Routes
- 인증: JWT + Session
- 검증: Zod
- 로깅: Winston
- 모니터링: Sentry
```

### 데이터베이스
```
- 주 DB: Supabase (PostgreSQL)
- Vector DB: pgvector (벡터 유사도 검색)
- Graph DB: Neo4j (온톨로지 관계)
- Cache: Redis (세션, 캐싱)
- File Storage: AWS S3 (이미지, 비디오)
```

### AI/ML
```
- 프레임워크: TensorFlow / PyTorch
- 모델: ResNet-50 (이미지 분류)
- LLM: Claude API (콘텐츠 생성)
- Vector 임베딩: OpenAI Embeddings
```

### 배포
```
- 호스팅: Vercel (프론트엔드 + API)
- DB 호스팅: Supabase (클라우드)
- 컨테이너: Docker (선택사항)
- CI/CD: GitHub Actions
```

---

## 4. 데이터 흐름

```
1. 의사가 이미지 업로드
   ↓
2. 프론트엔드에서 유효성 검사
   ↓
3. AWS S3에 이미지 저장
   ↓
4. API 호출: /api/diagnose
   ↓
5. AI 엔진 처리 (2~5초)
   - 이미지 분류
   - 세팔로 분석
   - 진단 계산
   ↓
6. 결과를 Supabase에 저장
   ↓
7. 프론트엔드에 실시간 전송 (WebSocket)
   ↓
8. 의사가 진단 확인 후 "검증"
   ↓
9. 치료계획 자동 생성
   ↓
10. 환자 교육 콘텐츠 생성 (Claude API)
   ↓
11. 모든 결과를 병원별 저장소에 저장
```

---

## 5. 보안

### 인증
- JWT 토큰 기반
- 30분 유효기간 + Refresh Token

### 권한
- RBAC (Role-Based Access Control)
  - Admin: 전체 관리
  - Doctor: 환자 데이터 조회/편집
  - Staff: 환자 정보 조회만
  - Patient: 자신의 진단 결과만

### 암호화
- 저장 데이터: AES-256
- 전송 데이터: TLS 1.3
- 환자 PII: 별도 암호화

### 감사
- 모든 작업 로깅 (사용자, 시간, 내용)
- 월간 보안 감사 보고서

---

## 6. 성능 지표

| 지표 | 목표 | 현황 |
|---|---|---|
| API 응답시간 | <1초 | 0.8초 |
| 진단 엔진 | <5초 | 3.2초 |
| 시뮬레이션 생성 | <30초 | 22초 |
| 가용성 | 99.5% | 99.8% |
| 동시 사용자 | 100+ | 250+ |

---

## 7. 확장 계획

### 단기 (Q3 2026)
- [ ] 모바일 앱 출시
- [ ] 기계학습 모델 고도화
- [ ] 다국어 지원

### 중기 (Q4 2026~Q1 2027)
- [ ] Neo4j 활용 고도화
- [ ] 블록체인 기반 의료 기록
- [ ] 의료 기기 통합 (구강 스캐너)

### 장기 (2027 이후)
- [ ] 국제 확장 (아시아, 유럽)
- [ ] 타 전문과 적용 (성형외과, 교정)
- [ ] AI 모델 라이선싱

