- 전문 개발인력을 두기 어려운 ‘훈련기관’을 고려하여 ‘비개발’인력도 손쉽게 교육 과정을 구성
- ‘집체 교육’을 대신하는 수강생들의 집중력 향상을 위한, 실시간 강의와 실시간 퀴즈 도입 (타사 서비스와의 차별점)
-
LMS 솔루션:
기업을 대상으로 하는 학습 관리 시스템(LMS)을 제공합니다. -
비개발자 친화적 구성:
비개발자도 손쉽게 학습 과정을 설계하고 관리할 수 있는 사용자 중심의 인터페이스를 제공합니다. -
집중력 강화 솔루션:
원격 훈련 환경에서 참여를 유도하고 학습자의 집중력을 높일 수 있는 다양한 기능과 도구를 지원합니다.
2024.08.01 ~ 2024.11.01 (3개월)
Megazone Cloud Java 기반 SaaS개발자 양성 과정 2조
Language & Framework
Storage
Build Tool & CI/CD Tool
AWS
Tools
- 사용자 관리 : 사용자의 회원가입 및 로그인, JWT에 대한 상태 관리
- 강의 목록 : 등록된 강의 목록 관리, 강의 수강 신청 사항 관리
- 강사 강의 : 강사가 등록한 강의 목록을 관리, 수강 강의에 대한 내용 및 안내사항 관리
- 공지사항 및 문의내역 : 강사와 학생 간의 QnA 및 공지사항 관리
- 라이브 서비스 : 라이브 서비스 운영 및 관리
- 실시간 퀴즈 : 라이브 강의 시 실시간 퀴즈로 학생들을 평가하는 서비스
$\rm{\normalsize{\color{#6580DD}MySQL\ Schema}}$
CREATE TABLE `users` (
`id` BIGINT NOT NULL,
`username` VARCHAR(20) NOT NULL,
`name` VARCHAR((20) NOT NULL,
`password` VARCHAR(20) NOT NULL,
`birth` DATE NOT NULL,
`email` VARCHAR(40) NOT NULL,
`gender` VARCHAR(20) NOT NULL,
`type` VARCHAR(20) NOT NULL DEFAULT NORMAL COMMENT 'enum(string)'
);
CREATE TABLE `quiz` (
`id` bitint NOT NULL,
`live_id` bigint NOT NULL
);
CREATE TABLE `institution` (
`id` bigint NOT NULL,
`Field` VARCHAR(255) NULL
);
CREATE TABLE `comment` (
`id` bigint NOT NULL,
`post_id` bigint NOT NULL,
`user_id` BIGINT NOT NULL,
`content` varchar NOT NULL
);
CREATE TABLE `registration` (
`id` BIGINT NOT NULL,
`associate_id` bigint NOT NULL,
`course_id` bigint NOT NULL
);
CREATE TABLE `tutor` (
`id` bigint NOT NULL,
`user_id` BIGINT NOT NULL
);
CREATE TABLE `provide` (
`Key` VARCHAR(255) NOT NULL,
`id2` bigint NOT NULL,
`id` bigint NOT NULL
);
CREATE TABLE `attend_history` (
`id` bigin NOT NULL,
`user_id` BIGINT NOT NULL,
`live_id` bigint NOT NULL,
`rate` int NULL,
`attendence` tinyint NULL
);
CREATE TABLE `manager` (
`id` bigint NOT NULL,
`user_id` BIGINT NOT NULL,
`institution_id` bigint NOT NULL
);
CREATE TABLE `course` (
`id` bigint NOT NULL,
`institution_id` bigint NOT NULL,
`tutor_id` bigint NOT NULL,
`title` varchar NOT NULL COMMENT '코스제목',
`introduction` varchar NULL
);
CREATE TABLE `affiliation` (
`id` bigint NOT NULL,
`company_id` bigint NOT NULL,
`user_id` BIGINT NOT NULL,
`admin` tinyint NOT NULL,
`approval` TINYINT NOT NULL DEFAULT 0
);
CREATE TABLE `live_streaming` (
`id` bigint NOT NULL,
`course_id` bigint NOT NULL,
`start_time` timestamp NOT NULL,
`end_time` timestamp NULL,
`stream_key` ? NULL COMMENT '라이브 구현에 따라 달라질 예쩡'
);
CREATE TABLE `curriculum` (
`id` bigint NOT NULL,
`course` bigint NOT NULL,
`title` varchar NOT NULL COMMENT '차시제목'
);
CREATE TABLE `contents` (
`id` bigint NOT NULL,
`curiiculum_id` bigint NOT NULL,
`type` varchar NOT NULL COMMENT 'Enum'
);
CREATE TABLE `post` (
`id` bigint NOT NULL,
`course_id` bigint NOT NULL,
`user_id` BIGINT NOT NULL,
`title` bigint NOT NULL,
`content` varchar NULL,
`type` varchar NOT NULL COMMENT 'Enum'
);
CREATE TABLE `contents_history` (
`registration_id` BIGINT NOT NULL,
`contents_id` bigint NOT NULL,
`Field` VARCHAR(255) NULL
);
CREATE TABLE `company` (
`id` bigint NOT NULL,
`Field` VARCHAR(255) NULL,
`Field2` VARCHAR(255) NULL,
`Field3` VARCHAR(255) NULL
);
ALTER TABLE `users` ADD CONSTRAINT `PK_USERS` PRIMARY KEY (
`id`
);
ALTER TABLE `quiz` ADD CONSTRAINT `PK_QUIZ` PRIMARY KEY (
`id`
);
ALTER TABLE `institution` ADD CONSTRAINT `PK_INSTITUTION` PRIMARY KEY (
`id`
);
ALTER TABLE `comment` ADD CONSTRAINT `PK_COMMENT` PRIMARY KEY (
`id`
);
ALTER TABLE `registration` ADD CONSTRAINT `PK_REGISTRATION` PRIMARY KEY (
`id`
);
ALTER TABLE `tutor` ADD CONSTRAINT `PK_TUTOR` PRIMARY KEY (
`id`
);
ALTER TABLE `provide` ADD CONSTRAINT `PK_PROVIDE` PRIMARY KEY (
`Key`
);
ALTER TABLE `attend_history` ADD CONSTRAINT `PK_ATTEND_HISTORY` PRIMARY KEY (
`id`
);
ALTER TABLE `manager` ADD CONSTRAINT `PK_MANAGER` PRIMARY KEY (
`id`
);
ALTER TABLE `course` ADD CONSTRAINT `PK_COURSE` PRIMARY KEY (
`id`
);
ALTER TABLE `affiliation` ADD CONSTRAINT `PK_AFFILIATION` PRIMARY KEY (
`id`
);
ALTER TABLE `live_streaming` ADD CONSTRAINT `PK_LIVE_STREAMING` PRIMARY KEY (
`id`
);
ALTER TABLE `curriculum` ADD CONSTRAINT `PK_CURRICULUM` PRIMARY KEY (
`id`
);
ALTER TABLE `contents` ADD CONSTRAINT `PK_CONTENTS` PRIMARY KEY (
`id`
);
ALTER TABLE `post` ADD CONSTRAINT `PK_POST` PRIMARY KEY (
`id`
);
ALTER TABLE `company` ADD CONSTRAINT `PK_COMPANY` PRIMARY KEY (
`id`
);
- 라이브 서비스를 Docker로 업로드 하였지만, 대규모 서비스 제공 시에 부하를 관리할 수 없다
- 강의 수강 신청 시 DB의 트랜젝션 관리가 되지 않아 아쉽다
- 서비스를 강사, 학생 뿐만 아니라 기업의 LMS 관리라면 기업 관리 서비스도 추가하는 것이 더 좋을 것 같다









