본문 바로가기

KUSITMS 활동/세션 일지

UIPath로 구현하는 RPA 업무 자동화 _ 박예진 교육자님

안녕하세요 큐밀리 여러분!

이번 티스토리 세션 일지를 담당하게 된

한국대학생IT경영학회 대외홍보팀원 홍유진입니다 XD

 

이번 티스토리 일지에서 제가 준비한 주제는 바로!

박예진 교육자님의 UIPath로 구현하는 RPA 업무 자동화입니다.

 

최근, RPA 분야가 주목을 받기 시작하면서

RPA를 도입한 회사들의 업무 속도와 작업의 효율성이 엄청 올라갔다고 해요.

위 사진처럼 현재 엄청나게 많은 기업들이 RPA를 도입하고 있는 추세입니다!

 

그럼 이제 본격적으로 이번 일지에서 다룰 ‘RPA’에 대해 더 자세히 알아보겠습니다!

 


 

* RPA란?

RPA는 ‘Robotic Process Automation(로봇 프로세스 자동화)의 줄임말로,

사람이 컴퓨터로 하는 규칙적이고 반복적인 업무 프로세스를 / 소프트웨어 로봇을 적용하여

자동화하는 기술을 말해요.

 

직장에서의 업무는 주로 메일링 같은 단순 반복 업무, 아이디어 기획 후 보고서 작성 그리고

이를 통해 의사결정을 내리는 창의적 업무로 나눌 수 있는데요!

 

그동안 여러 사람들한테 메일 보낼 때 일일이 데이터 수정하고 메일 주소 고치고..

다들 직장에서 이렇게 단순 노동하며 고생한 순간들 있으시죠? (그럴거라 믿어요..)

근데 여기서 만약 RPA를 도입한다면, 저런 단순 업무들을 소프트웨어 로봇에게 시키고,

남은 시간에 우리는 창의적 업무에 더 투자할 수 있게 됩니다(!!)

 

그래서, 사람들은 RPA‘주 52시간 시대의 해법’이라고 부르기도 한답니다.

노동시간 부족과 작업의 낮은 생산성을 RPA를 도입함으로써 극복하는 것이죠.

주요 기업들이 1990년대에는 ERP, 2000년대 이후에는 BPO에 주력했다면 2016년 이후부터는

RPA를 도입하여 소프트웨어 기반의 비즈니스 프로세스 자동화에 노력을 기울이고 있습니다.

 


 

* RPA의 특징

RPA의 특징으로는

첫 번째, 기존 IT 시스템 변경이 필요하지 않음

두 번째, 코드를 쓰지 않고서도 개발 가능

세 번째, 유저에게 친화적인 인터페이스 제공

네 번째, 규칙 기반의 작업 실행 등등이 있습니다!

코드를 쓰지 않고도 개발을 할 수 있다니!

프로그래밍 지식이 없는 분들도 쉽게 구현할 수 있겠죠?

 


 

* RPA의 장점

RPA의 장점 및 기대효과는

보안성, 생산성, 연속성, 효율성, 확장성, 정확성

이렇게 크게 6가지로 나눌 수 있는데요.

 

RPA는 권한이 부여된 데이터에만 접근하고 모든 활동 기록이 남기 때문에

보안성이 높습니다. 게다가 24시간 가동할 수 있으며, 빠른 처리로 업무에

소요되는 시간과 비용이 절감되는 아주 큰 장점을 가지고 있답니다!

또한, 사람이 직접 입력하는 것이 아닌 프로그램이 대신 처리하는 것이기 때문에

실수와 오류가 적고 정확성이 높다는 장점이 있습니다.

 


 

* RPA 적용분야

이렇게나 많은 곳에서 RPA가 쓰인다니!! 큐밀리 여러분들은 알고 계셨나요?

RPA의 적용분야는 방대하지만, 공통적으로는 데이터를 입력하고 관리하는 작업,

이메일을 보내는 작업, 시스템을 설치하는 작업등이 있습니다.

이 외에 다양한 분야에서도 예를 들어 일정 주기로 들어오는 고지서의 요금 납부를 처리하는

작업 / 허위, 과장광고 등의 검수 작업 및 필수 증빙문서 확인 작업 /

주기적으로 반복되는 업무의 정리 및 취합 기능 작업 등이 활용되고 있습니다. (RPA 최고!)

 


 

* UIPath 살펴보기

이렇게 RPA가 어떤 시스템이고 얼마나 유용한지에 대해 알아본 뒤에,

간단한 실습 몇 가지를 진행해보았는데요!

