- 최종 주제
- 개발 환경
- 개발 필요 조건 및 제약 조건
- 피그마(프론트엔드) 틀
1. 최종 주제: 유니테이블(UniTable)
서비스 소개: 본 플랫폼은 대학 행정 실무자(조교 및 교직원)를 위한 지능형 시간표 자동 배정 솔루션,
매 학기 수작업으로 진행되던 고도화된 시간표 설계 과정을 자동화하여 업무의 정확성과 효율성을 극대화한다.
핵심 강점:
– 사용자 친화적 인터페이스: 복잡한 데이터베이스 지식 없이도 조교와 교직원이 직관적으로 수업 정보를 입력하고 관리할 수 있다.
– 실무 중심의 제약 조건 반영: 교수의 강의 불가능 시간, 겸임 교수의 특정 출강 요일, 본부 지정 고정 수업 등을 완벽하게 준수한다.
– 지능형 합반 및 교차 수강 로직: 여러 학과가 동시에 듣는 합반 수업의 인원을 자동 합산하고, 참여하는 모든 학급의 공강 시간을 동시에 분석하여 강의실을 매칭한다.
-물리 자원 최적화: 강의실 수용 인원과 과목별 특수 시설(컴퓨터실, 실험실 등)을 고려하여 강의실을 배정한다
2.개발 환경
개발 플랫폼: 웹 애플리케이션 (Web Application)
선정 이유: 특정 운영체제나 버전, 디바이스 환경에 영향받지 않음. 사용자가 별도의 프로그램 설치 없이 웹 브라우저와 인터넷 환경만으로 즉시 서비스를 이용할 수 있어 접근성과 호환성이 매우 뛰어남.
프론트엔드 (Front-end): React
선정 이유: 시간표 시각화, 데이터 입력에 따른 실시간 학점 통계 변화 등 화면 내 동적인 UI 요소와 상태 관리가 중요함. 기존 순수 HTML 방식보다 컴포넌트 단위로 화면을 구성하는 React를 채택하는 것이 구현 및 유지보수에 훨씬 효과적임.
백엔드 (Back-end): Node.js
선정 이유: 프론트엔드와 동일한 자바스크립트 기반 언어를 사용하므로 프로젝트 기술 스택을 하나로 통일할 수 있음. 프론트, 백엔드 간의 데이터 처리 구조를 일관되게 설계할 수 있어 전체적인 개발 생산성과 속도가 크게 향상됨.
데이터베이스 (Database): MySQL
선정 이유: 교수, 강의실, 학년, 학과 등 복잡한 제약조건을 가진 데이터들의 관계를 구조화하고 저장하는 데 최적화되어 있음. 안정성이 검증되었고, 개발 및 트러블슈팅 시 참고할 수 있는 레퍼런스가 가장 풍부함.
3.개발 환경 필요 조건 및 제약 조건
1. 자원 및 물리적 제약 (Resource & Physical)
- 강의실 중복 방지: 동일한 요일/교시에 한 강의실에는 단 하나의 수업만 배정될 수 있다.
- 교수 시간 중복 방지: 교수는 동일한 시간에 두 개 이상의 수업(대면, 온라인, 블렌디드 포함)을 진행할 수 없다. (신체적/물리적 제약)
- 학생/학급 중복 방지: 특정 학과-학년-반은 동일한 시간에 단 하나의 수업만 수강해야 한다. (합반 수업은 하나의 ‘수업’으로 간주)
- 강의실 수용 인원 준수: 교직원이 입력한 수강 예정 인원은 해당 강의실의 최대 수용 좌석 수를 초과할 수 없다. (합반 시 참여 학급 전체 인원 합산 기준)
- 시설 매칭 제약: 실습(컴퓨터, 기계, 조리 등)이 필요한 과목은 교직원이 지정한 ‘특수 시설’이 갖춰진 강의실에만 배정한다.
2. 운영 및 고정 데이터 제약 (Administrative & Fixed)
- 기배정 수업 고정: 학교 본부에서 지정한 필수 교양 등은 교직원이 고정(Fixed) 상태로 입력하며, 시스템은 이 시간대와 강의실을 최우선으로 점유하고 변경하지 않는다.
- 온라인 수업 시간 점유: 온라인/비대면 수업은 물리적 강의실은 사용하지 않더라도, 담당 교수의 스케줄은 ‘점유(Busy)’ 상태로 처리하여 다른 수업이 겹치지 않게 한다.
- 필수 이수 시수 충족: 각 과목에 할당된 주당 학점 및 시간(예: 3학점 3시간)은 누락 없이 전체 시간표에 모두 배정되어야 완료로 간주한다.
3. 교수 및 행정 예외 제약 (Instructor & Special)
- 강의 가능 시간 반영: 교수별로 지정한 ‘강의 불가능 시간대(Impossible)’ 및 요일에는 수업을 배치하지 않는다.
- 겸임 교수 스케줄 관리: 외부에서 출강하는 겸임 교수의 경우, 교직원이 설정한 특정 요일과 시간 범위 내에서만 수업을 배치한다.
- 연강(Consecutive) 설정: 3시간 수업 등 긴 수업에 대해 [3시간 연속] 또는 [2+1 분할] 등 교직원이 선택한 연강 옵션을 준수한다.
- 학년별 교차 수강 보호: 여러 학년이 동시에 듣는 선택 전공/교양 과목은 해당 수업에 참여하는 모든 학년의 ‘고정 시간표’와 겹치지 않는 시간에 배치한다.
💡 시스템 구현 핵심 (교직원 입력 대응)
- 입력 주체: 교직원(조교/교수)
- 데이터 검증: 교직원이 위 제약사항을 위반하는 데이터를 입력할 경우(예: 강의실 용량보다 큰 인원 입력), 시스템은 배정 단계 이전에 **’입력 오류 알림’**을 발생시켜 수정을 유도한다.
• • 합반로직: 교직원이 특정 수업에 여러 학급을 매핑하면, 시스템은 자동으로 인원을 합산하고 모든 학급의 공강 시간을 동시에 체크한다.

