
SCIT Schedule Hi는 SCIT Master 재학생이 편하게 자신의 지원 기업과 관련된 일정을 확인하고, 변동 사항을 알림으로 전달받을 수 있는 프로그램입니다.
Table of Contents
개발 동기
SCIT 면접 시즌이 되자 학생들의 생활은 무척 불안해졌습니다. 불안한 마음을 안고 시설내 사이트에서 F5를 연타하면서 캘린더를 확인하는 모습은 전혀 자기 개발적이지 못하다는 생각이 쌓여갔습니다. 접속하지 않고도, 앱을 켜는 것, 아니 컴퓨터를 켜는 것만으로 자신의 새로운 일정을 확인할 수 있다면 훨씬 편할 것이라는 생각을 하게 되었습니다. 그러면 GET 1회와 POST 1회 도합 2회 요청이 단 1회로 줄어들고, 더 짧은 기간에 갱신도 가능하게 됩니다. 폴링도 훨씬 가볍고, 시설 입장에서도 트래픽을 절감할 수 있겠지요.
개발 언어 및 도구
- Language: C#
- Tool: Visual Studio 2017
- Template: WPF Application
대상 인원
- SCIT Master 34기 인원
대상 플랫폼
- Windows 7 이상 (.NET Framework 3.5, Included in Windows 7, Others’ll be Auto Installed)
사용 기술
- Used Class & Method: WebClient > UploadDataAsync
- Library: NewtonsoftJSON
- Components: ListView DataTemplate, NotifyIcon
개발 기간
2018년 5월 14일 ~ 5월 15일
서비스 기간
FS 서비스(시설 내 사이트) 리뉴얼 전까지
주요 기능
- 신규 스케쥴 확인,날짜별 소트, 히스토리 확인
- 필터링 항목 입력 및 저장
- 변경 사항 발견(상주 갱신 또는 다음 번 실행시 갱신)시 Tray에서 Balloon 또는 ToastNotification 으로 알림
개발 과정의 특징
- 설계가 배제되다시피 했기에 Singleton이 적합한 부분에 Static으로 단순 처리한 부분이 있습니다.
- WebClient의 POST 요청시 경우에 따라 UserCancelled Error가 발생하는 경우가 있습니다. 재확인 루틴을 강화하여 확실히 요청이 이뤄지되, 네트워크 불안정한 상황에도 유연하게 대처할 수 있습니다.
소감
- 누군가에겐 가장 필요한 프로그램이라며 감사를 표현했으나, 누군가에겐 이것이 왜 필요한지 설득하기가 무척 어려운 앱이었습니다.
- WebClient의 낡은 Event 방식을 활용하였습니다. async, await 기술을 써보는 게 더 좋지 않았을까 생각해보지만, 어떤 의미에선 코드가 깔끔해져서 지금 방식도 좋다고 생각합니다.
- OS 호환성을 심각히 고려해봐야 했습니다. 맥 OS에 대한 접근을 재고해봐야겠습니다.
내부 사이트를 사용하는만큼, 바이너리 공개는 보류중입니다. 필요시 직접 연락해주시기 바랍니다.
필요하면 다 만들어버리는 능력! 대단하시네요. 멋집니다ㅎㅎ