PORTFOLIO · 2026
교육 · HRD 원격훈련 · B2B SaaS · LMS 구축

HRD 원격훈련 LMS 플랫폼
부정수강 방지 · RAG AI 챗봇

— HRD 원격훈련 인정 요건을 충족하는 기업 직업능력개발 LMS —

Vimeo 학습 시스템 부정수강 방지 5종 역할별 3단 대시보드 RAG AI 챗봇
도메인교육/HRD · LMS · 원격훈련
담당 역할프론트엔드 풀 개발 + 백엔드 협업/리딩
개발 기간60일 (약 8주)
규모50+ 화면 · 200+ API · 10+ 도메인
프론트Next.js 16 · React 19 · CoreUI
백엔드FastAPI · PostgreSQL pgvector
개발 완료 AWS ECS 배포
HRD 원격훈련 LMS 플랫폼CONTENTS
C
Table of Contents

목차

  • 1프로젝트 개요 — 소개 · 작업 범위03
  • 2주요 기능 — 학습 · 퀴즈 · 부정수강 방지 · 대시보드 · 시험/AI04
  • 3기술 주안점 — 아키텍처 설계 포인트09
  • 4프로젝트 배경 — 문제 · 목표 · 해결10
  • 5기술 스택11
  • 6시스템 아키텍처12
  • 7핵심 기능 상세13
  • 8진행 단계14
  • 9프로젝트 성과15
  • 10데모 안내 · 유사 프로젝트 경험16
HRD 원격훈련 LMS 플랫폼02
HRD 원격훈련 LMS 플랫폼01 · 프로젝트 개요
1
Overview

프로젝트 개요

고용노동부·한국산업인력공단의 HRD 원격훈련 인정 요건을 충족하는 기업 직업능력개발 LMS 플랫폼. 검증된 Vimeo Player 기반 학습 시스템에 부정수강 방지 요건을 결합하여, 인정 요건을 충족하면서도 학습자 경험이 우수한 원격훈련 플랫폼을 제공.
50+
개발 화면
200+
API 엔드포인트
3
역할별 대시보드

서비스 카테고리 · 타깃

훈련생

원격훈련 과정을 수강하는 학습자 — 학습·진도·수료.

교강사

강의를 진행하고 과제·평가·채점을 담당.

운영 관리자

회원·과정·통계·매출·환불을 직접 관리.

작업 범위

프론트엔드 풀 개발

요구사항 분석 · 3단 IA/화면 설계 · CoreUI 반응형 UI · Next.js 16 / React 19 / Vimeo SDK 구현.

백엔드 협업 / 리딩

백엔드 2인과 협업 — FastAPI 메인 API · Rust(Axum) JWT 사이드카 · OpenAPI 기반 연동, PM 역할 겸임.

인프라 · 배포

AWS ECS + CodePipeline, S3 + CloudFront 정적 호스팅, ALB 라우팅.

외부 연동

Vimeo Player/API, PortOne 본인인증/결제, OpenAI(RAG), AWS SES/S3/SQS.

※ 지원 환경: PC Web 반응형 (PC 우선, 태블릿/모바일 대응)
HRD 원격훈련 LMS 플랫폼03
HRD 원격훈련 LMS 플랫폼02 · 주요 기능 ①
2
Core Features ①

주요 기능 ① — Vimeo 학습 플레이어

Vimeo Player 연동 학습 시스템

재생 · 배속 제어

@vimeo/player SDK 기반 재생/일시정지/배속 제어, 차시별 영상 임베드.

진도 · 차시 흐름

다음 차시 자동 이동, 수강 기간 만료 시 재생 차단으로 인정 기간 관리.

서버 기반 시청 기록

  • 하트비트 전송 — 재생 상태(현재 시간·시청 구간·완료 여부)를 Rust 사이드카 video_heartbeat 엔드포인트에 주기 전송
  • 위변조 차단 — 학습 시간은 클라이언트가 아닌 서버 타임스탬프 기반으로 검증·기록
