---
title: "수업 시간표"
url: "https://www.vibeclass.co.kr/site/1903/schedule/"
type: "academy"
published: "2026년 09월 01일"
modified: "2026년 09월 23일"
author: "김진현"
---

# 수업 시간표

## 시간표 소개

공무원 시험 준비는 체계적인 연간, 월간, 주간 시간표에 따라 한 치의 오차도 없이 진행되어야 성공할 수 있습니다. 웹스터 공무원학원은 최단기간 합격을 목표로 하는 수험생들을 위해 가장 효율적이고 촘촘한 학습 스케줄을 설계하여 운영하고 있습니다. 기본 이론 완성부터 심화 문제풀이, 기출 분석, 그리고 실전 모의고사까지 이어지는 마스터플랜을 제공합니다.

영어 과목의 경우, 수험생의 현재 실력 단계에 맞춘 세분화된 시간표를 통해 매일 꾸준한 학습이 이루어지도록 관리합니다. 아침 조회부터 시작되는 일일 테스트와 주간 테스트 일정은 수험생들이 스스로의 학습 성취도를 객관적으로 점검하고 해이해지지 않도록 단단히 붙잡아주는 역할을 합니다.

정규 수업 시간표 외에도 개인별 취약점을 보완하는 1대1 클리닉 시간표가 유기적으로 결합되어 있어 시간 낭비 없는 밀도 높은 수험 생활이 가능합니다. 대구 웹스터 공무원학원이 제안하는 빈틈없는 시간표를 따라 묵묵히 전진하다 보면, 어느새 합격선에 도달해 있는 자신의 모습을 발견하게 될 것입니다.

                  **

## 선생님이 먼저 입장해야 강의실이 개설되며 나가면 강의실은 닫히게 됩니다.

       **

## 회원가입이나 앱 설치 없이 브라우저에서 바로 실행됩니다.

       **

## 시간 제한과 비용 걱정 없이 무제한으로 사용합니다.

       **

## 강의실에 최대 접속인원은 100명이지만 안정성을 위해 50명이 권장됩니다.

       **

## 마이크, 카메라, 화면공유, 채팅 및 실시간 투표를 진행할 수 있습니다.

                     **

## 소제목 1

요약 설명 1

       **

## 소제목 2

요약 설명 2

       **

## 소제목 3

요약 설명 3

       **

## 소제목 4

