보통 Main RPA들이 MS SQL DB를 쓰기 때문에 한글 관련한 이슈가 있다.

쿼리 날릴 때 Where 절이든 Value든 한글이 들어가면 인코딩 에러가 날 수 있는데 앞에 대문자 N을 붙이면 해결된다.

 

EX) ~~~ Where [Description] Like N'%검색%'

 

- 소문자로 하면 에러가 난다.

- 유니코드 인코딩을 해서 쿼리를 날린다.

 

작년에 RPA의 흐름에 대한 글을 갈무리하고 1년이 넘어서야 새롭게 글을 쓰게 됐다.

그 사이에 상당히 많은 흐름의 변화가 생겼다.

 

i) AI 도입 OCR이 서서히 도입되는 중

작년만 해도 아직 정식 도입되기에는 시기상조일 수 있다고 썼으나, 지금은 서서히 도입 가능할 정도로 올라왔다. 역시나 UP가 가장 빠르게 진행하고 있는 것으로 보이고 늦어도 올해 말엽부터 시작되는 프로젝트들은 Document Understanding 기술이 들어가는 과제를 최소 하나 이상 끼고 있지 않을까 예상해본다.

 

ii) Portal을 따로 도입하기에는 솔루션의 중앙통제 아키텍쳐들이 사용하기 쉽도록 잘 개선되고 있음

작년엔 포탈에 대해 갈팡질팡하는 곳이 많았다면 지금은 아주 가격이 싸지 않는 이상 안 하겠다는 분위기가 있지 않나 싶다. UP, AA, BW 등등 각 툴들도 관련한 권한 분할을 더 세련되게 개선하고, 일반 User가 접근해 디자인하거나 참여하는 형태의 기능을 도입하고 있다. 포탈 제공 업체 입장들은 관련 Swagger API가 아닌 이상 따로 Custom하는 공수가 꽤나 필요하므로 Swagger API만 적용한 기본 포탈을 일종의 미끼상품(?)처럼 Standard 형태로 무상제공 하는 전략을 보이고 있다.

 

iii) 재택근무 시스템 정비로 인한 본격적인 수요 증가세

재택근무를 경험한 대기업들의 만족도가 생각보다 높아지면서 시스템 연결 관련 단순 작업에 대해 RPA 수요가 커졌다. RPA 개발자 입장에서는 굉장히 반가운 소식이다. 단순히 수요가 늘었다는 측면뿐만 아니라 정말 'RPA가 수행해야 되는 과제'일 확률이 높아졌기 떄문이다. 정합성과 권한 관련한 의심, 절차 정비가 많이 누그러졌고 재택 관련한 시스템 정비가 많이 이뤄졌기 때문에 RPA 수요 증가세가 가파르다. 

iv) 개발 공수 관련 혼잡성은 여전

RPA 비지니스 측면에서 어려운 것이 과제개수 X 난이도 => 공수 산정 얼마나 해야 적당한가이다. 영업 입장에서는 최대한 줄이고 싶겠으나 결국 적당한 선에서 주어져야 하는데, 각 프로젝트 사이트마다, 사용하는 시스템의 안정성마다, 과제의 복잡성에 대한 판단 기준에 따라 실제 공수는 달라진다. (역으로 프로젝트 경험이 없거나 실제 업무를 잘 모를수록 과제 개수만 따지는 경향이 있다.) 그나마 서로 변수를 줄이기 위해선 프로젝트 계약 이전에 구축사에서 공수산정을 위한 인터뷰, 테스트를 진행해보는 것이 베스트이다. 어중간하게 내부 담당자가 대충 산정했다가 1차 구축에서 곤혹을 치르는 경우가 많다.

 

v) 시장 점유율 변화

작년에도 이미 많은 변화가 있었으나 지금은 거의 결정됐다고 봐도 되지않을까 싶다. 결정적인 레퍼런스가 됐던 곳들에서 연이어 전환하고 공공쪽에서 수요가 시작되면서 조정이 되고 있다. 구체적인 부분은 민감한 사안이므로 따로 언급은 안 하겠지만 실제 시장 상황을 알아본 담당자라면 알고 있으리라 생각한다. 개발자 입장에서는 느끼는 것은, 결국 전체 아키텍쳐 수준에서 좋은 것은 각 회사의 개발자들도 알게 된다는 점이다. 영업전략이나 가격 모두 중요하지만 장기적으로는 그런 근본적인 변수들이 영향을 미친다.

