pro-sejongpeia는 세종대학교 통합 라이브러리 입니다. 학번과 비밀번호로 재학생인지 확인하는 포털 로그인 과, 로그인 없이 학교가 공개로 내려주는 학교 데이터 (학과 코드, 개설강좌, 학사일정, 기숙사 식단, 학식 등)를 Java, Python, Node.js 어느 쪽에서든 같은 기능, 같은 결과 필드, 같은 에러 코드로 씁니다.
포털 로그인, SSO 리다이렉트, 세션 쿠키, 오래된 TLS 방식, HTML·JSON 파싱은 라이브러리가 처리합니다.
한눈에
학생 인증 은 학번과 비밀번호가 필요하고, 학교 데이터 는 필요 없습니다.
Java, Python, Node.js가 같은 기능, 같은 결과 필드, 같은 에러 코드를 씁니다.
학교 웹 화면이 쓰는 비공식 주소를 따라가므로, 학교가 바꾸면 멈출 수 있습니다.
호출 한 번이 라이브러리를 거쳐 학교 서버로 가고, 응답은 같은 모양의 결과로 돌아옵니다.
flowchart LR
app["<b>내 앱</b><br/>Java · Python<br/>Node.js"]:::neutral
lib["<b>PRO#8209;SEJONGPEIA</b><br/>캐시<br/>TLS 처리<br/>User-Agent 처리<br/>실패 격리"]:::accent
school["<b>학교 서버</b><br/>포털 로그인<br/>학생 정보<br/>공개 페이지"]:::neutral
result["<b>결과</b><br/>같은 필드<br/>같은 에러 코드"]:::soft
app -->|"호출 한 번"| lib
lib -->|"요청"| school
school -->|"응답을 변환"| result
classDef neutral fill:#F3F4F6,stroke:#8B9099,stroke-width:1.5px,color:#1F2328
classDef accent fill:#C20F2F,stroke:#8E0A22,stroke-width:1.5px,color:#FFFFFF
classDef soft fill:#FDEEF1,stroke:#C20F2F,stroke-width:1.5px,color:#4A0610
classDef muted fill:#FFFFFF,stroke:#8B9099,stroke-width:1.5px,stroke-dasharray:5 4,color:#1F2328
동아리, 학생회, 학내 커뮤니티의 세종대 학생 인증
학과·학년 조건이 있는 학내 이벤트 참여 확인
학과·강의 검색 페이지, 학사일정 위젯
기숙사 식단과 학식을 알려 주는 봇
학생 인증 (로그인 필요)
이름, 학과, 학년, 학적 상태, 고전독서 인증 현황, 연락처를 가져옵니다. 호출 한 번에 포털 로그인 한 번입니다. 인증 레퍼런스
학교 데이터 (로그인 불필요)
학과·학기 코드, 개설강좌, 교육과정, 학사일정(학부·대학원), 기숙사, 학식, 캠퍼스 장소, 비교과 프로그램. 공통 규칙
세 언어 동일 동작
결과 필드와 에러 코드는 세 언어에서 같고, 이름 표기만 언어 관례를 따릅니다. 공통 값은 spec/contract.json 한 곳에 있습니다.
실패 격리
공개 데이터는 한 곳이 실패해도 나머지에 영향이 없습니다. 실패하면 마지막 캐시 값이나 빈 목록을 돌려줍니다. 실패 격리와 캐시
출처
도메인
제공 정보
로그인
DHC (대양휴머니티칼리지)
classic.sejong.ac.kr
학생 정보 + 고전독서 인증 현황
필요
SIS (학사정보시스템)
sjpt.sejong.ac.kr
학생 정보 + 이메일, 전화번호, 영문 이름, 학교 코드
필요
SIS 공개 조회
sjpt.sejong.ac.kr
소속 분류, 학기, 학과, 개설강좌
불필요
학교 홈페이지
www.sejong.ac.kr
학사일정, 학식, 캠퍼스 장소, 교육과정
불필요
대학원 사이트
<사이트>.sejong.ac.kr
대학원 학사일정
불필요
기숙사
happydorm.sejong.ac.kr
기숙사 식단, 공지
불필요
두드림
do.sejong.ac.kr
비교과 프로그램 일정
불필요
세종대학교의 공식 제품이 아닙니다. 세종대 학생이 만든 개인 오픈소스이며 학교와 제휴 관계가 없습니다.
학교가 문서로 공개한 API가 아니라 학교 웹 화면이 쓰는 비공식 주소 를 따라갑니다. 학교가 바꾸면 동작이 멈출 수 있고, 매일 점검해서 깨지면 이슈로 고칩니다. 수정 시점에 대한 약속은 없습니다.
하위 호환을 보장하지 않습니다. 같은 1.x 안에서도 깨지는 변경이 생길 수 있으니 버전을 정확히 고정하세요. API 안정성
학교 값은 학교가 준 문자열 그대로 입니다. 코드표나 이름 매핑을 라이브러리가 들고 있지 않습니다.
Java / Spring Boot
Python
Node.js
Java 17 이상, Spring Boot 3.x. 일반 Java도 가능
Python 3.9 이상, 표준 라이브러리 외 의존성 없음
Node 18 이상, 의존성 없음, TypeScript 타입 포함, ESM·CommonJS. 서버 전용
Java의 HTTP는 OkHttp, HTML 파싱은 jsoup을 씁니다.
필요한 것을 고르면 맞는 가이드로 이어집니다. 상자를 누르면 그 문서로 갑니다.
flowchart LR
need(["<b>무엇이<br/>필요한가요?</b>"]):::soft
verify["<b>학생 인증 붙이기</b><br/>재학생 확인"]:::neutral
lectures["<b>학과·강의 검색</b><br/>개설강좌 찾기"]:::neutral
calendar["<b>학사일정 위젯</b><br/>이번 달 일정"]:::neutral
dining["<b>기숙사·학식 봇</b><br/>오늘의 식단"]:::neutral
data["<b>학교 데이터</b><br/>레퍼런스"]:::neutral
need --> verify
need --> lectures
need --> calendar
need --> dining
need --> data
click verify "/pro-sejongpeia/guides/student-verification/"
click lectures "/pro-sejongpeia/guides/department-lecture-search/"
click calendar "/pro-sejongpeia/guides/academic-calendar/"
click dining "/pro-sejongpeia/guides/dormitory-cafeteria-bot/"
click data "/pro-sejongpeia/data/overview/"
classDef neutral fill:#F3F4F6,stroke:#8B9099,stroke-width:1.5px,color:#1F2328
classDef accent fill:#C20F2F,stroke:#8E0A22,stroke-width:1.5px,color:#FFFFFF
classDef soft fill:#FDEEF1,stroke:#C20F2F,stroke-width:1.5px,color:#4A0610
classDef muted fill:#FFFFFF,stroke:#8B9099,stroke-width:1.5px,stroke-dasharray:5 4,color:#1F2328
빠른 시작 설치하고 첫 호출까지 몇 분이면 됩니다.