진행한 프로젝트

UIPATH를 활용한 주식 정보 알아보기.

병통 2021. 7. 1. 18:20

UIPATH 구조를 사용하여
내가 관심있는 주식 정보에 대한 정보를 이메일로 받아볼 수 있게 구성해보았습니다.

 

먼저 UIPATH 프로그램을 간단히 설명한다면

 

 UIPATH는 RPA(Robotic Process Automation)
즉 ,자동화 시스탬입니다.

메소드를 짜놓으면 그 메소드에 맞춰
자동으로 검색 과 크롤링까지 해주는 프로그램입니다.

 

 

 

먼저 프로세스를 만들기 이전에 내가 원하는 주식 정보를 알아야 합니다.
수집된 정보는 UIPATH 내에서 사용하기 위해 엑셀에 저장하였습니다.

내가 찾고자하는 주식 정보를 STOCK시트에 저장한 모습

우리는 stock시트에 저장된 주식코드와 이름을 활용하여 저장과 검색을 용이하게 만들것입니다.

검색하기로 선정한 웹 페이지는 모바일 네이버 증권 홈페이지입니다.
모바일 버전이 좀 더 간편하게 데이터를 수집할 수 있기에 선정하였습니다.

모바일 네이버 증권 홈페이지

상단의 검색창에 주식코드를 입력하여 검색했으며
반복문과 같은 모듈을 사용하여 순차적으로 모두 검색되게 만들것입니다.

 

제작한 UIPATH 명령어 구조

제작한 모듈을 실행하면 주식 정보 수집을 시작합니다.
수집된 주식 정보는 엑셀 파일로 저장되어 자세한 수치를 확인할 수 있으며
이미지를 함께 저장하여 가독성이 확보되고
이를 메일로 전송하여 관심주식을 간편하게 확인할 수 있는 프로세스를 구축하였습니다.

 

첫번쨰 모듈인 Exccel Allpication Scope 모듈의 과정

첫번째 모듈인 Exccel Allpication Scope입니다.
엑셀에 미리 저장해놓은 관심 주식에 대한 시트 정보를 S_Master 변수에 저장하는 과정입니다.
저희는 stock 시트에 우리가 찾기로 정한 주식의 코드와 이름을 저장하였고
이를
S_Master 변수에 저장하였습니다.

 

그다음 두번째 모듈인 For Each Row in Data Table입니다.
이번 프로젝트의 가장!! 중요한 모듈입니다.

두번째 모듈인 For Each Row in Data Table

제일 처음 실행되는 Get Row Item 모듈은 S_Master 변수를 이용하여 
주식 코드와 주식 이름을 저장하는 과정입니다.

앞서 보이는 CurrenRow는 현재열을 의미하기에 
현재열부터 시작하겠다 라고 이해하면 편하실 것 같습니다.

변수S_code와 S_name을 만드는 과정

그리고 주식의 코드가 적혀있는 code열을 S_code변수에 저장하고
주식의 이름이 적혀있는 name열을 S_name변수에 저장하였습니다.

 

Open Browser 모듈 실행 후 이어지는 일련의 과정

이어지는 모듈은 오픈 브라우저로 우리가 원하고자하는 모바일 네이버 금융 홈페이지를 열어줍니다.

딜레이 모듈을 넣어준 이유는 인터넷 창에 검색 창이 나오는 시간이 조금 필요하기에 넣어주었습니다.
바로 바로 실행되야하는 모듈의 특성상 조금이라도 늦게 로딩이 되면 오류가 발생하였기에
오류를 최소화하기 위해서 인터넷과 관련된 모듈에서 로딩이 필요할것 같은 경우에는
딜레이 모듈을 추가하였습니다
.

멕시미즈 윈도우 모듈을 이용하여 인터넷 창을 최대화 해주었습니다.

 

 

Set Text 모듈을 사용하여 자동으로 검색 라벨을 클릭하고

앞서 저장했던 변수 S_code의
첫번째 값을
입력하고
검색 버튼을 클릭하게 됩니다.

 

 

 

Flowchart 모듈을 사용하여 이미지 저장 과정 만들기

다음은 이미지를 저장하고 시세 호가 등의 정보를 저장하기 위해
시세 호가가 적혀있는 페이지로 가기위해 클릭하는 모듈이 포함되어 있습니다
.
먼저 이미지를 저장하기 위한 플로우 차트를 자세히 보시면

 

사이트 내에 있는 이미지 자체를 저장하여 바탕화면에 저장하는 과정입니다.
Flow Decision모듈 sequence모듈을 이용하여 S_name별로 따로 구성하였습니다.