요약 설명 4

                      [!\[\](https://www.vibeclass.co.kr/wp-content/uploads/2026/07/나라말씀-국어-2-1.webp)](#)   카드1

텍스트1-텍스트1-텍스트1-텍스트1-텍스트1

       [!\[\](https://www.vibeclass.co.kr/wp-content/uploads/ac_assets/uc_dark_carousel/placeholder3.jpg)](#)   카드2

텍스트2-텍스트2-텍스트2-텍스트2-텍스트2

       [!\[\](https://www.vibeclass.co.kr/wp-content/uploads/ac_assets/uc_dark_carousel/placeholder1.jpg)](#)   카드3

텍스트3-텍스트3-텍스트3-텍스트3-텍스트3

       [!\[\](https://www.vibeclass.co.kr/wp-content/uploads/ac_assets/uc_dark_carousel/placeholder4.jpg)](#)   카드4

텍스트4-텍스트4-텍스트4-텍스트4-텍스트4

       [!\[\](https://www.vibeclass.co.kr/wp-content/uploads/2026/07/나라말씀-국어-4-1.webp)](#)   새 소제목

상세 내용을 입력하세요.

## 시간표

                 TIMETABLE          상세 정보 수업 제목   일시 -   상세안내 -    닫기    ' }; } else if (hour === 12) { return { html: '12시
(오후)' }; } else { return { html: '' + displayHour + '시' }; } }, dayHeaderContent: function(arg) { if (calType === 'timetable') { var dayNames = ['일', '월', '화', '수', '목', '금', '토']; return dayNames[arg.date.getDay()]; } return arg.text; }, dayCellContent: function(arg) { return arg.dayNumberText.replace('일', ''); }, eventContent: function(arg) { var title = arg.event.title || '새 일정'; var timeText = arg.timeText || ''; if (arg.view.type === 'dayGridMonth') { var html = ''; html += '' + title + ''; if (timeText) { html += '(' + timeText + ')'; } html += ''; return { html: html }; } else { var html = ''; if (timeText) { html += '' + timeText + ''; } html += '' + title + ''; html += ''; return { html: html }; } }, customButtons: { addEventBtn: { text: '+ 일정 추가', click: function() { if (!canEdit) return; if (lastSelectedRange && lastSelectedRange.start && lastSelectedRange.end) { openEditModal({ start: lastSelectedRange.start, end: lastSelectedRange.end, daysOfWeek: lastSelectedRange.daysOfWeek || [] }); } else { var todayDate = getLocalDateString(); openEditModal({ start: todayDate + 'T14:00', end: todayDate + 'T16:00' }); } } }, hideTemplateBtn: { text: isTemplateHidden ? '시간표/달력 템플릿 숨김 해제' : '시간표/달력 템플릿 숨기기', click: function() { if (!canEdit) return; var wrapperEl = document.querySelector('.vibe-v2-cal-wrapper'); var hideBtnEl = document.querySelector('.fc-hideTemplateBtn-button'); var noticeEl = document.querySelector('[id$="_hidden_notice"]'); var nextState = isTemplateHidden ? 'no' : 'yes'; var prevState = isTemplateHidden; isTemplateHidden = (nextState === 'yes'); if (wrapperEl) { if (isTemplateHidden) { wrapperEl.classList.add('vibe-cal-is-hidden'); } else { wrapperEl.classList.remove('vibe-cal-is-hidden'); } } if (noticeEl) { noticeEl.style.display = isTemplateHidden ? 'flex' : 'none'; } if (hideBtnEl) { hideBtnEl.textContent = isTemplateHidden ? '시간표/달력 템플릿 숨김 해제' : '시간표/달력 템플릿 숨기기'; } var fd = new FormData(); fd.append('action', 'vibe_save_timetable_media_data'); fd.append('post_id', postId); fd.append('nonce', ttNonce); fd.append('mode', 'toggle_calendar_hide'); fd.append('hide_calendar', nextState); fetch(ajaxUrl, { method: 'POST', body: fd }) .then(function(r) { return r.json(); }) .then(function(res) { if (!res.success) { isTemplateHidden = prevState; if (wrapperEl) { if (isTemplateHidden) wrapperEl.classList.add('vibe-cal-is-hidden'); else wrapperEl.classList.remove('vibe-cal-is-hidden'); } if (noticeEl) noticeEl.style.display = isTemplateHidden ? 'flex' : 'none'; if (hideBtnEl) hideBtnEl.textContent = isTemplateHidden ? '시간표/달력 템플릿 숨김 해제' : '시간표/달력 템플릿 숨기기'; alert(res.data.message || '저장 실패'); } }) .catch(function() { isTemplateHidden = prevState; if (wrapperEl) { if (isTemplateHidden) wrapperEl.classList.add('vibe-cal-is-hidden'); else wrapperEl.classList.remove('vibe-cal-is-hidden'); } if (noticeEl) noticeEl.style.display = isTemplateHidden ? 'flex' : 'none'; if (hideBtnEl) hideBtnEl.textContent = isTemplateHidden ? '시간표/달력 템플릿 숨김 해제' : '시간표/달력 템플릿 숨기기'; }); } }, resetEventsBtn: { text: '초기화', click: function() { if (!canEdit) return; if (!confirm('등록된 모든 일정 및 시간표를 완전히 삭제하시겠습니까?\n\n이 작업은 되돌릴 수 없습니다.')) { return; } var fd = new FormData(); fd.append('action', 'vibe_calendar_crud'); fd.append('method', 'reset'); fd.append('nonce', nonce); fd.append('type', calType); fd.append('post_id', postId); fetch(ajaxUrl, { method: 'POST', body: fd }) .then(function(r) { return r.json(); }) .then(function(res) { if (res.success) { if (editModal) editModal.style.display = 'none'; calendar.unselect(); lastSelectedRange = null; updateCalendarEventsDirectly([]); alert('모든 일정이 성공적으로 초기화되었습니다.'); } else { alert(res.data.message || '초기화 실패'); } }) .catch(function() { alert('서버 통신 오류가 발생했습니다.'); }); } } }, headerToolbar: headerToolbarConfig, datesSet: function() { var wrapperEl = calEl.closest('.vibe-v2-cal-wrapper'); if (wrapperEl) { var hideBtnEl = wrapperEl.querySelector('.fc-hideTemplateBtn-button'); if (hideBtnEl) { hideBtnEl.textContent = isTemplateHidden ? '시간표/달력 템플릿 숨김 해제' : '시간표/달력 템플릿 숨기기'; } } }, selectable: canEdit, selectMirror: true, unselectAuto: true, selectMinDistance: 0, selectAllow: function(selectInfo) { if (editModal && editModal.style.display === 'flex') return false; return true; }, select: function(info) { if (!canEdit) return; if (info.jsEvent) { var clickTarget = info.jsEvent.target; if (clickTarget && clickTarget.closest) { var realEvent = clickTarget.closest('.fc-event:not(.fc-event-mirror), .fc-daygrid-event:not(.fc-event-mirror), .fc-timegrid-event:not(.fc-event-mirror)'); if (realEvent) return; } } var startFormatted = ''; var endFormatted = ''; var selectedDays = []; var isWeekCrossDay = false; if (info.allDay || info.view.type === 'dayGridMonth') { var startDateStr = info.startStr.substring(0, 10); startFormatted = startDateStr + 'T14:00'; var endDateObj = new Date(info.end); endDateObj.setDate(endDateObj.getDate() - 1); var endDateStr = formatToDateInputStr(endDateObj); if (endDateStr 22 * 60) totalEndM = 22 * 60; eH = Math.floor(totalEndM / 60); eM = totalEndM % 60; } var sDateStr = formatToDateInputStr(sDate); var eDateStr = formatToDateInputStr(eDate); startFormatted = sDateStr + 'T' + String(sH).padStart(2, '0') + ':' + String(sM).padStart(2, '0'); endFormatted = eDateStr + 'T' + String(eH).padStart(2, '0') + ':' + String(eM).padStart(2, '0'); // 시간표(timetable)일 때만 반복 요일(daysOfWeek) 수집 if (calType === 'timetable') { var curD = new Date(sDate); curD.setHours(0,0,0,0); var limitD = new Date(eDate); limitD.setHours(0,0,0,0); while (curD 0) { lastSelectedRange.daysOfWeek.forEach(function(d) { fd.append('daysOfWeek[]', d); }); } if (calType === 'events' && lastSelectedRange && lastSelectedRange.isWeekCrossDay) { fd.append('is_week_cross_day', '1'); } if (inpId.value) { fd.append('is_update_single', '1'); } btnSave.disabled = true; btnSave.innerText = '저장 중...'; fetch(ajaxUrl, { method: 'POST', body: fd }) .then(function(r) { return r.json(); }) .then(function(res) { btnSave.disabled = false; btnSave.innerText = inpId.value ? '업데이트' : '저장하기'; if (res.success) { editModal.style.display = 'none'; calendar.unselect(); lastSelectedRange = null; updateCalendarEventsDirectly(res.data.items); } else { alert(res.data.message || '저장 실패'); } }) .catch(function() { btnSave.disabled = false; btnSave.innerText = inpId.value ? '업데이트' : '저장하기'; alert('서버 통신 오류가 발생했습니다.'); }); }); } if (btnDel) { btnDel.addEventListener('click', function(e) { e.preventDefault(); e.stopPropagation(); if (!confirm('이 일정을 삭제하시겠습니까?')) return; var fd = new FormData(); fd.append('action', 'vibe_calendar_crud'); fd.append('method', 'delete'); fd.append('nonce', nonce); fd.append('type', calType); fd.append('post_id', postId); fd.append('id', inpId.value); btnDel.disabled = true; fetch(ajaxUrl, { method: 'POST', body: fd }) .then(function(r) { return r.json(); }) .then(function(res) { btnDel.disabled = false; if (res.success) { editModal.style.display = 'none'; calendar.unselect(); lastSelectedRange = null; updateCalendarEventsDirectly(res.data.items); } else { alert(res.data.message || '삭제 실패'); } }) .catch(function() { btnDel.disabled = false; alert('서버 통신 오류가 발생했습니다.'); }); }); } });              **   초시생을 위한 기초 이론 과정은 매달 개강하나요?    ** **

네, 기초부터 탄탄히 다질 수 있는 정규 순환식 시간표가 매월 체계적으로 개강하여 운영되고 있습니다.

      **   시간표에 개인 자습 시간과 클리닉 시간도 포함되어 관리되나요?    ** **

정규 강의 외에 일일 테스트와 1대1 맞춤 클리닉 일정이 유기적으로 편성되어 철저히 관리됩니다.

              수강후기 쓰기