프로덕트 매니저/PM의 일하기

비전공자가 자동화 리포팅 개발하기

KevinKim. 2023. 1. 29. 11:59

회사에서 BA(Business Analyst)로 매일하는 업무 중 하나가 일별 지표에 대한 보고다.

 

아침마다 대시보드를 확인해서 지표를 점검하고, 슬랙에 업로드하기 위한 메시지를 생성한다. 반복되는 작업이기 때문에 별 것 아닌 것 같지만, 세부적으로 점검하는 지표도 적지 않기 때문에 하나하나 지표를 바꾼다는 것이 여간 귀찮은 작업이 아니다. 따라서 결심했다. 이 부분을 자동화해보자.

 

할말은 많지만 지금 회사에서는 연혁이 오래된 회사라 이런 부분을 기대하기 어려웠다. 따라서 파이썬 공부한 것을 활용해서 우선 직접 개발해보는 것을 시도했다. 

 

우선은 가장 기본적인 것부터 시작했다. 파이썬을 활용해서 슬랙으로 메시지를 보내는 작업이다. 개발자들의 문화 중 존경하는 것이 바로 지식을 나누는 문화다. 궁금한 점이 있으면 영어로 입력하고 뒤에 사용할 언어를 함께 입력하면 된다. 그래서 'sending slack message' + 'python'을 검색했다. 검색하면 아래와 같이 슬랙에서 제공하는 문서가 나온다.

구글 검색

그래서 해당 문서를 읽어봤다. slack sdk를 설치하고, slack token을 발급받아서 실행할 수 있음을 알았다. 추가적으로 지금 전달하는 단순한 형태뿐만 아니라 slack block kit을 활용하면 다양한 형태로 메시지 전달이 가능하다는 사실을 알았다. 그래서 슬랙을 통해서 해당 메시지를 보내는 코드까지 생성했다.

왼쪽은 슬랙에서 제공하는 block kit, 오른쪽은 내가 작성한 메시지다

 

이렇게 기초적인 틀이 나왔으니, 이제 저 안의 숫자를 채워야한다. 대부분 데이터프레임에서 뽑은 지표를 연산하여 표시한다. 예측치 대비 수치, YoY, 월간 누적, 일 지표 등 데이터프레임에서 수치를 가져오면 된다. 가장 좋은 것은 자체 DB에서 바로 뽑아오는 것일테지만, 우선은 csv 파일을 로드해서 가져오는 형태로 생성했다. 그 결과 세부적인 지표를 포함해서 상세 지표까지 모두 입력된 형태로 가장 기본적인 지표 모니터링이 완성됐다.

 

지난 목요일에 소요시간을 측정해봤는데, 파일을 다운받는 지금의 형태로도 5분 정도로 단축되었다. 쿼리 실행 후 파일을 저장하는 것에 5분 정도가 소요될 뿐 메시지를 작성하는 것에는 오랜 시간이 걸리지 않았다.

 

지금은 조건에 따른 메시지를 생성, 시계열을 통한 월말 예측치 산출, 그리고 ChatGpt를 활용한 추가 메시지를 작성하는 법을 알아보고 있다. 아마 이런 것들도 빠른 시일내에 완성될 것으로 보여진다. 이런 작업이 완성되면 이제 개발팀에 사정을 해보려고 한다. 

 

이번 자동화 작업을 진행하면서 느낀 점은 간단하다. 기획에 너무 많은 시간을 쏟으면 오히려 한발짝도 나가기 어렵다는 점이다. 나도 기획을 하기 때문에, 초기에 잘못 기획했을 경우 이것이 어떤 레거시가 되는지도 잘 알고 있다. 그럼에도 만약 처음부터 '슬랙으로 chatgpt까지 사용해서 이런이런 메시지를 모두 자동화해야지', '완벽한 자동화를 위해서 개발진 승인 필요한 것들 모두 받고 시작해야지'라고 생각했다면 아마 결과물을 만들지 못했을 것 같다.

 

별거 아닌 작업이었지만, 매일 30분 이상 소요되는 일을 5분으로 단축했다. 

이후에는 시간은 더 단축되고 메시지의 질도 더 좋아질 것이다. 앞으로도 이런 작은 의미있는 실행을 꾸준히 해야겠다.