뉴스 트렌드 생활정보 International edition 매체

'노 코딩' RPA 제작, 인포플라 ‘알파카’로 RPA 스크립트 만들어보니[스타트업 리뷰]

입력 | 2023-03-20 19:36:00


[편집자주] 스타트업(start-up)은 특정한 문제를 해결하기 위해서 ‘시작하는’ 기업을 말합니다. 기업의 생사가 걸려있는 만큼 스타트업은 문제에 대한 가장 효율적인 답을 찾으려고 노력합니다. 이들의 고군분투가 낳은 결과가 현재 우리가 향유하는 ‘혁신’이 된 경우가 많습니다.

다만, 대다수의 스타트업이 좋은 기술과 서비스를 보유하고 있음에도 충분히 성장하지 못하고 있습니다. 다양한 원인이 함께 작용한 결과지만, 가장 큰 문제는 좋은 기술이 있어도 이를 사회에 잘 알리지 못한다는 것입니다. 이에 [스타트업리뷰]를 통해 스타트업의 좋은 기술을 접해보고, 이를 어떻게 사용할지 그리고 업계 관계자들의 시선은 어떠한지 시리즈로 전하고자 합니다.

회사원들은 ‘단순하면서 반복되는’ 일을 많이 한다. 가령, 아침마다 증권사 홈페이지에서 증시 데이터를 복사하고 이를 보고서에 정리하는 것처럼 말이다. 혹은 서류의 내용을 키보드로 일일이 쳐가며 PC에 옮겨 적기도 한다. 이러한 단순반복 작업은 매번 비슷한 패턴으로 작업을 해야 해서 상당히 지루하다.

로봇프로세스자동화(RPA)는 이처럼 지겨운 반복작업을 자동화하는 로봇 소프트웨어다. 앞서 소개했던 ‘규칙적인 패턴의 작업’을 자동화한다. 덕분에 회사원들은 ‘상품 기획’ 등 더 중요한 일에 집중할 수 있다.

업무에 RPA를 적용하려면 이를 위한 스크립트를 작성해야 한다. 그래서, RPA 개발언어를 아는 개발자가 필요하다. 대부분의 기업들은 개발자를 고용하는 대신, 외주업체에 스크립트 작성 작업을 맡긴다. 개발자 인건비를 아끼기 위해서다.

다만, 이로 인해 생기는 번거로움이 있다. RPA 스크립트를 새로 만들거나, 기존 스크립트를 변경할 때 외주업체에 작업을 요청해야 한다는 점이다. RPA를 통해서 ‘사이트 로그인-데이터 복사-문서에 붙여넣기’ 작업을 자동화했다고 해보자.

이 작업에 맞춰 스크립트를 작성했더라도, 홈페이지의 로그인 버튼 위치가 조금이라도 조정됐다면 스크립트의 ‘로그인 버튼’ 위칫값도 바꿔줘야 한다. RPA를 도입한 기업은 이처럼 스크립트를 수정하는 일을 생각보다 자주 해야 한다. 그럴 때마다 외주기업에 의존해야 하는 것이다.

IT운영관리 솔루션 기업 인포플라는 이러한 불편을 해소하기 위해서 ‘알파카’를 개발했다. 인포플라의 최인묵 대표는 “알파카는 코딩 작업 없이도 스크립트를 만들 수 있는 RPA 툴이다. 일반 회사원들도 알파카 개발 플랫폼에서 스크립트를 쉽게 작성할 수 있어, 스크립트를 작성하거나 수정할 때 개발자에게 의존하지 않아도 된다”고 설명했다.

최 대표의 설명대로, ‘코딩을 모르는 일반인’도 정말로 알파카 개발 플랫폼에서 스크립트를 쉽게 작성할 수 있을까? 이를 확인하기 위해서 알파카 개발 플랫폼에서 스크립트를 직접 작성해봤다. 민원서류를 발급할 수 있는 ‘정부24’ 홈페이지에서 알파카가 ‘주민등록등본(초본) 발급-인쇄하기’ 작업을 자동화하도록 스크립트를 짰다. 스크립트를 작성하기에 앞서 인포플라 관계자로부터 알파카 개발 플랫폼 사용법에 대한 설명을 들었다.

