콘텐츠로 이동

학사일정 위젯

오늘부터 30일 안의 학부 학사일정을 시작일 순으로 보여 줍니다. 로그인이 필요 없습니다.

필드 이름은 Python snake_case 기준이고, Node.js는 camelCase 객체 인자({ start, end }), Java는 위치 인자입니다. 로그인은 필요 없습니다.

메서드 파라미터 타입 필수 기본값 설명
calendar start 문자열 예 시작일 (yyyy-MM-dd)
end 문자열 예 종료일 (yyyy-MM-dd)
category_code 문자열 아니오 0001 분류 코드 (0001 학부, 0002~0007 대학원)
graduate_calendar site_id 문자열 예 대학원 사이트 이름 (예: graduate). 호출하는 쪽이 넘기므로 새 대학원도 릴리스 없이 조회
year / month 정수 예 조회할 연도 / 월

calendar(start, end)가 돌려주는 목록의 한 건입니다. 필드 이름은 Python snake_case이고, Node.js는 camelCase(start_date → startDate), Java는 getter(getStartDate())입니다. 값은 형태를 보여 주기 위한 예시입니다.

[
{
"year": "2026",
"month": "3",
"category_code": "0001",
"category_name": "학부",
"title": "2학기 중간고사 성적 입력",
"title_en": "Grades input for Fall semester Midterm Examination",
"start_date": "2026-03-02",
"end_date": "2026-03-08",
"extra": {}
}
]
필드 의미
title / title_en 제목 / 영문 제목 (학교 원문)
start_date / end_date 시작일 / 종료일 (학부는 yyyy-MM-dd, 하루짜리는 같은 값)
year / month 일정이 속한 연도 / 월
category_code / category_name 분류 코드 / 이름 (0001 학부)
extra 그 밖의 학교 필드 (학부 일정은 비어 있음)

전체 필드는 학사일정을 보세요.

실패 시: 학교 서버가 실패하면 예외 없이 마지막 캐시 또는 빈 목록입니다. 일정이 없는 기간과 구분되지 않습니다.

  • 날짜 형식은 학부 yyyy-MM-dd, 대학원 사이트 MM.dd로 다릅니다. 학사일정
  • 위젯이 열릴 때마다 학교에 요청하지 않습니다. 같은 인자는 24시간 캐시됩니다. 실패 격리와 캐시
  • 제목은 학교 원문입니다. 영문 제목은 title_en / titleEn입니다.
import java.time.LocalDate;
import java.util.List;
import kr.suhsaechan.sejongpeia.publicdata.SejongPublicData;
import kr.suhsaechan.sejongpeia.publicdata.model.CalendarEvent;
class AcademicCalendarWidget {
static List<CalendarEvent> upcomingAcademicEvents(SejongPublicData publicData, int daysAhead) {
LocalDate today = LocalDate.now();
return publicData.calendar(today.toString(), today.plusDays(daysAhead).toString()).stream()
.sorted(java.util.Comparator.comparing(CalendarEvent::getStartDate))
.toList();
}
}