결과 필드
통합, DHC, SIS 인증이 돌려주는 결과의 필드와 타입을 정리합니다. 요청 쪽은 인증 메서드에 있고, 원본 스키마는 spec/RESULT_SCHEMA.md입니다.
응답 데이터 구조
섹션 제목: “응답 데이터 구조”통합 인증 결과의 예시입니다. 예시는 Python의 snake_case 이름이고, Java와 Node.js는 camelCase(studentId, phoneNumber)입니다.
{ "success": true, "student_id": "20000000", "name": "홍길동", "major": "컴퓨터공학과", "grade": "3", "status": "재학", "classic_reading": { "completed_semesters": "4 학기", "certified_semesters": "4 학기", "certification_status": "인증", "certifications": [{ "area": "서양의 역사와 사상", "required_count": "1", "certified_count": "1" }], "exam_records": [], "subject_substitutions": [], "contest_records": [], "curriculum_records": [] }, "email": "user@example.com", "phone_number": "010-0000-0000", "english_name": "Gildong Hong", "user_category": "학부생", "parent_unit_name": "", "authenticated_at": "yyyy-MM-ddTHH:mm:ss", "department_code": "0000", "extra": null, "raw_html": null, "raw_json": null}통합 결과 필드
섹션 제목: “통합 결과 필드”| 필드 | 타입 | 출처 | 규칙 |
|---|---|---|---|
success |
boolean | 결과가 돌아왔다면 항상 true | |
studentId |
string | DHC | 학번 |
name |
string | DHC | 이름 |
major |
string | DHC | 학과(전공) |
grade |
string | DHC | 학년 |
status |
string | DHC | 학적 상태 (재학, 휴학, 졸업 등 포털 원문) |
classicReading |
object | DHC | 아래 「고전독서」 |
email |
string 또는 null | SIS | SIS 조회가 실패하면 null |
phoneNumber |
string 또는 null | SIS | 같음. 010-0000-0000 형식 |
englishName |
string 또는 null | SIS | 같음 |
userCategory |
string 또는 null | SIS | 사용자 구분, 예: 학부생 |
parentUnitName |
string 또는 null | 포털 메인 | 포털 메인 호출이 실패하면 null, 쓸 만한 값이 없으면 빈 문자열 |
authenticatedAt |
날짜·시간 | 인증 시각 (각 언어의 지역 시간 타입) | |
| SIS 학교 코드 11개 | string 또는 null | SIS | 아래 「SIS 학교 코드」. SIS 조회가 실패하면 null |
extra |
맵 또는 null | SIS | extra 옵션을 켰을 때만. 아니면 null |
rawHtml |
string 또는 null | DHC | 원문 옵션을 켰을 때만 |
rawJson |
string 또는 null | SIS | 원문 옵션을 켰을 때만. SIS가 실패했으면 null |
실패했을 때
섹션 제목: “실패했을 때”- DHC 단계가 실패하면 결과 없이 예외입니다 (
AUTHENTICATION_FAILED,DATA_FETCH_FAILED,SESSION_ERROR등. 에러 코드). - SIS 단계가 실패하면 호출은 성공하고 SIS 출처 필드(연락처, 영문 이름, 사용자 구분, 학교 코드)만
null입니다. - 포털 메인 단계가 실패하면 호출은 성공하고
parentUnitName만null입니다.
DHC 결과
섹션 제목: “DHC 결과”success, studentId, name, major, grade, status, classicReading, authenticatedAt, rawHtml(원문 옵션일 때만)
연락처 필드는 없습니다.
SIS 결과
섹션 제목: “SIS 결과”success, studentId, name, major, grade(항상 빈 문자열), status(항상 빈 문자열), email, phoneNumber, englishName, userCategory, SIS 학교 코드, extra(extra 옵션일 때만), authenticatedAt, rawJson(원문 옵션일 때만)
고전독서 필드는 없습니다.
고전독서 (classicReading)
섹션 제목: “고전독서 (classicReading)”DHC의 「사용자 정보」 표에서 가져오는 포털 원문 문자열 3개와 하위 목록 5개입니다.
| 필드 | 타입 | 규칙 |
|---|---|---|
completedSemesters |
string | 이수 학기 원문 (예: 8 학기). 없으면 빈 문자열 |
certifiedSemesters |
string | 인증완료 학기 원문. 없으면 빈 문자열 |
certificationStatus |
string | 인증여부 원문. 자유 문장이라 대체 사유가 들어올 수 있음. 없으면 빈 문자열 |
| 목록 | 항목 필드 |
|---|---|
certifications (영역별 인증 현황) |
area, requiredCount, certifiedCount |
examRecords (인증 시험) |
semester, area, bookTitle, examDate, score, passStatus |
subjectSubstitutions (과목 대체 인증) |
semester, subjectName, area, bookTitle, completion |
contestRecords (대회 인증) |
semester, contestName, area, bookTitle |
curriculumRecords (교과연계 인증) |
semester, subjectName, area, bookTitle, completion |
Python 이름은 snake_case입니다 (completed_semesters, required_count, book_title 등). 해당 표에 행이 없으면 빈 목록입니다.
영역별 인증 현황을 읽는 Java 예시입니다.
SejongDhcAuthResult result = sejongAuthEngine.authenticateWithDHC(studentId, password);
for (ClassicCertification certification : result.getClassicReading().getCertifications()) { System.out.println(certification.getArea() + " " + certification.getCertifiedCount() + "/" + certification.getRequiredCount());}SIS 학교 코드
섹션 제목: “SIS 학교 코드”학교가 준 문자열 그대로입니다. 코드표나 이름 매핑은 라이브러리에 없고, 값이 없으면 빈 문자열입니다. SIS 데이터셋을 dm_UserInfoSch, dm_UserInfoGam, dm_UserInfo 순서로 찾아 처음 나온 비어 있지 않은 값을 씁니다. 기본으로 SIS 결과와 통합 결과에 들어갑니다.
| 필드 (Python) | SIS 키 | 비고 |
|---|---|---|
departmentCode (department_code) |
DEPT_CD, 없으면 DEPT_NO |
두 값은 같은 학과 코드이며 DEPT_CD를 먼저 씁니다 |
organizationClassificationCode |
ORGN_CLSF_CD |
|
enrollmentStatusCode |
STATUS_DIV_CD |
학교 원문 코드이며 뜻 매핑은 없음 |
userClassificationCode |
USER_CLSF_CD |
|
userClassificationLargeCode |
USER_CLSF_L_CD |
|
userClassificationMiddleCode |
USER_CLSF_M_CD |
|
roleCode / roleName |
RPSN_ROLE_CD / RPSN_ROLE_CD_NM |
|
menuSystemId / menuSystemName |
MENU_SYS_ID / MENU_SYS_NM |
|
locale |
INTG_LOCALE |
departmentCode는 학과·학기 코드의 학과 코드와 같은 체계입니다.
null과 빈 문자열
섹션 제목: “null과 빈 문자열”- 인증 결과의 필드는 「학교 값이 없음」이면 빈 문자열입니다.
- SIS와 포털 메인에서 오는 필드는 그 조회 자체가 실패했을 때 null입니다. 통합 호출은 이때도 성공합니다.
- 원문(
rawHtml,rawJson)과extra는 옵션을 켜지 않으면 null입니다. - 이 값들은 모두 학교 원문이라, 학교가 표기를 바꾸면 달라질 수 있습니다. API 안정성을 보세요.
