본문 바로가기
엔지엠 매크로

RPA 매크로 - 네이버에서 비트코인 관련 뉴스 크롤링 및 엑셀 저장하기.

by 업무자동화 2021. 6. 5.
반응형

안녕하세요. 엔지엠소프트웨어입니다. 커스텀 모듈 개발 환경을 갖추기 위한 [ 이전 글 ]을 먼저 읽어보시고 이글을 읽어야 합니다. 자~ 이제 개발 환경이 갖춰진 상태에서 아래와 같이 코드를 추가해보세요. 소스 코드에 주석을 달아두었으니 이해하는데 크게 어려움은 없을겁니다. 그래도, 중요한 몇가지는 아래에서 하나씩 알아볼께요^^

[ 원본 보기 ]

http://ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech&wr_id=365 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

 

첫번째 라인의 Serializable(시리얼라이저블, 직렬화 가능)은 엔지엠 에디터의 액션으로 직렬화하여 저장할 수 있게 해줍니다. 이는 클래스의 고유한 Attribute(어트리뷰트, 특성)를 나타냅니다. 이 특성이 없으면 엔지엠 에디터에 액션을 추가하고 동작은 되지만, 저장할 수 없게됩니다. 그러니 꼭~!!! 이 특성을 모델에 부여해야 합니다.

[Serializable] public class NaverNewsCrawlerModel : NGM.Models.Interface.BaseCustomToolModel

 

두번째 라인에 보면 클래스 옆에 "NGM.Models.Interface.BaseCustomToolModel"이 상속되어 있는걸 알 수 있습니다. 이 클래스는 추상 클래스(Abstract, 앱스트랙트)로 상속 받은 자식 클래스가 인터페이스를 따르도록 강제할 수 있습니다. 비주얼 스튜디오는 추상화와 인터페이스를 자동으로 구현해줍니다. 물론, 적절하게 수정해야 하죠. [ 추상화 ]에 대한 내용은 한번씩 읽어보시면 도움이 될겁니다. 다형성은 [ OOP의 중요한 개념 ]입니다. 다형성을 적용하려면 추상화와 인터페이스는 필수예요^^;

 

아래와같이 커스텀 모듈을 개발할 수 있는 추상 클래스와 인터페이스를 제공하고 있습니다. 

 

 

추상 메소드인 Execute를 직접 구현해야 합니다. 이 메소드는 엔지엠 에디터에서 커스텀 액션이 실행될 때 자동으로 호출되는 메소드입니다. 그렇기 때문에 이 메소드를 구현할 때 몇가지 패턴을 따라야 합니다. 가령 시작할 때 속성을 초기화하고, 마지막에 외부에 알려야할 정보들을 속성에 넣어줘야 합니다. 이런 내용들도 커스텀 모듈 강좌에 자세하게 설명되어 있으니 한번쯤 정독하시는걸 추천 드립니다^^

public override void Execute()

 

이제 마지막입니다. 프로젝트를 컴파일하세요. 아래와 같이 라이브러리가 만들어집니다.

 

 

엔지엠 에디터를 실행하고, ①사용자 도구를 확인 해보세요. 아직은 아무것도 없을겁니다. 우리가 만든 커스텀 모듈을 설치하기 위해 ②도구 모듈 설치를 클릭하세요. 이 메뉴는 관리자에 있습니다.

 

 

CustomNaverNewsCrawler.dll 을 선택하세요.

 

 

커스텀 모듈이 설치되면 사용자 도구에 웹크롤러가 추가된것을 볼 수 있습니다.

 

 

웹크롤러 카테고리 안에 네이버뉴스 크롤링 액션이 추가 되었네요^^

 

 

첨부되어 있는 스크립트를 열어보세요. 웹 API에 대해 자세한 내용은 [ 메뉴얼 ]을 참고하시고, 미리 학습하시는게 좋습니다.

 

 

실행하면 바탕화면에 "News.csv"가 만들어집니다. 내용을 보면 네이버뉴스에서 비트코인 관련 기사들의 제목과 뉴스 원본을 볼 수 있는 링크가 정리되어 있습니다.

 

 

사실, 좀 더 복잡하게 크롤링할 수 있게 만들수도 있는데요. 간단하게 진행하기 위해 이정도로만 처리 했습니다. 커스텀 모듈 개발에 익숙해지면 복잡한 로직과 이미지 분석, 문자 판독은 엔지엠에 맡겨두고 자신의 회사 업무만 모아서 처리할 수 있습니다. 엔지엠 RPA가 활성화되고, 많은 회사에서 이용한다면 엑셀, 워드, 파워포인트를 비롯한 여러가지 인터페이스가 좀 더 쉽게 연결될 수 있을겁니다. 그리고 무엇보다 중요한~ 리포팅도 커스텀으로 제공할 수 있겠죠? QA 업무쪽에 소프트웨어 품질 관리에 도입했다면 변경점에 대해 재연 테스트를 진행하고 결과를 리포팅해야 합니다. 리포트는 단순히 테스트 케이스에 대한 결과일수도 있고, 지표를 그래프로 표시할수도 있습니다. 수백 수천건의 테스트 케이스를 사람이 직접 하기보다는 엔지엠 RPA를 이용해보는건 어떨까요?

반응형

댓글