체크온뮤직 — 프로그램 설계 개요
학원(Academy) 단위로 구성원·수업·일정·출결·메모·Todo·노트·푸시·고객지원을 다루는 웹·모바일 서비스입니다.
클라이언트는 웹과 모바일 WebView 셸 두 저장소로 나뉩니다.
1. 시스템 구성 요소
| 구분 | 디렉터리 | 역할 |
|---|---|---|
| 웹 | checkon-web | Next.js(App Router), Prisma·MySQL, NextAuth |
| 모바일 | checkon-app | Expo WebView 셸, 푸시·OTA 등 |
2. 아키텍처
- 역할: 시스템·학원 관리자·부관리자·선생님·학생 등이
Role·UserAcademy에 따라 기능이 나뉩니다. - 배치 연동: 출석 알림 등은 HTTP로 API를 호출하는 스케줄 작업(
batch/*등)과 연동될 수 있습니다.
3. 데이터 흐름
- 계정·학원:
User가UserAcademy로 학원에 소속되고, 학원별 프로필·승인 상태를 관리합니다. - 수업·일정:
Class, 담당(TeacherClass등),ClassSchedule, 출결·수업 이력 API가 갱신·조회를 담당합니다. - 업무 보조: 학원 단위
Todo·Note, 코드 마스터(CodeGroup·Code), 시스템 콘텐츠·FAQ, 문의(SupportInquiry) 등. - 내부 결제: 학원 운영 관련 내부
Payment는 스키마에 정의되어 있으며, 화면·API는 도메인 설계에 맞게 사용합니다.
스키마 전체는 checkon-web/prisma/schema.prisma를 기준으로 합니다.
3.1 요청·저장 흐름(도식)
3.2 핵심 엔티티 관계(요약)
도식의 Lesson·LessonSchedule은 Prisma의 Class·ClassSchedule과 같습니다.
4. 웹 애플리케이션 레이어 (checkon-web)
4.1 기능 영역(예)
- 온보딩·학원 선택, 대시보드(통계·노트·할 일 등)
- 관리자: 학원·반·학생·선생님·출결·결제·알림·설정·콘텐츠·FAQ
- 선생님: 대시보드, 수업·학생·일정·출결·메모
- 공통: 코드 조회, 학원 검색, 프로필·비밀번호·탈퇴, 푸시·업로드 토큰, 고객 문의
5. 모바일 앱 레이어 (checkon-app)
5.1 WebView 브릿지(요약)
6. 디렉터리 구조(루트)
PROD_checkon/
├── checkon-web/
├── checkon-app/
└── ReadMe.md
7. 기술 스택 요약
| 영역 | 기술 |
|---|---|
| 웹 | Next.js 16, React 19, Prisma, MySQL, NextAuth, Mantine, Recharts 등 |
| 앱 | Expo, React Native, WebView |