각각의 Flow Decision모듈의 조건에는
"S_name = 한솔홈데코" <- 이런식으로 구성하였습니다 

총 6개의 주식 이름을 구분해야하기에 조건문과 같은 Flow Decision모듈을 5개 사용하여 구분하였습니다.

 

 

 

앞서 S_name별로 따로 구성하여
sequence모듈을 사용한 이유는 
이미지를 우클릭하고
다른 이름으로 저장을 클릭해야 하는데
열려 있는 페이지의 그래프와
클릭 모듈 안에 지정된 이미지가
어느정도 관련도가 있어야
프로그램이
인식하고 우클릭이 가능하기에
다 따로따로 구성하였습니다.

 

 

그리고 꼭 click모듈 옵션에서 우클릭과 함께 
Alter If Disabled에 체크를 해주셔야 작동합니다 !
이미지를 찾지 못했을때(비활성화됬을때)
화면 좌표로 이미지를 찾고 클릭이 실행되는 것이기에
꼭 체크를 해야합니다.

 

이미지 저장 과정

저장할 이미지 이름은 S_name변수를 기입함으로써
실행되는 모듈에 맞는 이미지 이름을 저장할 수 있었습니다.

 

 

 

 

시세,호가 창으로 이동하여 주식 정보를 저장하는 과정

 

데이터 스크래핑으로 정보를 저장하는 순서 입니다.
저장된 자료는 S_data 변수에 저장하였습니다.

 

 

 

 

 

인터넷 창을 닫고 저장한 변수를 바탕으로 정보를 저장하는 과정

 

Send Hot Key를 이용하여 크롬창을 닫는 단축키인 ctrl + W 를 눌러 창을 닫습니다.

그리고 Exccel Allpication Scope 실행하여
초반에 만들어준 주식정보수집 엑셀 파일에 데이터를 저장해줍니다
.

엑셀 시트 이름은 S_name 변수로 저장되며,
엑셀의 A1 칸에는 데이터 스크래핑으로 저장한
S_data가 저장되게 됩니다.

마지막으로 S_data의 자료를 클리어 데이터 테이블 모듈로 삭제합니다.

이 일련의 과정은 두번째로 실행한 모듈인 
For Each Row in Data Table 모듈의 효과로 인해 
저장했던 S_code의 처음부터 끝까지 실행되기에
총 6번이 실행되게 구성하였습니다.

 

두번째 모듈까지 만들어진 과정을 담은 동영상

 

만들어진 모듈의 실행 과정입니다.

같은 수집 내용이 6번 반복되기에 
첫번째 과정만 나오게끔 편집하였습니다.
이미지는 바탕화면에 저장되고
마지막 세번째 모듈을 통해 이미지와 엑셀 파일을 메일로 전송하게 됩니다.

 

 

세번쨰 모듈인 Send Out Look Mail Message 모듈의 실행을 통해 네이버 메일에 전송된 모습

Send Out Look Mail Message 모듈을 통해
우리가 저장한 모듈을 지정한 메일로 보내게끔 구성하였습니다.


단 ! 
이 모듈을 사용하여 메일을 보내려면
MS Office에서 지원하는 
!!!Outlook에 로그인이 되어 있어야 사용이 가능합니다 !!!

 

도착한 메일 내용물

도착한 메일을 확인해보면 이미지와 함께 엑셀이 첨부되어있는 모습을 볼 수 있습니다. 
이미지를 통해 대략적인 동향을 파악하고
그 중 자세히 보고싶은 내용을 
엑셀 파일을 통해 살펴 보게끔 메일 내용을 구성하였습니다. 

 

이로써 자동화 시스템인 UIPATH를 활용한 주식 정보 수집 및 메일 보내기가 완료되었습니다!

사실 이 프로그램을 구성하면서
'홈페이지에 들어가서 보면 되는걸 굳이 이러한 방법으로 살펴봐야하는가? '
가 가장 큰 의문이였지만,
'내가 누군가에게 서비스를 제공하는데 이러한 일련의 과정이 자동화가 되어있다면?'
이라는 생각을 한다면
이러한 방법은 4차 산업혁명을 살아가는 우리에게 꼭 필요한 방법이고 방향이라 생각합니다.

프로젝트를 진행하며 내가 가진 능력을 더 높일 수 도 있지만
방법을 처리하고 완료해나가는 과정에서 견문을 좀 더 넓일 수 있었던 
좋은 과정이였다고 생각합니다.

여러분에게도 도움이 되셨으면 좋겠습니다.

 

 

 

 

 

 

 

아이디어 출처 유튜브 URL
https://www.youtube.com/watch?v=X0BT-NSNz5A