KR20190124630A - 스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램 - Google Patents

스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20190124630A
KR20190124630A KR1020190004557A KR20190004557A KR20190124630A KR 20190124630 A KR20190124630 A KR 20190124630A KR 1020190004557 A KR1020190004557 A KR 1020190004557A KR 20190004557 A KR20190004557 A KR 20190004557A KR 20190124630 A KR20190124630 A KR 20190124630A
Authority
KR
South Korea
Prior art keywords
scraping
data
information
unit
user
Prior art date
Application number
KR1020190004557A
Other languages
English (en)
Other versions
KR102340474B1 (ko
Inventor
정재원
백청석
Original Assignee
주식회사쿠콘
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020180047729A external-priority patent/KR101982085B1/ko
Application filed by 주식회사쿠콘 filed Critical 주식회사쿠콘
Priority to KR1020190004557A priority Critical patent/KR102340474B1/ko
Publication of KR20190124630A publication Critical patent/KR20190124630A/ko
Application granted granted Critical
Publication of KR102340474B1 publication Critical patent/KR102340474B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

데이터 스크래핑(data scrapping) 시스템은, 스크래핑이 필요한 조회 또는 수행을 호출하는 서비스 프로그램을 구비하며, 스크래핑을 위한 사용자 정보를 수신하고, 내부 스케줄 알고리즘을 사용하여 사용자 정보와 작업을 할당하는 관리 모듈; 및 상기 관리 모듈에 의해 할당된 사용자 정보와 작업에 기초하여, 서로 상이한 복수의 기관에 통신 가능하게 연결되어 상기 복수의 기관으로부터 호출된 조회 또는 수행에 대응되는 데이터를 스크래핑하도록 구성된 스크래핑 모듈을 포함한다. 상기 스크래핑 모듈은, 스크래핑될 데이터 항목을 지정하는 메타 데이터베이스(meta database)를 포함하며, 상기 기관이 제공하는 데이터 셋으로부터 상기 메타 데이터베이스에 기반하여 스크래핑할 데이터를 추출하도록 구성된다. 상기 데이터 스크래핑 시스템에 의하면, 모바일 컴퓨팅 장치 등 다양한 플랫폼에서 데이터 스크래핑이 동작될 수 있으며, 다중의 스크래핑 정보를 보안 모듈의 제약사항 없이 하나의 장치에서 수집할 수 있다.

Description

스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램{SYSTEM, METHOD AND COMPUTER PROGRAM FOR DATA SCRAPPING USING SCRIPT ENGINE}
실시예들은 데이터 스크래핑(data scrapping) 시스템, 방법 및 컴퓨터 프로그램에 관한 것으로, 보다 구체적으로는, 스크래핑에 대한 환경 정보가 저장된 스크립트 엔진(script engine)을 탑재하도록 스크래핑 모듈을 개발함으로써 다양한 운영체제에서의 스크래핑을 하나의 스크래핑 모듈에서 처리하는 기술에 대한 것이다.
일반적으로, 스크린 스크래핑(screen scraping)은 스크린에 보이는 데이터 중 필요한 것만 추출해 주는 소프트웨어로서, 자동으로 시스템에 접속해 데이터를 화면에 나타나게 한 후 필요한 자료만을 추출해 가져오는 기술이다. 웹 사이트에 있는 정보를 끄집어내 다른 사이트나 데이터베이스에 저장하기 때문에 웹 스크래핑(web scraping)이라고도 한다. 데이터를 저장하므로 필요에 따라 수시로 조회가 가능하며, 저장된 데이터를 가공하여 비교분석 자료로 활용할 수도 있다. 특히 인터넷 뱅킹에 필수적인 프로그램으로 각 금융기관에서 활발하게 운영 중이며, 호텔과 항공사·렌터카·주유소 등의 마일리지와 같은 보상프로그램, 전자우편 통합조회, 뉴스·채팅·날씨 등 사용자가 클릭해 정보를 얻을 수 있는 곳이라면 어디에도 사용할 수 있다.
스크린 스크래핑 기술은 미국 등에서는 1990년대 말부터 보편화되었으며, 국내에서는 2000년 설립된 핑거(Finger) 사가 이 기술을 처음 개발하여 금융서비스를 시작한 후 금융기관을 중심으로 널리 사용되고 있다. 현재 대표적인 것으로는 개인이 가진 여러 금융기관의 계좌들을 통합하여 관리할 수 있는 금융자산통합관리소프트웨어(PFMS: Personal Finance Management Software)를 들 수 있다. 일일이 각 웹사이트를 방문할 필요가 없어 시간과 경비를 절약할 수 있는 장점이 있으나 사생활 침해가 우려되며, 사이트가 갱신될 때마다 프로그래밍을 수정해야 한다는 단점도 있다.
상기 스크린 스크래핑 기술은 크게 클라이언트(client) 방식과 서버(server) 방식으로 구분되며, 계좌통합 서비스나 개인자산관리, 기업자산관리 프로그램에서 그 활용도가 높으나 단 대 단(end-to-end) 정책을 지켜야 하는 국내 보안 정책상의 이유로 서버 방식보다는 클라이언트 방식의 스크린 스크래핑 기술이 절대 우위를 점하고 있다.
도 1은 종래의 클라이언트 방식의 스크린 스크래핑을 이용한 계좌통합 서비스 시스템의 구성도이다.
종래의 계좌통합 서비스 시스템은 도 1에 도시한 바와 같이, 사용자(10)가 계좌통합 서비스 프로그램(20)을 통해 제1 내지 제n 기관(40-1 내지 40-n)에 등록된 웹 서비스 프로그램(41)에 인터넷망(30)을 통해 접속하여, 상기 제1 내지 제n 기관(40-1 내지 40-n)의 통신 보안 정책에 따라 서비스를 수행한다. 이때, 상기 스크린 스크래핑은 상기 계좌통합 서비스 프로그램(20)에서 수행된다.
종래의 클라이언트 방식의 스크린 스크래핑을 이용한 계좌통합 서비스 시스템은 도 1과 같이, 금융 관련 웹 서비스의 스크린 스크래핑 시 서비스의 안정성이나 기술적 제약으로 인해 복수의 스크린 스크래핑 작업을 순차적으로 실행하고 결과를 받는 구성이다. 이는, 예들 들어, 은행 계좌 개수가 많은 경우 거래내역 조회 스크래핑을 할 때 심각한 성능저하를 체감하게 되는 문제점이 있었다.
위와 같은 문제점을 해결하기 위하여, 복수의 스크래핑 머신에 의해 병렬적으로 스크린 스크래핑을 수행하는 기술이 개발되기도 하였다. 그러나 종래에는, 스크래핑 머신이 서로 상이한 운영체제(operating system)에서 동작하도록 하기 위해, 금융 기관에서 요구하는 보안 정책을 준수하도록 각각의 운영체제에 부합하는 스크래핑 모듈을 별도로 개발해야 하였다. 예를 들어, 윈도우 운영체제 기반의 PC 외에 리눅스(Linux)나 OS X 기반의 컴퓨터, 또는 iOS와 안드로이드(android) 등 모바일 운영체제 각각에 대해 별도로 스크래핑 모듈을 개발할 필요가 있으며, 이는 사용자들이 사용하는 장치 및 운영체제의 종류가 다변화됨에 따라 개발에 투입되어야 하는 장비의 규모 및 비용을 기하급수적으로 증가시키는 문제점이 있었다.
등록특허공보 제10-0494975호
본 발명의 일 측면에 따르면, 스크래핑(scrapping)에 대한 환경 정보가 저장된 스크립트 엔진(script engine)을 탑재함으로써 다양한 운영체제에서의 스크래핑을 하나의 스크래핑 모듈에서 처리할 수 있으며, 스크래핑 대상 기관의 통신 방식에 부합하는 통신 세션을 생성하고 대상 기관의 인증 방식에 따라 사용자 정보가 처리된 인증값을 전송하여, 다양한 플랫폼에서 동작 가능하고 운영체제에 의한 제약 사항 없이 다양한 기관으로부터 스크래핑 정보를 수집할 수 있는 데이터 스크래핑(data scrapping) 시스템, 방법 및 컴퓨터 프로그램을 제공할 수 있다.
일 실시예에 따른 데이터 스크래핑(data scrapping) 시스템은, 스크래핑이 필요한 조회 또는 수행을 호출하는 서비스 프로그램을 구비하며, 사용자 장치로부터 스크래핑을 위한 사용자 정보를 포함하는 스크래핑 요청을 수신하고, 스크래핑된 데이터를 상기 사용자 장치에 전송하도록 구성된 송수신부; 및 상기 송수신부에 수신된 상기 사용자 정보를 이용하여 하나 이상의 기관으로부터 데이터를 스크래핑하도록 구성된 하나 이상의 데이터 스크래핑 정보수집부를 포함한다.
상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 스크래핑을 수행할 상기 기관의 식별정보와, 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보를 포함하는 환경 정보를 저장하며, 플랫폼 독립적인 스크립트(script) 형태를 가지고, 상기 환경 정보에 기초하여 상기 기관으로부터 데이터를 스크래핑하도록 구성된 스크래핑 엔진(engine)부를 포함한다.
일 실시예에서, 상기 스크래핑 엔진부는, 상기 환경 정보를 저장하는 스크래핑 환경 관리부; 상기 통신 정보에 기초하여 상기 기관과 상기 스크래핑 엔진부 사이의 통신 세션을 생성하는 세션 관리부; 상기 인증 정보에 기초하여 상기 사용자 정보를 처리하는 통신 관리부; 및 상기 사용자 정보가 처리된 인증값을 상기 기관에 전송함으로써 상기 기관으로부터 데이터를 스크래핑하도록 구성된 스크립트 엔진을 포함한다.
일 실시예에서, 상기 사용자 정보는 사용자의 생체 인증 정보를 포함한다.
일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 스크래핑될 데이터 항목을 지정하는 메타 데이터베이스를 더 포함한다. 이때, 상기 스크래핑 엔진부는, 상기 기관이 제공하는 데이터 셋으로부터 상기 메타 데이터베이스에 기반하여 스크래핑할 데이터를 추출하도록 더 구성된다.
일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 스크래핑을 위한 상기 사용자 정보 및 상기 사용자 정보에 기반한 작업을 내부 스케줄 알고리즘을 사용하여 상기 스크래핑 엔진부에 할당하는 작업 관리부를 더 포함한다.
일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 작업 관리부의 정상 동작 여부를 감시하여 오류 발생 시 상기 작업 관리부를 재실행하며, 상기 데이터 셋에서 상기 스크래핑될 데이터 항목이 위치하는 부분을 식별하기 위한 식별 정보를 상기 메타 데이터베이스에 저장하는 플랫폼 관리부를 더 포함한다.
일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 송수신부의 상기 서비스 프로그램과 상기 스크래핑 엔진부가 상호 인증되었는지 여부를 검사함으로써 상기 스크래핑 요청을 검증하도록 구성된 검증부를 더 포함한다.
일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 데이터 스크래핑 정보수집부와 상호 인증된 하나 또는 복수의 사용자의 인증서를 저장하고 있으며, 상기 데이터 스크래핑 정보수집부에 할당된 스크래핑 작업에 기초하여 필요한 인증서를 상기 스크래핑 엔진부에 설치하도록 구성된 인증서 분배부를 더 포함한다.
일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 사용자 장치에 설치된 인증서와 상기 스크래핑 엔진부에 설치된 인증서가 상이할 경우, 상기 사용자 장치로부터 수신된 인증서를 이용하여 상기 스크래핑 엔진부에 설치된 인증서를 갱신하도록 구성된 모듈 업데이터부를 더 포함한다.
일 실시예에서, 상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 사용자 장치에서 스크래핑이 직접 수행되면서 오류가 발생하면, 오류 발생시 사용자 장치에 입력된 스크래핑 입력정보로부터 오류 로그를 분석하고, 분석된 오류 로그를 기초로 상기 사용자 장치 내 스크래핑 모듈이 업데이트되게 하는 스크래핑 오류수정부를 더 포함한다.
일 실시예에 따른 데이터 스크래핑 방법은, 스크래핑이 필요한 조회 또는 수행을 호출하는 서비스 프로그램을 구비한 데이터 스크래핑 시스템의 송수신부가, 사용자 장치로부터, 사용자에 의해 호출된 조회 또는 수행의 정보 및 사용자 정보를 포함하는 스크래핑 요청을 수신하는 단계; 상기 데이터 스크래핑 시스템이, 스크래핑을 수행할 상기 기관의 식별정보와 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보를 포함하는 환경 정보를 저장하며 플랫폼 독립적인 스크립트 형태를 가지는 상기 데이터 스크래핑 시스템의 스크래핑 엔진부에 상기 사용자 정보 및 상기 사용자 정보에 기초한 작업을 할당하는 단계; 상기 스크래핑 엔진부가 상기 환경 정보에 기초하여 상기 기관으로부터 데이터를 스크래핑하는 단계; 및 상기 송수신부가 스크래핑된 데이터를 상기 사용자 장치에 전송하는 단계를 포함한다.
일 실시예에서, 상기 기관으로부터 데이터를 스크래핑하는 단계는, 상기 스크래핑 엔진부가 상기 통신 정보에 기초하여 상기 기관과 상기 스크래핑 엔진부 사이의 통신 세션을 생성하는 단계; 상기 스크래핑 엔진부가 상기 인증 정보에 기초하여 상기 사용자 정보를 처리하는 단계; 및 상기 스크래핑 엔진부가 상기 사용자 정보가 처리된 인증값을 상기 기관에 전송함으로써 상기 기관으로부터 데이터를 스크래핑하는 단계를 포함한다.
일 실시예에 따른 데이터 스크래핑 방법은, 상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이 스크래핑될 데이터 항목을 메타 데이터베이스에 저장하는 단계를 더 포함한다. 이때, 상기 기관으로부터 데이터를 스크래핑하는 단계는, 상기 기관이 제공하는 데이터 셋으로부터 상기 메타 데이터베이스에 기반하여 스크래핑할 데이터를 추출하는 단계를 포함한다.
일 실시예에 따른 데이터 스크래핑 방법은, 상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템의 작업 관리부가 상기 사용자 정보 및 상기 작업을 내부 스케줄 알고리즘을 사용하여 상기 스크래핑 엔진부에 할당하는 단계를 더 포함한다.
일 실시예에 따른 데이터 스크래핑 방법은, 상기 데이터 스크래핑 시스템이, 상기 작업 관리부의 정상 동작 여부를 감시하여 오류 발생 시 상기 작업 관리부를 재실행하는 단계; 및 상기 데이터 스크래핑 시스템이, 상기 데이터 셋에서 상기 스크래핑될 데이터 항목이 위치하는 부분을 식별하기 위한 식별 정보를 상기 메타 데이터베이스에 저장하는 단계를 더 포함한다.
일 실시예에 따른 데이터 스크래핑 방법은, 상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 송수신부의 상기 서비스 프로그램과 상기 스크래핑 엔진부가 상호 인증되었는지 여부를 검사함으로써 상기 스크래핑 요청을 검증하는 단계를 더 포함한다.
일 실시예에서, 상기 데이터 스크래핑 시스템은 상기 데이터 스크래핑 시스템과 상호 인증된 하나 또는 복수의 사용자의 인증서를 저장하고 있다. 이때, 일 실시예에 따른 데이터 스크래핑 방법은, 상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 스크래핑 엔진부에 할당된 스크래핑 작업에 기초하여 필요한 인증서를 상기 스크래핑 엔진부에 설치하는 단계를 더 포함한다.
일 실시예에 따른 데이터 스크래핑 방법은, 상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 사용자 장치에 설치된 인증서와 상기 스크래핑 엔진부에 설치된 인증서가 상이할 경우, 상기 사용자 장치로부터 수신된 인증서를 이용하여 상기 스크래핑 엔진부에 설치된 인증서를 갱신하는 단계를 더 포함한다.
일 실시예에 따른 데이터 스크래핑 방법은, 상기 사용자 장치에서 스크래핑이 직접 수행되면서 오류가 발생하면, 상기 데이터 스크래핑 시스템이, 오류 발생시 사용자 장치에 입력된 스크래핑 입력정보로부터 오류 로그를 분석하는 단계; 및 상기 데이터 스크래핑 시스템이, 분석된 오류 로그를 기초로 상기 사용자 장치 내 스크래핑 모듈이 업데이트되게 하는 단계를 더 포함한다.
일 실시예에 따른 컴퓨터 프로그램은, 하드웨어와 결합되어 전술한 실시예들에 따른 데이터 스크래핑 방법을 실행하기 위한 것으로서, 컴퓨터로 판독 가능한 매체에 저장될 수 있다.
본 발명의 일 측면에 따른 데이터 스크래핑(data scrapping) 시스템 및 방법에 의하면, 스크래핑에 대한 환경 정보가 저장된 스크립트 엔진(script engine)을 스크래핑 모듈에 탑재함으로써, 스크래핑 모듈을 각각의 운영체제 별로 별도로 개발할 필요가 없이 다양한 운영체제에서의 스크래핑을 하나의 스크래핑 모듈에서 처리할 수 있어, 사용되는 장치 및 운영체제가 점차 다변화되어 가는 현재의 실정에서 스크래핑 시스템의 개발에 투입되는 비용과 인력을 획기적으로 줄일 수 있는 이점이 있다.
본 발명의 일 측면에 따른 데이터 스크래핑 시스템 및 방법에 따르면, 스크립트 엔진이 은행, 증권사, 카드사 등의 금융기관, 공공기관, 또는 실물 정보를 제공하는 기관과 해당 기관에서 요구하는 통신 방식에 부합하는 통신 세션을 생성하고, 대상 기관의 인증 방식에 따라 사용자 정보가 처리된 인증값을 전송함으로써, 목적하는 데이터, 예컨대, 계좌 잔액, 계좌 거래 내역, 카드 승인 내역, 카드 청구 내역, 카드 한도, 증권 잔고, 보험 가입내역 등과 같은 금융 정보, 또는 국세청 소득 증빙, 사업자 등록증명, 사업자휴폐업 정보, 납세사실증명, 부가가치세과세표준증명, 표준재무재표증명, 건강보험 자격확인서, 건강보험자격득실확인서, 직장보험료 개인별조회 내역, 국민연금 납부 내역, 민원24 신분증 진위 정보 등과 같은 공공 정보 등을 스크래핑할 수 있다.
도 1은 종래의 스크린 스크래핑을 이용한 계좌통합 서비스 시스템의 구성도이다.
도 2는 일 실시예에 따른 데이터 스크래핑 시스템의 구성을 나타내는 블록도이다.
도 3은 일 실시예에 따른 데이터 스크래핑 시스템의 데이터 스크래핑 정보수집부의 상세 구성을 나타내는 블록도이다.
도 4는 도 3에 도시된 스크래핑 엔진부 및 이의 구현을 위한 하드웨어 제원을 나타내는 블록도이다.
도 5는 일 실시예에 따른 데이터 스크래핑 방법의 각 단계를 나타내는 순서도이다.
도 6은 또 다른 실시예에 따른 데이터 스크래핑 방법의 각 단계를 나타내는 순서도이다.
이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.
도 2는 일 실시예에 따른 데이터 스크래핑(data scrapping) 시스템의 구성을 나타내는 블록도이다.
도 2를 참조하면, 본 실시예에 따른 데이터 스크래핑 시스템(1)은 송수신부(100) 및 하나 이상의 데이터 스크래핑 정보수집부(200-1 내지 200-n)를 포함한다. 실시예들에 따른 데이터 스크래핑 시스템(1)은, 전적으로 하드웨어이거나, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 데이터 스크래핑 시스템(1)을 구성하는 송수신부(100)와 데이터 스크래핑 정보수집부(200-1 내지 200-n) 및 이에 포함된 각 부는, 특정 형식 및 내용의 데이터를 전자통신 방식으로 주고받기 위한 장치 및 이에 관련된 소프트웨어를 통칭할 수 있다.
본 명세서에서 "부(unit)", "모듈(module)", "서버", "시스템", "플랫폼", "장치" 또는 "단말" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 여기서 하드웨어는 CPU 또는 다른 프로세서(processor)를 포함하는 데이터 처리 기기일 수 있다. 또한, 하드웨어에 의해 구동되는 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.
데이터 스크래핑 시스템(1)은 사용자 장치(10)와 통신하면서 사용자 장치(10)로부터 스크래핑이 필요한 조회 또는 수행에 대한 호출 명령, 및 인증을 위하여 필요한 사용자 정보 등을 수신하도록 구성된다. 사용자 장치(10)는 윈도우(Windows) 운영체계(Operating System; OS) 기반의 개인용 컴퓨터(Personal Computer; PC)일 수도 있으나, 이에 한정되지 않으며, 리눅스(Linux)나 OS X 기반의 컴퓨터, iOS와 안드로이드(android) 등 모바일 OS를 기반으로 한 스마트폰(smartphone) 등의 모바일 컴퓨팅 장치, 노트북(notebook) 컴퓨터, PDA(personal digital assistant), 태블릿(tablet), IPTV(Internet Protocol Television) 등을 위한 셋톱박스(set-top box) 또는 다른 임의의 장치일 수 있다.
또한, 데이터 스크래핑 시스템(1)은 제1 내지 제n 기관(40-1 내지 40-n)에 등록된 웹 서비스 프로그램(41)에 인터넷망(30)을 통해 접속하여, 상기 제1 내지 제n 기관(40-1 내지 40-n)으로부터 데이터를 스크래핑하도록 구성된다. 인터넷망(30)을 통한 통신 방법은 객체와 객체가 네트워킹 할 수 있는 모든 통신 방법을 포함할 수 있으며, 유선 통신, 무선 통신, 3G, 4G, 혹은 그 이외의 방법으로 제한되지 않는다. 예를 들어, 인터넷망(30)은 LAN(Local Area Network), MAN(Metropolitan Area Network), GSM(Global System for Mobile Network), EDGE(Enhanced Data GSM Environment), HSDPA(High Speed Downlink Packet Access), W-CDMA(Wideband Code Division Multiple Access), CDMA(Code Division Multiple Access), TDMA(Time Division Multiple Access), 블루투스(Bluetooth), 지그비(Zigbee), 와이-파이(Wi-Fi), VoIP(Voice over Internet Protocol), LTE Advanced, IEEE802.16m, WirelessMAN-Advanced, HSPA+, 3GPP Long Term Evolution (LTE), Mobile WiMAX (IEEE 802.16e), UMB (formerly EV-DO Rev. C), Flash-OFDM, iBurst and MBWA (IEEE 802.20) systems, HIPERMAN, Beam-Division Multiple Access (BDMA), Wi-MAX(World Interoperability for Microwave Access) 및 초음파 활용 통신으로 이루어진 군으로부터 선택되는 하나 이상의 통신 방법에 의한 통신 네트워크를 지칭할 수 있으나, 이에 한정되는 것은 아니다.
본 실시예에 따른 데이터 스크래핑 시스템(1)은, 도 2에 도시한 바와 같이, 스크래핑이 필요한 조회 또는 수행을 호출하는 정보수집 프로그램을 구비하며 스크래핑을 위한 사용자 정보를 포함하는 스크래핑 요청을 수신하고, 스크래핑된 데이터를 사용자 장치(10)에 전송하는 송수신부(100)를 포함한다. 또한 본 실시예에 따른 데이터 스크래핑 시스템(1)은, 송수신부(100)로부터 전달된 스크래핑 요청에 기초하여 인터넷망(30)에 접속함으로써, 인터넷망(30)에 연결되며 웹 서비스 프로그램(41)을 각각 구비한 제1 내지 제n 기관(40-1 내지 40-n)으로부터 데이터를 스크래핑하는 제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n)를 포함한다. 즉, 제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n)는 각각 제1 내지 제n 기관(40-1 내지 40-n)으로부터 데이터를 스크래핑할 수 있다.
제1 내지 제n 기관(40-1 내지 40-n)은 본 실시예에 따른 데이터 스크래핑 시스템(1)에 의한 정보 수집의 대상이 되는 단체에서 운용하는 시스템을 지칭하는 것으로서, 은행, 증권사, 카드사 등의 금융기관이나, 공공기관, 또는 실물 정보를 제공하는 다른 임의의 기관일 수 있으며, 특정 단체로 한정되지 않는다. 또한, 본 실시예에 따른 데이터 스크래핑 시스템(1)에 의한 정보 수집이 가능한 기관의 수는 복수이다.
송수신부(100)의 정보수집 프로그램은 사용자 장치(10)에 의하여 접속하여 사용됨으로써 스크래핑이 필요한 조회 또는 수행이 호출되며, 또한 인증을 위한 사용자 정보가 입력될 수 있는 프로그램이다. 예를 들면, 정보수집 프로그램은 은행 계좌 잔액 및/또는 거래내역이 조회될 수 있는 잔액 거래내역 조회 업무용 프로그램, 계좌간 이체가 수행될 수 있는 집금 업무용 프로그램 등일 수 있으나 이에 한정되는 것은 아니다. 또한, 정보수집 프로그램은 사용자가 하나의 프로그램을 통하여 다수의 기관에 분산된 계좌에 대한 조회 등을 수행할 수 있는 계좌통합 서비스를 위하여 구성된 것일 수도 있다.
제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n) 각각은, 후술하는 것과 같이 플랫폼(platform) 독립적인 스크립트(script) 형태의 스크래핑 엔진부를 포함한다. 스크래핑 엔진부는 스크래핑을 수행할 상기 기관의 식별정보와 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보를 포함하는 환경 정보를 저장하며, 환경 정보에 기초하여 제1 내지 제n 기관(40-1 내지 40-n)으로부터 데이터를 스크래핑한다. 제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n) 각각은 가상머신(virtual machine)상에서 동작할 수 있으나, 이에 한정되는 것은 아니다.
사용자는 사용자 장치(10)를 이용하여 데이터 스크래핑 시스템(1)에 접속함으로써 정보수집 프로그램에 접근하게 되며, 데이터 스크래핑 시스템(1) 내부적으로 스크래핑 작업은 데이터를 대상 기관의 종류에 따라 상기 제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n)로 분산처리가 되어 작업이 수행된다. 그러나, 스크래핑 정보수집부(200-1 내지 200-n)는 하나의 하드웨어 장치를 이용하여 구현되는 스크래핑 모듈을 단지 기능적으로 구분한 것일 수 있다. 보안을 위하여, 정보수집 프로그램과 데이터 스크래핑 정보수집부(200-1 내지 200-n) 사이의 구간에서는 공개키기반구조(公開-基盤構造, Public Key Infrastructure; PKI)의 시스템 인증으로 프로그램과 스크래핑 모듈을 인증하고 사용자 정보 및 결과는 SSL(Secure Sockets Layer)로 통신을 할 수 있다.
스크래핑을 위한 사용자 정보는, 정보수집 프로그램과 데이터 스크래핑 정보수집부(200-1 내지 200-n) 사이의 인증 및 통신구간을 통해 데이터 스크래핑 정보수집부(200-1 내지 200-n)로 전달되고, 데이터 스크래핑 정보수집부(200-1 내지 200-n)에서 각 기관들(40-1 내지 40-n)의 통신 보안 정책에 맞게 처리된다.
구체적으로, 데이터 스크래핑 정보수집부(200-1 내지 200-n) 각각의 스크립트 엔진(script engine)에서는 각 기관들(40-1 내지 40-n)의 통신 정책에 상응하는 방식으로 각 기관(40-1 내지 40-n)과 통신 세션(session)을 형성하고, 각 기관(40-1 내지 40-n)의 보안 정책에 상응하는 방식으로 사용자 정보를 처리하여 처리 결과에 해당하는 인증값을 각 기관들(40-1 내지 40-n)에 전송하여 데이터를 스크래핑한다. 예컨대, 스크래핑되는 데이터는 계좌 잔액, 계좌 거래 내역, 카드 승인 내역, 카드 청구 내역, 카드 한도, 증권 잔고, 보험 가입내역 등과 같은 금융 정보, 또는 국세청 소득 증빙, 사업자 등록증명, 사업자휴폐업 정보, 납세사실증명, 부가가치세과세표준증명, 표준재무재표증명, 건강보험 자격확인서, 건강보험자격득실확인서, 직장보험료 개인별조회 내역, 국민연금 납부 내역, 민원24 신분증 진위 정보 등과 같은 공공 정보일 수 있으나, 이에 한정되지 않는다. 스크래핑 결과는 데이터 스크래핑 정보수집부(200-1 내지 200-n)와의 인증 및 통신구간을 통해 정보수집 프로그램에서 취합될 수 있다.
도 3은 일 실시예에 따른 데이터 스크래핑 시스템의 데이터 스크래핑 정보수집부의 상세 구성을 나타내는 블록도로서, 도 3에 도시된 데이터 스크래핑 정보수집부(200)는 도 2에 도시된 제1 내지 제n 데이터 스크래핑 정보수집부(200-1 내지 200-n) 각각에 대응된다.
도 3을 참조하면, 데이터 스크래핑 정보수집부(200)는 스크래핑 엔진부(240)를 포함한다. 스크래핑 엔진부(240)는 자바 스크립트(JAVA script) 등 플랫폼 독립적인 언어로 작성된 스크립트 형태를 가지는데, 여기서 플랫폼이란 데이터 스크래핑 정보수집부(200)가 구현되는 장치의 하드웨어 및 상기 하드웨어를 운용하기 위한 운영체제(operating system; OS)를 포함한다. 플랫폼 독립적인 스크립트 형태로 스크래핑 엔진부(240)를 구성함으로써, 장치 또는 OS의 종류에 따라 스크래핑 엔진을 별도로 개발할 필요 없이, 스크래핑 엔진부(240)에 의하여 어떠한 실행 환경에서도 스크래핑을 수행할 수 있다.
일 실시예에서, 데이터 스크래핑 정보수집부(200)는 스크래핑될 데이터 항목을 지정하는 메타 데이터베이스(meta database(DB); 230)를 더 포함한다. 이때, 스크래핑 엔진부(240)는, 제1 내지 제n 기관(40-1 내지 40-n)이 각각 제공하는 데이터 셋(data set)으로부터 메타 데이터베이스(230)에 기반하여 스크래핑할 항목에 해당되는 데이터를 추출하도록 구성된다.
즉, 상기 메타 DB(230)는 사용자가 원하는 수집할 정보, 예컨대, 수집할 대상 및 스크래핑 항목을 저장하는 역할을 한다. 예컨대, 사용자가 계좌의 이체 내역에 대한 조회를 희망할 경우, 이체 내역을 지시하는 코드 또는 부호 등이 스크래핑될 데이터 항목으로서 메타 DB(230)에 저장될 수 있다. 이때, 스크래핑 엔진부(240)는 메타 DB(230)의 스크래핑될 데이터 항목을 기반으로 스크래핑 정보를 수집한다. 이를 위하여, 메타 DB(230)는 각각의 기관이 제공하는 데이터 셋으로부터 데이터 항목을 추출하기 위한 식별 정보를 포함한다. 예를 들어, 식별 정보는 HTTP(Hypertext Transfer Protocol) 또는 JSON(Java Script Object Notation) 등의 프로토콜로 수신될 수 있는 데이터 셋으로부터 특정 데이터 항목이 위치하는 부분을 식별할 수 있는 정보일 수 있다.
본 실시예에서 스크래핑 엔진부(240)는, 종래와 같이 스크린 전체의 데이터를 스크래핑하는 대신, 메타 DB(230)에 저장된 스크래핑될 데이터 항목을 이용하여 데이터 셋으로부터 선별적으로 데이터를 스크래핑한다. 선별적으로 수집된 스크래핑 정보는 메타 DB(230)의 스크래핑 항목과의 대조를 통한 확인 과정 후, 송수신부(100; 도 2)의 정보수집 프로그램에 전달되어 사용자에게 제공될 수 있다.
일 실시예에서, 데이터 스크래핑 정보수집부(200)는 작업 관리부(220)를 더 포함한다. 작업 관리부(22)는, 스크래핑을 위한 사용자 정보 및 사용자 정보에 기반한 작업을 내부 스케줄 알고리즘을 사용하여 스크래핑 엔진부(240)에 할당한다. 예를 들어, 할당될 사용자 정보와 작업은 스크래핑 수집정보 전문의 형태로 데이터 스크래핑 정보수집부(200)에 전송될 수 있다. 예를 들어, 작업 관리부(220)는 내부 스케줄 알고리즘을 통해 전송된 스크래핑을 위한 사용자 정보를 스크래핑 엔진부(240)에 API(Application Program Interface) 호출이나 OLE(Object Linking and Embedding) 프로토콜을 사용하여 전달하고, 그 결과를 소켓이나 SSL(Secure Sockets Layer) 통신을 통하여 수신할 수 있다.
일 실시예에서, 데이터 스크래핑 정보수집부(200)는 플랫폼 관리부(250)를 더 포함한다. 플랫폼 관리부(250)는, 작업 관리부(220)를 최신 버전으로 업데이트하거나, 작업 관리부(220)가 비정상적인 수행을 하거나 오류로 인한 문제 발생시 작업 관리부(220) 상의 모든 프로세스를 중지시키고 작업 관리부(220)를 재실행하는 역할을 한다.
또한 플랫폼 관리부(250)는, 작업 관리부(220)가 스크래핑 엔진부(240)를 호출하여 작동될 때 발생할 수 있는 예외의 경우, 예를 들어, 보안 모듈 등 스크래핑 작업에 필요한 프로그램 설치나 갱신에 관련된 사용자 입력에 응답하여 스크래핑 엔진부(240)가 업데이트되도록 모듈 업데이터부(260)를 제어하는 역할을 할 수도 있다.
또한 플랫폼 관리부(250)는, 스크래핑을 수행할 대상 기관이 제공하는 데이터 셋(data set)에서 스크래핑될 데이터 항목이 위치하는 부분을 식별하기 위한 식별 정보를 사용자로부터 입력받고, 입력된 식별 정보를 메타 데이터베이스(230)에 저장하는 기능을 수행할 수도 있다.
나아가 플랫폼 관리부(250)는, 데이터 스크래핑 정보 수집부(200)와 그 내부의 스크립트 엔진의 전원의 온(ON)/오프(OFF) 상태, 데이터 스크래핑 정보 수집부(200)를 구현하기 위한 가상 머신에 설치된 OS의 버전 정보, 데이터 스크래핑 정보 수집부(200)가 현재 사용자의 입력을 기다리는지의 여부와, 데이터 스크래핑 정보 수집부(200)를 구현하기 위한 하드웨어 제원으로서 CPU, 메인 메모리(Main Memory), USB 호스트 컨트롤러(Host Controller), 하드 디스크 드라이브(Hard Disk Drive), 네트워크 인터페이스 카드(Network Interface Card)의 점유율, 남는 공간, 사용 상태, 네트워크 점유 상태 등을 조회하는 역할을 할 수 있다. 플랫폼 관리부(250)는 송수신부(100; 도 2) 및 데이터 스크래핑 정보수집부(200)의 프로그램이나 라이브러리, 인증서를 갱신하고 동기화하기 위한 전처리 작업이나 파일 송수신을 담당할 수도 있다.
일 실시예에서, 데이터 스크래핑 정보수집부(200)는 검증부(210)를 더 포함한다. 검증부(210)는 송수신부(100; 도 2)의 정보수집 프로그램으로부터 스크래핑 요청이 있을 경우, 상기 정보수집 프로그램과 데이터 스크래핑 정보수집부(200)가 서로 인증된 프로그램인지 여부를 확인한다. 확인 결과 정보수집 프로그램과 데이터 스크래핑 정보수집부(200)가 서로 인증된 프로그램일 경우 검증부(210)에서는 스크래핑 요청을 작업 관리부(220)로 전달하여 스크래핑이 이루어지도록 하되, 서로 인증된 프로그램이 아닐 경우에는 스크래핑 요청을 거절할 수 있다.
일 실시예에서, 데이터 스크래핑 정보수집부(200)는 인증서 분배부(270)를 포함한다. 인증서 분배부(270)는 데이터 스크래핑 정보수집부(200)와 상호 인증된 하나 또는 복수의 사용자의 인증서를 저장하고 있으며, 데이터 스크래핑 정보수집부(200)에 할당된 스크래핑 작업에 따라 필요한 인증서를 스크래핑 엔진부(240)에 설치하는 기능을 한다.
또한 일 실시예에서, 데이터 스크래핑 정보수집부(200)는 모듈 업데이터부(260)를 더 포함한다. 모듈 업데이터부(260)는 스크래핑 요청에 포함된 인증 정보를 기반으로 사용자 장치(10; 도 2)에 설치된 인증서와 스크래핑 엔진부(240)에 설치된 인증서를 비교하여, 사용자 장치(10)에 설치된 인증서와 스크래핑 엔진부(240)에 설치된 인증서가 상이할 경우 사용자 장치(10)에 설치된 인증서를 기준으로 스크래핑 엔진부(240) 및 인증서 분배부(270)의 인증서를 갱신하는 역할을 한다.
일 실시예에서, 데이터 스크래핑 정보수집부(200)는 감사용 자료 관리부(280)를 더 포함한다. 감사용 자료 관리부(280)는 데이터 스크래핑 정보수집부(200)를 사용함에 있어 서비스에 오작동, 수행 시간, 수행 작업의 간략한 내용, 최적화용 정보, 스크래핑 작업의 권한 정보 등을 저장하고 관리한다.
일 실시예에서, 데이터 스크래핑 정보수집부(200)는 DB 파일부(290)를 더 포함한다. DB 파일부(290)는 감사용 자료 관리부(280)에 의하여 제어되며, 인증부(210), 작업 관리부(220), 플랫폼 관리부(250), 모듈 업데이터부(260) 및 인증서 분배부(270)의 로그를 API호출이나 OLE 프로토콜을 사용하여 저장하는 역할을 한다.
일 실시예에서, 데이터 스크래핑 정보수집부(200)는 스크래핑 오류수정부(215)를 더 포함한다. 스크래핑 오류수정부(215)는, 사용자 장치(10)에서 직접 스크래핑을 수행하는 클라이언트(client) 스크래핑 동작에 있어서 사용자 장치(10) 상의 스크래핑 모듈에서 발생하는 오류를 해결하기 위해 사용자 장치(10) 상의 스크래핑 모듈을 업데이트하는 동작을 수행할 수 있다. 즉, 사용자 장치(10)에서 스크래핑이 직접 수행되면서 오류가 발생하면, 스크래핑 오류수정부(215)는 오류 발생시 사용자 장치(10)에 입력된 스크래핑 입력정보로부터 오류 로그를 분석하고, 분석된 오류 로그를 기초로 상기 사용자 장치(10) 내 스크래핑 모듈이 업데이트되도록 한다.
종래에 사용자 장치에서 직접 스크래핑 시 오류가 발생한 경우, 통상적으로 개발자가 사용자 단말에 원격접속을 통하여 오류를 수정하거나 오류 로그를 서버로 전송하여 오류를 수정하였다. 그러나, 원격접속의 경우 사용자는 별도 프로그램을 사용자 단말에 설치해야 하며 오류로그 서버 전송시에는 사용자의 개인 정보가 유출될 수 있고 로그가 많은 경우 유실도 발생할 수 있는 문제가 있다. 또한, 스크래핑 대상 외부 기관 사용자 별로 응답 정보의 형태가 다르기 때문에 다양한 케이스의 테스트 계정을 보유해야 하는 문제가 있다.
이에 본 발명의 일 실시예에 따르면 이러한 문제점을 개선하기 위해 스크래핑시 입력정보를 암호화하여 스크래핑 오류수정부(215)가 전송받고, 클라우드 스크래핑을 통해 테스트 하여 빠르게 오류를 수정할 수 있다. 일 실시예에서, 이상의 오류 수정 동작은 검증부(210)에 의한 인증이 완료된 정보수집 프로그램과 통신하는 사용자 장치(10)를 대상으로 수행될 수 있다.
구체적으로, 사용자 장치(10)에서 스크래핑 수행 시 스크래핑 오류가 발생하면, 스크래핑 오류수정부(215)는 오류 발생시 사용자 장치(10)에 입력된 스크래핑 입력정보를 수신하고, 오류 로그를 분석하여 오류를 수정할 수 있다. 이 경우 수신되는 스크래핑 입력정보는 암호화된 상태일 수 있다.
예컨대, 스크래핑 오류수정부(215)는 스크래핑 모듈이 기 분석한 데이터 부분(A1)과 상기 기 분석한 데이터 부분(A)에 대응되는 현재 스크래핑하여 획득한 데이터 부분(A2)이 상이 할 경우 스크래핑 오류가 발생한 것으로 결정할 수 있다. 여기서 스크래핑 오류 발생 여부를 판단함에 이용되는 기 분석한 데이터 부분은 1) 해당 외부기관 서버를 식별할 수 있는 고유값, 태그 정보 또는 파싱된 정보 중 하나 이상을 포함할 수 있다.
또한 스크래핑 오류수정부(215)는 스크래핑 오류가 발생한 것으로 판단하면, 오류 로그를 생성할 수 있다. 여기서 오류 로그는 로그시간, 플랫폼종류, 앱ID, 라이브러리 버전정보, 디바이스 아이디, 오류코드 중 하나 이상을 포함할 수 있다.
그 후 스크래핑 오류수정부(215)는 이러한 오류 로그를 기 분석한 데이터 부분(A1)을 포함하는 데이터 부분과 비교함으로써 오류 원인을 도출하고, 이러한 오류 원인을 기초로 스크래핑 모듈(미도시)이 현재 스크래핑하여 획득한 데이터 부분(A2)을 수정하도록 사용자 장치(10) 내 스크래핑 모듈(미도시)이 업데이트 되도록 할 수 있다.
예컨대, 스크래핑 오류수정부(215)는 사용자 장치(10) 내 소프트웨어 업데이트 요청을 사용자 장치(10)에 전송하고, 사용자 장치(10)의 업데이트 요청 수락에 따라서 상기 사용자 장치(10)에 스크래핑 모듈 업데이트를 위한 데이터를 사용자 장치(10)에 전송해줄 수 있다.
여기서 스크래핑 입력정보는 은행코드, 클래스(개인뱅킹 또는 기업뱅킹), 요청 서비스종류(전계좌조회, 거래내역조회 등), 계좌번호, 카드 코드, 로그인 전자서명값, 결제일, 조회 시작일 또는 조회 종료일과 같은 금융 관련 다양한 정보를 포함할 수 있다. 이때 스크래핑 오류수정부(215)는 사용자의 인증 정보가 금융기관 등에서 요구하는 인증 방식에 따라 처리된 로그인 전자서명값을 수신하고 이를 기초로 스크래핑 모듈의 오류 수정을 실시할 수 있으므로, 사용자의 인증 정보의 원본 데이터를 외부 서버에 전달하여 보안 상의 위험을 발생시키지 않는다. 또한, 사용자의 로그인 전자서명값은 사용자 장치(10)의 업데이트 요청 수락이 수신되는 것에 대한 응답으로 스크래핑 오류수정부(215)에서 삭제됨으로써, 스크래핑 모듈의 업데이트 후 로그인 전자서명값이 서버에 남아 있어 보안 상의 위험이 잔존하는 것을 방지할 수 있다.
도 4는 도 3에 도시된 스크래핑 엔진부 및 이의 구현을 위한 하드웨어 제원을 나타내는 블록도이다.
도 4를 참조하면, 스크래핑 엔진부(240)는 스크립트 엔진(241), 스크래핑 환경 관리부(242), 통신 관리부(243) 및 세션 관리부(244)를 포함할 수 있다. 실시예들에서 스크래핑 엔진부(240) 전체는 플랫폼 독립적인 형태의 스크립트로서 구현되며, 스크립트 엔진(241), 스크래핑 환경 관리부(242), 통신 관리부(243) 및 세션 관리부(244)는 이러한 스크립트를 기능적으로 구분한 것일 수 있다. 또한, 스크래핑 엔진부(240)는 CPU(310), 메인 메모리(320), USB 호스트 컨트롤러(330), 하드 디스크 드라이브(340), 및 네트워크 인터페이스 카드(350)를 포함하는 하드웨어 및 각각의 하드웨어 컴포넌트에 대한 디바이스 드라이버(Device Driver)와 CMOS BIOS 등을 포함하는 소프트웨어를 이용하여 실행되도록 구현될 수 있다.
스크래핑 환경관리부(242)는, 스크래핑을 수행할 대상 기관의 식별 정보와, 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보를 포함하는 환경 정보를 저장한다. 본 실시예에서는, 이상과 같은 환경 정보가 저장된 스크래핑 환경관리부(242)가 스크래핑 엔진부(240)의 스크립트 형태로 구현되어 있으므로, 사용자 장치나 이의 OS 등 플랫폼의 종류에 따라 개별적으로 스크래핑 엔진을 개발할 필요가 없는 이점이 있다.
세션 관리부(244)는, 환경 정보의 통신 정보에 기초하여 스크래핑 엔진부(240)와 기관을 통신 연결하는 통신 세션을 생성 및 유지하는 기능을 한다. 이때 통신 정보란, 기관에서 보안 통신에 요구하는 통신 암호화 프로토콜의 종류나 세션 유지 시간 등의 정보를 포함할 수 있으며, 세션 관리부(244)는 스크래핑 요청에 상응하는 기관에서 요청하는 통신 암호화 프로토콜 및 세션 유지 시간에 따라 기관에 대한 통신 세션을 관리하는 기능을 한다.
스크립트 엔진(241)은, 스크래핑 환경 관리부(242)에 저장된 기관의 인증 정보에 기초하여 사용자 정보가 처리된 인증값을 기관에 전송함으로써 상기 기관으로부터 데이터를 스크래핑하도록 구성된다. 예를 들어, 인증 정보는 호출된 조회 또는 수행에 대응되는 데이터를 스크래핑하기 위하여 제1 내지 제n 기관(40-1 내지 40-n; 도 2)이 각각 요구하는 인증 방식에 대한 정보일 수 있으며, 스크립트 엔진(241)은 데이터 스크래핑을 위하여 사용자 정보가 상응하는 인증 방식(예컨대, 비대칭 암호화 등)으로 처리된 인증값을 제1 내지 제n 기관(40-1 내지 40-n; 도 2)에 전송하여 제1 내지 제n 기관(40-1 내지 40-n; 도 2)으로부터 데이터를 수신하도록 구성된다.
통신 관리부(243)는, 스크래핑에 요구되는 사용자 인증을 위하여, 사용자 정보를 각각의 기관에서 요구하는 통신 보안 정책에 따라 처리하여 처리 결과에 해당하는 인증값을 스크립트 엔진(241)에 전달한다. 이를 위하여, 스크래핑 환경 관리부(242)는 기관별로 인증 방식에 대한 정보를 저장하며, 통신 관리부(243)는 스크래핑 환경 관리부(242)에 저장된 정보 중 현재 스크래핑을 수행할 대상 기관에 상응하는 인증 방식에 따라 사용자 정보를 처리한 후 인증값을 스크립트 엔진(241)에 전달한다. 사용자 정보에 대한 처리란 인증서 정보 및 전자서명을 기관에서 요구하는 보안 정책에 따라 암호화 하는 등의 과정을 의미할 수 있다.
또한 일 실시예에서, 인증 정보는 동일한 기관 내에서도 데이터 항목별로 상이하게 정의된다. 이때 통신 관리부(243)는 사용자 정보를 데이터를 스크래핑할 기관의 통신 보안 정책 및 상기 기관 내에서 스크래핑할 데이터 항목에 대해 정의된 통신 보안 정책에 상응하는 방식으로 처리하고, 이와 같이 처리된 인증값을 스크립트 엔진(241)에 전달할 수도 있다.
스크립트 엔진(241)은 전술한 것과 같이 생성되는 통신 세션을 통해 인증값을 기관에 전송하고 기관으로부터 스크래핑 방식으로 데이터 셋을 수신한다. 일 실시예에서, 스크래핑 엔진부(240)는 스크립트 엔진(241) 및 하드웨어 제원(310, 320, 330, 340, 35)을 이용하여 구성된 스크래핑 모듈에 해당하되, 이러한 스크래핑 모듈이 복수 개로 이루어져 제1 내지 제n 스크래핑 모듈(240-1 내지 240-n)을 통한 다중 스크래핑을 수행하도록 구성될 수도 있다.
일 실시예에서, 스크립트 엔진(241)은 스크래핑 과정에서 대상 기관이 요구하는 통신 방식 및/또는 인증 방식의 변경에 관련된 정보를 스크래핑 방식으로 수신할 수 있다. 예컨대, 금융기관이 요구하는 통신 암호화 방식 또는 사용자 정보의 인증 방식은 언제든지 변경될 수 있으며, 이 경우 변경 전의 통신 방식 또는 인증 방식을 이용한 스크래핑 시도는 실패하게 된다. 스크래핑 환경 관리부(242)에 현재 저장되어 있는 통신 방식 및 인증 방식을 이용한 스크래핑 시도가 실패할 경우, 스크립트 엔진(241)에서는 기존의 데이터 셋 수신을 위한 기관 서버 주소(예컨대, 웹 페이지)가 아니라 기관에서 요구하는 통신 방식 및/또는 인증 방식에 대한 정보를 제공하는 다른 서버 주소에 접속하여, 해당 기관이 요구하는 통신 방식 및/또는 인증 방식에 대한 정보를 스크래핑 방식으로 수신한다.
즉, 스크립트 엔진(241)에서는 일단 현재 가지고 있는 환경 정보를 토대로 기관 웹 페이지에서 사용자 정보의 스크래핑을 시도한 후, 통신 방식 또는 인증 방식의 오류로 인해 스크래핑이 실패하는 경우에는 기관의 통신 방식 및 인증 방식을 정의하는 별도의 웹 페이지를 통해 환경 정보를 검증하기 위한 정보를 스크래핑할 수 있다. 이때 별도의 웹 페이지는 스크래핑을 수행할 대상 기관의 서버가 제공하는 다른 주소에 해당하는 것일 수도 있으며, 또는 스크래핑을 수행할 대상 기관이 아닌 제3의 기관에 의하여 제공되는 별도의 서버에 해당하는 것일 수도 있다.
전술한 과정에 의해 환경 정보에 대한 변경이 확인될 경우, 스크래핑 환경 관리부(242)는, 스크립트 엔진(241)을 통하여 스크래핑된 통신 방식 및/또는 인증 방식에 기초하여 스크래핑 환경 관리부(242)에 저장된 환경 정보를 업데이트한다. 이후, 세션 관리부(244)는 업데이트된 환경 정보의 통신 정보에 기초하여 스크래핑을 위한 통신 세션을 생성한다. 또한, 통신 관리부(243)는 업데이트된 환경 정보의 인증 정보에 기초하여 사용자 정보가 처리된 인증값을 스크립트 엔진(241)에 전달한다.
한편, 세션 관리부(244) 및 통신 관리부(243)는 업데이트된 환경 정보에 따른 동작을 가능하게 하기 위하여 외부의 정책 서버(미도시)로부터 필요한 정보를 다운로드할 수도 있다. 예를 들어, 세션 관리부(244) 및 통신 관리부(243)는 업데이트된 환경 정보에 따라 세션을 형성하거나 사용자 정보를 처리하기 위하여 요구되는 통신 암호화 정책, 데이터 암호화 정책, 인증서 등을 정책 서버로부터 다운로드할 수 있다. 그러나 이는 예시적인 것으로서, 다른 실시예에서는 다양한 통신 방식 및 인증 방식에 따른 처리를 위한 알고리즘 및 라이브러리 파일 등이 세션 관리부(244) 및 통신 관리부(243)에 미리 저장되어 있고, 세션 관리부(244) 및 통신 관리부(243)에서는 스크래핑 환경 관리부(242)의 환경 정보에 기초하여 이 중 적합한 정보를 선택하여 사용하는 것도 가능하다.
도 5는 일 실시예에 따른 데이터 스크래핑 방법의 각 단계를 나타내는 순서도이다. 본 실시예에 따른 데이터 스크래핑 방법은, 본 발명의 실시예들에 따른 데이터 스크래핑 시스템을 이용하여 수행될 수 있다.
도 5를 참조하면, 먼저 사용자에 의해 호출된 조회 또는 수행의 정보 및 사용자 정보를 포함하여 스크래핑에 필요한 정보를 수신할 수 있다(S11). 일 실시예에서는, 스크래핑될 데이터 항목의 정보를 메타 DB에 저장할 수도 있다(S12). 다음으로, 내부 스케줄 알고리즘을 사용하여 플랫폼 독립적인 스크립트 엔진에 사용자 정보와 작업을 할당할 수 있다(S13). 예를 들어, 할당될 사용자 정보와 작업은 스크래핑 수집정보 전문의 형태로 스크립트 엔진에 전달될 수 있다.
사용자 정보와 작업이 할당된 스크립트 엔진에서는, 스크립트 엔진에 저장된 환경 정보에 기초하여 스크래핑할 기관의 통신 정책(예컨대, 통신 암호화 프로토콜, 세션 유지 시간)에 부합하는 통신 세션을 생성한다(S14). 또한 스크립트 엔진에서는, 스크립트 엔진에 저장된 환경 정보에 기초하여, 사용자 정보를 스크래핑할 기관의 보안 정책에 따라 처리하여 인증값을 생성하고(S15), 생성된 인증값을 통신 세션에 전송함으로써(S16), 사용자에 의해 호출된 조회 또는 수행에 대응되는 데이터를 스크래핑할 수 있다(S17). 인증값은 스크래핑할 정보에 대한 기관의 보안 정책에 따라 인증서 및 전자서명을 암호화한 값일 수도 있고, 또는 단순히 사용자의 ID 및 비밀번호 등 사용자 정보일 수도 있다.
일 실시예에서, 스크립트 엔진은 기관이 제공하는 데이터 셋으로부터 메타 DB의 스크래핑 항목에 기반하여 데이터를 추출할 수 있다(S18). 이를 위하여, 메타 DB에는 기관이 제공하는 데이터 셋에서 각 항목이 위치하는 부분을 특정하는 식별 정보가 미리 저장될 수 있다. 이상의 과정에 의하여 추출된 스크래핑 데이터는 정보수집 프로그램에 의하여 취합된 후 사용자에게 제공될 수 있다.
도 6은 또 다른 실시예에 따른 데이터 스크래핑 방법의 각 단계를 나타내는 순서도이다.
도 3 및 도 6을 참조하면, 먼저 데이터 스크래핑 정보수집부(200)에서는 사용자 장치(10)로부터의 스크래핑 요청을 송수신부(100)를 통해 수신하고, 스크래핑 엔진 정보 읽기를 수행한다(S100). 이는 스크래핑 엔진부에 저장된 인증서의 버전, 스크래핑 엔진부의 오작동 여부, 수행 시간, 수행 작업의 간략한 내용, 최적화용 정보, 스크래핑 작업의 권한 정보 등을 확인하는 과정을 포함할 수 있다.
일 실시예에서, 데이터 스크래핑 정보수집부(200)는 스크래핑 요청에 기초하여 스크래핑할 항목을 결정하고, 이를 메타 DB(280)에 저장할 수 있다(S110). 스크래핑할 항목이 결정되면, 데이터 스크래핑 정보수집부(200)에서는 이에 기초하여 기관에 스크래핑을 요청한다(S120).
스크래핑을 위한 구체적인 과정으로서, 먼저 데이터 스크래핑 정보수집부(200)는 스크래핑 엔진부(240)의 작업 관리를 위한 스크래핑 작업 모니터 및 스크래핑 작업 관리자의 버전 확인 여부를 판단하여 버전을 확인하였으면(단계 S130, S140의 '예') 다음 단계로 넘어가고, 버전을 확인하지 않았으면(단계 S130, S140의 '아니오') 상기 스크래핑 작업 모니터 및 스크래핑 작업의 버전을 동기화(단계 S132, S142)시키는 작업을 수행한다.
그 다음, 데이터 스크래핑 정보수집부(200)는 스크래핑 엔진부(240) 내 인증서 버전 확인 여부를 판단하여 버전을 확인하였으면(단계 S150의 '예') 다음 단계(S160)로 넘어가고, 버전을 확인하지 않았으면(단계 S150의 '아니오') 인증서의 버전을 동기화(단계 S152)시킨 후 다음 단계(S160)로 넘어간다.
상기 단계(S160)에서는, 요청된 데이터 스크래핑을 위하여 기관의 보안 정책에 따라 요구되는 스크래핑 엔진의 인증 방법을 확인한다(S160). 인증 방법은 기관별로 상이할 수도 있으며, 또한 하나의 기관에서도 스크래핑할 데이터 항목에 따라 인증 방법이 상이할 수 있다. 예를 들어, 잔액 및 입출금 내역 조회에 대해서는 인증서를 요구하지 않고 사용자 ID 및 비밀번호 입력만을 통하여 기관으로부터 데이터 셋을 제공받을 수 있는 반면, 거래 내역이나 유효 기간 등의 조회를 위해서는 전자 서명을 통한 인증서의 인증이 필요할 수 있다.
상기 단계(S160)에서 확인된 인증 방식에 따라, 인증서 인증이 필요할 경우 데이터 스크래핑 정보수집부(200)는 사용자 정보로서 인증서 및 전자서명을 입력받고(S170) 이를 기관이 요구하는 보안 정책에 따라 처리하거나(S180), 또는 사용자 정보로서 ID 및 비밀번호 등을 입력받거나(S190), 생체 인증 방식으로 사용자 정보로서 사용자의 홍채 인식 정보, 지문 인식 정보 또는 다른 형태의 신체 관련 정보를 수신하고(S200) 이를 기관이 요구하는 보안 정책에 따라 처리할 수 있다(S210)
데이터 스크래핑 정보수집부(200)는 이상의 인증 정보가 처리된 인증값을 전송함으로써 기관으로부터 스크래핑 대상 정보를 수집한다(S220). 이때, 일 실시예에서 데이터 스크래핑 정보수집부(200)는 메타 DB(230)를 참조하여 스크래핑된 데이터가 메타 DB(230)의 스크래핑 항목과 일치하는지 여부를 확인하고(S230), 일치하지 않을 경우 단계 S110으로 돌아가 다시 스크래핑을 수행하며, 일치할 경우 스크래핑 결과를 취합하여 취합된 정보를 사용자에게 반환하게 된다(S240).
이상에서 설명한 실시예들에 따른 데이터 스크래핑 방법에 의하면, 데이터 스크래핑 정보수집부가 구현되는 장치의 하드웨어나 해당 장치를 운용하기 위한 OS 등 플랫폼에 의하여 영향을 받지 않도록 플랫폼 독립적인 스크립트 형태로 스크래핑 엔진을 구현할 수 있다. 스크래핑 엔진은 스크립트에서 금융 기관 등 기관의 통신 방식에 부합하는 통신 세션을 생성하고, 금융 기관 등에서 요구하는 인증 방식에 따라 처리된 사용자 정보의 인증값을 기관에 전달하여 목적하는 데이터를 스크래핑할 수 있다. 그 결과, 스크래핑 모듈을 각각의 운영체제 별로 별도로 개발할 필요가 없이 다양한 운영체제에서의 스크래핑을 하나의 스크래핑 모듈에서 처리할 수 있어, 사용되는 장치 및 운영체제가 점차 다변화되어 가는 현재의 실정에서 스크래핑 시스템의 개발에 투입되는 비용과 인력을 획기적으로 줄일 수 있는 이점이 있다.
이상에서 설명한 실시예들에 따른 데이터 스크래핑 방법은 적어도 부분적으로 컴퓨터 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 실시예들에 따른 기록매체에는 데이터 스크래핑 방법을 구현하기 위한 프로그램이 기록되며, 상기 기록매체는 컴퓨터에 의하여 읽혀질 수 있는 데이터가 저장될 수 있는 임의의 종류의 기록장치를 포함한다. 예컨대, 컴퓨터가 읽을 수 있는 기록매체에는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트(segment)들은 본 실시예가 속하는 기술 분야의 통상의 기술자에 의해 용이하게 이해될 수 있을 것이다.
이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.