RPA툴은 대부분 기본적으로 UI를 자동 분석해 property를 설정한다.

수행 시 해당 Step에서 분석된 Property를 활용해 Element를 찾고, 그 Element에 정한 트리거를 동작시킨다.

어떤 RPA든 이런 형태로 수행한다.

즉, 기본적인 Keyboard, Mouse로 하는 동작들은 컴퓨터에게 정확한 UI 정보를 알려주는 행위라 할 수 있다.

그러므로 개발이 고도화 될수록 기본 동작과 UI에 대한 이해가 필요하다.

 

 

이해를 위해선 다음과 같은 원칙들이 필요하다.

i) Element나 Object가 로드된 후 첫 행위와 두 번째 행위는 같은 행위라도 그 특성은 다를 수도 있다고 생각해야 한다.

ii) 보이지 않는 것이 존재하지 않는 것은 아니다.

iii) Element를 잘 인식하지 못 할 때는 어떤 Window 혹은 Field에 있는가를 파악해야 한다.

 

 

i)는 웹개발에 대한 감각이 있는 사람이라면 자연스럽게 공감할 거라고 생각한다.

같은 Element라도 Checked, Select, Value에 따라 다를 수 있다.

특히 로드된 후 첫 행위 자체가 하위 데이터를 로드하는 트리거인 경우 그 기능이 제대로 수행되기 위해선

트리거 역할의 무언가가 추가 되어야 한다. [가령 드롭다운 형태는 그걸 클릭하는 순간 데이터를 로드하므로 클릭하기 전에는 그 하위에 데이터가 없다. 따라서 클릭을 먼저 해주고 Select Item을 쓴다든가 클릭-클릭으로 선택한다든가 하는 방식으로 개발한다.]

따라서 테스트도 시스템을 새로 RPA로 켜면서 테스트 / 켜진 상태에서 테스트 둘 모두 필요하다.

 

 

ii) 이것도 CSS를 생각하면 간단한 원리다.

보통 로딩바는 항상 존재하지만 로딩인 경우에만 트리거되어 크기가 생긴다.

혹은 데이터가 없을 때 보이는 창을 항상 존재하게 두고 조건에 해당할 때만 Visible로 바꾸는 사이트도 많다.

RPA에서 이런 보이는 것들이 존재하는지 아닌지로 데이터 없음을 구분할 수 없다는 의미이다.

따라서 반대의 조건에서도 혹시나 있다고 판단하는지 체크가 필수적이다.

 

 

iii)는 2번과도 맥락이 다르지 않은데 분명 같은 창으로 보이는데도 사실은 다른 창인 경우가 이에 해당한다.

어떤 앱에서 우클릭을 했다고 하자. 보통 그 우클릭으로 형성되는 선택 리스트는 ListView라는 새로운 타입의 Tag이고

 Title도 'Windows4:""' 같은 식으로 임시형성되는 경우가 많다.

RPA툴이 좋다면 이걸 잘 잡아주지만 이런 경우를 모두 자동으로 잡아주기란 불가능에 가깝다.

정 안 잡히는 경우 RPA 내부에 있는 Record툴로 잡아보길 권한다.

Record를 하면 RPA 툴에 관련없이 항상 Element의 Parent app title을 가져오려고 할 것이기 때문에

필드가 꼬이지 않고 잡히는 경우가 많기 떄문이다.

 

 

 

이외 더 경험적으로 얻을 수 있는 팁들, 툴마다 특성화된 것들이 존재하지만

이 3가지 원칙만 갖고 있어도 Element 관련 엄한 곳에서 오래 헤매지는 않을 거라고 생각한다.

RPA는 여타 다른 개발 분야와는 프로젝트의 결이 많이 다른 편이다.

개발자에게 요구되는 자질도 다른 여타 IT분야에 비해 좀 다르다.

그런 생각에 RPA 잘하는 기준은 무엇인지 새삼 정리해 보기로 했다.

 

다른 분야 대비 특이점 [각 케이스는 평균적으로 경향이 그렇다는 거지 무조건은 아님]

i) 개발자가 직접 작성하도록 요구되는 산출물이 많음

