P:dback MongoDB Schema

AI 기반 실전 화상 면접 솔루션 — 데이터베이스 스키마 다이어그램

String
Number
Boolean
Date
Array
Object
ObjectId
PK — Primary Key (문서 고유 식별자)
FK — Foreign Key (다른 컬렉션 참조)
optional — 선택 필드 (null 허용)
👤
users
식별자
_id PK ObjectId
MongoDB 자동 생성 고유 식별자
기본 정보
username String
사용자 닉네임 (화면 표시용)
email String
로그인 계정 이메일 (unique)
password_hash String
bcrypt 해시 처리된 비밀번호
권한 / 상태
role String
사용자 역할 (candidate / admin)
is_active Boolean
계정 활성화 여부 (탈퇴/정지 시 false)
로그 및 기록
created_at Date
회원가입 일시
updated_at Date
프로필 최종 수정 일시
last_login Date
마지막 로그인 일시
마이페이지 통계
interview_count int
누적 면접 횟수 (기본값 0)
average_score float
전체 면접 평균 점수 (기본값 0.0)
max_score float
최고 점수 (기본값 0.0)
보안 (JWT)
refresh_token String
JWT 갱신용 리프레시 토큰
🎙
interviews
식별자
_id PK ObjectId
면접 세션 고유 식별자
user_id FK String
면접을 진행한 사용자 참조
면접 설정
position String
면접 대상 직무 (백엔드, 프론트엔드 등)
tech_stack Array
선택한 기술 스택 목록 (["Python", "FastAPI"] 등)
career_years int
경력 연차 (질문 난이도 조절 기준)
cam_permit Boolean
카메라 권한 허용 여부
mic_permit Boolean
마이크 권한 허용 여부
질문 목록 (답변 중첩)
questions [ ]
question_number int
질문 순번 (꼬리질문 포함 순서 보장)
question_content String
Gemini가 생성한 면접 질문 본문
category String
질문 유형 (CS, 프로젝트, 인성 등)
expected_duration_seconds int
예상 답변 시간 (초 단위, 타이머 표시용)
interviewer optional String
면접관 식별자 (자동 랜덤 시 null)
created_at Date
질문 생성 시각
model_answer String
Gemini가 생성한 모범 답안 (feedbacks에서 참조)
question_keywords Array
채점 기준 핵심 키워드 목록 (feedbacks에서 참조)
answer { }
answer_content String
STT 후 정제된 사용자 답변
stt_raw_text optional String
STT 원본 텍스트 (정확도 비교/디버깅용)
started_at Date
답변 시작 시각
ended_at Date
답변 종료 시각
duration_seconds int
실제 답변 소요 시간 (초)
status String
답변 상태 (answered / skipped / timeout)
태도 / 자세 데이터
eye_contact int
시선 정면 주시율 (%)
posture_safety_rate int
자세 안정도 (%)
cam_status Boolean
카메라 상태
mic_status Boolean
마이크 상태
메타데이터
status String
면접 진행 상태 (in_progress / completed / cancelled)
total_duration_seconds optional int
면접 전체 소요 시간 (대기시간 포함)
created_at Date
면접 세션 생성 일시
finished_at optional Date
면접 종료 일시
📊
feedbacks
식별자
_id PK ObjectId
피드백 문서 고유 식별자
interview_id FK String
피드백 대상 면접 세션 참조
user_id FK String
피드백 소유 사용자 (조회 편의용)
AI 피드백
ai_feedback { }
interview_comment String
면접 전체에 대한 AI 종합 코멘트
strengths Array
잘한 점 목록 (["핵심 키워드 활용", ...] 등)
improvements Array
개선이 필요한 점 목록
interview_score float
면접 종합 점수 (0~10)
technical_score float
기술 이해도 점수 (0~10)
logic_score float
논리적 전개력 점수 (0~10)
keyword_score float
핵심 키워드 포함도 점수 (0~10)
question_feedbacks [ ]
question_number int
대응하는 질문 순번
score float
해당 질문 개별 점수 (0~10)
comment String
해당 질문에 대한 AI 코멘트
자세 / 태도 데이터
posture_summary { }
eyes_score float
시선 처리 점수 (카메라 응시 비율 기반)
posture_score float
자세 안정성 점수 (Vision AI 분석)
bad_posture_count int
부적절한 자세 감지 횟수
posture_comment String
자세/태도에 대한 종합 코멘트
메타
created_at Date
피드백 생성 일시 (면접 종료 직후)
users 1 : N interviews
interviews 1 : 1 feedbacks
users 1 : N feedbacks

P:dback — MongoDB (pdback DB)  |  2026-03-17  |  3개 컬렉션 스키마 확정