본문 바로가기

Work/Working log

파이썬으로 RPA Monitoring 프로그램을 만들며..

  약 2000여개 가까운 RPA 과제를 운영하는 과정에서 RPA관리 프로그램에 수시로 들어가 모니터링을 하여 실패가 존재하면 재수행이나 오류 처리를 하고 있었다. 다른 업무로 모니터링이 되지 않으면 결국 현업에게 문의나 클래임이 들어오면 그때 인지하여 대응을 하다보니 신뢰성이 떨어진다. 그렇지 않으면 누군가는 수시로 모니터링 업무를 잊지 않고 해야 하는데 그것은 효율성이 떨어지는 결과를 만들고 있었다. 두가지를 해결할 수 있는 방안을 고민해봤다.


  첫번째로 RPA로 관리 프로그램을 수시로 체크하는 프로세스를 구현하여 작동하는 방법이다. 이는 결국 RPA를 감시하기 위한 RPA를 만드는 것인데 감지용 RPA 전용봇이 필요한 상황이 발생했다. 전용 봇을 비용까지 들여서 모니터링을 한다 했을때의 비용대비 효과가 얼마나 나올지는 미지수 였다. 그리고 전용 봇을 위해 고객에게 구매를 요청하는 것도 어려운 상황이었다.

  두번째는 프로그래밍을 하여 감지 프로그램을 만드는 것이었다. 이는 전용 Bot도 필요가 없어 별도의 비용이 들지 않는다. 그리고, 백그라운드에서 작업이 가능해 프로그램을 구동만 시키고 운영자는 다른 업무를 할 수 있다는 장점이 있다. 단지, 프로그램을 만드는데 소요되는 시간과 GUI도 만들어야 하는 번거로움이 있다는 단점이 있다.


  두가지를 고민한 끝에 프로그램만 빠르게 만들 수 있다면 훨씬 효율적이라는 생각이 들어 프로그램을 만드는 것을 선택했다. GUI는 만드는 과정에서 일부 불편하더라도 감지역활에만 충실하다면 큰 문제가 되지 않을 것이라 생각했고, 개인적으로도 파이썬을 좀 더 깊이 있게 할 수 있다는 생각이 들었다. 


  기본적인 설계를 머릿속에 구상하고 큰 뼈대를 하루만에 만들었다. 별도의 설계 문서를 만들 규모의 프로그램이 아니라 머릿속에서 생각했던 그대로를 구현했고, 테스트를 돌려보니 원하는 결과를 만들 수 있었다. 그리고 GUI를 만들어 가기 시작했다. 파이썬으로 GUI를 만들어본 경험이 거의 없어 하나하나 원하는 모습을 구현하기 위해 Googling과 StackOverflow를 활용하여 만들었는데 GUI Desinger같은 것이 없어 레이아웃 구성, 위젯 배치, 이벤트 핸들링 등을 일일히 코딩으로 조정하고 개발을 해야 하니 손이 생각보다 많이 갔다.

(파이썬 GUI designer가 있으면 추천해 주세요~~^^)

 

  며칠에 걸쳐 코딩하여 완벽한 모습이라고 할 순 없지만 GUI는 마무리를 했다. 소스 유포를 방지하고자 실행파일로 만들어 배포하는 단계에서 이틀정도 소요되었는데, 이유가 해당 라이브러리를 포함시키는 과정에서 발생하는 오류를 발견하는데 생각지 못한 시간이 소요됐다.


프로그램을 완성하고 운영 담당자에게 우선 배포하여 일주일간의 테스트를 요청했다. 테스트를 하면서 불편한 사항이나 추가 할 기능들이 있으면 리스트업 해서 전달해 달라고 했고, 기능요건들을 하나씩 검토하며 보완작업을 진행할 계획이다.

 

대략 프로그램 설계를 시작하여 개발을 완성하기까지 약 일주일정도 걸렸다. 파이썬이 제공하는 상당히 편리한 것들이 많아 몇줄 코딩을 안해도 원하는 기능을 구현할 수 있어 시간이 생각보단 오래 걸리진 않았다. 


프로그램에서 사용한 기술은 mssql(DB 처리), tkinter(UI 처리), openpyxl(엑셀처리), apscheduler(스케쥴링), json(환경정보 관리), 기타 기본 라이브러리 등을 활용하여 프로그램을 구현하였다.