프로젝트 배경
1) 문제점 - 사내 교육에서 「누가 수료했는가」가 대개 진도율 숫자 하나로만 관리됩니다 - 담당자가 실제로 답해야 하는 질문은 그다음입니다 — 차시를 다 들은 사람이 왜 아직 미수료인지, 수강생이 어느 차시에서 멈추는지, 지난달 기준으로는 어땠는지 - 진도율과 수료 여부를 값으로 저장해 두면 이 질문에 답할 수 없습니다. 「지금 상태」만 남고 그 판정이 무엇 때문이었는지가 사라집니다 2) 프로젝트
프로젝트 성과
진도·수료 판정 엔진과 단위 테스트 16건
학습 이벤트 로그에서 차시 완료·진도율·수료 판정과 그 사유까지 돌려주는 순수 함수입니다. 서버와 화면이 같은 함수를 부릅니다.
학습 타임라인 되감기 — 평균 진도율 85% → 33%
핸들을 두 달 전으로 끌면 반영 이벤트가 41건에서 17건으로 줄고, 정보보호 과정이 수강 중 100%에서 미착수 0%로 바뀝니다.
「진도 100%인데 미수료」를 화면이 설명한다
차시를 6/6 다 들었는데 퀴즈 평균이 45점입니다. 사유 카드가 「기준 80점에 35점 모자랍니다」까지 계산해 문장으로 적습니다.
이탈 구간 자동 탐지 — 6개 과정 중 5개 검출
직전 차시 대비 완료율이 15%p 이상 떨어지는 지점을 계산해 커리큘럼에서 지목합니다. 낙폭이 작은 과정은 「뚜렷한 이탈 없음」입니다.
수강 화면의 기록이 운영자 화면까지 올라간다
차시를 완료하면 학습 이벤트가 서버에 기록되고, 운영자 대시보드의 평균 진도와 정체 인원까지 같은 이벤트에서 다시 계산됩니다.
핵심 기능
진행 단계
공고 해석과 화면 설계
2026.09.
증명할 것을 화면 개수가 아니라 판정의 근거로 잡고, 라우트 4개와 시그니처 요소 하나를 먼저 확정했습니다.
프로젝트 상세
1) 소개 사내 교육 담당자가 매일 여는 운영 콘솔을 화면 네 개로 만든 제안용 구현 데모입니다. 운영자 대시보드, 과정 상세, 수강생 상세, 학습자 수강 화면이 하나의 판정 엔진을 공유합니다. 핵심은 상태를 저장하지 않는다는 점입니다. 진도율과 수료 여부를 컬럼에 들고 있지 않고 학습 이벤트 로그를 매번 접어서 만듭니다. 그래서 타임라인을 되감으면 그 시점의 판정이 그대로 재현되고, 수료 기준을 바꾸







