안녕하세요!
오랜만에 파이썬을 이용한 새로운 활용편 강의를 제작하여 글을 쓰게 되었습니다. ^^
이번에 준비한 주제는 '업무 자동화' 입니다.
이걸 공부하시고 나면 여러분은 밖에서 스마트폰으로 업무 지시 메일을 보내기만 하면, 집에 있는 컴퓨터가 자동으로 업무를 수행하고 그 결과를 다시 메일로 전송해주도록 응용할 수 있습니다. 엑셀, 브라우저는 물론 데스크탑 UI 자동화에 이어 이메일까지, 이 모든 것을 고작 9시간(???) 만에 끝냅니다.
사실 '업무 자동화'라고 해서 꼭 업무에만 사용되는 것은 절대 아니구요 ㅎㅎ 컴퓨터를 사용해서 하는 일이라면, 룰만 명확하다면 얼마든지 자동화를 할 수 있답니다. 여기 클릭했다가 저기 클릭하는, 같은 작업을 수없이 반복하는 게임 매크로나 광클릭 등도 물론 가능하지요.
하지만 '업무 자동화'라고 하였으므로, 초점은 업무에 맞춰서 설명을 드려볼게요.
(나중에 게임 자동화 영상도 종종 올릴까 합니다 ㅎㅎ)
대개 직장인들이 사무실에 출근하여 컴퓨터를 켜고 매일같이 하는 일이 있을 거에요. 사람마다 다르겠지만 어떤 시스템에 접속을 하고, 나에게 온 메일을 확인하고, 워드나 엑셀 문서를 만들고, 보고서를 쓰고, 완료 메일을 누구에게 보내는 등의 일 말이죠. 그런데 이런 부분에 있어서 '똑같거나 비슷한, 반복되는' 일이 분명히 존재합니다.
마침 얼마 전에 스팸 문자를 하나 받았는데, 이런 내용이더라구요.
네이버나 다음 카페 또는 블로그 같은 곳에 어떤 글을 올리면 비용을 지불한다는 말인데요. 실제로 저 일을 하시는 분들이 어떻게 하시는지는 모르겠지만, 자동화를 활용하면 딱 한 번의 스크립트 작성 이후에는 '실행' 버튼만 클릭함으로써 앉아서 돈을 벌 수 있습니다.
(물론 카페 이용 정지를 당하거나 ID 가 잘리지 않고, IP 가 차단되지 않고 약속대로 비용을 제대로 받는다는 조건 하에 말이죠)
가령 이런 식이죠.
1. 엑셀 파일에 글을 올릴 카페 주소, 게시판 이름 리스트업
2. 자동화 스크립트 작성
순서: 로그인 > 엑셀 한 줄씩 불러오기 > 카페 접속 > 게시판 이동 > 글 작성, 이후 반복
이러면 끝입니다.
만약 카페 목록을 추가하거나 게시판 이름이 변경되거나 하면, 1번의 엑셀 파일 내용만 바꿔주면 되지요.
소위 '댓글 알바'의 작업하는 방식도 크게 다르지 않을겁니다.
※ 위 내용은 자칫 스팸성 글을 마구 올리게 되는 역효과를 만들 수도 있을 것 같아서 강의에서 예제로 다루지는 않습니다.
또 다른 예를 들어볼까요?
여러분이 1,000 명이라는 수많은 참석자를 대상으로 하는 어떤 큰 행사를 준비하게 되었습니다.
그리고 명단을 확인하여 이 모든 사람들의 이름표를 만들고 출력을 해야 합니다.
만약 주어진 양식의 PPT 파일이 있고 명단이 아래와 같이 되어 있다면,
여러분은 1번째 사람의 이름을 복사하여 PPT 파일 중 이름 부분에 붙여넣기 하거나 직접 타이핑을 하고, 소속 부분과 정보 부분도 동일하게 작업을 하겠죠.
다음 페이지로 넘기고 나서 2번째 사람의 이름을 복사하여 또..
다음 페이지로 넘기고 나서 3번째 사람의 이름을 복사하여 또..
이 작업을 딱 1,000번만 하시면 됩니다.
그런데 이거 너무 낭비 아닌가요?
1명 이름표를 만드는데 20초만 걸린다고 해도 1,000명이면 무려 20,000 초, 약 5시간 30분이나 소요되는 작업입니다. 그것도 화장실 한 번 가지 않고 모든 작업이 아주 순조로웠을 때 말이죠.
그리고 여러분은 멍하니 앉아서 왼쪽 새끼손가락은 왼쪽 Ctrl 키 위에 올려져 있고 검지는 C 와 V 를 왔다갔다 하면 복붙을 계속 할겁니다. 해보신 분은 아시겠지만 이거 조금만 하고 나면 손이 정말 정말 아프답니다.
만약 이 작업을 자동화 하면 어떨까요?
엑셀에 명단은 있고 이름표는 정해진 양식의 PPT 가 있으니, 엑셀에서 한 줄씩 데이터를 불러와서 PPT 의 각 영역에 집어 넣고 다음 페이지로 넘어가고, 이 작업만 엑셀 파일의 끝까지 반복하면 됩니다.
만약 PPT 파일이 너무 커져서 메모리 문제가 걱정된다면 100명마다 끊어서 파일을 나눠도 되고, 작업 중간에 문제가 발생한다면 로그를 남겨뒀다가 정상처리된 사람 이후 순번부터 다시 실행하면 되지요. 간단하게 스크립트를 작성하여 테스트 해보니 시간이 약 1/5 로 줄어듭니다.
이제 여러분은 따뜻한 커피 한잔을 천천히 마시면서 얘가 일을 잘 하는지 지켜보시기만 하면 되지요.
굉장하지 않나요?
다른 사람들이 열심히 같은 작업을 반복하고 있을 때, 여러분은 느긋하게 쉬면서 한 번씩 '흐음...', '쓰읍...' 추임새만 넣어주시면 됩니다.
제 강의에서는 업무 자동화에 꼭 필요하다고 생각되는 4개 주제를 선정하였고, 각각 사용하는 주요 라이브러리는 다음과 같습니다.
1. 엑셀 자동화 (openpyxl)
2. 데스크탑 자동화 (pyautogui)
3. 웹 자동화 (selenium)
4. 이메일 자동화 (smtplib, imap_tools)
서로 연관성이 없도록 제작하였기 때문에, 여러분은 필요한 주제만 골라서 들으셔도 됩니다. 만약 이메일로 업무 내용을 주고 받고, 웹을 주로 다루신다면 3, 4 만 공부하시면 되구요. 하루 종일 엑셀만 사용하시는 분이시라면 1번만 공부하시면 됩니다. 하지만 가급적 모두 배워두시면, 분명 언젠가 큰 도움이 되실거라 확신합니다. (그리고 분량에 비해 내용이 결코 어렵지가 않습니다. ^^)
주제별로 대충 어떤 내용을 배우고, 실제로 어떻게 활용할 수 있는지를 간략히 설명드리자면요.
1. 엑셀 자동화
엑셀 파일을 만들고 원하는 위치에 원하는 데이터(또는 수식) 입력은 물론 셀 스타일 적용(가로 세로 크기, 폰트, 배경 색), 병합, 차트 생성, 이미지 추가 등 대부분의 작업이 가능합니다. 이미 만들어져 있는 파일을 필요한 영역만큼만 읽어와서 데이터를 확인하는 작업도 물론 가능합니다.
2. 데스크탑 자동화
PC 에서 마우스와 키보드를 통해서 사람이 하는 작업을 흉내낼 수 있습니다. 자동화 방식은 좌표, Pixel, 이미지 등을 혼용하여 사용 가능하며, 키보드를 통한 글자 입력, 조합 키 사용 (Ctrl + s 등), 마우스 이동, 클릭, 드래그 드롭, 스크린 샷 등도 가능합니다. 실행 중인 창의 정보를 통해서 창을 자유자재로 최대화, 최소화, 또는 맨 앞으로 가져오기 등도 할 수 있구요. 이미지 방식으로 자동화를 할 때는 GrayScale 이나 신뢰도 정보를 통해 보다 자동화 성공률을 높이는 방법도 배웁니다.
3. 웹 자동화
유명한 selenium을 활용하여 브라우저 상의 html 내용을 분석하여 클릭, 글자 입력, 체크박스나 라디오버튼 선택, 페이지 스크롤, 페이지 이동, Frame 전환, 로딩 대기 등의 작업을 할 수 있습니다. 이것만 잘 배워두시면 웹에서의 자동화는 대부분 큰 무리 없이 가능할거예요.
4. 이메일 자동화
수신 날짜, 발신자, 제목 또는 본문의 내용, 수신 여부 등의 조건을 통해 메일함에서 원하는 메일을 조회하여 내용을 가져오거나 첨부 파일을 다운로드 받을 수 있으며, 직접 작성한 내용을 본문으로 하고 첨부파일을 포함하여 여러 명에게 한꺼번에 메일을 보낼 수도 있습니다. 강의에서는 지메일 (gmail) 을 기준으로 설명하며 프로젝트를 통해 실제와 비슷한 상황에서 어떻게 활용할 수 있는지 배웁니다.
어떠신가요?
여러분이 컴퓨터로 하시는 업무, 또는 작업 중 자동화를 적용할 수 있는 부분이 떠오르시나요? 기억을 더듬어 보시면 습관적으로 매일같이 반복되는 부분이 분명 있을 겁니다.
하지만 여기에 아주 중요한 내용이 하나 있습니다. 컴퓨터는 생각보다 단순하며, 조금 나쁘게 말하면 멍청합니다. 시킨대로만 하거든요... 그래서 여러분은 컴퓨터가 명확히 일을 할 수 있도록, 명확히 설명할 수 있는 업무를 시켜야 합니다. TV 에 나오는 어느 직장 상사처럼 '아니 그 있잖아 왜 그 대충 뭐 저기...' 이런 식으로 하시면 절대 안됩니다.
각 주제별로 어떤 부분을 어떻게 주의하셔야 하는지는 영상 내에서 설명을 드린답니다 ^^
제 강의의 꽃은 바로 실전 프로젝트인데요.
위 내용만 해도 분량이 방대하므로 이번 프로젝트를 조금 짧게 준비했습니다.
가상으로 코딩 스터디를 진행한다고 가정하고 신청자들로부터 정해진 양식의 신청 메일을 받았다는 상황을 준비한 이후, 자동화 스크립트를 통해 선착순으로 몇 명은 당첨, 나머지는 탈락되었다는 메일을 자동으로 보내고 당첨자 명단은 엑셀 파일로 만들어서 세미나 당일날 출석부로 활용하도록 해봅니다.
이번 강의를 준비하는데 꼬박 3개월은 걸린 것 같네요. 시간이 많지 않아서 주로 아침 일찍 야금야금 작업하다 보니 목소리가 잠겨서 톤이 왔다갔다 합니다.. ^^;
시중에 찾아보니 10만원을 웃도는 가격으로 강의가 판매되고 있네요. 강의를 전문으로 하시는 분들의 스킬을 제가 감히 따라갈 수는 없겠지만은 그래도 개발하는 입장에서 많은 고민 끝에 커리큘럼을 구상하고 꼭 필요하다고 여겨지는 내용만 뽑았으니, 업무 자동화가 어떤 것인지 감을 잡기에는 충분하리라 생각합니다. 이 영상을 통해 여러분들의 소중한 시간을 보다 가치 있게 사용하실 수 있기를 바래봅니다.
업무 자동화편 영상은 여기서 확인해주시면 되구요 (1개 영상에 모든 게 들어있습니다)
만약 파이썬을 처음 접하시거나 기본 문법을 모르시는 분들은 아래 영상을 먼저 보신 후에 활용편으로 넘어와주시면 됩니다.
<기본편 강의>
코딩 공부를 하시는 분들께 작게나마 도움되길 바라겠습니다 ^^
긴 글 읽어주셔서 감사합니다.
하지만 1도 못알아먹겠.. -_-;;
강추입니다. !! 감사합니다 !!
이번에도 열심히 해 볼께요
감사합니다!
전 uipath 쓰는데 개발도 편하고..ㅎㅎ
일단.. 사내 SAP 등은 잘 적용되고 종종 기관 홈페이지는 좀 못읽긴하지만.. 초보자들도 곧 잘 쓰는 편의성이 가장 좋은것 같습니다 ㅎㅎ
잘볼깨용 ^^
이번 강의도 미리 감사합니다 😊
요즘 메일로 파일공유받는데 참 반복작업이 많다 느껴서요...
좋은 강의 잘보고갑니다!
ERP + 엑셀로 주 업무를 보고 있는데, 아이디어가 막 떠오르네요.
강의 잘 보겠습니다.
감사합니다.
관심 있는 부분이 엑셀 자동화~ 부분인데요.
1. 기존 엑셀 메크로로 메일 회의자료 미리 템플릿 만들어두고 메크로로 sql쿼리쳐서 data 땡겨와서 자동으로 쓱싹 업데이트 + ppt 자료로 출력....하는 정도로 사용 중인데 엑셀 메크로 대비 파이썬 엑셀관련 라이브러리를 사용시 장점...이 어떤 것이 있을까요?
2. 예시가 정형화 된? 루틴 업무를 위주로 얘기를 주셨는데 비정형화된 data? 에 대한 업무 자동화는.... 매우 어렵겠죠? 흠........
회사 drm 정책이 뭐같아서.... 파이썬으로도 자동화가 될지 안될지도 걱정되네요...
푸른님 말씀처럼 "비정형"이라 해도 어느 정도 규칙만 있다면 자동화를 고려해볼수 있습니다. 스크립트를 만들고 샘플 데이터로 정합성 체크를 하면서 시행착오를 조금 겪을수는 있겠지만요.
DRM 은 결재선을 통해 예외 적용을 할 수 있다면 이 방법이 최선이라 생각됩니다.
어느새 저는 교대 졸업을 앞두고, 코딩을 본격적으로 공부하기 시작했습니다 :)
비록 파이썬을 공부하고 있는 중은 아니고, swift로 발을 내딛었지만, 항상 써주시는 글들, 그리고 강좌들 유심히 살펴보고 있습니다.
언젠가는 저도 선생님처럼 다른 이들에게 코딩을 알려주고, 또 도와주는 선한 영향력을 지닌 사람이 될 수 있겠죠?
항상 감사합니다 :)
대충 카이지짤
시간내서 봐야겠어요.
감사합니다