4.피그마 틀
페이지 1- desktop2
가장 기본 페이지. 중앙 패널로 시간표를 볼 수 있으면 오른쪽 사이트 패널의 범례 선택에 따라 시간표에 노출되는 데이터를 분류할 수 있습니다. 통계는 범례를 기준으로 변화하며 통계 항목은 프로젝트 진행에 따라 추가될 예정입니다. 왼쪽 사이드 패널에서 각 항목의 데이터를 입력할 수 있는 페이지로 연결되며 밑의 실행버튼으로 시간표가 생성됩니다.
페이지 2- desktop3
강의 데이터 입력 페이지. 왼쪽 사이드 패널에서 강의 목록이 노출되며 하단의 데이터 입력 버튼으로 강의를 추가할 수 있습니다. 중앙 패널에서 강의의 데이터를 입력하며 여러 학과에서 한 강의를 수강하는 경우 +버튼으로 추가가 가능합니다. 중앙 패널 오른쪽 상단의 저장버튼을 기점으로 데이터가 업데이트 됩니다. 오른쪽 사이드 패널의 범례와 통계 목록은 필요에 따라 수정 예정입니다.
페이지 3- desktop4
교수 데이터 입력 페이지. 왼쪽 사이드 패널에서 전공과 교양 과목을 분류하여 데이터가 노출됩니다. 교수 데이터 입력에서 가장 중요한 요일과 시간은 기본적으로 강의가 가능한 시간대를 나타내게 되어 있으며 요일 앞에 체크박스를 선택 시 모든 교시의 강의가 가능함을 나타낼 예정입니다.
페이지 4- desktop-5
학과 데이터 입력 페이지. 강의실 수용 인원을 체크하기 위한 데이터이기 때문에 학년 별 수강인원과 소속만 작성합니다. 학년은 +버튼으로 추가할 수 있으며 반의 유무를 의미하는 체크박스 선택시 선택할 수 있는 반이 늘어납니다.