ii) 요구사항이 기능에 국한되지 않고 프로세스 전체 로직에 연관됨

iii) IT를 모르는 현업과 긴밀하게 협업해야 하는 경우가 많음

iv) 업무 프로세스에 대한 이해와 설계가 쥬니어에게도 요구됨

 

먼저 i)는 프로젝트 구성에 따라 조금씩 다르긴 하지만, 대부분 개발과 설계, 과제 정의가 궤를 같이 하기 때문에 일어나는 현상이다. 경우에 따라 컨설턴트나 PM이 붙어서 대신 해주기도 하지만 그렇다 하더라도 개발베이스의 전용 컨설턴트가 아닌 이상 수정사항이 많이 나온다.

ii)는 애초에 프로세스의 실질적인 주인이 현업이기 때문에 나오는 현상이다. 현업이 본인의 프로세스를 잘 이해하고 앞 뒤 영향 파악도 빠르게 할 수 있다면 좋겠지만 대부분 일 못하는 현업은 정리되지 않은 프로세스를 준다. 따라서 요구사항이 생각나면 나오는 경향이 심하며 설계 자체에 영향을 끼치는 케이스가 많다. 경험이 많은 RPA 개발자들은 이를 사전에 체크해서 설계단에서 잡고 나갈 수도 있다.

iii)는 일하면서 많이 답답한 사안 중 하나다. RPA는 커녕 IT도 전혀 모르는 경우가 많아 서로 간략히 소통하기가 쉽지 않다. 어떤 면에선 어느 정도 현업에게 개념을 가르쳐주는 경우도 많기 때문에 교육역량이 있으면 소통하기 훨씬 수월하다.

iv)는 업무 단위에 대한 내용이다. 보통 자바같은 개발의 경우 사이트 중 일부 기능들에 대해서 쥬니어에게 구현하도록 하는데 RPA는 과제단위로 일을 분배하기 때문에 그렇지가 않다. 과제 난이도가 쉬운 게 할당될지는 몰라도 쥬니어도 개발 프레임워크와 프로세스를 잘 이해하여 로직을 설계할 수밖에 없는 구조다. [이런 부분때문에 문과출신에게 접근성이 좋은 편이다.]

 

이런 특징들을 봤을 때 RPA를 잘하는 사람은

i) 프로세스 이해가 빠르고 프레임워크에 빠르게 녹여 설계함

ii) 각 분야별 프로세스 경험이 많음(=도메인 지식이 많음) [ex. 재무, 제조, 생산, 구매, 인사, IT 등]

iii) RPA의 아키텍쳐 이해도가 높음

iv) RPA툴 및 OS, DB에 대한 전반적인 이해가 있음

 

결국 현업과 소통하면서 프로세스 정리하는 능력 + RPA 이해도라는 뻔하지만 뻔하지 않은(?) 말이되긴 하는데

영업이나 컨설팅 역량이 있는데 개발도 좀 해보고 싶은 사람에게 RPA는 꽤 훌륭한 첫걸음이지 않을까 싶다.

[RPA가 쉬워서가 아니라 RPA에서 요구되는 자질을 갖추고 있기 때문]

 

사실 시장에 들어와보면 이런 구조때문에 겪는 애로사항이 많지만 그건 나중에 또 다룰까 한다.

-끝-

최근 강의를 나갔던 김에 RPA의 개념에 대해 개발자 관점에서 정리해본다.

 

RPA란 근본적으로는 매크로다. RPA 개발자들, 컨설턴트들은 이 말을 좋아하지 않을 수 있겠다.

어차피 매크로인데 왜 전사적인 부가가치가 생기는 것일까

답은 그 생산성에 있다.

IT에서 생산성을 높이는 전형적인 방법 중 하나는 패키징을 하는 것이다.

패키징해 재사용 가능한 부품을 우리는 모듈 혹은 라이브러리라 부른다.

자주 쓰이는 매크로 모듈을 모아 좀 더 일반적으로 만든다고 생각해 보자.

모듈을 만드는 것은 어려울 수 있지만 모듈을 사용하는 것은 쉽다.

따라서 IT를 잘 모르는 개인이라도 모듈별 사용법을 익혀 자신의 프로세스를 자동화 할 수 있다.

적어도 네이버 검색 결과를 크롤링하기 위하여 수 십줄을 코딩할 필요는 없다.

이것이 RDA 개념이다.

 

RDA가 발전하고 비용을 투자하면서 기업은 고민하게 된다.

전사적인 관리를 통해 가치를 생산할 수는 없을까.

하나의 업무 프로세스는 비단 한 사람에게만 속하는 영역이 아니며

공공재적 성격을 띄는 모듈(앞서 언급했던 모듈들을 모아 만든 공통모듈)도 많이 존재한다.

가령 그룹웨어나 ERP에 로그인하는 모듈은 가져다 쓰기만 하면 시스템 접근까지 자동화 된다.

즉, 모듈의 모듈을 만들면서 규모의 경제가 일어난다.

이를 효과적으로 관리하기 위해 만들어진 컨트롤 타워 및 인센티브 시스템, CoE 및 운영 체계 등을

포괄해 전사적 자동화 시스템 전반을 RPA라 부른다.

 

++ RPA 관점에서 안정성을 관리하기 위해 구축사에서는 '프레임워크'를 만들어 생산성을 높인다.

++ 이 개념을 보면 결국 기업에서 자동화에 대한 효율을 이끌어내기 위해선 규모를 키워야 하며 이 과정에서 현업들에게도 KPI를 부여하여 스스로 동참하게끔 해야 한다는 결론이 나온다.

기존 'RPA 시장 흐름'을 통해 설명했던 "현행 RPA 사업이 주춤하게 되는 주된 이유"는

 

RPA를 IT 부서에서만 주도하며 SI 프로젝트 형태로 받아들이기 때문이다.

 

SI 프로젝트는 CIO단의 스폰서에서 시작해 특정 목적을 가지고 시스템을 구축한다.

 

또한 과제 발굴이라든가 요구 사항 요청 같은 단계가 없거나 혹은 체계가 잘 잡혀있어 RnR이 명확한 편이다.

 

[상대적인 관점. 고객의 요구 사항은 보통 고객 스스로도 잘 모르는 경우가 많기 때문]

 

 

 

하지만 RPA 프로젝트는 특정 목적을 달성하면 종료되는 형태의 프로젝트가 아니다.

 

다량의 발굴을 통해 업무 정의 및 효율성을 높이고 자동화 영역을 넓혀가면서 규모의 경제를 달성해야 한다.

 

따라서 과제발굴, 컨설팅, 변화관리가 지속적, 체계적으로 필요하며

 

CEO급의 장기적인 거버넌스 청사진이 준비돼야 한다.

 

 

 

 

개인적으로 국내 RPA 사업이 주춤하고 있다고 판단했던 이유는

 

모두가 RPA를 10~20개씩 (혹은 그보다 더 적은 과제 숫자로 한 페이즈씩) 구축 단위로 진행하면서

 

자동화 요구 충족 및 구축 규모의 경제를 빠르게 달성하기 힘든 구조가 고착화 됐다고 봤기 때문이다.

 

RPA 아젠다를 가져오긴 했으나 전사적인 진행을 할만한 컨설팅이 된 곳이 거의 없었다.

 

특히나 IT팀의 제한된 예산은 해당 페이즈에서 임원의 실적채우기급 사이즈로만 활용될 유인이 컸다.

 

 

 

 

 

이런 프레임에서 RPA가 고객사에 들어갔을 때 RPA의 입지는 굉장히 좁다.

 

CoE조직의 내부 PM도 궁극적으로 거버넌스를 어떻게 가져가야 할지 감이 없거나 스폰이 부족하다.

 

구축사에게 완전히 맡기고 현업은 프로세스 인터뷰만 해주는 형태라든가

 

KPI가 잡히지 않은 상태에서 내재화를 위해 내부 교육만 받는 형태는 결과적으로 동력이 떨어진다.

 

 

 

 

그나마 가장 빠르게 반응하고 있는 금융업계에서는 역시 현업 개발 및 발굴이 활발하다.

 

[성공한 케이스인 경우. 은행권에서도 이미 1차를 실패하고 2차를 새로 도전하고 있는 케이스도 있음]

 

이렇게 하기 위해선 내부 KPI로 지정하고 전사적인 스폰을 통해 장기적인 자동화 거버넌스를 가져가야 한다.

 