Claims (21)

  1. 스크래핑이 필요한 조회 또는 수행을 호출하는 서비스 프로그램을 구비하며, 사용자 장치로부터 스크래핑을 위한 사용자 정보를 포함하는 스크래핑 요청을 수신하고, 스크래핑된 데이터를 상기 사용자 장치에 전송하도록 구성된 송수신부; 및
    상기 송수신부에 수신된 상기 사용자 정보를 이용하여 하나 이상의 기관으로부터 데이터를 스크래핑하도록 구성된 하나 이상의 데이터 스크래핑 정보수집부를 포함하되,
    상기 하나 이상의 데이터 스크래핑 정보수집부 각각은,
    스크래핑을 수행할 상기 기관의 식별정보와, 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보를 포함하는 환경 정보를 저장하며, 플랫폼 독립적인 스크립트 형태를 가지고, 상기 환경 정보에 기초하여 상기 기관으로부터 데이터를 스크래핑하도록 구성된 스크래핑 엔진부를 포함하는 데이터 스크래핑 시스템.
  2. 제 1항에 있어서,
    상기 스크래핑 엔진부는,
    상기 환경 정보를 저장하는 스크래핑 환경 관리부;
    상기 통신 정보에 기초하여 상기 기관과 상기 스크래핑 엔진부 사이의 통신 세션을 생성하는 세션 관리부;
    상기 인증 정보에 기초하여 상기 사용자 정보를 처리하는 통신 관리부; 및
    상기 사용자 정보가 처리된 인증값을 상기 기관에 전송함으로써 상기 기관으로부터 데이터를 스크래핑하도록 구성된 스크립트 엔진을 포함하는 데이터 스크래핑 시스템.
  3. 제 2항에 있어서,
    상기 사용자 정보는 사용자의 생체 인증 정보를 포함하는 데이터 스크래핑 시스템.
  4. 제 2항에 있어서,
    상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 스크래핑될 데이터 항목을 지정하는 메타 데이터베이스를 더 포함하며,
    상기 스크래핑 엔진부는, 상기 기관이 제공하는 데이터 셋으로부터 상기 메타 데이터베이스에 기반하여 스크래핑할 데이터를 추출하도록 더 구성된 데이터 스크래핑 시스템.
  5. 제 4항에 있어서,
    상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 스크래핑을 위한 상기 사용자 정보 및 상기 사용자 정보에 기반한 작업을 내부 스케줄 알고리즘을 사용하여 상기 스크래핑 엔진부에 할당하는 작업 관리부를 더 포함하는 데이터 스크래핑 시스템.
  6. 제 5항에 있어서,
    상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 작업 관리부의 정상 동작 여부를 감시하여 오류 발생 시 상기 작업 관리부를 재실행하며, 상기 데이터 셋에서 상기 스크래핑될 데이터 항목이 위치하는 부분을 식별하기 위한 식별 정보를 상기 메타 데이터베이스에 저장하는 플랫폼 관리부를 더 포함하는 데이터 스크래핑 시스템.
  7. 제 1항에 있어서,
    상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 송수신부의 상기 서비스 프로그램과 상기 스크래핑 엔진부가 상호 인증되었는지 여부를 검사함으로써 상기 스크래핑 요청을 검증하도록 구성된 검증부를 더 포함하는 데이터 스크래핑 시스템.
  8. 제 1항에 있어서,
    상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 데이터 스크래핑 정보수집부와 상호 인증된 하나 또는 복수의 사용자의 인증서를 저장하고 있으며, 상기 데이터 스크래핑 정보수집부에 할당된 스크래핑 작업에 기초하여 필요한 인증서를 상기 스크래핑 엔진부에 설치하도록 구성된 인증서 분배부를 더 포함하는 데이터 스크래핑 시스템.
  9. 제 8항에 있어서,
    상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 사용자 장치에 설치된 인증서와 상기 스크래핑 엔진부에 설치된 인증서가 상이할 경우, 상기 사용자 장치로부터 수신된 인증서를 이용하여 상기 스크래핑 엔진부에 설치된 인증서를 갱신하도록 구성된 모듈 업데이터부를 더 포함하는 데이터 스크래핑 시스템.
  10. 제 1항에 있어서,
    상기 하나 이상의 데이터 스크래핑 정보수집부 각각은, 상기 사용자 장치에서 스크래핑이 직접 수행되면서 오류가 발생하면, 오류 발생시 사용자 장치에 입력된 스크래핑 입력정보로부터 오류 로그를 분석하고, 분석된 오류 로그를 기초로 상기 사용자 장치 내 스크래핑 모듈이 업데이트되게 하는 스크래핑 오류수정부를 더 포함하는 데이터 스크래핑 시스템.
  11. 스크래핑이 필요한 조회 또는 수행을 호출하는 서비스 프로그램을 구비한 데이터 스크래핑 시스템의 송수신부가, 사용자 장치로부터, 사용자에 의해 호출된 조회 또는 수행의 정보 및 사용자 정보를 포함하는 스크래핑 요청을 수신하는 단계;
    상기 데이터 스크래핑 시스템이, 스크래핑을 수행할 상기 기관의 식별정보와 스크래핑을 수행할 상기 기관에 상응하는 인증 정보 및 통신 정보를 포함하는 환경 정보를 저장하며 플랫폼 독립적인 스크립트 형태를 가지는 상기 데이터 스크래핑 시스템의 스크래핑 엔진부에 상기 사용자 정보 및 상기 사용자 정보에 기초한 작업을 할당하는 단계;
    상기 스크래핑 엔진부가 상기 환경 정보에 기초하여 상기 기관으로부터 데이터를 스크래핑하는 단계; 및
    상기 송수신부가 스크래핑된 데이터를 상기 사용자 장치에 전송하는 단계를 포함하는 데이터 스크래핑 방법.
  12. 제 11항에 있어서,
    상기 기관으로부터 데이터를 스크래핑하는 단계는,
    상기 스크래핑 엔진부가 상기 통신 정보에 기초하여 상기 기관과 상기 스크래핑 엔진부 사이의 통신 세션을 생성하는 단계;
    상기 스크래핑 엔진부가 상기 인증 정보에 기초하여 상기 사용자 정보를 처리하는 단계; 및
    상기 스크래핑 엔진부가 상기 사용자 정보가 처리된 인증값을 상기 기관에 전송함으로써 상기 기관으로부터 데이터를 스크래핑하는 단계를 포함하는 데이터 스크래핑 방법.
  13. 제 12항에 있어서,
    상기 사용자 정보는 사용자의 생체 인증 정보를 포함하는 데이터 스크래핑 방법.
  14. 제 12항에 있어서,
    상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이 스크래핑될 데이터 항목을 메타 데이터베이스에 저장하는 단계를 더 포함하며,
    상기 기관으로부터 데이터를 스크래핑하는 단계는, 상기 기관이 제공하는 데이터 셋으로부터 상기 메타 데이터베이스에 기반하여 스크래핑할 데이터를 추출하는 단계를 포함하는 데이터 스크래핑 방법.
  15. 제 14항에 있어서,
    상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템의 작업 관리부가 상기 사용자 정보 및 상기 작업을 내부 스케줄 알고리즘을 사용하여 상기 스크래핑 엔진부에 할당하는 단계를 더 포함하는 데이터 스크래핑 방법.
  16. 제 15항에 있어서,
    상기 데이터 스크래핑 시스템이, 상기 작업 관리부의 정상 동작 여부를 감시하여 오류 발생 시 상기 작업 관리부를 재실행하는 단계; 및
    상기 데이터 스크래핑 시스템이, 상기 데이터 셋에서 상기 스크래핑될 데이터 항목이 위치하는 부분을 식별하기 위한 식별 정보를 상기 메타 데이터베이스에 저장하는 단계를 더 포함하는 데이터 스크래핑 방법.
  17. 제 11항에 있어서,
    상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 송수신부의 상기 서비스 프로그램과 상기 스크래핑 엔진부가 상호 인증되었는지 여부를 검사함으로써 상기 스크래핑 요청을 검증하는 단계를 더 포함하는 데이터 스크래핑 방법.
  18. 제 11항에 있어서,
    상기 데이터 스크래핑 시스템은 상기 데이터 스크래핑 시스템과 상호 인증된 하나 또는 복수의 사용자의 인증서를 저장하고 있으며,
    상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 스크래핑 엔진부에 할당된 스크래핑 작업에 기초하여 필요한 인증서를 상기 스크래핑 엔진부에 설치하는 단계를 더 포함하는 데이터 스크래핑 방법.
  19. 제 18항에 있어서,
    상기 기관으로부터 데이터를 스크래핑하는 단계 전에, 상기 데이터 스크래핑 시스템이, 상기 사용자 장치에 설치된 인증서와 상기 스크래핑 엔진부에 설치된 인증서가 상이할 경우, 상기 사용자 장치로부터 수신된 인증서를 이용하여 상기 스크래핑 엔진부에 설치된 인증서를 갱신하는 단계를 더 포함하는 데이터 스크래핑 방법.
  20. 제 18항에 있어서,
    상기 사용자 장치에서 스크래핑이 직접 수행되면서 오류가 발생하면,
    상기 데이터 스크래핑 시스템이, 오류 발생시 사용자 장치에 입력된 스크래핑 입력정보로부터 오류 로그를 분석하는 단계; 및
    상기 데이터 스크래핑 시스템이, 분석된 오류 로그를 기초로 상기 사용자 장치 내 스크래핑 모듈이 업데이트되게 하는 단계를 더 포함하는 데이터 스크래핑 방법.
  21. 하드웨어와 결합되어 제11항 내지 제20항 중 어느 한 항에 따른 데이터 스크래핑 방법을 실행하도록 매체에 저장된 컴퓨터 프로그램.
