회사 업무을 위한 파이썬 라이브러리 소개

업데이트:

이전글 : 코딩, 그거 먹는건가요? (feat. 직장인)

대세는 파이썬

1) 파이썬의 대중성

책, 블로그, 유튜브 등 수많은 매체들에서 코딩 관련 저작물들이 넘쳐나고 있다. 그들이 다루고 있는 프로그래밍 언어들 중 가장 많은 비중을 차지하는 것은 단연 파이썬이다.

IT 개발자들의 이야기를 들어보면 파이썬이 다른 언어들에 비해 딱히 월등한 언어라고 하긴 어렵다고 한다. 어느 것이든 장단점은 있기 마련이니 말이다. 그럼에도 파이썬이 대세가 될 수 있었던 것은 우리와 같은 비개발자들도 쉽게 접근할 수 있는 대중성이 있기 때문이라 생각된다.

세계에서 가장 유명한 개발자 커뮤니티 사이트인 stackoverflow.com에 올라오는 질문들에서 사용하는 언어를 조사한 결과가 아래에 표로 나와있다. 2019년을 기점으로 파이썬이 자바스크립트를 넘어서 1등을 차지했다. 이 사이트는 비개발자들도 활발히 질문을 주고받는 곳이어서 왠만한 궁금증은 여기서 다 해결할 수 있다. 아래의 서베이 결과는 파이썬의 대중성을 여실히 보여주고 있다.

stackoverflow
출처 : Global App Testing

2) 언어의 힘은 곧 라이브러리

앞선 포스팅에서 라이브러리에 대해 간단히 설명을 한 바 있다(링크). 파이썬의 대중성은 오픈소스 언어 답게 라이브러리의 다양함이 가져온 결과다. 아래의 사진은 파이썬 관련 유튜브 영상에 달린 댓글이다.

댓글 작성자는 아마도 개발자인 듯 보이지만, 파이썬의 이러한 장점은 비개발직군 직장인들에게도 적용된다. (심지어 우리에겐 라이브러리의 풍부함이 결코 단점이 되지 않는다!) 코딩을 업무에 잘 써먹으려면 프로그래밍 언어의 문법을 잘 아는 것보다 다양한 오픈소스 라이브러리를 잘 찾아서 활용할 줄 아는 것이 더 중요하다.

댓글
파이썬의 장점은 라이브러리의 풍부함이다

3) 파이썬과 R, 뭐가 더 나을까

파이썬은 범용 프로그래밍 언어이다. 파이썬을 사용해 다양한 종류의 프로그램을 만들 수 있다는 뜻이다. 하지만 코딩 활용 영역이 제한적인 비개발자들에게는 딱히 장점이 되진 않는다.

이런 이유로 파이썬 보다는 R을 추천하는 이들도 많다. R은 데이터분석과 시각화에 특화된 오픈소스 프로그래밍 언어다. 데이터분석 영역에 한해서는 파이썬보다 더 유명하고 활용된 역사가 길어서, 축적된 패키지(라이브러리)의 수도 훨씬 많다. 요즘 일반 직장인들도 많이 도전하는 국가공인 데이터분석 자격증인 ADP 및 ADsP 시험에서도 R이 사용된다. 직장인 코딩의 주요 목적이 숫자를 다루는 업무의 효율성을 높이는데 있다면, 사실 R을 배우는게 더 나을수도 있다.

댓글
R이냐 파이썬이냐 그것이 문제로다

그럼에도 필자가 파이썬으로 코딩을 시작한 것은 결국 파이썬이 가진 대중성 때문이다. 마치 영어 문장을 사용하는 것 같은 친숙한 구조와 상대적으로 배우기 쉬운 문법 체계도 한 몫했다. 데이터분석 외에 업무자동화나 웹개발 같은 영역으로 확장할 수 있다는 것도 장점이다. 무엇보다도 오늘날 파이썬이 ‘대세’이기 때문에, 데이터분석 영역에서도 결국에는 R을 따라잡을 수 있을 가능성이 매우 크다고 본다.

업무에 활용할 수 있는 파이썬 라이브러리

일단 파이썬으로 코딩을 시작하겠다고 마음먹었다면, 파이썬을 업무에 어떻게 활용할 수 있는지 알아봐야 한다. 사무직 회사원들이 써먹기 좋은 파이썬 라이브러리들을 하나씩 살펴보도록 하자.

