반응형
🔐 데이터 보안 중심 보건실 문진 앱 설계안 (v2)
🧩 핵심 개념
요소 설계 의도
학생 응답 데이터 | 암호화 저장 (AES256 등), 단방향 제출 |
보건교사만 열람 가능 | 인증 로그인 후 대시보드 접근 |
고통 정도 척도화 | 주관적 표현이 가능한 1~5단계 스케일 도입 |
구글시트 연동은 배제 | 자체 DB로 전환 (Firebase Firestore, Supabase 등 추천) |
📝 학생용 앱 구성
1. 학생 문진 화면
항목 설명
기본 정보 입력 | 학년 / 반 / 이름 또는 교번 (선택 가능) |
증상 선택 | 복통, 두통, 열, 외상 등 (다중 선택 가능) |
고통 정도 척도 | 다음과 같이 정의된 1~5 척도 중 택 1:① 불편하지만 참을 수 있음② 약간 아픔③ 지속적인 아픔④ 많이 아픔⑤ 소리 지르며 울고 싶을 정도로 아픔 |
추가 서술 입력란 (선택) | 예: “아침부터 아팠어요”, “급식 후 배가 아팠어요” |
제출 후 화면 | “문진이 제출되었으며, 보건 선생님께 전달됩니다. 자리에 앉아 대기해 주세요.” 메시지 표시 |
🛡️ 데이터 처리 및 보안 설계
1. 데이터베이스 보안 구조
항목 내용
데이터베이스 | Firebase Firestore or Supabase (선택 가능) |
데이터 저장 방식 | AES256 또는 Field-Level Encryption 적용 |
응답 데이터 구조 예시 |
{
"timestamp": "2025-07-20T09:45:00Z",
"student_hash": "dkf29fa2a9...", // 익명화 처리
"grade_class": "4-1",
"symptoms": ["두통", "기침"],
"pain_level": 4,
"memo": "점심 먹고 갑자기 아픔"
}
| 교사 인증 방식 | 이메일/비밀번호 기반 로그인 or 교내 계정 연동 |
| 접근 권한 제어 | 보건교사 외 열람 금지 (Role-based Access Control 적용) |
👩⚕️ 보건교사용 웹 대시보드 (로그인 필요)
기능 상세 설명
🔒 로그인 인증 | 교사 전용 이메일 계정 로그인 |
📥 실시간 응답 보기 | 시간순 / 학급별 응답 정렬 및 필터링 |
📊 고통 수준 알림 | 고통 척도 4 이상 시 자동 강조 표시 또는 알림 표시 |
📈 통계 보기 | 증상별 빈도, 고통 척도 평균 등 간단한 차트 제공 |
📁 데이터 내보내기 | CSV로 익명화된 데이터 다운로드 가능 |
💡 선택적 추가 기능 (향후 개발 고려)
- ✅ 학생별 ID 대체용 해시 처리 → 개인 정보 비노출
- 🧠 증상-고통 패턴 분석 → 유사 증상군 자동 그룹화
- 🔔 긴급 상황 알림 기능 → 고통 척도 5 선택 시 즉시 알림 (앱 푸시 or 메일)
- 📱 태블릿 설치형 앱 제공 → 오프라인 환경에서 사용 가능하도록 제작 가능
✨ 요약 흐름도
[학생 앱]
▼
문진 제출 (고통 척도 포함)
▼
암호화된 응답 저장 (Firestore)
▼
[교사용 웹]
▲
로그인 → 실시간 응답 열람
▲
고통 수준 4~5 응답 강조 표시
🏥 보건실 문진 앱 Supabase 기반 설계서
앱 이름 (예시): 아이마음 체크인
대상: 초등학교 보건실
개요: 학생이 보건실에서 대기 중 작성하는 문진 응답 데이터를 Supabase에 암호화 저장하고, 보건교사만 로그인해 실시간으로 열람하는 웹/앱
📌 전체 아키텍처 요약
구성 요소 도구/기술
학생 응답 수집 | FlutterFlow 또는 Lovably (앱 빌더) |
백엔드 데이터 저장 | Supabase (PostgreSQL 기반) |
인증/보안 | Supabase Auth (Role-based Access) |
데이터 암호화 | 클라이언트 측 AES256 → Supabase 저장 |
관리자 화면 | Supabase Dashboard 또는 웹뷰 연결된 관리자 전용 페이지 |
⚙️ 1단계. Supabase 프로젝트 및 DB 설계
📁 테이블 이름: symptom_responses
필드 이름 타입 설명
id | UUID (PK) | 자동 생성 |
timestamp | timestamptz | 제출 시각 |
grade | integer | 학년 |
class_number | integer | 반 |
student_id_hash | text | 이름 또는 번호의 해시값 (SHA256 등) |
symptoms | text[] | ["복통", "두통", …] 다중선택 |
pain_level | integer | 1~5 척도 |
memo | text | 학생이 입력한 설명 |
encrypted_payload | text | (옵션) 전체 응답을 암호화한 JSON 문자열 |
✅ 보안 설정
- Supabase Auth로 role=teacher만 SELECT 가능
- insert는 누구나 가능 (학생 앱은 인증 없이 제출)
- RLS(Row-Level Security) 활성화 및 정책 설정
📱 2단계. 학생용 앱 설계 (무인 문진용)
화면 구성
- 학생 정보 선택
- 학년/반 드롭다운
- 이름은 입력 대신 “이름 초성 + 번호” → 해시 처리
- 증상 선택 화면
- 다중 선택: 두통, 복통, 열, 외상, 기침, 기타
- 고통 정도 척도
- 1️⃣ 불편하지만 참을 수 있음
- 2️⃣ 약간 아픔
- 3️⃣ 지속적으로 아픔
- 4️⃣ 많이 아픔
- 5️⃣ 소리 지르며 울고 싶을 정도로 아픔
- 기타 입력
- 메모 자유 입력란
- 제출 후 대기 화면
- 제출 완료 메시지
- 자동 타이머 후 ‘대기 화면’으로 돌아감
🔐 응답 처리
- AES256으로 클라이언트에서 pain_level, symptoms, memo를 암호화
- 또는 전체 JSON {응답내용}을 암호화 후 encrypted_payload에 저장
👩⚕️ 3단계. 교사용 관리자 화면 (보건교사 전용)
로그인
- Supabase Auth 이메일/비밀번호 로그인
- role=teacher 권한 사용자만 symptom_responses 테이블 열람 가능
기능
기능 설명
📥 실시간 응답 목록 | 시간순 정렬, 고통 척도 4 이상 강조 |
🔎 필터링 | 학년/반별 조회 |
📊 통계 대시보드 | 일간 응답 수, 고통 평균 등 |
🔔 알림 (옵션) | 5점 응답 발생 시 푸시알림 (Webhook 가능) |
🔒 CSV 내보내기 | 익명화된 응답만 다운로드 허용 |
🛠️ 4단계. Supabase 설정 단계 요약 (구현자용)
- Supabase 프로젝트 생성
- symptom_responses 테이블 생성
- RLS 활성화 + 정책 설정 (예: role=teacher만 select 가능)
- auth.users 연결 → teacher role 세팅
- API 키 또는 service role 키로 FlutterFlow, Lovably 등 연결
- .env 설정 공유: SUPABASE_URL, SUPABASE_ANON_KEY
🔒 5단계. 데이터 암호화 방식
항목 방식
이름 또는 고유정보 | SHA256 해시로 처리 (복호화 불가, 비교용) |
전체 응답 | AES256-CBC 방식으로 클라이언트 측 암호화 |
암호화 키 관리 | 앱에 Key 저장하지 않고, 서버 호출 후 세션 단위로 전달 (고급 적용 시) |
관리자 해독 | 로그인 인증된 후, 복호화 처리 (별도 함수 필요) |
노코드 빌더에서는 전체 암호화 적용이 어려운 경우, 해시 처리 + 민감정보 분리 저장으로 대응 가능
📦 참고용 패키지 및 기술 스택
목적 기술
실시간 DB | Supabase Realtime |
암호화 | CryptoJS (AES256), bcryptjs (Hash) |
인증 | Supabase Auth |
대시보드 UI | Retool / Figma 연동 Lovably 화면 or custom Next.js |
🎯 구현 요약
- ✅ 무인 문진 앱 (학생 대기 중 작성 → 자동 저장)
- ✅ 고통 수준 척도화
- ✅ Supabase에 암호화 저장
- ✅ 보건교사만 열람 가능 (로그인 기반)
- ✅ 데이터 필터링, 알림, 통계 기능 포함
반응형
'에듀테크' 카테고리의 다른 글
게이미피케이션 GimKit 김킷 초등 2학년 1학기 8단원. 곱셈 (0) | 2025.07.17 |
---|---|
커서 ai를 이용하여 수업 내용 정리하는 자동화 글쓰기 앱 제작(1) - GPT로 어떤 앱을 만들지 구상하기 (2) | 2025.06.29 |
학생들의 수업 진행 상황을 바로 바로 알려 주는 앱 만들기 (3) | 2025.06.27 |
바이브 코딩으로 만든 구구단 게임 (0) | 2025.06.23 |
🍏 2025 맥북 프로, M5 칩 탑재 출시 임박?! (4) | 2025.06.22 |