Vimeo 학습 플레이어 강의 영상 재생 화면
화면Vimeo 학습 플레이어 — 강의 영상 재생 (좌측 차시 목록 · 하단 진도/배속 컨트롤)
HRD 원격훈련 LMS 플랫폼04
HRD 원격훈련 LMS 플랫폼02 · 주요 기능 ②
2
Core Features ②

주요 기능 ② — 퀴즈 오버레이

영상 내 퀴즈 오버레이

  • cue point 감지 — timeupdate 이벤트를 250ms 간격으로 감지, 백엔드가 지정한 cue point 시점에 도달하면 영상을 자동 정지
  • 모달 출제 — 영상 위에 absolute positioning 모달로 퀴즈 팝업, 정답 확인 후 영상 재생 재개
  • 학습 완결성 — 차시 내 핵심 지점마다 이해도 확인으로 단순 재생만으로 진도가 인정되지 않도록 설계

진도 연동

정답 후 재개

퀴즈 통과 시점까지의 시청 구간만 정상 진도로 반영.

차시 자동 이동

완료 차시는 다음 차시로 자동 연결, 미완료 시 재생 제한.

Vimeo 영상 위 퀴즈 오버레이 모달 팝업 화면
화면퀴즈 오버레이 — cue point 도달 시 영상 자동 정지 + 영상 위 모달 퀴즈 팝업
HRD 원격훈련 LMS 플랫폼05
HRD 원격훈련 LMS 플랫폼02 · 주요 기능 ③
2
Core Features ③

주요 기능 ③ — 부정수강 방지 5종

방지 5종 — HRD 인정 요건 충족

탭 이탈 일시정지

visibilitychange 이벤트로 탭 이탈·창 최소화 감지 시 자동 정지.

배속 제한

HRD 기준에 따른 재생 배속 상한 적용.

seek 제한

이미 수강한 구간까지만 이동 허용, seeked 이벤트로 강제 복귀.

랜덤 본인확인

학습 중 무작위 시점에 클릭/입력 검증 팝업.

※ 서버 타임스탬프 검증 — 학습 시간은 클라이언트가 아닌 서버 기준으로 기록·검증하여 위변조 원천 차단
학습 이탈 감지 모달 팝업 화면
화면학습 이탈 감지 — 탭 이탈/창 최소화 시 자동 일시정지 + 본인확인 안내 팝업
HRD 원격훈련 LMS 플랫폼06
HRD 원격훈련 LMS 플랫폼02 · 주요 기능 ④
2
Core Features ④

주요 기능 ④ — 대시보드 · 운영

역할별 3단 대시보드

  • 훈련생 — 나의 강의실(진도율 카드), 수강신청, 수료증 발급, 학습 자료, 공지/Q&A
  • 교강사 — 담당 과정 수강생 진도율 테이블, 과제 평가/피드백, 채점, 토론 운영, 강의 자료 등록
  • 관리자 — 회원·과정·차시 등록, Vimeo 영상 연결, 수강신청 승인, 매출 통계, 환불 처리, 보안/감사
※ JWT 토큰 내 역할 정보 기반 자동 분기 라우팅

관리자 운영 콘솔

매출 통계

수강신청 추이·매출 시각화(ApexCharts).

과정 관리

과정>과목>차시 계층 등록·승인.

보안 · 감사

권한 승인 워크플로우, 감사 이력.

관리자 대시보드 통계 카드와 수강신청 추이 차트 화면
화면관리자 대시보드 — 수강 현황 통계 카드 + 수강신청 월별/연누적 추이 차트 + 진행중 과정
HRD 원격훈련 LMS 플랫폼07
HRD 원격훈련 LMS 플랫폼02 · 주요 기능 ⑤
2
Core Features ⑤

주요 기능 ⑤ — 시험 · AI · 수료 · 서비스

시험 · 평가 / RAG AI 챗봇