1) 데이터 분석

  • 판다스(pandas) : 파이썬을 활용해 데이터를 다루는 프로젝트라면 어디든 빠지지 않고 등장하는 유명 라이브러리이다. 외부 데이터의 추출과 정제, 가공, 통계분석, 시각화까지 데이터 분석에 필요한 대부분의 기능들을 가지고 있다. 사무직 업무의 알파요 오메가인 ‘엑셀’로 할 수 있는 거의 모든 일을 대체할 수 있다. 게다가 더 간단하고, 빠르게 작업이 가능하다. 심지어 파이썬의 다른 라이브러리들과 연계해 업무 자동화, 고급 통계분석 등으로 이어나갈 수도 있다. 이 블로그에서 다루는 두번째 큰 주제 중의 하나이기도 하다. 자세한 내용은 해당 페이지(링크)를 참고하자.

  • 넘파이(numpy) : 벡터, 행렬 등 수학적 도구를 활용할 수 있는 라이브러리다. 판다스의 많은 기능이 넘파이를 기반으로 만들어져 있다. 판다스를 활용하다 보면 넘파이가 종종 쓰이기 때문에 기초적인 문법은 알고 있어야 한다.

  • 스탯츠모델즈(statsmodels) : 파이썬에서 가장 유명한 통계분석 라이브러리이다. 통계에 대한 지식과 활용도가 어는 정도 있는 직장인들이라면 써먹어볼 만하다. R 만큼은 아니지만 회귀분석, 시계열분석 등 왠만한 통계 기법들은 다 구현할 수 있다.

  • 맷플롯립(matplotlib), 시본(seaborn) : 데이터분석의 결과를 시각화하는 도구이다. 코딩의 결과물을 바로바로 표나 그래프로 확인할 수 있다는 장점이 있고, 그림파일로 저장해 보고서에 쓸 수도 있다. 물론 회사에서 통용되는 엑셀 또는 PPT 양식이 있는 경우가 많을 것이라 직접적인 활용보다는 분석과정의 보조수단으로 써먹을 만하다.

2) 업무 자동화

  • 엑셀윙즈(xlwings) : 파이썬에는 엑셀 업무 자동화를 위한 여러 라이브러리가 있다. 그 중에서도 xlwings는 문서보안(DRM) 시스템이 구축된 회사의 사내망에서 일하는 직장인들에게 필수적인 엑셀 자동화 라이브러리이다. 다른 라이브러리들은 엑셀파일의 정보를 읽어오는 방식을 쓰는데, xlwings는 엑셀프로그램을 직접 제어하기 때문에 DRM이 걸린 파일도 작업이 가능하다. 자세한 내용은 이 블로그의 세번째 카테고리(링크)를 참고하자.

  • pyautogui : 컴퓨터 입력장치, 즉 마우스와 키보드의 입력을 제어할 수 있는 라이브러리이다. 일반적으로 분석 업무는 사내 업무프로그램에서 데이터를 내려받는 작업부터 시작하기 마련이다. xlwings와 pandas 만으로도 충분히 엑셀작업 전반을 자동화할 수 있지만, 회사 시스템을 켜고 자료를 내려받는 작업은 pyautogui를 이용해 마우스/키보드의 움직임을 일종의 ‘매크로’로 기록해서 써야 한다. 이걸로 적당히 코딩한 후에 동료 직원에게 보여주면 귀신을 본 듯(?) 깜짝 놀라는 모습을 확인할 수 있을 것이다..!

  • win32com : 파이썬을 통해서 윈도우 상의 응용프로그램들을 제어할 수 있는 라이브러리이다. 위에서 소개한 xlwings은 사실 win32com 을 기초로 엑셀에 특화하여 좀 더 사용자 친화적으로 만들어진 것이다. win32com을 직접 사용하기는 매우 어렵지만 굳이 언급하는 이유는 한글 자동화에 활용되기 때문이다. 아직 많은 공공기관이나 기업들이 MS워드보다는 한글을 많이 사용하고 있기에 한글 자동화도 유용하게 쓸 수 있을 것이다. 이 분야에 특화된 블로그(링크) 가 있으니 참고하자.

  • 셀레니움(selenium) : 익스플로러, 크롬 등 웹브라우저를 제어하는 라이브러리이다. 사내 업무시스템이 웹기반으로 만들어진 곳이라면 pyautogui 대신 셀레니움을 이용한 자동화가 가능하다. (필자의 회사는 보안상의 이유로 셀레니움 사용이 제한돼있어 거의 써보지 못했다.)

3) 데이터 수집

  • FinanceDataReader, OpenDartReader : 각각 한국의 주식시장 데이터와 기업재무 데이터를 손쉽게 수집할 수 있는 라이브러리이다. 한국거래소, 금융감독원 등에서 제공하는 OpenAPI나 홈페이지 공시 자료를 파이썬 사용자가 편리하게 사용할 수 있도록 만들어 놓았다. 해당 사이트(링크)에 가면 두 라이브러리의 사용법을 확인할 수 있다.

  • beautifulsoup, requests : 웹사이트에 있는 자 료를 긁어오는 작업(크롤링 혹은 웹스크래핑)에 쓰이는 라이브러리이다. 시중에 뉴스기사 스크랩이나 금융정보 수집 등을 주제로 한 파이썬 웹크롤링 서적들이나 블로그, 유트브 영상 등이 수없이 많다. 하지만 웹페이지의 구조(html 언어 등)에 대한 기초지식이 먼저 있어야 하기 때문에 다소 배우기 어려운 편이다.

4) 그 외 유명 라이브러리

수학/공학용 계산(scipy), 머신러닝(scikit-learn), 딥러닝(tensorflow), 금융공학(quantlib, zipline) 등 전문적인 영역에 특화된 유명 라이브러리들이 존재한다. 사무직 회사원들이 당장의 업무에 활용하기는 어렵겠지만, 회사에 혁신(?)을 불러오고 싶은 열정적인 분들이라면 관련 강좌들도 많아지고 있으니 도전해보시기 바란다.

다음글 : 파이썬을 설치하고 실행해보자

파이썬 기초 카테고리 목록 바로가기

댓글남기기