UI 자동화는 사용자가 보는 화면을 통해 자동화를 구현하는 것이다. 사람이 어떤 작업을 할 때 화면에서 클릭, 타이핑, 요소 선택 등 동작을 할텐데, 그 동작을 RPA 로봇이 그대로 수행하는 것이다.(사용자가 웹이나 앱과 상호작용하는 것을 그대로 모방해서 개발됨)
UI자동화는 어플리케이션이나 프로세스의 복잡도와 관계 없이 사람이 일하는 방식 그대로를 구현하기 때문에 언제나 솔루션 개발이 가능하다. (다만 화면 구성이 변경되는 경우 개발을 처음부터 다시 해야한다는 단점)
UI 자동화의 7가지 주요 개념을 통해 UI 자동화가 어떻게 동작하는지 알아보자
액티비티는 로봇이 어떤 작업을 하는지를 의미하며 네 가지 타입이 있다.
Containers : 특정한 앱이나 브라우저를 선택하는 액티비티 - ex) Excel Application Scope, Use Application/Brower 등
Input : 앱 화면에 사용자가 원하는 정보를 입력하는 액티비티 - ex) Click, Type into, Send Hotkey 등
Output : 앱 화면에서 원하는 정보를 추출하는 액티비티 - ex) Get Text, Extract Table data 등
Synchronization(동기화) : 화면에 특정 엘리먼트가 존재하는지 판단하는 액티비티 / 예를 들어 화면에 버튼이 나타나지 않았는데 클릭하라고 명령하면 에러가 발생하기 때문에 사용 - ex) Element Exists 등
액티비티는 로봇이 수행할 동작을 제시한 것이었다면, 액티비티 속성은 어떻게 동작할지를 알려주는 것이다. 액티비티 속성은 액티비티마다 다른데, 공톡적으로 사용되는 속성도 몇 가지 있다.
targeting method는 액티비티 속성의 하위 범주이고, 로봇이 UI 엘리먼트를 특정하는 몇 가지 방법을 제시한다. - 아래 내용은 Selectors in Studio, Descriptors in Studio 코스에서 다룰 예정
※ 다음 링크 참고 (https://blog.naver.com/loveyou_a_a/221945225434)
UI 자동화를 구현하는 중 입력과 출력을 제어하는 것은 중요하다. UIPath는 입력과 출력을 제어하는 몇 가지 방법을 제공하고 있는데, 주요하게 살펴볼 점들은 아래와 같다.
input method는 아래와 같다.
Hardwar Evets
장점 : 모든 어플리케이션과 호환 가능
단점 : 백그라운드에서 동작 x, 사용자는 자동화 동작 중 컴퓨터 사용 x
ex) Clicking, Typing
Send Window Messages
마우스나 키보드를 이용할 때 생기는 window message를 사용해 어플리케이션에 전달하는 방식이며 액티비티 속성에서 on/off 가능
장점 : 백그라운드에서 동작 o, 사용자는 자동화 동작 중 컴퓨터 사용 o
단점 : 모든 어플리케이션이 이 옵션을 제공하는 것은 아님
Simulate
API수준에서 어플리케이션에 input을 보내는 방식으로 수행 속도가 가장 빠름
장점 : 백그라운드에서 동작 o, 사용자는 자동화 동작 중 컴퓨터 사용 o
단점 : API를 사용하는 것이기 때문에 단축키 사용 불가
Chromium API
웹 브라우저를 자동화 할 때 효과적이고 브라우저와 직접 통신을 하기 때문에 신뢰성이 높음
장점 : 백그라운드에서 동작 o, 사용자는 자동화 동작 중 컴퓨터 사용 o
단점 : 모던 디자인 환경에서만 사용 가능
output method는 아래와 같다.
Full Text
default로 지정된 방식
장점 : 장점 : 백그라운드에서 동작 o, 100% 정확도 보장, 숨겨진 텍스트 추출 o
단점 : 가상환경 지원 x
Native
Microsoft API인 GDI로 어플리캐에선과 호환하는 방식
단점 : 백그라운드에서 동작 x, 가상환경 지원 x, 숨겨진 텍스트 추출 x
OCR
이미지 텍스트를 읽어서 출력하는 방식 → 기업마다, 과제마다 읽어야할 문자와 특성이 다르므로 커스텀 OCR 모델을 만들어서 사용함
장점 : 가상환경 지원 o
단점 : 백그라운드에서 동작 x, 수행 속도 매우 느림, 숨겨진 텍스트 추출 x
Records 기능은 자동화를 구현하려는 화면과 동작을 캡쳐하는 기능이다. 개발자의 동작을 자동을 액티비티로 변환한다고 생각하면 된다.
Scraping Wizards는 브라우저, 어플리케이션, 데이터베이스, csv 파일, 엑셀 등 구조화 된 데이터 추출을 지원하는 기능이다.
개체 저장소는 프로젝트 간 공유 가능하며 UI 요소를 캡쳐해서 관리한다. 추후에 다시 알아보도록 하자.
이거도 추후에 알아보도록 하자.
UIPath에는 UI 자동화를 구현하는 두 가지 디자인을 제공한다.
design은 스튜디오 자체에서 바꾸거나 프로젝트 내에서 바꾸는 방법이 있다.
↓ 스튜디오에서 바꾸기 ↓
↓ 프로젝트에서 바꾸기 ↓
두 디자인의 차이점은 아래와 같다.
Activity
기본적으로 각 디자인마다 default로 사용할 수 있는 액티빝티가 다르다.(물론 modern에서 classic 액티비티를, classic에서 modern 액티비티를 볼 수 있음)
modern에서는 모든 액티비티를 컨테이너에 넣어서 사용해야 하는 반면, classic에서는 반드시 컨테이너에 담을 필요는 없다.
Activity properties
targeting method와 액티비티가 다르기 때문에 속성도 약간 다르다.
Targeting method
modern design에서는 UI 엘리먼트 인식을 Selector, fuzzy, image 세 방식 중 가장 신뢰할 수 있는 옵션으로 선택한다.(세 방식을 모두 사용하고 중 제일 좋은 것을 사용함) 또한 modern design에서는 native text 방식도 사용한다.
반면에 classic desugn에서는 selector 방식만 사용하고, 만약 정확도가 떨어지는 경우 fuzzy 방식이나 앵커를 사용해서 정확도를 직접 높여주어야 한다.
Imput method
modern design, classic design 모두 앞서 이야기 했던 input method를 다 사용 한다.(Hardware events, Send window messages, Simulate) 다만 Chromium API 방식은 modern에서만 사용한다.
Recoreds and wizards
두 design의 옵션이 다르다.
Object repository
두 design의 옵션이 다르다.