시험 · 평가

문제은행 기반 출제·일괄 등록(bulk), 자동 채점 + 교강사 수동 채점, 과제 유사도 검사로 표절 방지.

RAG 챗봇 (2채널)

pgvector + LangChain + OpenAI 자체 파이프라인. 고객센터(FAQ/공지) · 학습도우미(강의자료) 2채널, 응답 스트리밍 UI.

수료 · 회원 · 수강신청

  • 수료증 자동 발급 — 수료 조건 충족 시 HRD/자유 양식 PDF + 발급번호 부여, 5년 보관·재발급
  • 회원 · 본인인증 — 이메일/소셜 가입 + PortOne 본인인증, 약관 동의 이력 관리
  • 수강신청 · 결제 — 과정 수강신청/배정, PortOne 결제·환불 워크플로우, 공개 홈페이지 콘텐츠 관리
공개 홈페이지 과정 소개 및 수강신청 랜딩 화면
화면공개 홈페이지 — 과정 소개 · 수강신청 랜딩 (운영 통계 · 진행 과정 노출)
HRD 원격훈련 LMS 플랫폼08
HRD 원격훈련 LMS 플랫폼03 · 기술 주안점
3
Technical Highlights

기술 주안점

HRD 인정 요건 100% 충족 설계

부정수강 방지 5종(탭이탈/배속/seek/본인확인/서버검증)을 프론트-백엔드 협업으로 구현.

Rust 사이드카 아키텍처

JWT 검증·비디오 하트비트 등 고빈도 호출을 Rust(Axum)로 분리해 Python 메인 부하 분산. bitcode + zstd + base64 + HMAC 페이로드 인코딩.

AWS SQS 비동기 통신

Rust 사이드카와 Python 백엔드 간 SQS 큐로 느슨하게 결합(jwt_validity_checker_enqueue_svc).

pgvector 기반 자체 RAG

외부 벡터 DB 없이 PostgreSQL 단일 인프라로 운영, LangChain Postgres 어댑터 활용.

PII 분리 암호화

email·name·CI·phone 등 개인정보를 전용 암호화/해시 키 쌍으로 별도 관리(개인정보보호법 대응).

통합 응답 포맷

ApiResponse<T> 래퍼(success/data/error/metadata)로 프론트-백 일관 처리, OpenAPI 스키마 자동 인라이닝.

레이어드 아키텍처

api/domain/dto/util/ext_services/core 5계층 분리, 외부 서비스(Vimeo/PortOne/OpenAI) 어댑터 격리.

다중 git 저장소

모놀리식 통합 레포 + 6개 독립 서비스 레포로 마이크로레포 운영.

HRD 원격훈련 LMS 플랫폼09
HRD 원격훈련 LMS 플랫폼04 · 프로젝트 배경
4
Background

프로젝트 배경

문제점

  • 훈련 인정 리스크 — HRD 원격훈련은 심사 기준(부정수강 방지) 미충족 시 훈련 인정 자체가 불가
  • 기성 솔루션 한계 — 기존 LMS는 Vimeo 커스터마이징과 HRD 요건이 결합되어 있지 않음
  • 협업 리딩 공백 — 클라이언트 측 IT PM 경험 부재로 백엔드(FastAPI+Rust) 2인과의 협업을 누군가 리딩해야 함
  • 타이트한 일정 — 학습/시험/과제/수료/결제/환불/통계까지 풀 LMS 범위를 60일에 구현

문제 → 해결 흐름

법규 리스크
부정수강 미충족
→
요건 분해
방지 5종 정의
→
PoC 선검증
Vimeo 오버레이
→
인정 가능 구조
서버 검증 기록

프로젝트 목표

  • HRD 인정 요건을 충족하는 안정적인 원격훈련 플랫폼 구축
  • 훈련생/교강사/관리자 각 역할에 최적화된 사용자 경험 제공
  • 이미 개발된 FastAPI + Rust 백엔드와 견고하게 연동하는 프론트엔드 구축
  • 훈련기관이 운영(회원/과정/매출/환불/감사)을 직접 수행하는 관리자 시스템 제공