그 전에, UIPath에 대해 먼저 알아보도록 할게요!

UIPath RPA 주요 솔루션 중 하나인데요.

전 세계 2700개 이상의 기업을 고객으로 둔 글로벌 기업입니다.

(더불어, 현재 RPA 솔루션 중 1위라고 해요!)

 

UiPath는 크게 스튜디오, 오케스트레이터, 로봇 이렇게 세 가지로 구성되어 있습니다.

먼저, 스튜디오는 직접 RPA 개발을 하는 비주얼 편집기입니다.

오케스트레이터는 프로세스를 관리하고 다른 부분들을 원격으로 제어할 수 있는 중앙 집중형 플랫폼입니다.

그리고, 로봇은 개발된 자동화 프로세스를 실행하는 소프트웨어 로봇입니다.

스튜디오를 설치하셨다면 로봇도 자동 설치됐다고 보시면 돼요!

 

UIPath를 실행시키면 맨 첫 번째로 이 화면이 나올텐데요!

기존 로컬 프로젝트를 열 수도 있고, 새로운 프로세스를 개발할 수도 있는 화면입니다.

새로운 프로젝트를 만들고 싶으시면 우측 상단 위 <프로세스>를 더블 클릭해주세요!

그리고 다음 나오는 창에 이름에는 프로세스 명을, 위치에는 저장 경로를 지정해주세요.

 

그럼 이런 화면이 보일텐데요~ 바로 이 화면이 [디자인] 화면입니다.

[디자인] 화면을 통해 새로운 프로세스를 개발할 수 있답니다.

 


 

이번 2차 세션에서는 5가지 실습을 해보았는데요!

1) RPA를 통해 최신 뉴스를 크롤링하여 엑셀로 저장하는 실습

2) 메일의 첨부파일들을 자동으로 다운로드하는 실습

3) PDF를 텍스트로 자동 변환하는 PDF 자동화 실습

4) 웹에 입력이 필요한 정보를 레코딩 기능을 통해 자동 등록하는, 메일 발신 자동화 실습

5) Send SMTP를 활용한 메일 발신 자동화

이렇게 총 5가지 실습을 진행해보았습니다!

 

큐시즘 블로그에서는 너무 짧게 설명한 것 같아,

이번 티스토리는 좀 더 깊고 자세한 내용을 가져왔습니다-!

여러분들이 보면서 직접 따라 하실 수 있을 만큼 상세하게 적으려고 노력했어요 :-) 

그럼 이제 차근차근 RPA 실습 시작해볼까요

이번 일지에서 다룰 실습은 2가지인데요!

 


 

실습 1_ 최신 뉴스를 웹 크롤링하여 엑셀에 저장하는 실습

[프로세스]

1) 크롬으로 네이버 브라우저를 열기

2) 원하는 검색어를 입력

3) 뉴스를 클릭하면 나오는 기사들의 언론사, 제목, 내용 그리고 기사의 URL까지 추출해서 엑셀에 저장

 

프로세스를 시작하기 위해서는 일단 워크플로우를 지정해주어야 합니다.

UiPath에서 제공하는 대표적인 워크플로우 중 시퀀스는 소규모 모듈 단위로 나눌 때 주로 이용하고,

플로우차트는 대규모 프로젝트 진행 시 이용되며 화살표 방향에 따라 자유롭게 바꿀 수 있는 것이 특징입니다.

 

둘 중 무엇을 사용할지는 개발자의 선택사항이지만 저희는 기초 단계니까

전체적인 상황을 한 번에 확인하기 위해서 모든 실습에서 flow chart를 이용하도록 할게요!

 

UiPath 창으로 돌아오셔서 좌측의 액티비티 검색창에 flowchart 검색하시고 드래그 앤 드롭해주세요.

창을 따로 열어놓지 않고 프로세스를 실행해도 정상적으로 작동하게 하기 위해서

브라우저를 여는 액티비티 open browser를 사용하겠습니다. 액티비티 검색창에 open browser를 검색한 후

open browser를 플로우 차트 안으로 끌어오셔서 스타트 노드 아래에 가져다 대시면 보이는 화살표에 놓아주세요.

 

Open browser를 더블클릭해주세요. 우측의 속성들을 조절 함으로써 세부적인 설정을 해줄 수 있습니다.

 

URL을 삽입하는 칸 안에 www.naver.com을 입력해주세요. 참고하셔야 할 사항은

오픈 브라우저의 기본 브라우저 타입은 Internet explorer입니다.

그래서 edgechrome 등의 브라우저를 이용하려면 도구에서 브라우저 확장을 설치해야 합니다.