KR1020190004557A 2018-04-25 2019-01-14 스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램 KR102340474B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190004557A KR102340474B1 (ko) 2018-04-25 2019-01-14 스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180047729A KR101982085B1 (ko) 2018-04-25 2018-04-25 스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램
KR1020190004557A KR102340474B1 (ko) 2018-04-25 2019-01-14 스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180047729A Division KR101982085B1 (ko) 2018-04-25 2018-04-25 스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20190124630A true KR20190124630A (ko) 2019-11-05
KR102340474B1 KR102340474B1 (ko) 2021-12-20

Family

ID=79033830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190004557A KR102340474B1 (ko) 2018-04-25 2019-01-14 스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR102340474B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026945A (zh) * 2019-12-05 2020-04-17 北京创鑫旅程网络技术有限公司 多平台爬虫调度方法、装置和存储介质
CN111796985A (zh) * 2020-07-08 2020-10-20 北京首汽智行科技有限公司 一种数据库运行日志上传方法
KR102199486B1 (ko) 2020-06-24 2021-01-06 주식회사 틸코블렛 컨텐츠 제공자를 위한 전자인증 대행방법
KR102211033B1 (ko) 2020-07-15 2021-02-03 주식회사 틸코블렛 전자인증절차의 대행 서비스 시스템
KR20210099360A (ko) * 2020-02-04 2021-08-12 (주) 씨이랩 빅데이터 및 인공지능을 이용한 사용자 정보 통합 플랫폼 및 이의 운용방법
KR102296659B1 (ko) * 2020-11-11 2021-08-31 민경권 스크래핑 기술을 연동한 단 대 단 개인정보 통합 활용 시스템 및 방법
CN114328302A (zh) * 2021-12-28 2022-04-12 威创集团股份有限公司 一种多主机输入控制方法、系统、设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102518772B1 (ko) * 2022-10-25 2023-04-06 주식회사 에이데이타 수집 데이터 자동 처리를 위한 데이터 적재 프로파일링 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100494975B1 (ko) 2001-02-21 2005-06-16 주식회사 핑거 스크린 스크래핑 기술을 이용한 고객 자산 관리 방법 및시스템
KR20140028789A (ko) * 2012-08-30 2014-03-10 주식회사 핑거 모바일 디바이스에서의 웹 스크린 스크래핑 방법 및 웹 스크린 스크래핑을 제공하는 모바일 디바이스
KR20170080768A (ko) * 2015-12-30 2017-07-11 주식회사쿠콘 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100494975B1 (ko) 2001-02-21 2005-06-16 주식회사 핑거 스크린 스크래핑 기술을 이용한 고객 자산 관리 방법 및시스템
KR20140028789A (ko) * 2012-08-30 2014-03-10 주식회사 핑거 모바일 디바이스에서의 웹 스크린 스크래핑 방법 및 웹 스크린 스크래핑을 제공하는 모바일 디바이스
KR20170080768A (ko) * 2015-12-30 2017-07-11 주식회사쿠콘 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026945A (zh) * 2019-12-05 2020-04-17 北京创鑫旅程网络技术有限公司 多平台爬虫调度方法、装置和存储介质
CN111026945B (zh) * 2019-12-05 2024-01-26 北京创鑫旅程网络技术有限公司 多平台爬虫调度方法、装置和存储介质
KR20210099360A (ko) * 2020-02-04 2021-08-12 (주) 씨이랩 빅데이터 및 인공지능을 이용한 사용자 정보 통합 플랫폼 및 이의 운용방법
KR102199486B1 (ko) 2020-06-24 2021-01-06 주식회사 틸코블렛 컨텐츠 제공자를 위한 전자인증 대행방법
CN111796985A (zh) * 2020-07-08 2020-10-20 北京首汽智行科技有限公司 一种数据库运行日志上传方法
CN111796985B (zh) * 2020-07-08 2023-11-17 北京首汽智行科技有限公司 一种数据库运行日志上传方法
KR102211033B1 (ko) 2020-07-15 2021-02-03 주식회사 틸코블렛 전자인증절차의 대행 서비스 시스템
KR102296659B1 (ko) * 2020-11-11 2021-08-31 민경권 스크래핑 기술을 연동한 단 대 단 개인정보 통합 활용 시스템 및 방법
CN114328302A (zh) * 2021-12-28 2022-04-12 威创集团股份有限公司 一种多主机输入控制方法、系统、设备及存储介质
CN114328302B (zh) * 2021-12-28 2023-10-10 威创集团股份有限公司 一种多主机输入控制方法、系统、设备及存储介质