접근 주안점

법규 준수 우선

부정수강 방지 5종 요건을 PoC 단계에서 먼저 검증.

코드베이스 빠른 파악

AI 코드 분석 워크플로우로 FastAPI+Rust 코드를 분석, 연동 포인트 사전 도출.

PM 역할 겸임

주 2회 정기 싱크, 마일스톤 기반 진행 관리, API 스펙 협의 주도.

확장 가능 구조

새 과정/평가 방식/AI 기능 추가가 용이한 모듈화 설계.

HRD 원격훈련 LMS 플랫폼10
HRD 원격훈련 LMS 플랫폼05 · 기술 스택
5
Tech Stack

기술 스택

Frontend — lms-frontend
Next.js 16.1React 19.2TypeScript 5CoreUI React 5.9@vimeo/player 2.30@tanstack/react-tableChart.js 4.5SCSS
Backend — lms-backend
Python 3.14FastAPISQLAlchemy 2 (async)asyncpgAlembicpydantic v2structloguvargon2 · bcrypt · cryptographyopenpyxl · pypdfboto3
AI / RAG
LangChain 1.2langchain-openailangchain-postgrespgvectorOpenAI API
JWT Validity Checker — Rust 사이드카
RustAxumDieseltokiobitcode + zstd + base64 + HMACAWS SQS 클라이언트
Database & Cache
PostgreSQL 18 + pgvectorValkey (Redis 호환)
Infrastructure & DevOps
AWS ECSCodePipeline / CodeBuildS3 · CloudFrontALBSES · SQSDockerBastion HostGitHub ActionsTerraform
External Services
Vimeo Player APIPortOne (본인인증·결제)OpenAI API
※ 인프라 리전: AWS ap-northeast-2 · 관리자 프로토타입: coreui_test (Next.js 16 + CoreUI + TypeScript + SCSS)
HRD 원격훈련 LMS 플랫폼11
HRD 원격훈련 LMS 플랫폼06 · 시스템 아키텍처
6
System Architecture

시스템 아키텍처

요청 흐름 — 정적 호스팅 · 라우팅

브라우저
훈련생/교강사/관리자
→
CloudFront
CDN
→
S3
Next.js static
→
ALB
경로 라우팅

이중 백엔드 — ECS 분리