발굴, 개발, 관리, 실행, 현업 참여, 모니터링 플랫폼 구축 및 CoE, Keyman을 명확히 설정하고 힘을 실어주어야

 

빠르고 효과적인 프로젝트 진행이 가능하다.

 

특히나 RPA 도입 관계자들은 내부 KPI뿐 아니라 RPA의 KPI를 어떻게 잡을지에 대한 고민을 꼭 해야한다.

 

[결국 시스템은 장기적으로 유인에 의해 움직이기 때문이다.]

 

 

 

 

요컨대 하청맡긴 회사에 다 던져놓고 output을 평가, 관리하는 현재의 시장 방식으로는 RPA 벤더든, 구축사든, 고객사든

 

RPA로부터 생기는 막대한 가치를 도출하기 어렵다.

 

결국은 전체적인 거버넌스를 제안하는 프레임이 바뀌어야 한다.

 

[물론 이 과정에서 규모에 따른 거버넌스 차이가 크게 날 수도 있다.

 

하지만 이는 다른 솔루션과 마찬가지로 투자 규모에 따른 자연스러운 시스템 형태 분화라고 볼 수 있다.]

 

 

 

 

=============================================================

 

세부적으로 들어가면 더 복잡한 구조들이 나오지만 큼직한 덩어리로 보자면

 

KPI라는 유인과 C-Level의 예산지원을 통해 진행,

 

현업들은 주인의식 가지고 자동화에 참여[KPI로 반영],

 

CoE는 기존 개념 보다 더 넓은 개념으로 가져가고 시스템간 관리자 커뮤니케이션,

 

Keyman 참여, RPA 개발/운영/변화관리 엔지니어의 자문 및 서비스, 컨설팅을 통한 PI를 통해

 

과제들의 라이프 사이클 관리 정도로 볼 수 있다.

 

 

물론 단번에 이런 구조를 가져가기는 어렵다.

 

PoC와 파일럿을 거쳐 사내 결정권자 설득 및 투자 심의를 거쳐야 하고, RPA 성숙도를 차츰 높여가야 한다.

 

다만 궁극적으로 이런 구조를 보고 진행하느냐 아니냐는 자동화 사업 자체의 운명을 결정한다.

 

 

==================================================================

 

거창하게 썼지만 이런 거버넌스를 이미 제안하고 있는 회사도 있다고 본다.

 

다만 대부분의 회사들은 그저 개발자 몇 명 집어넣는다든가

 

오브젝트 단위가 아닌 딱 유저 스토리 단위로만 그리는 컨설턴트를 쓴다든가

 

하청 관리 형태로 생각하고 정직원들은 최대한 덜 귀찮게 해달라든가

[그럴 수밖에 없다. 해봤자 회사에서 KPI로 잡아주지 않는 게 보통이기 때문]

 

하는 식으로 프로젝트를 진행, 관리하고 있다.

 

 

RPA 도입에 관심이 있다면 좀 더 장기적으로 바라봐야 한다.

 

 

'RPA 종합' 카테고리의 다른 글

RPA 개발자 입장에서 보는 RPA 잘하는 기준  (8) 2021.05.11
RPA의 개념  (2) 2020.10.13
RPA 시장의 두드러지는 흐름  (9) 2020.04.06
move file하는 vbs 코드  (0) 2020.01.03
RPA용 SAP GUI 세팅에 관한 설명  (0) 2019.11.18

※ 본 글은 현황에 대한 글이고 어떻게 추후 고객사, 구축사, 벤더에서 가치창출을 해야할지에 대한 글은 따로 씁니다.

https://jnaul.tistory.com/208 [2021버전]

 

최근 코로나 사태를 차치하고라도

 

RPA 시장은 전반적인 수요가 줄어들고 있다.

 

 

 

i ) 고객의 요구사항은 AI와 접목된 IPA를 요구하는 상황이나

 

실제 AI 리소스는 RPA와 같이 접목시키기엔 한계가 있다.

 

결국 'Cognitive Recognition를 지원하는 AI가 낮은 리소스 하에서도 잘 돌아갈 수 있는가'가 IPA의 핵심인데

 

여전히 머신러닝은 높은 리소스를 요구하며 이를 따라갈만한 RPA와 AI의 조합 솔루션은

 

