[글 쓰는 엔지니어] 아무도 몰라주는 프로그램 개발자로서의 삶, 8부 파이썬 (Python)으로 데이터 갖고 놀기
처음 파이썬으로 도전한 프로그램은 태양광 발전소들의 일일 기상 현황, 매일 달라지는 전력판매단가 시세 현황, 발전소 모니터링 사이트에 기록되는 발전량 및 일사량 현황 등을 자동으로 크롤링하는 것이었습니다. 주간 단위로 보고를 해야 하는데 시간이 오래 걸리는 일은 아니지만 이런 자질구레한 일까지 해야 되나 싶었습니다. 기술팀 직원들이 각자 담당하는 발전소들의 현황을 저에게 주면 제가 취합해서 주간 단위로 보고하는 아주 단순하고 사소한 업무였으나 의외로 손이 많이 가는 작업이어서 평소에도 불만이었는데 파이썬을 공부해보니 개선 가능하다는 것을 알게 되었습니다. 곧바로 필요한 함수들과 모듈들을 모조리 공부했고 크롤링하기 위한 코딩을 해봤습니다. 여러 시행착오를 겪은 뒤 2주째 되던 날 드디어 성공하게 됩니다. 프로그램 3개를 개발했고, 실행하면 곧바로 웹사이트를 열어서 원하는 정보만을 크롤링해서 csv 파일로 저장하도록 했습니다. 여기에 추가로 주간 단위 보고 양식도 VBA를 이용해서 그래프도 자동으로 업데이트하고 휴먼 에러 (Human Error)가 생기지 않도록 했습니다. 모든 직원들의 사소한 업무를 없애고 자동화 했더니 직원들의 반응이 뜨거웠습니다.
여기에서 멈추지 않고 저는 새로운 도전 목표를 세웠습니다. 언젠가부터 ‘대한민국 햇빛지도’를 만들어보고 싶다는 생각이었습니다. 기상청과 유명한 민간 기업 하나가 이미 홈페이지 상에 공개해서 유명했지만 어떤 일사량 데이터를 참고로 했는지 일반인인 제가 검증을 할 수가 없어서 참고는 할 수 있지만 적극적으로 이용하기는 어려웠습니다. 그래서 전국의 기상대에서 지난 10년간 기록한 일사량 데이터들을 자동으로 크롤링해서 Pandas 모듈로 정리한 뒤 지도로 표현하는 알고리즘을 토대로 코딩하기 시작했습니다. 제가 책에서 봤던 대통령 선거 득표율 관련 예제가 바로 지자체별로 정리하는 일이었기 때문에 훌륭한 참고 자료가 되었습니다. 일주일 정도 꼬박 걸려서 드디어 완성했습니다. 전국의 기상대 데이터를 다 가져와서 분석하다 보니 프로그램 구동 시간은 약 10분 정도로 오래 걸리는 편이었지만 결과는 놀라웠습니다. 이 결과를 토대로 저는 전국의 일사량에 대한 이해와 감각이 생겼고 어떤 사업이라도 바로바로 기술 의견을 줄 수 있어서 피드백 속도가 빨라지니 사업의 추진에 가속도가 붙게 되었습니다. 이렇게 파이썬의 강력한 힘을 경험하고 나니 인공지능으로 가는 길을 조금 늦추기로 했습니다. 데이터를 가지고 이리저리 갖고 노는 것이 생각보다 재미있는 일이라는 것을 알게 되었습니다. 세상에 널린 데이터들을 분석하는 연습과 훈련을 좀 더 하고 내공을 쌓은 뒤에 인공지능을 맛볼 생각입니다.
이렇게 해서 제가 파이썬으로 지난 3년간 개발한 프로그램은 30개 정도 됩니다. 업무에 관련된 것만 그렇고 개인적으로 데이터를 갖고 놀기 위해 개발한 것까지 포함하면 100개 정도 되는 것 같습니다. 제 블로그에 올려둔 전국 주요 여행지의 추천 맛집 리스트 시리즈도 파이썬으로 자동 크롤링해서 만든 자료들이고, 지자체 선거 결과 분석도 파이썬을 이용했으며, 아직 블로그에는 업로드 하지 않았지만 주식을 자동으로 매매하는 프로그램도 책에서 배운 예제로 개발해서 시도해 본 적도 있었습니다. 주식을 태어나서 한 번도 해본 적이 없었지만 파이썬으로 ETF (Exchanged Traded Fund)를 자동으로 매매할 수 있다고 하길래 정말 되는지 확인하기 위해 한 달 정도 실제로 해본 적이 있었습니다. 결과는 10만원 정도 이익 실현하고 곧바로 해지한 후 가족들에게 치킨을 쏘며 끝냈습니다. 아무래도 제 성향에는 주식이 맞지 않는 것 같다는 결론을 내렸습니다. 어쨌든 파이썬의 강력한 힘을 경험한 이상 좀 더 깊이 경험해보기로 했습니다. 결국 언젠가는 인공지능까지 공부해볼 생각입니다. 언젠가는.
[글 쓰는 엔지니어] 치과와 안과 (1) | 2023.02.21 |
---|---|
[글 쓰는 엔지니어] 아무도 몰라주는 프로그램 개발자로서의 삶, 9부 프로젝트 기반 학습 (Project-Based Learning) (0) | 2023.02.20 |
[글 쓰는 엔지니어] 아무도 몰라주는 프로그램 개발자로서의 삶, 7부 그리고 파이썬 (Python) (1) | 2023.02.18 |
[글 쓰는 엔지니어] 아무도 몰라주는 프로그램 개발자로서의 삶, 6부 엔지니어에게 필수적인 비주얼 베이직 (VBA) (0) | 2023.02.17 |
[글 쓰는 엔지니어] 아무도 몰라주는 프로그램 개발자로서의 삶, 5부 비주얼 베이직 (VBA)을 시작한 이유 (0) | 2023.02.16 |
댓글 영역