크롬 브라우저를 이용하기 위해 속성의 입력에서 브라우저 타입을 크롬으로 바꿔주세요

 

혹시 크롬으로 열린 창이 있다면 모두 닫아주시고, 다들 홈의 도구에 가셔서 크롬 확장 설치를 진행해주세요.

저는 이미 설치가 되어 있어 따로 뜨진 않지만, 여러분의 창에서는 UiPath Web Automation이 추가되었다고 뜰 거예요.

이렇게 뜨면 여기서 확장 프로그램 사용을 눌러주시면 됩니다!

 

자 이제 창을 열 때 항상 크기가 최대화 되게 하기 위해서 maximize window 액티비티

open browserdo 안으로 끌어오겠습니다.

이번엔 검색어를 입력하기 위해서 액티비티 검색 창에 type into를 검색한 후

키보드 아래 있는 액티비티를 open browser 아래로 연결해주세요.  Type into를 더블 클릭하면 나오는 [화면에 표시]

누르면 어디에 타이핑을 할지 지정할 수가 있습니다. [화면에 표시]를 누르고 네이버 검색창을 클릭해주세요.

* 이때, 브라우저 창이 열려 있지만 뜨지 않는 경우가 있는데요, F2를 누르면 3초 동안 딜레이가 되기 때문에

F2를 누르고 브라우저 창을 열고 3초가 지난 후에 검색창을 클릭해주시면 됩니다.

 

그리고 아래 칸에는 검색어를 입력하면 되는데요 꼭 큰 따옴표 안으로 묶어주셔야 합니다.

변수가 아닌 모든 텍스트는 큰 따옴표 안에 입력한다고 보시면 됩니다.

저는 코로나를 검색해보도록 하겠습니다.

검색어를 입력했으면 검색을 클릭을 해야겠죠? Flowchart로 돌아가셔서 이번에는 Click을 검색하신 후

엘리먼트 마우스 아래의 Click 액티비티를 type into 아래로 연결해주세요.

Click을 더블 클릭하셔서 화면에 표시를 누르신 후 네이버의 돋보기를 클릭해주세요!!

 

코로나가 검색된 창까지 오셨으면 이제 뉴스를 클릭해야겠죠?

방금 사용한 click 액티비티를 한번 더 사용하도록 하겠습니다. Click을 한번 더 가져와서 뉴스를 클릭해주세요~

 

자 이제 검색했다면, 데이터 스크래핑을 사용하여 뉴스를 크롤링해보도록 하겠습니다!

 

*  데이터 스크래핑이란?

데이터 스크래핑이란, 구조화 된 데이터 테이블 형태의 데이터를 가져올 때 사용하는 기술인데요.

네이버 기사의 경우 모든 글의 언론사 위치, 제목 위치, 내용의 위치가 동일하므로

데이터 스크래핑을 이용해서 가져올 수가 있습니다.

 

UiPath 상단의 데이터 스크래핑을 클릭하면 UI 추출 마법사가 뜨고 값을 선택하라고 나옵니다.


 

자 그럼, 맨 먼저 언론사를 추출해볼게요. 다음을 누르셔서 가장 상위에 있는 언론사를 누르고,

패턴을 만들기 위해서 두 번째 엘리먼트를 선택하라는 창이 나오면 두번째에 있는 언론사를 눌러주시면 됩니다.

 

그러면 패턴이 잡혀서 이런 창이 뜨게 되고 텍스트 열 이름을 언론사로 바꿔주세요.

다음을 클릭해주세요. 그러면 해당 페이지에 있는 언론사가 모두 뜨게 됩니다.

 

다음은 제목과 URL을 가져와볼게요.

다음 - 상호 연결된 데이터 추출을 눌러주시고 방금 한 것처럼 가장 상위의 제목 클릭, 다음 클릭,

두번째 제목을 클릭해주세요. 제목에 걸려있는 링크도 함께 추출하기 위해서 URL 추출에 체크를 해 주시고

열 이름을 URL로 바꿔주세요. 다음을 눌러주시면 제목과 URL까지 포함된 데이터가 모이게 됩니다.

 

마지막으로 화면에 뜨는 기사 내용을 가져오겠습니다. 한번 더 상호 연결된 데이터 추출을 클릭하시고 첫 기사 내용

그리고 두 번째 기사 내용을 클릭해주시고 열 이름을 내용으로 바꾼 후 다음을 눌러주세요.

 

최대 결과수는 100개로 해도 괜찮지만 실습 과정이니까 30개로 설정하겠습니다.

