안녕하세요~?
제일 좋은 어느 날의 데자뷰, 야삐미얼의 티스토리입니다.
오늘은 저번시간에 파이썬 및 파이참 환경세팅을 완료한 것을 토대로 기본적인 자동화가 어떻게 만들어지는지에 대해 알려드리려고 합니다.
개발에 대한 지식이 없거나 하시는 분도 저처럼 막무가내로 진행하며 부딪혀보면 예상치 못하게 번뜩 이해하게 되고 단순한 동작만으로도 마법같은 자동화 또는 나만의 RPA를 만들어 보실 수 있으실 겁니다. :)
첫째로, 용어 먼저 정리해보겠습니다.
여러분은 자동화와 RPA의 차이점을 아시나요?
의미는 비슷하지만 두개의 단어는 명확한 차이점이 있습니다.
저는 처음에 테스트자동화를 만들기 위해 파이썬을 시도하게 되었고,
여러가지 블로그 및 논문, 사이트 등을 검색하며 관련하여 자주 보이던 단어가 RPA 였습니다.
자동화(Automation) 의미
자동화는 기계나 소프트웨어를 사용하여 작업을 자동으로 수행하는 것을 의미합니다. 여러 작업을 더 효율적으로 처리하기 위해 반복적이고 규칙적인 작업을 자동화하는 것을 목표로 합니다. 중요한건 반복적인 동작을 만들기 위해 일정한 규칙이 있어야 한다는 겁니다. 규칙이 없이 불규칙할 경우 자동화로 반복적인 동작을 만들기가 매우 어려울 수 있습니다..
자동화는 다양한 분야에서 사용되며, 프로그래밍 언어, 스크립트, 도구 등을 활용하여 구현될 수 있습니다. 예를 들면, 일일 보고서 생성, 파일 백업, 데이터 정리 등의 일상에서의 귀찮은 반복적인 작업들을 자동화할 수 있습니다. 자동화는 단순한 작업을 대신 처리하고 사용자의 실수를 줄여 생산성을 향상시키는 데 중점을 둡니다. 왜냐하면 인간은 반복적인 동작으로 집중력이 감소되며 실수를 할 가능성이 현저하게 높아지기 때문이죠. :)
RPA(Robotic Process Automation) 의미
반면에 RPA는 인공지능 및 소프트웨어 로봇을 활용하여 비즈니스 프로세스를 자동화하는 것을 의미합니다. RPA는 기업의 업무 프로세스를 로봇이나 가상의 로봇 소프트웨어를 통해 모방하고 자동화하여 인간의 작업을 대체하는 것을 목표로 합니다. 현재 RPA는 기업에서 루틴하고 반복적인 업무를 처리하거나 다양한 시스템 간의 데이터 통합을 자동화하는 데 사용됩니다. 예를 들면, 고객 데이터 업데이트, 주문 처리, 청구서 생성 등의 업무 프로세스를 RPA를 통해 자동화할 수 있습니다. RPA는 기업의 비용 절감, 정확성 향상, 업무 효율성 향상을 목표로 합니다.
기존의 사람의 업무를 대체하기 위한 목적 때문에 일자리를 잃을까봐 걱정하는 사람들이 많습니다.
하지만 기존의 가치가 떨어지는 반복적인 업무를 대체할 뿐 사람이 필요 없어지는게 아닙니다!
사람이 하고 있는 비지니스 프로세스의 작업을 자동화로 대체하여 기존의 사람은 더 가치 있는 일에 집중할 수 있도록 해주는 것이죠. :)
요약하면, 자동화는 작업을 자동화하여 효율성을 높이고 인간의 실수를 줄이는 것에 초점을 둔 개념입니다.
반면에 RPA는 비즈니스 프로세스 자동화를 통해 인간 작업을 대체하고 비즈니스 효율성을 극대화하는 것에 초점을 둡니다.
따라서, 우리가 지금부터 파이썬을 사용해서 자동화를 구현했을 때 일반적인 동작(ex. 티켓팅, 게임 이벤트 참여, 반복 클릭 등)은 자동화로 구분될 것입니다. 하지만 이 자동화를 실제 회사의 업무에서 동작(ex. 테스트자동화, 메일 발송, 엑셀 자동화)으로 적용을 한다면 RPA로 구분할 수 있을 것입니다. 어떤 주체가 무슨 목적을 가지고 어떠한 결과로 자동화를 만들었는지에 따라 구분되는 것이죠!
그렇다면 둘째로, 셀레니움 라이브러리 설치 및 사용법에 대해 간단하게 소개해드리겠습니다.
1. 셀레니움이란?
웹 자동화의 마법사라고 불리는 셀레니움이란 무엇일까요?
파이썬 셀레니움은 웹 브라우저를 자동으로 제어하고 웹 페이지 상호작용을 자동화하는 데 사용되는 라이브러리입니다. 이 라이브러리는 웹 테스트 자동화, 웹 스크래핑, 웹 애플리케이션 개발 등 다양한 분야에서 활용되며 초보자도 쉽게 사용할 수 있는 체계적인 명령어를 지원하고 있습니다. (왕초보인 저도 부딪쳐보며 느낀 점은 정말로 사용법이 간결하단 거였습니다)
2. 셀레니움 사용 목적
파이썬 셀레니움은 여러 가지 기능을 제공합니다. 그 중 가장 중요한 기능은 웹 브라우저 자동화입니다. 셀레니움은 다양한 웹 브라우저를 제어할 수 있으며, 웹 페이지의 요소를 클릭하고 입력하고 스크롤하는 등의 동작을 자동으로 수행할 수 있습니다. 이를 통해 사용자의 행동을 모방하여 웹 애플리케이션의 테스트나 데이터 수집 작업을 자동화할 수 있습니다. 간단하게 설명드리면 사용자가 동작한 행동을 녹화하여 그대로 재생한다고 이해하시면 될 것 같습니다.
또한, 셀레니움은 웹 페이지의 데이터를 추출하는 웹 스크래핑에도 매우 특화되어 있습니다. 웹 페이지의 HTML 구조를 분석하고 원하는 데이터를 선택하여 가져올 수 있습니다. 이를 통해 웹 사이트에서 필요한 정보를 수집하거나, 자동화된 웹 크롤러를 개발할 수 있습니다. 다양한 크롤링 기능을 활용하여 데이터를 수집 및 가공할 수 있는거죠!
이러한 다양한 기능을 활용하여 여러 브라우저에서 동작하는 웹 자동화 솔루션을 개발할 수 있습니다.
하지만 전체 브라우저를 다 지원하는 것은 아니며, 특정 브라우저에서는 효율성이 떨어진다는 얘기들이 많습니다.
가장 많이 사용되는 Chrome 브라우저로 다음 자동화 포스팅을 진행할 예정입니다.
3. 셀레니움의 기능들
셀레니움은 다양한 기능을 제공하여 웹 자동화 작업을 더욱 효과적으로 수행할 수 있습니다.
각각의 명령어 또한 간단하여 자세한 사용법은 다음 포스팅에서 확인하실 수 있습니다. :)
이번엔 셀레니움 기능들에 대한 개념 및 이해로만 참고해주세요!
①웹 페이지 스크린샷
셀레니움을 사용하여 웹 페이지의 스크린샷을 찍을 수 있습니다. 수행 중 오류가 있는 부분이나 웹페이지가 궁금한 경우에
활용할 수 있으며, 사용자는 스크린샷 데이터를 수집하여 다양하게 활용할 수 있습니다. (디버깅, 데이터수집, 웹 디자인 등)
②웹 페이지 스크롤
웹 페이지가 스크롤되는 경우, 셀레니움을 사용하여 스크롤 작업을 자동화할 수 있습니다. 이를 통해 무한 스크롤 형태의 웹 페이지에서도 원하는 데이터를 모두 수집할 수 있습니다. 스크롤이 필요한 크롤링이나 반응형 페이지에서 활용할 수 있으며 자바스크립트로 간단하게 명령어를 작성할 수 있습니다.
③쿠키 관리
셀레니움을 사용하여 쿠키를 추가, 삭제, 수정할 수 있습니다. 이를 통해 로그인 정보를 유지하거나 웹 사이트의 특정 기능에 접근할 수 있습니다. 다양한 쿠키 정보를 조작하여 셀레니움의 제한된 사이트에 우회하는 방법도 있고, 사용자의 정보를 조작(?)하는 방법도 가능합니다.
④다중 브라우저 지원
셀레니움은 다양한 웹 브라우저를 지원합니다. Chrome, Firefox, Safari, Edge 등 다양한 브라우저에서 동작하는 웹 자동화 솔루션을 개발할 수 있습니다. 다만 위에 말씀드렸듯이 가장 효율적으로 동작하는 브라우저는 현재 Chrome 이며 이번 자동화 포스팅에 대상도 Chrome으로 진행할 예정입니다. :)
⑤웹 드라이버 설정
셀레니움은 각 브라우저에 대한 웹 드라이버를 제공합니다. 이 웹 드라이버를 설정하고 관리하여 원하는 브라우저를 선택하여 사용할 수 있습니다. Chrome으로 예를 들면 현재 사용자가 사용하는 Chrome의 버전에 맞는 Driver 를 설치하여 웹 자동화를 경험하실 수 있습니다.
⑥웹 페이지 대기
웹 페이지가 로딩되거나 특정 요소가 나타날 때까지 대기하는 기능을 제공합니다. 이를 통해 동적인 웹 페이지에서도 정확한 작업을 수행할 수 있습니다. 자세한 사용법은 다음 포스팅에서 진행할 예정이며, 크게 사용법은 3가지로 구분할 수 있습니다. 효율적인 자동화 구현을 위해서는 웹 페이지 대기를 얼마나 효율적으로 할 수 있는지가 관건이 되겠습니다.
⑦다양한 언어 지원
셀레니움은 다양한 프로그래밍 언어에서 사용할 수 있습니다. 파이썬 뿐만 아니라 자바, C#, 루비 등에서도 셀레니움을 활용할 수 있습니다. 간단한 자바스크립트 언어로 다양한 기능의 명령을 수행시킬 수 있는 접착제 같은 셀레니움입니다. :)
마치며
이번 포스팅은 자동화에 대한 개념과 웹자동화에 특화된 셀레니움에 대한 소개를 해드렸는데요.
글로만은 이해하기 어려운 부분들이 많지만, 다음 포스팅에서 진행할 셀레니움 실습을 통해 여러분도
자동화를 간단하게 만들 수 있는 자신감을 가지실 수 있을거라 확신합니다. ^^
간단한 자동화를 통해 여러분의 효율적인 삶을 만들 수 있도록 도움이 되는 블로그가 되겠습니다.
긴 글 읽어주셔서 감사합니다.
- 야삐미얼 -
'파이썬' 카테고리의 다른 글
파이썬으로 구글OTP 인증번호 자동화 해결방법 총정리 (32) | 2023.06.18 |
---|---|
스마트스토어를 자동화 할 때 문제점들 해결방법 총정리 (29) | 2023.06.05 |
파이썬 셀레니움 기본 사용법 (29) | 2023.06.04 |
[나만의 자동화 봇] 파이썬을 활용한 자동화 만들기 - 셀레니움 설치 및 실행 (0) | 2023.05.16 |
[나만의 자동화 봇] 파이썬을 활용한 자동화 만들기 - 설치 및 환경세팅 (0) | 2023.05.15 |
댓글