Also Published As

Publication number Publication date
KR102340474B1 (ko) 2021-12-20

Similar Documents

Publication Publication Date Title
KR102340474B1 (ko) 스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램
KR101982085B1 (ko) 스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램
KR101815235B1 (ko) 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램
US8234620B1 (en) Method and system for software development using distributed computing resources
US10209982B2 (en) Distributed storage framework information server platform architecture
US10460123B1 (en) System and method for automatically securing sensitive data in public cloud using a serverless architecture
CN109194495B (zh) 服务器、报文处理方法和计算机可读存储介质
US11586687B2 (en) Apparatus, method and computer program for cloud scraping using pre-scraped big data
CN102007756B (zh) 用于数据处理环境中的动态供应的方法和装置
US9582776B2 (en) Methods and systems for providing a comprehensive view of it assets as self service inquiry/update transactions
US8984124B2 (en) System and method for adaptive data monitoring
US20210157949A1 (en) Event data tagged with consent records
JP2020161180A (ja) スクレイピングを通じた資金振替・振込方法とそのシステム及びコンピュータプログラム
KR102637173B1 (ko) 5g 모바일 에지 컴퓨팅 환경을 위한 블록체인 시스템, 장치 및 운영 방법
KR100624705B1 (ko) 스크래핑 머신을 이용한 스크린 스크래핑 분산처리 방법 및그 시스템
KR101980274B1 (ko) 블록체인망을 이용한 가상계좌 시스템 및 그의 가상계좌 발급 및 입금 방법
RU2682863C1 (ru) Система и способ оценки веб-сайта на соответствие законодательству о персональных данных
KR20190130957A (ko) 미리 스크래핑된 빅데이터를 이용한 클라우드 스크래핑 시스템 및 방법과, 이를 위한 컴퓨터 프로그램
US10298682B2 (en) Controlling device data collectors using omni-collection techniques
KR20180130910A (ko) 스크래핑 장치 및 방법
CN116755719A (zh) 应用组件的数据处理方法、装置和数据处理系统
CN106817343B (zh) 一种用于审核针对域名注册/变更操作的域名/实名的方法
CN116346479A (zh) 数据访问方法、装置、设备和存储介质
CN115168368A (zh) 企业业务平台、处理方法、电子设备以及存储介质
CN114528176A (zh) 用户系统中的问题管理

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant