[리뷰] 내 일을 바꾸는 업무 자동화



프리렉 출판사의 "내 일을 바꾸는 업무 자동화(이태화 저)"를 읽고 작성한 리뷰입니다.

표지


이 책은 “일 잘하는 평사원의 업무 자동화” 개정판이다. 저자는 패스트 캠퍼스 강의 “파이썬을 활용한 업무자동화 CAMP”로 유명한 교수님이며 강의에서 다루는 내용들이 책으로 옮겨졌다 볼 수 있다.

먼저 책의 내용을 간단히 요약하자면 폴더 내 파일을 관리하거나, 엑셀을 통합 및 작성하거나, 매일 반복 업무를 수행한다거나, 웹사이트에서 데이터를 수집한다거나, 인스타그램에 좋아요를 누른다던가, 혹은 메신저로 원하는 정보를 발송한다던가 등의 우리가 일상에서 흔히 하는 일들에 대해 다룬다고 말할 수 있겠다.

단, 우리의 일상 행동과 차이점이 한가지 존재한다.

우리가 손으로 해왔던 일들을 프로그래밍으로 자동화 한다는 것!

프로그래머가 아니라면 분명 호기심이 들 수 밖에 없는 내용들이다. 내가 인스타그램의 좋아요를 누르지 않아도 프로그램이 알아서 자동으로 눌러준다니!

바로 이런 흥미로운 주제들이 이 책의 장점이다. 프로그래밍 난이도에 대한 거부감을 느끼기도 전에 그대로 따라하다보면 위에서 열거한 재미있는 일들이 자동으로 이뤄지는 것을 확인하며 재미를 느끼게 될 것이다. 그렇게 자연스럽게 프로그래밍의 스킬이 몸에 베고 나면 보다 능률적이고 재미있는 자동화를 자연스레 쫓게 되며 습관이 되다보면 어느새 개인적인 혹은 직장의 업무도 빠르고 편하게 처리할 수 있다.

책의 전반적인 내용을 살펴보면 제일 먼저 초보자도 직관적으로 쉽게 배울 수 있는 Python이라는 프로그래밍의 기초를 학습한다. 비 전공자라면 프로그래밍에 부담을 느낄 수도 있겠으나 최근 일부 은행의 일반직 행원분들도 프로그래밍 교육이 의무화되고 인사 고과에 반영되는 것을 보면서 더이상 피하기만 할 것이 아니라는 생각이 들었다. 다행히도 본 도서에서는 자동화에 필요한 부분만을 골라서 아주 기초적인 내용만을 다룬다.

살펴보니 클래스라는 개념을 제외하고는 달리 어려울만한 내용이 없었다. 설치는 그대로 따라하기만 하면 될 정도로 매우 상세히 단계별 스크린 샷이 제공된다. 변수와 자료형 또한 예제를 찍다보면 자연스레 익힐 수 있다. 프로그램이 어떤 값을 저장하는 공간을 변수라하고, 자료형이란 데이터의 유형이나 생김새를 의미하는데 우리가 흔히 업무에서 엑셀 등으로 다뤘던 유형에 지나지 않으므로 쉽게 익힐 수 있다.

제어문은 if문이다. 살면서 항상 선택을 해야하듯이 프로그램도 어떤 행동을 할지 선택을 해야 한다. 어떤 조건에 따라 어떤 선택을 할지 각기 다른 명령을 내리고 싶을때 if문을 사용한다. 반복문은 말 그대로 같은 동작을 반복하기 위해 사용한다. 예를 들면 1부터 100을 더한다면 더한다는 동작을 하나의 명령문으로 놓고 시작을 1, 끝을 100으로 놓는 반복문 1줄만 추가하면 총 2줄으로 1부터 100이든 1000이든 모두 더할 수 있는 셈이다.

함수는 같은 동작을 반복할 일이 있다면 매번 비슷한 프로그램을 만들 것이 아니라 하나를 제대로 만들어 재사용하여 효율성을 높이고자 사용하는 것이다. 문제는 클래스인데 여기엔 객체지향언어(OOP)라는 개념이 들어가므로 비 전공자들이 처음 익히기엔 다소 어렵다. 하지만 이 책에서는 그저 함수나 변수들을 모아놓은 전체 집합 정도로 여기고 학습하면 문제가 없을 것이다. 키워드 정도만 외우고 그대로 따라해보면 감을 잡을 수 있다.

이어서 다양한 일상 업무 자동화 예제를 다루고 매일 반복 수행을 할 수 있게끔 cron에 대해 배운다. 마지막으로 프로그래밍에 깊은 관심이 생긴 독자들을 위해 Python을 보다 효과적으로 다룰 수 있는 Pycharm, VS Code와 같은 IDE 활용법을 다룬다. IDE 부분은 관심이 없다면 건너 뛰어도 큰 문제가 없다.

여기까지가 책의 전반적 내용이다. 이 정도의 설명으로는 약간 추상적으로 느껴질 수 있으므로 이 책의 이라 할 수 있는 “도전업무” 시리즈 몇 가지를 추가로 소개해볼까 한다. 프로그래머 분들에게는 어렵지 않은 내용일 것이기에 비 전공자 분들이 본 리뷰의 독자라 생각하고 조금 쉽게 풀어보겠다.

  • 스캔 파일을 폴더로 정리하기
    평소 탐색기를 통해 윈도우의 엑셀 혹은 워드 파일을 바라봤던 분들은 프로그래밍으로도 파일, 폴더에 접근할 수 있다는 사실에 매우 놀랄 것이다.

    Python의 os, shutil과 같은 패키지를 이용하면 폴더 내 파일의 목록을 한번에 불러올 수도 있고, 파일명을 변경할 수도 있으며 이동도 가능하다. 심지어 파일을 읽어서 내용을 변경한 후 다시 저장할 수도 있다.

    스캔을 하면 보통 스캐너의 디폴트 양식에 맞게 파일명이 생성된다. 보통 날짜+순번 정도로 파일명이 생성되는데 그 규칙을 파악해보고 Python의 문자열 함수를 이용한다면 원하는 대로 분류할 수 있을 것이다. 업무 상 스캔할 일이 많거나 스캔 파일을 정리하는 일이 많은 분들이 활용한다면 줄어드는 업무 시간에 깜짝 놀라게 될 것이다. 스캔파일

  • 여러 엑셀 파일의 내용을 취합하기
    처음 접하는 분들은 매번 엑셀을 직접 열어서 기록할 줄만 알았지 프로그램도 엑셀을 열고 내용을 변경할 수 있다는 사실에 놀랄 것이다. 주위분들에게 사소한 자동화 몇 가지만 알려드려도 굉장히 많이 놀라신다. 어떻게 이런것들이 가능하냐고.

    하지만 더욱 놀랄 것은 프로그래밍을 배우지 않은 분들도 이 책에서 다루는 정도의 학습만 익힌다면 이 모든 것들을 구현할 수 있다는 사실이다. 이 파트 역시 os 및 파일과 관련된 함수 몇가지를 다룰 줄 알면 매우 쉽게 엑셀을 취합할 수 있음을 알게 될 것이다. 엑셀

  • 결제 완료한 수강생들에게 메일 보내기
    이 부분부터 살짝 어려운 내용들이 보이기 시작한다. 지금까지는 내 PC안의 파일들만 다뤄왔다면 이번 장 부터 최초로 네트워크라는 개념이 들어가기 때문이다. 아무리 초보자라도 인터넷이 끊기면 네이버나 구글에 접속을 못하고 이메일도 보낼 수 없음을 알고 계실 것이다.

    여기서는 처음으로 다른 서버와의 연결 작업인 SMTP 프로토콜을 활용한 이메일 전송 기능이 포함된다. 덕분에 아이디, 패스워드와 관련된 인증 개념도 등장한다.

    하지만 막상 예제를 구현해보면 알겠지만 생각보다 별로 어렵지 않다. 일단 예제를 있는 그대로 따라쳐보면 서버와의 통신에 대한 감이 잡히기 시작할 것이다. 대부분의 직장인에게 이메일 발송은 업무의 상당 시간을 차지하는 일이므로 알아두면 큰 도움이 될 것이다. 이메일

  • 네이버 검색 결과 수집하기
    주위 분들에게 자동화를 알려주다 보면 이 예제에서 다룰 웹 크롤링 기술에 가장 놀라곤 한다. 지금까지 웹페이지에서 필요한 내용은 드래그해서 일일이 편집하기 일수였지만 이 부분이야 말로 자동화의 꽃이라 할 수 있다.

    WEB 페이지도 결국은 구조를 가지고 있다. 흔히 DOM이라는 구조로 불리는데 네이버 검색 사이트와 같은 웹프로그램도 DOM의 어떤 패턴에 일치하게 구조화하여 데이터를 제공한다.

    우리가 웹 크롤링에서 할 일은 BeautifulSoup이라는 Python 라이브러리를 이용해서 HTML 웹 페이지를 DOM이라는 구조로 변경시킨 후 소스를 열어 유일한 검색어를 찾아 분석하는 것이다. 분석 후 수집한 내용은 예제처럼 이메일로 발송하거나 엑셀로 저장하거나 앞서 배운 다른 어떤 방식으로든 우리 원하는대로 저장할 수 있다. 검색결과

  • 인스타그램 태그 검색 후 인기 게시글에 좋아요 누르기
    여기에서도 웹 크롤링을 다룬다. 단지 차이가 하나 있다면 selenium이라는 라이브러리를 활용해서 마치 아이디, 패스워드를 입력하고 인증한 것과 동일한 효과를 낼 수 있다는 점이다.

    더불어 우리가 마우스로 브라우저를 다루는 것과 동일하게 프로그램이 알아서 귀신처럼 마우스를 움직이고 클릭하는 등의 장관을 목격할 수 있다. 왜 이렇게 되는지 파악하는 건 나중 문제이다. 일단 한번 이 멋진 예제를 수행해보길 바란다. 인스타그램

  • 네이버 검색 결과 메신저로 받기
    너무 주옥같은 실전 예제들이 많아 모두 다루기 어려워 이 예제를 끝으로 소개를 마칠까 한다. 이 부분도 위에서 다룬 예제들과 유사하다. 일단 웹 페이지의 구조를 분석하고 웹 크롤링을 통해 정보를 수집한다.

    차이점은 수집한 데이터를 텔레그램 메신저로 전송하는 일인데 어려워 보이지만 생각보다 간단하다. 텔레그램의 봇 API Key를 발급 받고 Python의 모듈을 활용해 해당키와 함께 수집 결과를 전송하면 알아서 메신저 창에 뜬다.

    우리의 메신저를 통해 알고 싶었던 이벤트와 내용들이 자동으로 시시 각각 도착한다고 생각해보라. 마치 개인 비서를 둔 기분이 들 것이다. 텔레그램

이상으로 책에 대한 소개를 마칠까 한다. 책에서 다루는 내용들은 상당히 광범위하므로 본 리뷰에서는 대략적인 책의 요약 내용과 흥미로운 예제들을 중심으로 다뤄보았다.

프로그래밍을 알게되면 비단 일상의 효율화를 얻을 수 있을 뿐만 아니라 사고의 깊이를 깊게 해주므로 취미로도 가까이 할만 하다.

다만 배우는 과정에 있어 약간의 인내가 필요하게 마련인데, 일상에서 골치아팠던 일들을 해결하고 자신의 온라인 취미 생활까지 윤택하게 해주는 이런 흥미 진진한 일들을 다루는 본 도서와 함께 한다면 프로그래밍과 자동화라는 두마리 토끼를 쉽게 잡을 수 있을거라 확신한다.

프로그래밍을 한번도 배우지 않았거나 반복되는 일상 업무에 지친 분들께 꼭 추천드린다.






© 2019.04. by theorydb

Powered by theorydb