ECS · lms-backend /api/v1/*

FastAPI + Python 3.14 — 200+ REST 엔드포인트, LangChain RAG, SQLAlchemy async.

ECS · jwt-validity-checker /api/v1/axum/*

Rust + Axum + Diesel — JWT 검증, 영상 하트비트, 레슨 진도 처리.

두 ECS 서비스는 AWS SQS 큐로 Python ↔ Rust 비동기 결합. 페이로드는 bitcode + zstd + HMAC으로 압축·서명해 전송합니다.

데이터 · 외부 서비스 · 백엔드 레이어

Data Store
PostgreSQL 18 + pgvectorValkey (캐시/세션)
AWS
SES (이메일)SQS (큐)S3 (파일)
External API
VimeoPortOne (본인인증·결제)OpenAI (RAG)
Backend 5-Layer (lms-backend)
apidomaindtoutilext_servicescore
※ 외부 서비스는 ext_services 어댑터로 격리, 모놀리식 통합 레포 + 6개 독립 서비스 레포로 운영
HRD 원격훈련 LMS 플랫폼12
HRD 원격훈련 LMS 플랫폼07 · 핵심 기능 상세
7
Key Features in Depth

핵심 기능 상세

1

Vimeo Player 퀴즈 오버레이

@vimeo/player의 timeupdate 이벤트를 250ms 간격으로 감지, 백엔드 지정 cue point 도달 시 영상을 자동 정지하고 영상 위에 absolute positioning 모달로 퀴즈를 출력. 정답 확인 후 재개.

2

HRD 부정수강 방지 5종

visibilitychange 탭 이탈 감지, setPlaybackRate 배속 상한, seeked 이벤트로 미수강 구간 이동 차단, 랜덤 본인확인 팝업, Rust 사이드카(video_heartbeat)로 서버 타임스탬프 기반 학습 시간 기록.

3

Rust JWT 사이드카

Axum + Diesel + tokio 기반 고성능 사이드카. JWT 검증·영상 하트비트·레슨 진도 업데이트를 담당. Python 메인 서버와는 SQS 큐로 통신, 페이로드는 bitcode + zstd + HMAC으로 압축/서명.

4

RAG 챗봇 (2채널)

pgvector로 임베딩 저장, LangChain Postgres 어댑터로 검색, OpenAI GPT로 답변 생성. 고객센터(FAQ/공지)와 학습도우미(강의자료) 2채널을 동일 파이프라인으로 운영. 백그라운드 sweeper가 신규 문서 자동 색인.

5

시험/문제은행 시스템

문제은행 기반 후보 문항 등록(bulk) → 시험 에디터에서 출제/검증/저장 → 시험 응시(Exam Attempt) → 자동 채점 + 교강사 수동 채점. 과제는 유사도 검사로 표절 방지.

6

관리자 운영 대시보드

회원 관리(권한 승인 워크플로우), 과정/과목/차시 계층 등록(아코디언 폼), Vimeo 영상-차시 연결, 매출 통계(ApexCharts), 환불 처리, 평가 결과 모니터링, 보안/감사 이력.

7

수료증 자동 발급

수료 조건(진도율·시험 합격·과제 완료) 충족 시 자동 발급. HRD 양식 또는 자유 양식 PDF 생성 + 발급번호 부여, 5년 보관 및 재조회/재발급 지원.

8

회원 · 결제 · 매출 운영

이메일·소셜 가입 + PortOne 본인인증, 약관 동의 이력 관리(term_consent), PortOne 결제·환불 워크플로우, 엑셀 일괄 등록(openpyxl), 이메일/SMS 발송 로그(SES/SMS).

HRD 원격훈련 LMS 플랫폼13
HRD 원격훈련 LMS 플랫폼08 · 진행 단계
8
Process

진행 단계 — 60일 (8주)

W1
W2
W3
W4
W5
W6
W7
W8
환경구축·핵심검증
PoC
인증/권한/공통
Auth
훈련생 핵심
학습·수료
교강사·관리자
CRUD·통계
AI 챗봇·부가
RAG
통합테스트·배포
QA
W1환경 구축 + 핵심 검증
모듈별 명세서 분석, 화면 목록 확정, Vimeo Player 퀴즈 오버레이 PoC, FastAPI Swagger 기반 API 연동 설계
W2인증/권한/공통
JWT + Rust 사이드카 연동, 역할별 라우트 가드, 공통 레이아웃(헤더/사이드바), 3단 대시보드 골격
W3-4훈련생 핵심
Vimeo 학습 플레이어 완성(퀴즈/배속/진도), HRD 부정수강 방지 5종, 나의 강의실, 수강신청, 수료증 발급
W5-6교강사 + 관리자
교강사 진도 테이블/과제 평가, 회원/과정/커리큘럼 CRUD, Vimeo 영상-차시 연결, 매출 통계, 환불, 시험/문제은행 에디터
W7AI 챗봇 + 부가
RAG 챗봇 UI(스트리밍/타이핑), pgvector 임베딩 연동, 수료증 PDF, 반응형 점검
W8통합 테스트 + 배포
역할별 시나리오 테스트, AWS ECS + CodePipeline 배포, ALB 라우팅 구성, CI/CD, 인수인계

마일스톤 · 협업 방식

환경구축
PoC·설계
→
핵심기능
학습·수료
→
대시보드·관리자
CRUD·통계
→
QA·배포
ECS·CI/CD
※ 주 2회 정기 싱크로 백엔드팀과 API 스펙 협의, 주간 진행 리포트, 마일스톤별 데모 시연
HRD 원격훈련 LMS 플랫폼14
HRD 원격훈련 LMS 플랫폼09 · 프로젝트 성과
9
Results

프로젝트 성과

정량 성과 (코드/규모 기준)

60일
개발 기간
약 8주 · FE 기준 + BE 협업
50+
개발 화면
관리자 CRUD 다수 포함
200+
API 엔드포인트
auth·course·exam·admin·rag 등
10+
도메인 모듈
user·course·rag·instructor 등
30+
DTO 스키마 도메인
시험·과제·문제은행·약관 등
5종
부정수강 방지
탭이탈·배속·seek·본인확인·서버검증

정성 성과

  • HRD 심사 대응 가능 구조 — 부정수강 방지 5종 + 서버 타임스탬프 기반 학습 시간 기록으로 원격훈련 인정 요건 충족
  • 이중 백엔드 안정성 — Rust 사이드카로 JWT/하트비트 부하 분산, Python 메인 API 응답 시간 안정화
  • 자체 RAG 운영 — 외부 벡터 DB 비용 없이 pgvector로 챗봇 운영, 학습도우미/고객센터 2채널 동시 지원
  • 백엔드팀 협업 효율화 — AI 코드 분석으로 코드베이스 빠른 파악, API 명세 불일치를 주 2회 싱크로 사전 해소
  • 확장성 확보 — 레이어드 아키텍처로 새 기능 추가 시 영향 범위 최소화

품질 관리

타입·린팅

TypeScript 엄격 모드, ESLint/Ruff 린팅.

테스트·리뷰

Playwright E2E + Vitest 단위 테스트, GitHub PR 코드리뷰.

HRD 원격훈련 LMS 플랫폼15
HRD 원격훈련 LMS 플랫폼10 · 데모 · 유사 경험
10
Demo & Experience

데모 안내 · 유사 경험

데모 안내

  • 역할별 체험 — 훈련생/교강사/관리자 3단 역할별 로그인 후 각 대시보드 체험
  • 학습 시스템 — 샘플 Vimeo 강의로 퀴즈 오버레이/부정수강 방지 동작 확인
  • AI 챗봇 — 우측 하단 플로팅 챗봇으로 RAG 기반 학습도우미/고객센터 응답 체험

유사 프로젝트 경험

기업 법정의무교육 LMS

스킵 방지·퀴즈·수료증·3단 대시보드 실무 구현 경험.

전기설비 현장점검 시스템

4단계 RBAC, AWS 인프라, PDF 자동 생성, 45일 내 납품.

AI 음성 메모 SaaS

자체 운영, OpenAI/STT 연동, OAuth/PortOne 결제 경험.

AI 코드/기획서 분석 워크플로우

자체 보유 → 기존 백엔드 코드베이스 빠른 파악 가능.

프로젝트 진행 제안

  • 커뮤니케이션 — 주 2회 정기 온라인 미팅, Slack/카톡 일상 소통, 이메일 공식 기록
  • 일정 관리 — 마일스톤 기반(환경구축→핵심기능→대시보드/관리자→QA/배포), 주간 진행 리포트
  • 백엔드팀 협업 — API 스펙 변경 시 최소 3영업일 사전 통보 합의, FastAPI Swagger 기반 체계적 연동
  • 품질 관리 — TypeScript 엄격 모드, ESLint/Ruff, Playwright E2E + Vitest, GitHub PR 코드리뷰
검증된 Vimeo 학습 시스템에 HRD 부정수강 방지 요건을 결합하여, 훈련 인정 요건을 충족하면서도 학습자 경험이 우수한 원격훈련 플랫폼을 완성했습니다.
HRD 원격훈련 LMS 플랫폼16