# 정책서: 캠퍼스/강좌/학습 흐름 ## 캠퍼스 개요 - A★캠퍼스는 A*List 교재를 활용한 상호 교수·학습 활동을 위한 온라인 공간이다. - 서비스 대상은 A*List 회원인 교사와 학생이며, 운영자는 캠퍼스 인터페이스와 관련 지원 기능을 제공한다. - 캠퍼스 개인화 요소는 캠퍼스 명칭, 직접 접속 도메인, 로고, GNB 색상이다. ## 캠퍼스 생성 정책 - 캠퍼스 생성 주체는 교사 회원이다. - 단일 캠퍼스형은 생성 즉시 운영 가능하다. - 복합 캠퍼스형은 교사 생성 후 관리자 승인 절차를 거친 뒤 운영 가능하다. - 관리자(Back Office)도 캠퍼스를 직접 생성할 수 있다. - 관리자 생성 시 캠퍼스 마스터 역할의 교사는 회원 가입이 완료된 상태여야 하며, 필요하면 관리자 화면에서 회원 등록을 병행한다. - 관리자 생성 시 등록 정보는 캠퍼스 명칭, 직접 유입 개인화 도메인, 로고, 캠퍼스 사용 교재를 포함한다. ## 캠퍼스 유형 - 단일 캠퍼스형: 1인 교사 공부방 또는 단일 학원형 - 복합 캠퍼스형: 동일 브랜드 하위 가맹 캠퍼스를 갖는 학원형 ## 캠퍼스 계층 구조 - 캠퍼스 - 클래스 - 강좌(Lecture) ## 계층별 의미 - 캠퍼스: 운영 단위, 교재/교사/학생/설정 관리의 상위 개념 - 클래스: 교사 1인 기준의 운영 단위 - 강좌: 교재 + 복수 학생 기준의 실제 교수·학습 수행 단위 ## 강좌 정책 - 강좌와 교재는 1:1 관계다 - 교재 1종은 단일 ISBN 한 권이 아니라 학습 연관성을 가진 교재 묶음일 수 있다 - 동일 학생이어도 교재가 바뀌면 새 강좌 생성 - 동일 교재여도 학생 구성이 바뀌면 새 강좌 생성 - 강좌 복사 기능을 제공하며 수업 중 강좌도 복사 가능하다 - 동일 캠퍼스 소속 교사는 본인이 개설한 강좌 외에 타 교사의 강좌도 검색·복사할 수 있다 - 동일 강좌 ID 안에서는 교재 교체, 교재 추가, 전체 학생 변경이 불가하며, 교재 또는 학생 구성이 크게 바뀌면 신규 강좌 ID를 생성하는 흐름으로 본다 - 개별 학생/수강생 상태 변경과 운영 중 학생 추가 초대는 가능하다 - Live 상태 강좌 수는 제한될 수 있고 종료 강좌를 포함한 총 강좌 수는 무제한이다 ## 강좌 생명주기 - 강의 준비중 - 강의 중 - 강의 종료 - 학생 기준 상태로는 수강 대기중, 수강 중, 수강 종료가 별도로 존재한다 ## 강좌 운영 규칙 - 강좌 생성 시 교재 선택, 학생 초대, 수업 코스 설계, 과제/평가 생성이 함께 이뤄진다 - 운영 중 학생 중도 초대가 가능하다 - 운영 중 학생 상태를 이용 중지 또는 수강 종료로 변경할 수 있다 - 학생이 운영 중간에 가입하면 이전 과제/평가도 미수행 상태로 제시한다 - 상태 변경 시 학생과 학부모에게 알림이 발송된다 - 수업 코스는 교재 Unit 기반으로 정렬하고, 수업 자료, 온라인 콘텐츠, 과제, 평가를 선별 연동한다 - 수업 일정과 과제/평가 출제 일정은 타임라인 기반으로 관리한다 ## 캠퍼스/강좌 상태 관리 - 온라인 캠퍼스, 가맹 캠퍼스, 클래스, 강좌, 회원의 캠퍼스 가입 상태는 별도 상태 체계로 관리한다 - 온라인 캠퍼스에는 승인 대기, 운영 중, 운영 일시 정지, 운영 종료 상태가 있다 - 클래스/가맹 캠퍼스에는 운영 중, 운영 일시 정지, 운영 종료 상태가 있다 - 강좌에는 강의 준비 중, 강의 중, 강의 일시 정지, 강의 종료 상태가 있다 - 교사 가입 상태에는 정상, 권한 일시 중지, 종료(탈퇴)가 있다 - 학생/수강생의 강좌 가입 상태에는 수강 대기 중, 수강 중, 권한 일시 중지, 수강 종료, 종료(탈퇴)가 있다 - 상위 조직이 일시 정지되면 하위 조직 상태에도 반영된다 ## 교사 업무 흐름 - 캠퍼스 생성 또는 초대 가입 - 캠퍼스 개인화 설정 - 교재 선택 및 클래스/강좌 생성 - 학생/수강생 초대 - 타임라인 기반 수업 코스 설계 - 과제/평가 출제 - 제출 관리, 채점, 피드백 - 학습 현황 및 보고서 생성 ## 학생/수강생 학습 흐름 - 초대 URL/초대 코드 기반 강좌 가입 또는 학생 회원 자기주도학습 시작 - 예습 패키지 수행: 음원, 동영상, 단어 학습, 온라인 플래시 카드, 워드 리스트 - 수업 참여 - 온라인 학습 콘텐츠 수행 - 과제 수행 및 제출 - 평가 수행 및 제출 - 복습 및 자기주도학습 - 학습 결과/성취도 확인 ## 과제/평가 정책 - 과제/평가는 강좌 단위로 출제한다 - 학생은 온라인 과제 뷰어 또는 온라인 학습 콘텐츠 뷰어에서 수행한다 - 제출 기한과 수행률 관리가 필요하다 - 교사는 채점 및 피드백을 입력한다 - 알림장, 이메일, 앱 푸시, SMS가 보조 수단으로 사용된다 ## SMS 정책 - 캠퍼스 초대, 학습 알림, 보고서 발송 등에 SMS를 병행 사용할 수 있다 - 초대 시 이메일 발송은 필수, 휴대폰 SMS 발송은 선택으로 본다 - SMS 발송은 개발 후 서비스 오픈 시 프로세스 Hidden 처리될 수 있다 ## 초대 코드 정책 - 초대 코드는 캠퍼스에 초대되는 회원의 가입 일치 여부를 판단하고, 캠퍼스별 교재 단위 이용자 수를 관리하는 수단이다 - 교사용 초대 코드와 학생용 초대 코드는 생성·사용 로직을 이원화한다 - 학생 초대 코드는 교재별 수량 관리 대상이며, 강좌에 학생을 초대할 때 잔여 수량 내에서 생성한다 - 학생 초대 코드 상태는 미사용, 발송, 발송 실패, 재발송, 강좌 가입, 수업 시작으로 관리한다 - 초대 코드 수량은 전체 수량, 대기 수량, 사용 수량, 잔여 수량으로 표현한다 - 대기 수량은 발송/재발송 상태의 합계이고, 사용 수량은 강좌 가입/수업 시작 상태의 합계다 - 학생이 초대 코드를 분실하면 교사가 동일 초대 코드를 재발송할 수 있어야 한다 - 강좌 생성 후 학생별 초대 코드 목록은 Excel 목록형 또는 PDF 인쇄형으로 다운로드할 수 있다 - 해외 임대 서비스에서는 유통업체 또는 관리자 화면을 통해 캠퍼스별·교재별 초대 코드 수량을 생성/증감 관리한다 ## 개발 해석 포인트 - 캠퍼스, 클래스, 강좌는 이름이 비슷하지만 역할이 다르므로 테이블/DTO/응답 모델을 명확히 분리해야 한다 - 강좌는 실제 학습 데이터와 과제/평가의 기준 단위이므로, API 설계 시 강좌 식별자를 중심으로 묶는 것이 자연스럽다 - 초대, 가입, 탈퇴, 종료, 상태 변경은 회원 상태와 강좌 소속 상태를 구분해 처리해야 한다 - 초대 코드는 단순 인증 토큰이 아니라 교재별 이용 수량과 연결된 운영 데이터이므로 상태 이력과 수량 집계를 함께 고려해야 한다