회사에서 귀찮은 반복업무를 자동화 하기 위해서 알아보게 된 오픈소스 RPA 이야기를 해보고자 한다.
TagUI 란?
TagUI는 데스크톱, 웹, 마우스 및 키포드 작업을 쉽게 자동화하는데 도움이 되는 무료 오픈소스 플랫폼 RPA도구이다.
컴퓨터에서 반복적이고 시간 소모적인 작업을 간단한 TagUI 언어로 동작을 작성하여 자동화한다. 작업은 웹사이트(Chrome 및 Edge에 대한 기본 지원), 데스크톱 앱 또는 명령줄(cmd, shell, python 등)에 대한 작업이 가능하다.
앞서 말했다시피 TagUI는 오픈소스 프로젝트이며, 영구적으로 무료라고 공표하고 있다. (싱가포르 국립 연구 재단의 지원을 받고 있어 안정적인 운영이 가능해 보인다)
설치가 매우 간단하고 Windows, macOS 및 Linux에서 작동한다. 소개 웹사이트에서는 사용이 간편하다고 하지만, 요즘 출시되는 RPA들 대부분이 사용법이 간단하거나 동작 작성 툴이 잘 제공되는 점을 감안하면 특별히 편리하고 할 수는 없다. (하지만 TagUI 역시 간단하기 때문에 Leaning curve가 적다)
장점은 Linux에서 각 사용자 계정으로 수행이 가능하며 Chrome, Edge 등의 웹 브라우저 없이 백그라운드로 실행 가능한 점이다.
UIPath나 파워오토메이션 같은 유료 RPA는 데스크톱 PC를 상시로 켜 놓고 자동화를 동작시켜야 한다는 것과 비교하면 서버에서 실행 할 수 있다는 점은 큰 이점이다.
TagUI 주요 기능
- MS Office 플러그인을 사용하여 Word문서를 RPA 로봇으로 쉽게 생성 가능하고, Excel을 사용하여 RPA 데이터 매개편수를 설정할 수 있다.
- 웹 브라우저를 표시하지 않고 웹 흐름을 실행할 수 있다. (백그라운드 작업)
- 기본적인 마우스, 키보드 동작의 자동화를 지원하며, 웹 브라우저를 통한 자동화 시 DOM, XPath 요소를 활용한 동작을 지원한다.
- 라이브 모드를 지원하여 한 줄씩 단계를 실행하고 즉시 실행 결과를 확인 가능하다. (동작 작성 시 매우 편리)
- 조건문, 반복문(loop)은 당연하게 지원한다.
- 파일 읽기/쓰기, 클립보드 등도 당연하게 지원한다.
- 예외 및 오류처리는 로컬 오류 처리 및 워크플로 오류 처리를 지원
- 로컬 오류처리 : 조건문을 활용한 동작 코드 내 시나리오 분기 처리
- 워크플로 오류처리 : 오류처리 동작 코드를 별도로 작성하여 오류 발생 시 해당 동작이 수행
- 데이터 테이블을 활용하여 서로 다른 입력으로 자동화를 수행 할 수 있다.
- R, Python, Javascripts 등 20개 이상의 언어를 통합 지원한다. (ex. TagUI 언어 내에서 py 등으로 Python 동작을 지원)
- 동작 작성의 편의성을 위해 Chrome Extention, TagUI Writer, Screenshoter&Editor 등의 Editor를 지원한다.
- silkui와 통합해서 웹사이트 및 데스크탑의 시각적 자동화를 지원한다.
(필자의 경우는 Sikuli 사용을 추천하지 않는다. 이유는 커지는 Leaning curve에 비해 이익이 별로 없는 것 같다.)
설치하기
Linux 설치
테스트 환경 정보
HW info : VM Ware CPU : 16 Core Memory : 8GB DISK : 생략 OS version : CentOS Linux release 7.9.2009 JAVA version : OpenJDK 64-Bit Server VM (build 25.345-b01, mixed mode) PHP version : 5.4.16 (cli) (built: Apr 1 2020 04:07:17) |
TagUI는 설치형이 아니므로 다운받아서 실행하면 된다. (사전 필요 패키지 설치는 필요)
1. 사전 필요 패키지 설치 (Java, php)
[hellolcs@server-001]$ yum install java php
- 폐쇄망의 경우 java, php를 다운로드 하여 /etc/profile에 환경변수 등록하여 사용
2. TagUI 다운로드 및 압축 해제
[hellolcs@server-001]$ cd ~/
[hellolcs@server-001]$ wget https://github.com/kelaberetiv/TagUI/releases/download/v6.110.0/TagUI_Linux.zip
[hellolcs@server-001]$ uzip TagUI_Linux.zip
[hellolcs@server-001]$ sudo ln -sf /home/hellolcs/tagui/src/tagui /usr/local/bin/tagui
- 압축 해제는 tagui를 실행할 계정 Home Directory에서 수행하면 된다.
- 봇 실행은 root 계정으로 실행하지 말고 User 계정으로 실행하는 것을 권장한다.
- root 계정으로 압축 해제 시 일반 User 권한으로 실행되지 않으므로 "chown -R hellolcs(계정명) tagui(폴더명)" 명령어를 통해 폴더 및 하위 파일 소유자를 변경해주어야 한다.
- 3번째 명령줄인 링크 생성은 기호에 따라 진행하면 된다. (링크 미 생성 시 tagui 명령를 Full path로 지정해야 한다. ex. /home/hellolcs/tagui/src/tagui test.tag)
Windows 설치하기
1. OpenJDK(JAVA) 설치
- 설치 파일 : https://corretto.aws/downloads/latest/amazon-corretto-8-x64-windows-jdk.msi
- 설치 시 환경 변수 자동으로 추가된다.
2. Chrome 설치
- 설치 파일 : https://www.google.com/chrome/
3. TagUI 다운로드
- 다운로드 경로 : https://github.com/kelaberetiv/TagUI/releases/download/v6.110.0/TagUI_Windows.zip
- 다운로드 → 압축 해제 → "C:\"로 폴더 이동
- 주의사항 : C:\tagui 폴더에 tagui 관련 파일 및 폴더가 있어야 한다.
4. TagUI 환경 변수 추가
- "Windows + R" → "sysdm.cpl ,3" 입력 (띄어쓰기 주의) → Enter
- 하단에 "환경 변수" 클릭
- 시스템 변수 탭 → "Path" 클릭 → 편집(I)
- 새로만들기 → "C:\tagui\src" 입력 → 확인
5. CMD에서 Unicode UTF-8 사용 설정
- cmd 창 실행 후 아래 커맨드를 사용하여 UTF-8로 환경 변경 이후 사용
- cmd 실행 → "chcp 65001" 입력
- 윈도우 CMD 창을 사용 시 한글 입력이 안되는 이슈 존재
- 아래 방법은 타 프로그램에 영향이 있어서 진행하면 안됨 (기록을 위해 남겨둠)
- "
Windows" + R → "intl.cpl" → Enter 관리자 옵션 → 시스템 로컬 변경
"Beta: 세계 언어 지원을 위해 Unicode UTF-8 사용" 체크 → 확인 → 다시시작 → 재부팅
실행하기
Tagui의 스크립트는 ".tag" 확장자를 가지며, 아래와 같이 실행하면 된다.
실행 방법은 Windows, Mac, Linux 모두 동일하다.
#리눅스 실행 방법
[hellolcs@server-001]# tagui ~/tagui/flows/samples/1_google.tag
#윈도우 실행 방법
c:\tagui> tagui c:\tagui\flows\samples\1_google.tag
기본 브라우저는 Chrome이며, [-e] 옵션을 통해 Edge로 실행도 가능하다.