S-cheduler
01 / 11
Windows 작업 자동화 · v3.0

시간은 맡기고,
결과만 확인하세요.

S-cheduler는 반복 실행 파일을 정해진 시각에 안전하게 실행하고, 상태와 결과를 한 화면에서 관리하는 가벼운 Windows 스케줄러입니다.

스크롤 또는 방향키로 진행

Why S-cheduler

반복 작업은
자동화할수록 단순해집니다.

배치, Python, PowerShell, 실행 파일을 등록하면 매일 같은 시각에 실행합니다. PC가 절전 상태여도 웨이크업 타이머로 준비할 수 있습니다.

일일 보고서 생성daily_report.py · 최근 실행 성공
정상
데이터 동기화sync_data.ps1 · 다음 실행 오늘
예약
업무 백업nightly_backup.bat · 30분 제한
예약

Why We Built It

자동화는 됐지만,
운영은 편하지 않았습니다.

Windows 작업 스케줄러의 기능 자체보다, 보안 정책에 따른 계정 관리와 결과 확인 절차가 더 큰 운영 부담이었습니다.

반복되는 관리 절차를 없애는 것이 개발의 출발점
2개월

잠금 상태 실행을 위한 관리자 계정 갱신

회사 정책상 LCADM 로컬 관리자 계정을 사용해야 했고, 비밀번호가 만료될 때마다 해외 IT 지원 담당자와 Teams 통화로 새 암호를 전달받아 다시 설정해야 했습니다.

정기 재발급실시간 지원 필요철자 확인 부담
2023

SMTP 차단으로 사라진 실행 결과 알림

기존에는 작업 완료 결과를 이메일로 확인했지만, 보안 정책 강화로 SMTP 사용이 중단되면서 실행 성공 여부를 편하게 확인할 통로가 없어졌습니다.

이메일 알림 중단수동 결과 확인장애 인지 지연

Before → After

불편의 원인을,
필요한 기능으로 해결했습니다.

계정·권한
LCADM 계정과 2개월 주기의 비밀번호 재발급·재설정 필요
LCADM 없이, S-cheduler가 실행 중인 사용자 세션에서 화면 잠금 상태에도 예약 실행
결과 알림
SMTP 차단 이후 실행 결과를 직접 찾아 확인
Teams Workflow Webhook으로 성공 여부·실행 시각·결과를 즉시 수신
설정 경험
트리거·조건·보안 옵션 등 헷갈리기 쉬운 항목을 매번 설정
업무에 필요한 이름·실행 시각·파일 경로만 입력하는 단순한 설정
0회LCADM 비밀번호 갱신 업무
Teams업무 채널에서 바로 결과 확인
3개 항목핵심 정보 중심의 작업 등록

Simple Interface

필요한 정보만,
한 화면에.

작업 목록에서 다음 실행과 최근 결과를 보고, 선택한 작업의 상세 정보와 실행 기록을 오른쪽 패널에서 확인합니다.

Core Features

운영에 필요한 기능을
작지만 단단하게.

예약 켜기·끄기

작업을 삭제하지 않고 토글 한 번으로 예약만 잠시 중지하거나 재개합니다.

실행 상태 확인

다음 실행, 최근 실행, 종료 코드, 출력, 오류와 실행 시간을 한곳에서 확인합니다.

30

30분 안전 제한

비정상 장기 실행은 30분에 자동 종료하고 실패 사유를 명확하게 기록합니다.

지금 바로 실행

예약 시각을 기다리지 않고 선택한 작업을 즉시 실행해 동작을 점검합니다.

복제·백업·복원

비슷한 작업을 빠르게 복제하고 JSON 설정을 다른 PC로 안전하게 이동합니다.

Windows 전원 연동

절전 방지와 웨이크업 타이머를 이용해 예약 실행의 준비 상태를 유지합니다.

Teams Notification

작업이 끝나면,
Teams가 알려줍니다.

예약 작업이 끝나면 Power Automate Workflows Webhook을 통해 실제 실행 결과를 Teams로 전송합니다.

  • 작업 이름, 성공 여부, 실행 시각과 표준 출력을 Adaptive Card로 표시
  • 긴 실행 로그는 핵심 내용만 담아 작업 완료 여부를 빠르게 확인
  • Teams 전송 실패 시 SMTP 이메일이 설정되어 있으면 자동 fallback
TEAMS_WEBHOOK_URL=https://...logic.azure.com/...

Architecture

역할을 나눠,
흐름은 명확하게.

GUI Manager목록 · 상세 · 작업 설정
사용자 입력과 상태 표시
JSON Config작업 정보와 실행 결과
원자적 파일 교체 저장
Scheduler Engine활성 작업 조회 · 다음 실행 계산
백그라운드 스레드 · 순차 실행
Task Model작업 이름 · 시각 · 경로 · 상태
v2 설정과 하위 호환
Task Executorsubprocess 실행
출력 수집 · 시간 제한
Power ManagerWin32 API
절전 방지 · 웨이크업
NotificationTeams Webhook
SMTP 이메일 fallback
설정 읽기예약 계산파일 실행결과 저장알림 전송

Technology

Python 중심의
가벼운 구성.

별도의 데이터베이스나 서버 없이 Windows PC 한 대에서 독립적으로 실행됩니다.

Python 3.10+애플리케이션 기반표준 라이브러리 중심의 단순한 실행 환경
CustomTkinter데스크톱 GUI가볍고 현대적인 Windows 인터페이스
threading백그라운드 실행GUI와 예약 엔진을 분리해 화면 멈춤 방지
subprocess작업 실행BAT · CMD · EXE · PY · PS1 파일 지원
ctypes / Win32전원 제어절전 방지, 관리자 확인, 웨이크업 타이머
JSON + os.replace안전한 설정 저장임시 파일 기록 후 원자적으로 설정 교체
requestsTeams 알림Power Automate Webhook으로 결과 전송
smtplib이메일 fallbackTeams 실패 시 SMTP 알림을 보조 수단으로 사용

How to Use

등록하고, 확인하고,
결과를 봅니다.

작업 등록

오른쪽 위 + 버튼에서 작업 이름, 실행 시각과 파일 경로를 입력합니다.

예약 확인

생성 즉시 활성화되며 목록에서 다음 실행 시각과 예약 상태를 확인합니다.

결과 확인

선택한 작업의 성공 여부, 종료 코드, 출력과 오류, 실행 시간을 확인합니다.

F5 목록 새로고침 더블클릭 작업 수정 토글 예약 중지·재개

Ready to Run

반복되는 일은 예약하고,
집중할 일에 시간을 씁니다.

가상환경을 만들고 의존성을 설치한 다음 S-cheduler를 실행하세요.

python -m pip install -r requirements.txt  &&  python main.py
Windows 10 / 11Python 3.10+Local-first
GitHub에서 프로젝트 보기  ↗