만약 수의 제한 없이 모든 데이터를 크롤링하고 싶으시다면 0으로 설정하시면 됩니다.

 

완료를 누르면 데이터가 여러 페이지에 걸쳐있냐고 나와요. 기사를 보시면 여러 페이지에 걸쳐 있기 때문에,

예를 누르고 다음 페이지로 넘어갈 수 있도록 화살표를 클릭해주시면 됩니다.

 

이렇게 하면 데이터 스크래핑이 끝난 건데 Extract Structured Data안의 속성에 가보면 출력 부분에 에러가 났어요.

그 이유는 변수명에 엔터키가 포함되어 있기 때문입니다. 그래서 변수 패널에 가셔서 이름을 더블 클릭하시고

이 변수명을 ExtractDT로 바꿔주시면 됩니다. Extract Structured Data의 출력도 ExtractDT로 바꿔주세요.

방금 데이터 스크래핑을 해서 담아온 정보를 ExtractDT라는 변수 안에 저장을 하겠다는 뜻입니다.

그리고 변수 패널에서 Exract DT의 범위를 flowchart로 바꾸어주세요.

 

이제 가져온 정보를 엑셀에 저장을 해야겠죠?

우선 엑셀을 실행시켜서 새 파일을 여시고 바탕화면에 파일을 실습 1이라고 저장하신 후, 다시 UiPath flowchart로 돌아

와서 액티비티 창에 통합 문서 아래에 있는 Write Range을 끌어다가 데이터 스크래핑 아래로 넣어주세요.

방금 스크래핑해서 가져온 데이터 테이블 형태의 기사의 정보들을 엑셀파일에 덮어쓰기 하는 액티비티입니다.

 

원래는 excel 아래에 있는 write range를 사용해야 하지만 그러면 엑셀 정품 인증이 안되었을 경우, 계속 오류가 나므로

오늘은 통합 문서 아래에 있는 Write Range를 더블 클릭하셔서 방금 저장한 엑셀 파일의 경로를 지정해주면 됩니다.

저희가 출력을 ExtractDT로 저장했기 때문에 Write range의 데이터테이블 안에도 같은 변수를 적어주어야

엑셀 안에 해당 정보를 저장하게 됩니다. Sheet1의 A1부터 덮어쓰기를 하겠다는 의미입니다.

속성의 Add headers에도 체크해주세요. Add headers는 저희가 아까 언론사, 제목, 내용과 같이 지정한

칼럼 명도 함께 저장하게 하는 속성입니다.

 

flowchart

Flowchart로 돌아오셔서 실행해보시면, 지정한 검색 결과수만큼 엑셀 파일에 저장되어 있는 것을 확인할 수 있습니다.

 

[실행 후 엑셀 파일에 크롤링 한 정보들이 자동 저장된 화면]

 

이렇게 첫 번째 실습을 해보았는데요!

저도 엑셀에 저렇게 기사들이 쫘르륵 크롤링된 걸 보니까 괜스레 뿌듯하고 그러더라고요 ㅎ_

다 교육자님이 설명을 잘해주신 덕분이겠죠?!

 

그럼 이어서 다음 실습으로 넘어가 보도록 할게요!

 


 

실습 5_Send SMTP를 이용한 메일 발신 자동화

이번에는 Send SMTP를 사용하여 엑셀에 저장된 정보를 가공하여 메일을 자동으로 보낼 수 있는

Automail 프로세스를 개발해보도록 하겠습니다.

 

실제 업무에 사용될 때는 Name, Address, Result가 모두 다른 값이겠죠?

실습에서는 편의를 위해 Address의 값을 자신의 네이버 메일로 설정하겠습니다.

 

이렇게 첫 열에는 수신자의 이름과 두 번째 열에는 메일 주소, 세번째 열에는 지원 결과가 정리되어 있는 엑셀 파일이

있을 때, 저희는 메일을 Roy에게는 [님 안녕하세요. 지원결과를 알려드립니다. ]라는 제목으로 [ 합격입니다 ]

/  Roxy에게는 [ Roxy님 안녕하세요. 지원결과를 알려드립니다.]라는 제목으로 [불합격입니다]라고 보겠습니다.

 

우선 이메일 자동화를 위해서는 몇 가지 설정이 필요합니다.

우선 크롬으로 네이버에 로그인을  하신 후 메일함 관리로 들어가 주세요.

두 번째 줄의 POP3/IMAP 설정으로 들어가 주세요.

 