알파카 개발 플랫폼 기본화면, 출처=IT동아


알파카 개발 플랫폼 왼쪽에는 위 사진처럼 ‘Activities’ 창이 있다. 인포플라가 미리 만들어 놓은 알파카 명령어의 모음이다. 마우스로 명령어 중 하나인 ‘openbrowser(브라우저 창을 연다)’를 하얀 공간에 끌어오면, 알파카가 작동할 때 이 명령어에 맞춰 ‘브라우저(크롬)’를 켠다.

스크립트를 작성할 때 Activities의 명령어들을 하얀 공간에서 연결하면 된다, 출처=IT동아


스크립트를 작성하는 방법은 간단하다. Activities의 명령어들을 하얀 공간에서 연결하면 된다. 알파카는 이렇게 연결된 스크립트의 명령어를 순서대로 따른다.

정부24에서 민원서류를 발급하려면, 알파카가 크롬 브라우저를 연 뒤 ‘정부24’에 접속해야 한다. ‘openbrowser’로 크롬을 열게 하고, ‘GetURL’로 정부 24에 접속하게 했다. ‘GetURL’은 미리 입력해 놓은 URL로 이동하게 하는 명령어다.

상단 오른쪽에 있는 카메라 모양 아이콘을 누르면 알파카가 눌러야 할 영역을 지정할 수 있다, 출처=IT동아


정부24에서 '로그인' 영역을 지정하는 장면, 출처=IT동아


다음으로 연결한 ‘clickBrowserByImage’는 알파카가 특정한 영역을 누르게 하는 명령어다. 명령어를 하얀 공간에 옮긴 뒤 이를 누르면, 상단 오른쪽에 카메라 모양 아이콘이 뜬다. 카메라 아이콘을 선택하면 알파카가 눌러야 할 영역을 지정할 수 있다. 마우스로 정부24 홈페이지의 ‘로그인’ 영역을 지정했다.

로그인 과정에서 알파카가 눌러야 할 영역들, 출처=IT동아



로그인하는 과정까지의 스크립트, 출처=IT동아


이제, 알파카가 정부 24에서 로그인을 하도록 설정해야 한다. 로그인 페이지에서 ‘PC 하드디스크 공동·금융인증서’로 로그인하게끔 했다. 위 사진에서 빨간 네모로 표시한 영역이 알파카가 눌러야 할 곳들이다. 스크립트에 clickBrowserByImage 명령어 세 개를 연결해서 알파카가 1, 2, 3 영역을 찾고 이를 누르도록 했다.

inputBrowserByImage 명령어로 빈칸에 특정 값을 입력하게 할 수 있다, 출처=IT동아


그 뒤에 inputBrowserByImage 명령어를 연결했다. 알파카가 지정 영역에 있는 빈칸에 특정 값을 입력하게 하는 명령어다. 명령어를 누르면 나타나는 설정 창의 Input 칸에 금융인증서 암호를 입력했다. 알파카가 인증서 암호란(빈칸)에 이 값을 입력할 것이다. 추가로, clickBrowserByImage를 스크립트에 연결한 뒤 ‘확인(5)’ 영역을 지정했다.

출처=IT동아


알파카는 로그인을 한 뒤에, 정부 24 기본 페이지에 뜨는 ‘주민등록등본(초본) 발급’ 메뉴를 눌러야 한다. 이를 위해 scrollSearchByImage 명령어를 썼다. 알파카가 홈페이지 스크롤바를 움직이면서 지정한 영역을 찾은 뒤, 누르도록 하는 명령어다.

알파카가 주민등록등본을 발급할 때 눌러야 하는 영역들, 출처=IT동아


scrollSearchByImage를 스크립트에 연결하고 ‘주민등록등본(초본)’ 영역을 지정했다. 이후로, 알파카가 주민등록등본(초본) 발급 페이지에서 ‘발급’ 버튼을 누르도록 clickBrowserByImage를 연결하고, ‘발급’ 메뉴 영역을 지정했다.

민원발급 상세페이지와 문서출력을 할 수 있는 페이지, 출처=IT동아


마지막으로, 주민등록등본(초본)을 인쇄하는 장면, 출처=IT동아


이제 마지막 단계인 ‘등본발급-인쇄’ 자동화 작업이다. 민원 안내 및 신청 페이지에서 ‘발급’을 누르면 민원 발급 상세 페이지가 나온다. 이후로 ‘민원신청하기-문서출력-문서창의 인쇄-인쇄창의 인쇄’를 차례로 선택하면 된다.

완성한 '주민등록등본(초본) 발급' 스크립트, 출처=IT동아


민원 발급 상세 페이지에서 ‘민원신청하기’ 버튼을 찾으려면 스크롤바를 밑으로 내려야 한다. 때문에, scrollSearchByImage 명령어를 연결하고, ‘민원신청하기’ 버튼을 지정했다. 정부24 계정의 개인정보 설정 창에서 집 주소를 미리 입력해 놨기 때문에, 알파카가 등본 발급을 위한 정보를 따로 입력할 필요가 없었다. 마지막으로, clickBrowserByImage 세 개를 연결해 ‘문서출력’, ‘문서창의 인쇄’, ‘인쇄창의 인쇄’ 이 세 영역을 각각 지정했다.

알파카가 주민등록등본을 스스로 인쇄하는 장면, 출처=IT동아


알파카로 스크립트를 만드는 작업은 사용법만 알면 누구나 할 수 있을 정도로 쉬웠다. 알파카 개발 플랫폼에 있는 ‘Activities’ 명령어들을 서로 연결하고, URL 주소나 로그인 정보(비밀번호) 등을 입력하면 끝났다. 이 과정에서 코딩 언어를 사용할 필요가 전혀 없었다.

옥션 페이지의 로그인 메뉴처럼 글자가 작으면 알파카가 이를 인식하지 못하는 경우가 있다, 출처=IT동아


다만, 문제는 알파카의 이미지 인식률이 아직은 그렇게 높지 않다는 점이다. 스크립트를 작성할 때 위 사진의 ‘로그인’처럼 작은 글자를 지정하면, 알파카가 작동 과정에서 글자를 인식하지 못하고 동작을 멈추는 경우가 있었다.

새로운 페이지로 넘어갈 때 지체현상이 발생하면 알파카가 작동을 멈출 수 있다. 이때 지체시간을 미리 입력하면 이러한 문제를 해결할 수 있다, 출처=IT동아


또 다른 아쉬운 점은 새로운 페이지로 넘어가는 작업이 조금 지체되면 알파카가 멈춘다는 것이었다. 물론, 이러한 문제는 pre-delay_time이나 after-delay_time에 지체 시간을 입력하는 방식으로 해결할 수 있었다. pre-delay_time은 새 페이지가 로딩될 때 지체되는 시간을, after-delay_time은 알파카가 작업 하나를 끝낸 후 지체되는 시간을 뜻한다. 새로운 창으로 넘어가는 경우엔 이 두 입력란에 각각 3초 정도를 입력하면 된다.

최인묵 대표는 알파카가 작은 글자를 인식하지 못하는 문제에 대해선 “다른 RPA 제품들은 이미지 인식 기술로 배너나 아이콘을 인식한다. 알파카는 여기서 더 나아가 이미지 속 ‘글자’도 어느 정도 인식할 수 있는 상황이다. 앞으로는 알파카에 문자인식 기술인 OCR(광학문자인식)을 적용함으로써 글자의 인식률도 높일 것”이라고 했다.

최 대표의 설명처럼, RPA가 글자를 글자 그대로 보지 못하면 인식률도 떨어질 수밖에 없다. 알파카에 OCR 기술이 적용되면 지정한 영역에 있는 글자를 ‘글자’로 인식하고, 이를 이해하게 된다. 작은 글자에 대해서도 인식률이 높아진다는 뜻이다.

동아닷컴 IT전문 정연호 기자 (hoho@itdonga.com)