You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Flutter 3.x │ 크로스 플랫폼 모바일 앱
├── Provider │ 상태 관리
├── WebSocket │ 실시간 통신
├── Watch Connectivity│ 스마트워치 연동
└── Material Design 3│ 현대적 UI/UX
Backend Services
Node.js + Express │ 마이크로서비스 프레임워크
├── auth-service │ JWT 기반 인증 및 권한 관리
├── session-service │ 세션 생명주기 관리
├── feedback-service │ 햅틱 피드백 생성 및 전송
├── user-service │ 사용자 프로필 및 설정 관리
├── realtime-service │ WebSocket 실시간 통신
├── report-service │ AI 보고서 생성 및 관리
└── notification-service │ 푸시 알림 및 이벤트 처리
AI Services
Python + FastAPI │ AI 마이크로서비스
├── STT Service │ WhisperX v3.3.4 음성 인식
├── Emotion Analysis │ Wav2Vec2-XLSR 감정 분석
└── Speaker Diarization │ pyannote.audio 화자 분리
Infrastructure
Docker + Compose │ 컨테이너 오케스트레이션
├── Kong │ API Gateway 및 인증
├── PostgreSQL │ 사용자/세션 관계형 데이터
├── MongoDB │ 비정형 분석 결과 저장
├── Redis │ 캐싱 및 세션 관리
└── Kafka │ 비동기 메시징 시스템
Monitoring & DevOps
Observability Stack │ 통합 관찰성 시스템
├── Prometheus │ 메트릭 수집 및 저장
├── Grafana │ 통합 관찰성 플랫폼 (메트릭/로그/트레이스)
├── ELK Stack │ 로그 수집, 처리 및 검색
├── Jaeger │ 분산 트레이싱 및 성능 분석
└── OpenTelemetry │ 트레이스 수집 및 전처리
기술적 특징
세그먼트 기반 말하기 속도 분석
기존 전체 시간 기반 WPM 계산의 한계를 극복한 혁신적 알고리즘:
# 기존 방식 (부정확)traditional_wpm=total_words/total_time*60# pause 시간 포함# HaptiTalk 세그먼트 방식 (85% 향상)segment_wpm= (words_in_segment/segment_duration) *60average_wpm=sum(segment_wpms) /len(segments) # 순수 발화 시간만 계산