기술(技術)

python 자동화 머신을 준비하기 위한 selenium

▶◀ 2021. 1. 18. 15:52

파이썬이라는 프로그램은 엑셀과 더불어 일선 현장에서 업무의 효율을 높여줄 수 있는 기발한 객체지향프로그램 언어라고 할 수 있다. 다만, 취업을 위한 또는 취업 후에 파이썬을 익힌다는 것은 쉬운일은 아닐 것이다. 이미 많은 분야를 학습할 필요가 있는 상황에서 평소 익숙하지 않은 프로그래밍 언어를 익힌다는 것은 체감되는 준비의 강도가 높아지는 것이라 할 수 있기 때문이다. 하지만, 익숙하지 않다는 이유로 파이썬을 회피하기만 하는 것 또한 결고 정답이라 할 수 없다고 할 수 있다. 이번 글에서는 python 이라는 프로그래밍 언어를 통해 업무의 효율을 높여줄 수 있는 자동화 프로그램의 코딩에 관련되어 이야기를 나눠보도록 하겠다. 우선은 자동화가 필요한 업무를 생각해 볼 필요가 있다. 어떤 프로그램도 그 목적을 분명히 해야 결과물을 얻을 수 있기 때문이기에 무엇보다 자신이 원하는 프로그램에 대한 구체적인 성능을 구상할 필요성이 있다. 다만, 맡은 업무에 따라 필요로하는 기능에는 차이를 보일 수 밖에 없기 때문에 대표적인 사례들을 선정하여 글을 이어가보도록 하겠다. 우선은 다량의 이메일을 보내는 작업에 대해서 생각해 볼 수 있을 것이다. 자신이 상대하고 있는 수많은 클라이언트에게 자사의 새로운 서비스를 홍보한다는 상황이라면 어떤 식으로 자사의 홍보물을 알려줄 수 있을까. 과거에는 우편을 통해 홍보물을 보냈을 것이다. 물론, 현재에도 이러한 형태는 지속되고 있지만 그 수가 많이 줄었다고 할 수 있다. 지금은 스마트시대이기에 홍보물의 형태도 인쇄물에서 전자물의 형태로 전환되어 있음은 굳이 분연설명이 필요한 부분은 아닐 것이다. 홍보물을 보내야하는 사람들이 10명 정도라면 일일이 email을 작성하여 보내는 것에 큰 어려움을 겪지는 않겠지만, 10명 정도의 사람에게 홍보를 하는 것은 큰 효과는 없을 것이 분명하며 회사의 이익도 낮을 것이다. 100명이 넘어가면 일일이 수작업을 통해 메일을 발송하는 것은 쉬운일이 아니게 되는데, 만약 1000명, 10000명이 넘어가면 어떻게 진행할 수 있을까. 홍보물을 보내는 것으로도 엄청난 시간과 노력이 필요하게 될 것이다. 또한, 그 시간에 다른 업무를 볼 수 없게됨에 따라 발생될 수 있는 손실도 계산할 필요성을 가진다. 여기서 활용할 수 있는 것이 프로그램이라고 할 수 있다. 사람과는 달리 컨디션의 영향을 받지 않는 프로그램의 경우 반복되는 작업을 처리하는 것에 특화되어 있다고 할 수 있다. 이메일을 보내기 위해서는 무엇보다 웹브라우저를 조작할 필요성이 존재한다. 자신이 사용하는 이메일 주소의 메인 홈페이지에 접속하여 수신자의 이메일을 넣고 메일 내용을 입력한 후 '발송'을 선택하면 그 사람에게 전자편지가 전달되게 된다. 결과적으로 한사람에게 보내는 이메일에도 몇가지의 단계가 존재하게 되며 그 단계가 일정하게 반복되는 작업이라 할 수 있다. 모든 작업은 웹에서 이루어지므로, 프로그램이 웹을 조작해 앞서 언급한 반복되는 작업을 진행할 수 있다면 업무의 효율은 높아질 수 밖에 없을 것이다. python에는 selenium이라는 모듈이 존재하는데, 이 모듈이 크롬 브라우저를 통해 일정한 조작신호를 주고받을 수 있는 라이브러리라 할 수 있다. 활용용도는 무궁무진하며 이메일을 보내는 단순 반복 작업에도 충분히 그 성능을 발휘할 수 있다. 앞에서 언급한 이메일을 보내는 작업에서 수신자의 이메일 주소값을 변수로 지정한 후, 내용 또한 변수로 지정해 둔다. 그리고 우리가 마우스 혹은 키보드로 조작신호를 보내는 것을 python의 셀레니움을 통해 전달하면 그뿐인 것이다. 자세한 코드들은 다음 기회에 포스팅을 통해 전달해보도록 하겠다. 객체지향 프로그래밍 언어라는 파이썬의 경우 문법을 이해것에 타 언어보다는 쉽다는 것을 알 수 있으며, 기본적인 문법과 다양한 라이브러리들을 이용한다면 보다 다양한 프로그램을 만드는 것에도 도움을 받을 수 있다. 한가지 중요한 부분은 소스코드를 통해 작성된 코드를 굳이 프로그램의 인터페이스를 지정하지 않아도 된다는 것이다. 단순하게 작업 동작만을 필요로 하게된다면 소스코드 그 자체로 실행하여 필요한 부분을 진행하고, 나아가 오류가 발생했을 때, 코드 수정에 용의할 수 있다는 장점이 존재한다. 물론, 개인적인 생각일 뿐이며, 자신에게 가장 알맞은 방식으로 활용하는 것이 가장 좋을 수 있다.