📊 국내 서비스 개발 현황
Phase A(출시 필수) 완성 · Phase B 주요 기능 구현 완료
45
총 개발 파일
6
검사 종류
19
API 엔드포인트
4
테스트 파일
Phase A — 출시 차단 항목
✓ 완성
- I-1 Alembic DB 마이그레이션 — 전체 테이블 스키마
- B-1/B-2 이메일 인증 + 비밀번호 재설정 (AWS SES)
- B-5 로그인 5회 실패 → 30분 계정 잠금
- D-1/D-2 AWS SES 이메일 서비스 + 6종 템플릿
- C-1/C-2 토스페이먼츠 정기구독 + 웹훅 처리
- I-4 결제 성공/실패 → 구독 상태 자동 업데이트
- E-1/E-2 위기개입 프로토콜 (자살예방법 제18조)
- A-4/I-6 회원 탈퇴 + 개인정보 완전 삭제/익명화
- A-1/A-2/A-3 약관 + 개인정보처리방침 + 쿠키 동의
- I-2 Celery 비동기 처리 + Beat 스케줄러
- J-1 pytest 테스트 코드 (CI 파이프라인 연동)
Phase B/C — 추가 기능
일부 잔여
- F-1 K-MBI 직무소진 검사 (22문항)
- F-2 AUDIT 음주 검사 (10문항)
- B-4 MFA TOTP 설정 UI (QR 코드)
- C-1 구독 관리 페이지 (플랜 비교 + 해지)
- B-3 카카오/네이버 소셜 로그인 개발 필요
- G-2 프론트엔드 Mock → 실 API 연결 개발 필요
- C-4 세금계산서 발행 개발 필요
- D-3 FCM 푸시 알림
- J-2 Playwright E2E 테스트
- G-5 SEO 메타태그 + 사이트맵
- F-3 검사 문항 표준화판 교체 (전문의 자문)
전체 개발 진행률
Phase A — 출시 필수 항목100%
Phase B — 출시 직후 기능65%
Phase C — 운영 안정화20%
🖥️ 프론트엔드 구현 현황
Next.js 14 App Router · Tailwind CSS · Framer Motion
AI 기반 · Zero Storage · 블록체인 증명
마음의 소리를
안전하게 들어요
안전하게 들어요
임상 심리 전문가 수준의 AI가 당신의 마음 건강을 평가합니다.
결과는 24시간 후 자동 삭제 — 개인정보를 영구 저장하지 않습니다.
98%
프라이버시 보호
6종
표준 검사
24h
자동 삭제
✅ 구현 완료 페이지
| 경로 | 설명 | 상태 |
|---|---|---|
/ | 랜딩 페이지 | 완성 |
/assessment | 검사 진행 | 완성 |
/result | 결과 + 블록체인 | 완성 |
/auth/login | 로그인 | 완성 |
/auth/register | 회원가입 + 동의 | 완성 |
/auth/verify-email | 이메일 인증 | 완성 |
/auth/forgot-password | 비밀번호 재설정 | 완성 |
/privacy | 개인정보처리방침 | 완성 |
/terms | 이용약관 | 완성 |
/dashboard | 사용자 대시보드 | 완성 |
/dashboard/subscription | 구독 관리 | 완성 |
/dashboard/settings/mfa | MFA 설정 | 완성 |
/company/dashboard | 기업 대시보드 | Mock 데이터 |
/admin | 슈퍼 어드민 | Mock 데이터 |
🍪 쿠키 동의 배너 (A-3)
🍪
쿠키 사용 안내
서비스 운영을 위한 필수 쿠키와 서비스 개선을 위한 분석 쿠키를 사용합니다. 개인정보처리방침
📝 회원가입 동의 항목 (A-1/A-2)
✓
[필수] 이용약관 동의
✓
[필수] 개인정보 처리방침 동의
✓
[필수] 민감정보(정신건강) 처리 동의
[선택] 마케팅·광고 수신 동의
📋 심리 검사 체험
PHQ-9 우울증 검사를 직접 체험해보세요 — 실제 채점 로직이 적용됩니다
PHQ-9
우울증 검사
지난 2주간 우울 증상 평가
9문항 · 약 3분
GAD-7
불안장애 검사
일반화된 불안 수준 평가
7문항 · 약 2분
K-MBI NEW
직무소진 검사
한국형 직무소진 척도
22문항 · 약 7분 · B2B 핵심
📐 채점 알고리즘 (scoring_service.py)
PHQ-9 위험도 기준
● 정상0-4점
● 경미5-9점
● 중등도10-14점
● 심각15-19점
● 위기20-27점
K-MBI 3요인
정서적 소진 (EE) · 9문항
비인격화 (DP) · 5문항
개인성취감 (PA) · 8문항 역채점
지원 검사 6종
PHQ-9
GAD-7
DASS-21
PSS
K-MBI ✦
AUDIT ✦
✦ 이번 개발에서 추가
🚨 위기 개입 프로토콜
자살예방법 제18조 — critical 판정 시 즉각 대응 (E-1/E-2)
⚠️
전문가의 도움이 필요한 상태입니다
위기 (Critical)
검사 결과 즉각적인 전문가 도움이 필요한 상태로 확인되었습니다.
지금 바로 아래 전화번호로 연락해 보세요. 모든 상담은 무료입니다.
1393
자살예방상담전화 · 24시간
즉시 연결
1순위
1577-0199
정신건강위기상담전화 · 24시간
전문 상담
1588-9191
생명의전화 · 24시간
1388
청소년 전화 (만 24세 이하) · 24시간
119
응급·소방
112
경찰
⚡ 자동 트리거 흐름
1
검사 제출
POST /assessment/submit → 채점 실행
2
위험도 판정
risk_level == "critical" | "severe" 감지
3
자동 트리거
check_and_trigger_crisis() 호출
4
감사 로그 기록
crisis.auto_triggered → AuditLog 저장
5
기업 담당자 알림
company_admin에게 익명 고위험 알림 이메일
6
위기 개입 화면 표시
프론트 CrisisIntervention 컴포넌트 렌더링
📋 API 엔드포인트
# E-1: 위기 자원 조회 (인증 불필요)
GET /crisis/resources
GET /crisis/local-centers
# E-2: 위기 알림 트리거
POST /crisis/notify
{assessment_id, acknowledged}
# 검사 결과 기반 자동 실행
check_and_trigger_crisis(
assessment, user, db
)
⚖️ 법적 근거
자살예방법 제18조 — 자살 위험자 발견 시 연계 의무
위기 개입 안내 기록은 AuditLog에 영구 보존 (ISMS-P)
Zero Storage 24시간 삭제 정책과 별개로 위기 상황 연속 지원 가능
💳 결제·구독 시스템
토스페이먼츠 정기구독 + 빌링키 자동결제 (C-1/C-2/I-4)
무료
₩0
영원히 무료
- ✓ PHQ-9, GAD-7 기본 검사
- ✓ AI 해석 (기본)
- ✓ 검사 이력 5개
- ✗ K-MBI 검사
- ✗ 상세 리포트
인기
베이직
₩9,900
/ 월 · 자동갱신
- ✓ 전체 6종 검사
- ✓ K-MBI 직무소진 검사
- ✓ AUDIT 음주 검사
- ✓ AI 해석 (고급)
- ✓ 검사 이력 무제한
프리미엄
₩29,900
/ 월 · 기업 추천
- ✓ 베이직 모든 기능
- ✓ 기업 대시보드
- ✓ 부서별 통계
- ✓ 상담사 연계
- ✓ 세금계산서 발행
⏰ Celery Beat 스케줄
| 태스크 | 스케줄 | 설명 |
|---|---|---|
auto_charge_subscriptions | 매일 자정 | 만료 구독 자동 결제 |
notify_subscription_expiry | 매일 09:00 | 만료 1일 전 이메일 알림 |
cleanup_expired_assessments | 매 시간 정각 | Zero Storage 24h TTL 정리 |
notify_expiring_reports | 매 시간 30분 | 리포트 만료 1시간 전 알림 |
aggregate_monthly_stats | 매월 1일 02:00 | 전월 통계 집계 |
⚙️ 백엔드 API 구조
FastAPI 2.0.0 · SQLAlchemy 2.0 · Celery · pytest
🛣️ 전체 API 엔드포인트
| 메서드 | 경로 | 기능 |
|---|---|---|
| POST | /auth/register | 회원가입 + 동의 검증 |
| POST | /auth/login | 로그인 + 잠금 체크 |
| POST | /auth/verify-email | 이메일 인증 토큰 검증 |
| POST | /auth/forgot-password | 재설정 이메일 발송 |
| POST | /auth/reset-password | 새 비밀번호 설정 |
| POST | /account/delete | 회원 탈퇴 + 익명화 |
| GET | /account/my-data | 개인정보 열람 |
| POST | /payment/toss/billing-key | 빌링키 발급 |
| POST | /payment/toss/webhook | 결제 웹훅 처리 |
| GET | /crisis/resources | 위기 자원 목록 |
| POST | /crisis/notify | 위기 개입 트리거 |
| GET | /health | 헬스체크 |
🗄️ User 모델 주요 필드
class User(Base):
# B-1: 이메일 인증
verification_token # 24h 유효
verification_token_expires
# B-2: 비밀번호 재설정
password_reset_token # 1h 유효
# B-5: 계정 잠금
login_failed_count # 5회 → 잠금
locked_until # 30분
# A-4: GDPR 삭제
deleted_at, anonymized_at
# A-1/A-2: 동의 이력
sensitive_data_agreed # 민감정보
marketing_agreed # 마케팅(선택)
🧪 pytest 테스트 현황 (J-1)
test_auth_extended.py인증 플로우
test_scoring_service.py채점 단위 테스트
test_crisis.py위기개입 테스트
test_payment.py결제 웹훅 테스트
test_account.py탈퇴/GDPR 테스트
CI 파이프라인: 커버리지 70% 강제 (--cov-fail-under=70)
📟 서버 로그 시뮬레이터
2026-03-02 10:00:00INFO MindCare Backend 시작 (국내 서비스 v2.0.0)
2026-03-02 10:00:01INFO Celery Beat 스케줄러 연결 완료 (Redis)
2026-03-02 10:00:01INFO AWS SES 이메일 서비스 초기화
2026-03-02 10:00:01INFO Celery Beat 스케줄러 연결 완료 (Redis)
2026-03-02 10:00:01INFO AWS SES 이메일 서비스 초기화
☁️ AWS 인프라 아키텍처
Phase 5 (EKS + RDS + Redis + ALB + WAF) + 국내 서비스 레이어
전체 시스템 아키텍처
사용자 레이어
🌐 mindcare.kr
📱 Flutter App
🏢 기업 전용 도메인
보안/네트워크
Route 53 DNS
WAF (Rate Limit + IP차단)
ALB (TLS 1.3)
CloudFront CDN
컴퓨팅 (EKS K8s 1.30)
FastAPI (3~20 replicas)
Celery Worker
Celery Beat
Next.js SSR
HPA (CPU 70%)
KEDA (Redis Queue)
데이터 레이어
RDS PostgreSQL 16 (Multi-AZ)
ElastiCache Redis 7
S3 (Zero Storage 24h TTL)
KMS 암호화
운영 레이어
GitHub Actions CI/CD
Prometheus + Grafana
AWS SES (이메일)
DR 서울↔도쿄 (RTO 30분)
🐳 로컬 개발환경 (docker-compose.yml)
services:
backend: # FastAPI uvicorn --reload
celery-worker: # 비동기 태스크 처리
celery-beat: # 스케줄러 (자동결제 등)
frontend: # Next.js
db: # PostgreSQL 16-alpine
redis: # Redis 7-alpine
# 시작 명령
$ docker-compose up -d db redis
$ alembic upgrade head
$ uvicorn app.main:app --reload
⚖️ 법적 준수 현황
개인정보보호법 · 자살예방법 · ISMS-P · 정보통신망법
법규별 구현 현황
| 법규 | 조항 | 구현 | 상태 |
|---|---|---|---|
| 개인정보보호법 | 제30조 | 개인정보처리방침 공개 | ✓ |
| 개인정보보호법 | 제36조 | 정보주체 삭제 요구 처리 | ✓ |
| 개인정보보호법 | 제39조의3 | 쿠키 사전 동의 배너 | ✓ |
| 개인정보보호법 | 민감정보 | 정신건강 데이터 별도 동의 | ✓ |
| 자살예방법 | 제18조 | 위기자 발견 시 연계 의무 | ✓ |
| ISMS-P | 감사로그 | 3년 보존 구조 완성 | 구조完/S3未 |
| 정보통신망법 | 보안 인증 | 계정 잠금, Rate Limit | ✓ |
| 전자상거래법 | 청약철회 | 구독 해지 UI | ✓ |
🔐 개인정보 처리 흐름
1
수집
이용약관·개인정보·민감정보 동의 후 최소 수집
2
처리
AES-256 암호화 · KMS 키 관리 · Redis 24h TTL
3
파기
Zero Storage 자동 삭제 · 탈퇴 시 즉시 익명화
4
감사
AuditLog 3년 보존 (탈퇴 후에도 법적 의무 유지)
🔒 Zero Storage 정책
- ✓ AI 해석 결과: Redis에만 저장, 24시간 TTL 자동 삭제
- ✓ DB에는 통계용 점수/위험도만 영구 저장
- ✓ S3 CRR(Cross-Region Replication) 서울↔도쿄
- ✓ Celery cleanup_tasks: 만료 레코드 매 시간 정리
- ⚠ 위기 상황 시 지속 지원 예외 조항 고려 필요