콘텐츠로 이동

교육과정

개설강좌 목록에서 얻은 학과 코드와 과목 번호로, 그 학과 교육과정에서 이 과목이 권장되는 학년·학기, 이수 구분, 학점, 시수와 교과목 개요를 받습니다. 로그인이 필요 없고, 교육과정 전체 목록 없이 과목 하나씩 조회합니다. 공통 규칙은 공통 규칙입니다.

Python은 snake_case(curriculum_courses), Node.js와 Java는 camelCase(curriculumCourses)입니다. Node.js는 curriculumCourses({ departmentCode, courseNumber })처럼 객체로 받습니다.

파라미터 타입 필수 기본값 설명
department_code 문자열 필수 - 학위 학과의 SIS 코드(DEPT_CD). 학과 목록이나 강의 결과의 department_code에서 받아 넘깁니다
course_number 문자열 필수 - 과목 번호. 강의 결과의 course_number(CURI_NO)를 넘깁니다
  • 반환은 CurriculumCourse 목록입니다 (한 과목에 0건 또는 1건).
  • **학과 코드나 과목 번호가 비어 있으면 INVALID_INPUT**을 던지고 요청은 보내지 않습니다 (에러 코드).

학교 요청

  • GET https://www.sejong.ac.kr/curriculum/getCurriculumOneKor.do?curiNo=<과목 번호>&deptNo=<학과 코드>, 응답 배열 items.
  • Accept: application/json 헤더가 없으면 학교가 404를 돌려주므로 세 언어 모두 이 헤더를 보냅니다.
  • 교육과정 응답의 deptCd는 SIS의 DEPT_CD와 같은 코드 체계입니다.

예시 JSON입니다. 필드 이름은 Python snake_case이고 Node.js와 Java는 camelCase입니다. 학교 데이터는 바뀌므로 값은 예시입니다.

[
{
"department_code": "3517",
"department_name": "AI로봇학과",
"category_code": "20",
"year": "2026",
"course_number": "011839",
"name": "전공탐색",
"course_type_code": "1E",
"course_type_name": "공통교양필수",
"credits": "1",
"lecture_hours": "0",
"practice_hours": "1",
"total_hours": "1",
"grade_level": "1",
"semester_code": "2",
"semester_name": "2학기",
"overview": "신입생이 전공 관련 주제를 탐구하고 소논문으로 정리하는 과목 ...",
"extra": { "curiYear": "2026", "studentYear": "1" }
}
]

모두 문자열이고 없으면 빈 문자열입니다.

필드 학교 키 설명
department_code, department_name deptCd, deptNm 학과 코드와 이름
category_code orgnClsfCd 소속 분류 코드
year year 교육과정 연도
course_number, name curiNo, curiNm 과목 번호, 과목명
course_type_code, course_type_name curiTypeCd, curiTypeNm 이수 구분 코드와 이름
credits cdt 학점
lecture_hours, practice_hours, total_hours lecTmNum, exeTmNum, curiTm 강의, 실습, 총 시수
grade_level stuYearCd 권장 학년
semester_code, semester_name smtDanCd, smtDanNm 권장 학기 코드와 이름
overview remark 교과목 개요 본문
extra 그 밖의 필드 예: curiYear, studentYear, sameSlcCnt
  • 학과 코드와 과목 번호 조합마다 하루(기본 86400초) 캐시하고, 호출당 학교 요청은 한 번입니다.
  • 학교 쪽 실패(연결, 시간 초과, 비정상 응답, items 없음)는 마지막 캐시 값 또는 빈 목록입니다. 캐시가 없으면 60초(기본) 동안 요청 없이 빈 목록입니다.
  • 빈 items는 정상 응답입니다. 그 학과의 교육과정에 없는 과목이면 빈 목록이고 오류가 아닙니다.
  • 예외는 빈 학과 코드·과목 번호(INVALID_INPUT) 하나뿐입니다.
  • 학위 학과의 교육과정에 있는 과목만 돌아옵니다. 교양대학이나 대학원 학과 코드로는 빈 목록이 올 수 있습니다.
  • 개요는 현재 교육과정 연도의 교육과정 글이고, 분반·교수별 글이 아닙니다.
  • 교육과정 전체 목록은 제공하지 않습니다. 학교의 목록 요청은 학과 코드를 무시하고 화면 메뉴 번호로 학과를 정하는데, 그 번호와 학과 코드의 대응표가 없습니다. 한 학과 전체가 필요하면 강의 목록의 과목마다 이 메서드를 부를 수 있지만 과목당 요청이 한 번입니다.
  • 교수의 수업계획서는 제공하지 않습니다. 양식에 교수 이름과 연락처 줄이 있습니다.
  • 계약 원본: spec/PUBLIC_DATA.md
// 강의 결과의 학과 코드와 과목 번호로 교육과정 정보 조회 (없으면 빈 목록)
Lecture lecture = lectures.get(0);
List<CurriculumCourse> courses = publicData.curriculumCourses(lecture.getDepartmentCode(), lecture.getCourseNumber());

개설강좌를 먼저 찾는 방법은 개설강좌를 보세요.