school-console

학교업무 통합 콘솔 (School Console)

중학교 교사가 자기 업무를 줄이려고 만든 윈도우 데스크톱 도구입니다. 나이스·K-에듀파인·E알리미·알림장·컴시간을 하나의 창에서 보고, 로그인 세션이 끊기지 않게 지켜 줍니다.

2026년 6월에 만들기 시작해 7월부터 매일 쓰고 있고, 지금도 학교에서 돌아가고 있습니다. 만들어진 과정과 날짜는 개발 연혁에, 왜 만들었는지는 아래 블로그 연재글에 적어 두었습니다.

담임인데 우리 반 학생이 왜 결석인지 몰랐습니다. 체험학습 신청서는 며칠 전에 이미 올라와 있었고요. 볼 곳이 너무 많았습니다 — 에듀파인 결재, 에듀파인 공람, 나이스 미결·협조, E알리미 출결신고서. 전부 다른 사이트고, 수업 들어갔다 오면 다 튕겨 있습니다. 그래서 만들었습니다.

기능

탭 하는 일
세션·관제 나이스·K-에듀파인 세션이 30분마다 끊기는 걸 막고(자동 연장), 결재·공람·미결 건수 변화를 감시해 알려 줍니다
오늘 오늘 급식·시간표·학사일정·마감 D-Day를 한 화면에
컴시간 시간표 컴시간 알림이의 로컬 캐시 파일(.kim)을 직접 해독해 서버 없이 시간표를 읽습니다
알림장 학교 알림장 전달사항을 프로그램을 띄우지 않고 읽어 부서별로 정리 (접속 정보는 직접 설정)
급식·일정 나이스 오픈 API로 급식·학사일정 조회
교실 호출 교무실에서 반을 골라 그 교실 전자칠판에 호출을 띄웁니다. 📡 연결 확인으로 호출 전에 반마다 받을 수 있는 상태인지 미리 봅니다 → 받는 쪽은 별도 저장소 classroom-call
나이스 업무 출결 등 나이스 화면 조회·입력 보조 (eXbuilder6 DOM 자동화)
마감 D-Day 공문·업무 마감일 관리

함께 들어 있는 것:

어떻게 동작하나

크롬을 디버그 포트(CDP) 로 띄워 두고, 이미 로그인된 그 브라우저를 그대로 조종합니다. 비밀번호를 저장해 두고 대신 입력해 주는 방식이 아니라, 선생님이 직접 로그인한 세션을 유지·조회하는 구조입니다.

설치

pip install -r requirements.txt
python school_console.py
  1. school_console_config.example.json 을 school_console_config.json 으로 복사
  2. 학교 코드(neis_open.atpt, scode), 경로, 교실 호출 채널 등을 본인 환경에 맞게 채우기
  3. scripts/프로필_최초설정.bat 로 크롬 디버그 프로필을 한 번 만든 뒤 scripts/디버그크롬_실행.bat 로 크롬 실행
  4. 콘솔 실행 → [① 로그인 자동화 실행] → 이후 탭 사용

⚠️ 비밀번호·인증서 암호는 코드에 넣지 마세요. 공개본에는 모두 빈 값으로 두었습니다. 본인 PC에서만 쓰는 설정 파일에 넣거나, 매번 직접 입력하시길 권합니다.

쓰기 전에 알아 두실 것

연재글 (제작기)

  1. 나이스·에듀파인 인증서 로그인을 CDP로 자동화하기 (1편) — 좌표를 버리고 DOM으로 (2026-09-17)
  2. 어제는 되던 로그인이 오늘 안 됨 — 범인은 유니코드 한 글자 (2편) (2026-09-17)
  3. 담임인데, 우리 반 학생이 왜 결석인지 몰랐습니다 (3편) — 학교업무 통합 콘솔 제작기 (2026-09-21)

라이선스

GPL-3.0. 자유롭게 쓰고 고치실 수 있지만, 이 코드를 가져다 만든 것도 소스를 공개해야 합니다.

만든이: 권혁규 (중학교 교사)