🎓 기업 온보딩 교육 관리 플랫폼 — 구현 데모
실시간 인터랙티브 강의로
온보딩 교육을 혁신합니다
강사와 수강자가 실시간으로 연결되는 라이브 세션, 자동화된 이수 관리, 학습 진도 추적까지 — Supabase Realtime + Next.js App Router 기반으로 구현합니다.
12개
활성 교육 과정
284명
등록 수강자
3개
진행중 세션
89%
평균 완료율
이번달 수강 신청
142
전월 대비 +18명
평균 학습 진도
73%
전체 수강자 기준
이수 완료
38
이번달 이수 발급
오늘 라이브 세션
5
3개 진행중 · 2개 예정
진행중인 라이브 세션실시간
과정명강사참여자상태
신입사원 필수 교육 A
1/3 차시
김혜린 강사 24/30명 🔴 Live
직무 역량 향상 과정
2/4 차시
이성호 강사 18/25명 🔴 Live
리더십 기초 과정
3/5 차시
박민수 강사 12/20명 🔴 Live
부서별 학습 현황
기술 구현 포인트 Next.js 14 + Supabase
🔄 Supabase Realtime
postgres_changes 이벤트로 학습 진도 실시간 수신, 강사·수강자 채널 분리, broadcast로 강의 제어 신호 전달
🏛️ 멀티테넌시 RLS
company_id + role 복합 RLS 정책으로 조직 간 데이터 완전 격리, JWT custom claims에 company_id 포함
⚡ App Router SSR
Server Component로 초기 과정 목록 SSR, 이후 Realtime delta 업데이트, PostgreSQL 트리거로 이수 자동 처리
신입사원 필수 교육 A · 1/3 차시
실시간 강의 세션
신입사원 필수 교육 A
1차시: 회사 문화와 핵심 가치
⏱ 23:41 ● REC
SLIDE 3 / 8
우리 회사의 5가지 핵심 가치
  • 고객 중심: 모든 의사결정의 출발점은 고객의 문제입니다
  • 투명한 소통: 정보는 공유될수록 가치가 높아집니다
  • 지속 성장: 매일 1%씩 더 나아지는 것이 목표입니다
  • 팀워크: 개인의 성과보다 팀의 성공을 먼저 생각합니다
+19명 참여중
참여자 현황
24 참여 6 미참
김서연
인사팀
시청중
이동훈
개발팀
시청중
박지연
마케팅팀
시청중
최민우
영업팀
✓ 완료
정다윤
기획팀
시청중
한승재
재무팀
✓ 완료
윤하영
디자인팀
시청중
강현준
법무팀
이탈
임채린
CS팀
시청중
온보딩 과정 관리
교육 과정 생성 · 차시 편집 · 수강 신청 관리
🎯
진행중 3차시
신입사원 필수 교육 A
👥 30명📅 매주 화
전체 진도67%
💼
진행중 4차시
직무 역량 향상 과정
👥 25명📅 격주 목
전체 진도45%
👑
예정 5차시
리더십 기초 과정
👥 20명📅 매주 금
전체 진도20%
신입사원 필수 교육 A — 차시 편집기
1차시: 입사 환영 및 회사 소개
완료 · 30/30명 이수
완료
2차시: 직무 이해 및 협업 도구
진행중 · 24/30명 참여
진행중
3
3차시: 인사/복리후생 안내
예정 · 2025.04.08
예정
수강자 학습 진도 대시보드
전체 수강자 학습 현황 추적 · 이수 관리
전체 수강자
284
3개 과정 합산
이수 완료
38
이번달 이수 발급
학습 진행중
201
평균 진도 67%
이수 지연
12
기한 초과 수강자
수강자 진도 현황
수강자
학습 진도
참여율
차시
상태
김서연
인사팀 · 신입
신입사원 필수 교육 A100%
100%
3/3
이수 완료
이동훈
개발팀 · 신입
직무 역량 향상 과정75%
88%
2/4
진행중
박지연
마케팅팀 · 신입
신입사원 필수 교육 A67%
79%
2/3
진행중
최민우
영업팀 · 신입
리더십 기초 과정20%
42%
1/5
지연
정다윤
기획팀 · 신입
직무 역량 향상 과정50%
61%
2/4
진행중
역할 기반 멀티테넌시 접근 제어
company_id + role 복합 RLS · 조직 간 완전 데이터 격리 설계
🏢
테크스타트 주식회사
company_id: a1b2-c3d4-e5f6
프리미엄 플랜
142
전체 수강자
8
강사 계정
12
활성 과정
38
이번달 이수
역할별 권한 매트릭스
권한강사수강자HR담당관리자
세션 시작
학습 진도 조회본인 과정본인만전체전체
과정 생성
이수증 발급
계정 관리
멀티테넌시 RLS 정책PostgreSQL
-- 과정 접근: 소속 회사 + 역할 기반 CREATE POLICY "company_courses_access" ON courses FOR ALL USING ( company_id = ( auth.jwt() ->> 'company_id' )::uuid ); -- 세션 브로드캐스트: 강사만 발행 CREATE POLICY "instructor_broadcast" ON sessions FOR UPDATE USING ( instructor_id = auth.uid() AND (auth.jwt() ->> 'role') = 'instructor' );