경제적 상용화 단계가 아니다.

 

특히나 한글의 경우 글로벌 OCR 엔진에서도 인식 역량이 떨어지는 편이기 때문에

 

더더욱 상용화까지는 최소 1년 정도는 남아있다고 생각한다.

 

 

 

 

ii) SAP도 마찬가지지만 국내에서는 특이하게도 기존 솔루션에 대해

 

Customize하는 것을 많이 요구한다.

 

이는 결정권자들이 UI 및 편의성에 많이 신경쓰기 때문으로 보인다.

 

이에 따라 국내 RPA에서는 Portal을 따로 묶어 판매하고 있는 실정이다.

 

 

 

 

iii) 실제 RPA를 구축할 때 가장 어려운 점은 Process 정의이다.

 

현업 및 사이트 PM은 RPA 경험이 별로 없는, 자바 개발자나 컨설턴트 출신이 대부분이다.

 

그러다보니 정작 개발에 들어가서는 현업 인터뷰, PI, 한국식 애자일 등에 고통받기 쉽다.

 

이를 Automation Vendor들도 다 인지하고 있고 이 과정을 줄여 통합하기 위해서

 

각 솔루션들이 Task mining 툴을 제공해 RPA HyperAutomation을 구축하려고 하는 추세다.

 

국내에서는 현업의 device에 쌓인 로깅을 수동으로 분석하는 형태가 많고

 

AA와 Uipath는 각각 Discovery Bot과 Automation Hub라는 별도의 솔루션을 출시 예정이다.

 

사용이 활성화 된다면 프로세스 현업 인터뷰가 짧아질 것으로 기대하지만

 

이 솔루션들에 대한 가격 정책 등이 변수라고 할 수 있다.

 

 

 

 

iv) RPA 메인 수요는 연결 시스템의 부재에서 온다.

 

일반적으로 연결 시스템이 있는 경우 특별히 RPA가 없이도 시스템간 데이터 transfer를 사람이 하지 않아도 된다.

 

그러나 IT 인프라 및 프론트 오피스와 백 오피스는 각각의 솔루션을 활용하는 경우가 많으며

 

이 과정에서 데이터 동기화나 정합성 문제가 발생한다.

 

이런 시스템 다양화는 전문 집단화 되는 최근의 조직에서 필연적이다.

 

[이런 건 통합 시스템이 있으면 되지 않느냐고 반문하기 위해선 IT부서가 막대한 예산을 한번에 타낼 수 있어야 한다.]

 

 

 

 

 

v) RPA를 도입하려는 기업들이 RPA 구축을 쉽게 보고

 

내재화 하려는 경향도 커지고 있다.

 

다만 이 경우 실제 운영 시 예외처리 및 안정화 테스트가 제대로 되지 않아

 

유지보수에 큰 어려움을 느끼게 된다.

 

내재화 추세 가운데 구축사에서는 생산성을 높이고 안정적인 운영을 하기 위해

 

개발 프레임워크를 적극적으로 이용하고 RPA 포탈에 공을 들이고 있다.

 

혹은 RPA 강의 서비스를 판매하는 전략을 펴기도 한다.

 

 

 

 

vi) 최근 몇몇 소스코드형 RPA가 나오고 있다.

 

가격이 기존 솔루션의 30% 수준으로 저렴한 편이지만 생산성이 낮고 유지보수 난이도는 훨씬 더 높다.

 

공수가 길면서 유지보수 비용이 크고, 개발자도 더 구하기 어려운 데다

 

레퍼런스도 많지 않아서 확산은 쉽지 않은 것으로 보인다.

 

이미 고도화된 시장에서 가격만 가지고 승부하기엔 무리가 있다는 평이다.

 

[하지만 중소기업급에서는 초반에 은근 먹히긴 했다고 함. 유지보수가 제대로 될지 의문.]

 

  

'RPA 종합' 카테고리의 다른 글

RPA의 개념  (2) 2020.10.13
RPA 서비스의 변화 방향[2020.07.08]  (2) 2020.06.16
move file하는 vbs 코드  (0) 2020.01.03
RPA용 SAP GUI 세팅에 관한 설명  (0) 2019.11.18
간단한 파일확장자 체크 및 PDF 변환 코드  (0) 2019.11.13

+ Recent posts