본문 바로가기

RPA(UI Vison)/UI Vision 사용법

[RPA] UI.Vision을 사용한 국세청 휴폐업 조회 자동화

반응형

UI.Vision을 사용한 업무 자동화

최근 RPA 업무가 활성화되면서 일반 상용툴 외에 무료로 배포되는 툴들도 기능들이 상당히 좋아지고 있다. 특히, 웹브라우저를 통한 업무와 관련해서는 Web automation 툴이 굉장히 많은데, 그 중에서도 가장 많이 이용하는 것은 단연 Selenium이다. 

 

그리고 Selenium은 크롬 브라우저에서 자동화 작업을 만들고 실행할 수 있는 Selenium IDE라는 크롬 확장 프로그램을 제공하는데, 사실 이 확장 프로그램만으로도 웬만한 인터넷과 관련된 업무 자동화가 가능하다. 

 

그리고 Selenium IDE와 호환되면서 좀더 기능이 추가된 UI.Vision이라는 확장 프로그램도 무료로 제공되고 있는데, 이미지 기반 자동화 기능을 제공하고, 제한적으로 OCR 기능도 제공하기 때문에 굉장히 활용도가 높다. 그리고 CSV 파일을 이용한 데이터 입출력을 제공하기 때문에 결과물 관리도 용이한 장점이 있다.UI.Vision RPA 확장 프로그램 설치

 

Ui.Vision을 설치하면 아래와 같이 크롬 툴바에 U모양의 아이콘이 생성되고 이를 실행하면 작업을 만들거나 실행할 수 있다.

 

그러면 UI.Vision으로 어떤 걸 할수 있을까. 창의력만 있으면 뭐든지 가능하지 않을까 생각된다. 이미지 인식 기능을 제공하기 때문에 간편결제 키패드를 누르는 것도 자동화할 수 있고, 인터넷을 돌아다니면서 특정 이미지를 수집하는 것도 가능하다. 정규식을 지원하기 때문에 페이지에서 이메일 같은 특정 데이터만 추출하는 것도 가능하고, Javascript 코드를 실행해서 보다 복잡한 작업을 처리하는 것도 가능하다. 

(다만, 어떤 툴이든 러닝커브가 있기 때문에 나같이 다른 언어가 더 익숙한 사람들은 작업할 때 현타가 온다.)

 

그래서 간단하게 Ui.Vision으로 국세청 휴폐업 조회를 자동화하는 스크립트를 만들어 보았다.

 

국세청 휴폐업 조회

우선 동작하는 영상을 보자.

 

 

국세청 휴폐업조회 홈페이지에 접속하고 CSV에 저장된 사업자번호를 입력 후 결과값을 CSV에 저장하는 작업을 반복하는 영상이다. 그리고 위의 작업을 수행하도록 하는 스크립트는 아래와 같다. (코드 하나하나를 설명하기에는 어렵고 자세한 내용은 ui.vision 홈페이지에 있는 메뉴얼과 예제를 통해서 확인이 가능하다.)

 

{
  "Name": "NTS",
  "CreationDate": "2020-9-6",
  "Commands": [
    {
      "Command": "open",
      "Target": "https://teht.hometax.go.kr/websquare/websquare.html?w2xPath=/ui/ab/a/a/UTEABAAA13.xml",
      "Value": ""
    },
    {
      "Command": "csvReadArray",
      "Target": "bizno.csv",
      "Value": "bizno"
    },
    {
      "Command": "store",
      "Target": "0",
      "Value": "status"
    },
    {
      "Command": "echo",
      "Target": "${!csvReadMaxRow}",
      "Value": ""
    },
    {
      "Command": "while_v2",
      "Target": "${status} < ${!csvReadMaxRow}",
      "Value": ""
    },
    {
      "Command": "type",
      "Target": "id=bsno",
      "Value": "${bizno[${status}][0]}"
    },
    {
      "Command": "click",
      "Target": "id=trigger5",
      "Value": ""
    },
    {
      "Command": "waitForElementVisible",
      "Target": "id=grid2_cell_0_1",
      "Value": ""
    },
    {
      "Command": "storeText",
      "Target": "xpath=//*[@id=\"grid2_cell_0_1\"]/nobr",
      "Value": "result"
    },
    {
      "Command": "echo",
      "Target": "${bizno[${status}][0]} : ${result}",
      "Value": ""
    },
    {
      "Command": "store",
      "Target": "${bizno[${status}][0]}",
      "Value": "!csvLine"
    },
    {
      "Command": "store",
      "Target": "${result}",
      "Value": "!csvLine"
    },
    {
      "Command": "csvSave",
      "Target": "result.csv",
      "Value": ""
    },
    {
      "Command": "executeScript",
      "Target": "return Number(${status})+1",
      "Value": "status"
    },
    {
      "Command": "pause",
      "Target": "5000",
      "Value": ""
    },
    {
      "Command": "end",
      "Target": "",
      "Value": ""
    }
  ]
}

 

장점과 단점

모든 작업들은 JSON 형식으로 저장되는데, 단지 이것만 있으면 어떤 환경에서라도 크롬과 확장 프로그램 설치만으로 업무 자동화를 할수가 있다. 때문에 자동화 스크립트를 다른 사람들한테 큰 걱정없이 배포할 수 있고, 사용하는 사람도 필요하면 스크립트를 수정해서 곧바로 사용이 가능하다. (이부분은 사실 호불호가 있을 듯 하다) 그리고 툴에서 제공하는 화면 내 이미지 인식 기능(Vision)은 매우매우 강력하다. (때문에 툴의 이름을 Ui.Vision으로 하지 않았을까).

 

다만, 복잡한 업무를 처리하는 경우나 이미 다른 코딩 언어에 익숙해진 사람들한테는 다소 불편하게 느껴질 수 있는 부분도 분명하게 있다. (데이터 입출력, win32api에 대한 제한적인 접근 등)

 

그럼에도 작업 녹화 기능을 제공하고, 화면을 직접 보면서 작업이 가능하기 때문에 파이썬이나 다른 코딩언어가 익숙하지 않은 사람들한테는 RPA 업무에 입문하기에 굉장히 좋은 툴이라고 생각한다. 

반응형