POP3/SMTP 설정은 사용함 / 기존에 받은 메일을 포함하여 받음 / POP3로 읽어간 메일을 읽음 표시 / 메일 프로그램

설정에 따라 저장 또는 삭제 / POP3로 읽어갈 때 외부 메일을 포함하지 않음으로 설정 후 확인을 눌러주세요.

 

UiPath를 여시고 메일 계정에 접근하기 위해 get password를 가져와주세요.

속성의 [결과]를 마우스로 클릭하신 후 ctrl K 하셔서 password라는 이름의 변수를 생성해주세요.

그리고 [암호]에 진짜 비밀번호를 입력해주세요. password라는 변수 안에 자신의 진짜 비밀번호가 담겨있는 것입니다.

이렇게 설정을 해 두면 암호가 유출될 보안의 위험성을 줄일 수 있습니다.

 

이번에는 엑셀 파일에 있는 정보를 가져와야 하므로,

Flowchart로 돌아오셔서 Excel application scope를 가져와 주신 후, 방금 새로 만든 엑셀 파일을 지정해주세요.

 

그 안에 Excel 하위에 있는 Read RangeExcel application scope의 실행 안으로 가져와주세요.

Add headers에 체크되어 있는지 확인 가져온 값을 저장할 출력 변수를 생성해야 하므로,

Reag range의 속성의 출력에서 ctrl K 하신 후 mail을 적고 엔터 쳐주세요.

 

메일을 보내는 작업을 반복적으로 수행해야 하므로, for each row read range 밑으로 가져와주세요.

VB 식 입력란에는 방금 생성한 출력변수 mail을 적어주세요. Mail의 각 열의 값을 순차적으로 가져온다는 의미입니다.

 

액티비티 검색창에서 mail을 검색하신 후, Send SMTP mail message for each rowBody 안으로 가져와주세요.

 

Send SMTP의 속성을 설정해주겠습니다. 우선 로그온의 [Email]에 자신의 네이버 계정을 적어주세요.

yejinpark99@naver.com [암호]에는 아까 생성한 변수 password를 입력해주세요.

호스트의 port에는 587, server에는 “smtp.naver.com”을 입력해주세요.

 

마지막으로 중요한 부분만 남았습니다. 바로 누구에게, 어떤 제목으로 어떤 내용을 보낼지를 지정해주는 란입니다.

모두에게 같은 제목으로 같은 내용을 보내는 것이 아니라, 다른 제목으로 다른 내용을 보내는 것이기 때문에

엑셀에서 특정 값을 가져올 수 있는 문법이 필요합니다.

그래서! 우선 수신자를 입력하는 To에는 엑셀 파일에서 정리되어 있는 있는 메일 주소가 들어가야겠죠?

To에는 row.Item("Address").ToString을 입력해주세요.

엑셀에서 읽은 값 중 Address라고 하는 헤더의 열이 이메일 주소이기 때문에 Address로 시작하는 Row의 값을 문자열로

바꾸어서 입력하는 겁니다.와 item 그리고 ToString 사이에는 마침표가 입력되어 있어

차례대로 내려가며 지정하게 됩니다.

 

제목에는 row.Item("Name").ToString+"님, 안녕하세요. 지원결과를 알려드립니다." ,

Bodyrow.Item("Name").ToString+"님 지원을 감사드립니다."+row.Item("Result").ToString+"입니다." 을 입력!

같은 맥락으로 각각 NameResult로 시작하는 Row 값을 문자열로 바꾸어 입력하는 것이겠죠?

또 변수와 텍스트는 큰 따옴표를 기준으로 구분되기 때문에 위와 같이 써야 합니다.

 실행해보신 후 네이버 받은 메일함으로 들어가셔서 메일이 정상적으로 발송되었는지 확인해보세요!

 

참고로 위와 같이 파일 첨부를 누른 후,

값에 보내고 싶은 파일의 절대 경로를 입력하면 파일도 함께 첨부하여 보낼 수 있답니다!

 

 

이렇게 메일이 도착하는거! 다들 확인하셨나요?

오늘은 이렇게 총 2가지 실습에 대해 설명드렸는데요!

이제 RPA가 업무환경에 있어서 얼마나 혁신적이고 효율적인 시스템인지 다들 느끼셨죠?ㅎ_ㅎ

 

이렇게 세세하게 설명해준 멋진 박예진 교육자님께 감사의 인사드리며!

RPA 세션 일지는 이렇게 마무리하도록 하겠습니다 :)

모두 모두에게 유익한 일지였길 바라면서.. 저는 다음 일지로 또 찾아올게요!

다들 안녕 (~˘˘)~