WO2021066231A1 - Sql 쿼리 추천 방법 및 시스템 - Google Patents

Sql 쿼리 추천 방법 및 시스템 Download PDF

Info

Publication number
WO2021066231A1
WO2021066231A1 PCT/KR2019/012980 KR2019012980W WO2021066231A1 WO 2021066231 A1 WO2021066231 A1 WO 2021066231A1 KR 2019012980 W KR2019012980 W KR 2019012980W WO 2021066231 A1 WO2021066231 A1 WO 2021066231A1
Authority
WO
WIPO (PCT)
Prior art keywords
query
sql query
sql
recommendation
source
Prior art date
Application number
PCT/KR2019/012980
Other languages
English (en)
French (fr)
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
Application filed by (주) 더존비즈온 filed Critical (주) 더존비즈온
Publication of WO2021066231A1 publication Critical patent/WO2021066231A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • 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/903Querying
    • G06F16/9032Query formulation
    • 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/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions

Abstract

기 개발된 쿼리 중 가장 관련성이 높은 유사 쿼리를 추천하는 SQL 쿼리 추천 방법 및 시스템이 개시된다. 본 발명의 일 측면에 따르면, SQL 쿼리 추천 시스템이, 기 구축된 ERP 시스템의 소스 코드를 획득하는 단계, 상기 SQL 쿼리 추천 시스템이, 상기 소스 코드를 분석하여 상기 소스코드에 포함된 복수의 소스 SQL 쿼리를 추출하는 단계, 상기 SQL 쿼리 추천 시스템이, 상기 ERP 시스템이 작동하면서 기록하는 런타임 로그 데이터를 획득하는 단계, 상기 SQL 쿼리 추천 시스템이, 상기 로그 데이터로부터 상기 ERP 시스템에 의해 호출된 런타임 SQL 쿼리를 추출하는 단계, 상기 SQL 쿼리 추천 시스템이, 상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스를 생성하는 단계, 상기 SQL 쿼리 추천 시스템이, 사용자 단말로부터 쿼리 추천 요청을 수신하는 경우, 상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출하는 단계 및 상기 사용자 단말로 상기 추천 SQL 쿼리를 제공하는 단계를 포함하는 SQL 쿼리 추천 방법이 제공된다.

Description

SQL 쿼리 추천 방법 및 시스템
본 발명은 SQL 쿼리 추천 방법 및 시스템에 관한 것으로서, 보다 상세하게는 개발자가 필요로 하는 SQL 쿼리가 종전에 개발된 것과 유사한 것일 경우 기 개발된 쿼리 중 가장 관련성이 높은 유사 쿼리를 추천함으로써, 업무 효율성 및 사용자 편의성을 높일 수 있는 SQL 쿼리 추천 방법 및 시스템에 관한 것이다.
기업에서는 재무, 생산, 재고와 같은 회사의 경영, 관리에 필요한 수많은 데이터를 취급하게 된다. 따라서, 최근 컴퓨터 기술의 발전과 함께, 기업의 경영 및 관리에 관한 업무를 위한 컴퓨터 시스템인 ERP(Enterprise Resource Planning) 솔루션 소프트웨어를 도입하는 기업이 늘어나고 있는 추세이다.
ERP 시스템의 경우, 기업의 운영 과정에서 생성되는 다양한 데이터를 관리, 조작해야 하므로, ERP 시스템에 포함된 수 많은 로직에서 SQL(Structured Query Language) 쿼리를 이용하게 된다.
한편 ERP 시스템이 업그레이드되거나 새로운 ERP 시스템이 개발되더라도 기존에 개발되어 있던 ERP 시스템에서 기 사용되던 SQL 쿼리가 재사용되는 사례가 많이 발생하고 있다. 또한 ERP 시스템의 경우 그 방대한 크기로 인해 해당 시스템을 개발하는데 많은 개발 인력이 요구되며 이로 인해 동일한 기능을 수행하는 SQL 쿼리가 조금씩 다른 표현으로 중복 개발되고 있는 문제점이 있다.
따라서, 특정한 기능을 수행하는 SQL 쿼리에 상응하는 기 개발된 SQL 쿼리를 효율적으로 검색하여 추천함으로써 개발의 중복성을 줄이고 개발 업무 효율성을 높일 수 있는 방안이 절실히 요구된다.
본 발명이 이루고자 하는 기술적 과제는 상술한 종래의 문제점을 해결하고자 하는 것으로서, 데이터베이스 내의 여러 테이블에 분산되어 있는 데이터를 사용자가 직접 선택하여 조회할 수 있도록 함으로써, 업무 효율성 및 사용자 편의성을 높일 수 있는 SQL 쿼리 추천 방법 및 시스템을 제공하는 것이다.
본 발명의 일 측면에 따르면, SQL 쿼리 추천 시스템이, 기 구축된 ERP 시스템의 소스 코드를 획득하는 단계; 상기 SQL 쿼리 추천 시스템이, 상기 소스 코드를 분석하여 상기 소스코드에 포함된 복수의 소스 SQL 쿼리를 추출하는 단계; 상기 SQL 쿼리 추천 시스템이, 상기 ERP 시스템이 작동하면서 기록하는 런타임 로그 데이터를 획득하는 단계; 상기 SQL 쿼리 추천 시스템이, 상기 로그 데이터로부터 상기 ERP 시스템에 의해 호출된 런타임 SQL 쿼리를 추출하는 단계; 상기 SQL 쿼리 추천 시스템이, 상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스를 생성하는 단계; 상기 SQL 쿼리 추천 시스템이, 사용자 단말로부터 쿼리 추천 요청을 수신하는 경우, 상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출하는 단계; 및 상기 사용자 단말로 상기 추천 SQL 쿼리를 제공하는 단계를 포함하는 SQL 쿼리 추천 방법이 제공된다.
일 실시예에서, 상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 추천 SQL 쿼리를 추출하는 단계는, 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 추천 SQL 쿼리를 추출하는 단계는, 상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리와 매핑된 모든 런타임 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 일부로서 더 추출하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 SQL 쿼리 추천 방법은, 상기 SQL 쿼리 추천 시스템이, 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리와 매핑된 적어도 하나의 런타임 SQL 쿼리 간의 차이를 식별하고, 상기 식별 결과에 기초하여 시소러스를 구축하는 단계를 더 포함하되, 상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 추천 SQL 쿼리를 추출하는 단계는, 상기 시소러스에 기초하여 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리를 검색하는 단계를 포함할 수 있다.
일 실시예에서, 상기 SQL 쿼리 추천 방법은, 상기 소스 코드를 분석하여 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리가 포함된 클래스의 클래스 정의 정보를 더 추출하는 단계를 더 포함하고-여기서 클래스 정의 정보는, 해당 클래스 정의 정보에 상응하는 클래스의 프로토타입, 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 메소드의 프로토 타입 및 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 멤버 변수의 정의 정보를 포함함; 상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스를 생성하는 단계는, 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 포함하는 클래스 정의 정보를 상기 소스 SQL 쿼리에 매핑하는 단계를 포함할 수 있다.
일 실시예에서, 상기 SQL 쿼리 추천 방법은, 상기 소스 코드를 분석하여 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 실행하기 위한 GUI(Graphic User Inferface)의 소스 코드를 더 추출하는 단계를 더 포함하고, 상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스를 생성하는 단계는, 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 실행하기 위한 GUI 소스 코드를 상기 상기 소스 SQL 쿼리에 매핑하는 단계를 포함하고, 상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 추천 SQL 쿼리를 추출하는 단계는, 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 GUI 소스 코드가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 GUI 소스 코드에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 SQL 쿼리 추천 방법은, 상기 ERP 시스템에서 표시되는 각 GUI에 대한 GUI 설계 정보를 획득하는 단계; 상기 GUI의 소스 코드 각각에 상응하는 GUI 설계 정보를 해당 GUI 소스 코드와 매핑하여 상기 추천 쿼리 데이터베이스에 저장하는 단계; 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출되는 경우, 추출된 상기 적어도 하나의 추천 SQL 쿼리 각각에 상응하는 GUI 설계 정보를 상기 사용자 단말로 더 제공하는 단계를 더 포함할 수 있다.
본 발명의 다른 일 측면에 따르면, 상술한 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체가 제공된다.
본 발명의 다른 일 측면에 따르면, SQL 쿼리 추천 시스템으로서, 프로세서; 및 프로그램이 저장된 메모리를 포함하되, 상기 프로그램은, 상기 프로세서에 의해 실행되는 경우, 상기 SQL 쿼리 추천 시스템이 상술한 방법을 수행하도록 하는 SQL 쿼리 추천 시스템이 제공된다.
본 발명의 다른 일 측면에 따르면, 기 구축된 ERP 시스템의 소스 코드를 획득하고, 상기 ERP 시스템이 작동하면서 기록하는 런타임 로그 데이터를 획득하는 획득모듈; 상기 소스 코드를 분석하여 상기 소스코드에 포함된 복수의 소스 SQL 쿼리를 추출하고, 상기 로그 데이터로부터 상기 ERP 시스템에 의해 호출된 런타임 SQL 쿼리를 추출하는 추출모듈; 상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스를 생성하는 생성모듈; 상기 SQL 쿼리 추천 시스템이, 사용자 단말로부터 쿼리 추천 요청을 수신하는 경우, 상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출하는 추천모듈; 및 상기 사용자 단말로 상기 추천 SQL 쿼리를 제공하는 제공모듈을 포함하는 SQL 쿼리 추천 시스템이 제공된다.
일 실시예에서, 상기 추천모듈은, 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출할 수 있다.
일 실시예에서, 상기 추천모듈은, 상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리와 매핑된 모든 런타임 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 일부로서 더 추출할 수 있다.
일 실시예에서, 상기 SQL 쿼리 추천 시스템은, 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리와 매핑된 적어도 하나의 런타임 SQL 쿼리 간의 차이를 식별하고, 상기 식별 결과에 기초하여 시소러스를 구축하는 시소러스 구축모듈을 더 포함하되, 상기 추천모듈은, 상기 시소러스에 기초하여 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리를 검색할 수 있다.
일 실시예에서, 추출모듈은, 상기 소스 코드를 분석하여, 상기 복수의 소스 SQL 쿼리 각각이 포함되는 클래스의 클래스 정의 정보를 더 추출하고-여기서 클래스 정의 정보는, 해당 클래스 정의 정보에 상응하는 클래스의 프로토타입, 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 메소드의 프로토 타입 및 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 멤버 변수의 정의 정보를 포함함; 상기 생성모듈은, 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 포함하는 클래스 정의 정보를 상기 소스 SQL 쿼리에 매핑할 수 있다.
일 실시예에서, 추출모듈은, 상기 소스 코드를 분석하여, 상기 복수의 소스 SQL 쿼리 각각을 실행하기 위한 GUI(Graphic User Inferface)의 소스 코드를 더 추출하고, 상기 생성모듈은, 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 실행하기 위한 GUI 소스 코드를 상기 상기 소스 SQL 쿼리에 매핑하고, 상기 추천모듈은, 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 GUI 소스 코드가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 GUI 소스 코드에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출할 수 있다
일 실시예에서, 상기 획득모듈은, 상기 ERP 시스템에서 표시되는 각 GUI에 대한 GUI 설계 정보를 획득하고, 상기 생성모듈은, 상기 GUI의 소스 코드 각각에 상응하는 GUI 설계 정보를 해당 GUI 소스 코드와 매핑하여 상기 추천 쿼리 데이터베이스에 저장하고, 상기 제공모듈은, 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출되는 경우, 추출된 상기 적어도 하나의 추천 SQL 쿼리 각각에 상응하는 GUI 설계 정보를 상기 사용자 단말로 더 제공할 수 있다.
본 발명의 일 실시예에 따르면, 기 개발된 쿼리 중 가장 관련성이 높은 유사 쿼리를 추천함으로써, 중복을 방지하고 개발 업무 효율성을 높일 수 있는 효과가 있다.
또한 추천된 SQL 쿼리와 관련성이 깊은 GUI 설계 정보를 추천함으로써, 개발 업무 효율성을 높일 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 SQL 쿼리 추천 시스템의 구성환경을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 SQL 쿼리 추천 시스템의 개략적인 구성을 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 SQL 쿼리 추천 방법을 도시한 흐름도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에 있어서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. 반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 중심으로 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 SQL 쿼리 추천 시스템의 구성환경을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 SQL 쿼리 추천 방법을 구현하기 위하여 SQL 쿼리 추천 시스템(100)이 구비될 수 있다.
상기 SQL 쿼리 추천 시스템(100)은 사용자 단말(300)의 쿼리 추천 요청에 응답하여, 상기 쿼리 추천 요청에 상응하는 SQL 쿼리를 추천하여 상기 사용자 단말(300)로 제공할 수 있다. 추천되는 SQL 쿼리는 데이터베이스(200; DB)에 저장될 수 있으며, 상기 SQL 쿼리 추천 시스템(100)은 쿼리 추천을 위하여 기존에 미리 구축되어, 실행/운영되고 있는 ERP 시스템(이하, '기 구축 ERP 시스템'; 400)에 의해 작성되는 로그 데이터를 수집할 수 있으며, 상기 기 구축 ERP 시스템(400)을 구성하는 소프트웨어의 소스 코드, 설계문서 등을 수집할 수 있다.
본 명세서에서 데이터베이스(Database)라 함은, 적어도 하나의 테이블로 구현될 수도 있으며, 상기 DB(200)에 저장된 정보를 검색, 저장, 및 관리하기 위한 별도의 DBMS(Database Management System)을 더 포함하는 의미로 사용될 수도 있다. 또한, 링크드 리스트(linked-list), 트리(Tree), 관계형 DB의 형태 등 다양한 방식으로 구현될 수 있으며, 상기 DB(200)에 저장될 정보를 저장할 수 있는 모든 데이터 저장매체 및 데이터 구조를 포함하는 의미로 사용될 수 있다.
상기 사용자 단말(300)은 소프트웨어를 실행할 수 있는 컴퓨팅장치일 수 있다. 상기 사용자 단말(300)은 컴퓨터, 랩탑, 데스크탑, 타블렛 PC, PDA(Personal Digital Assistant)를 포함하는 컴퓨팅 장치일 수 있으며, 휴대 전화, 위성 전화, 무선 전화, SIP(Session Initiation Protocol), WLL(Wireless Local Loop) 스테이션, 스마트폰, 기타 무선 접속 기능을 갖는 핸드헬드 장치를 포함하는 무선 컴퓨팅 장치 또는 다른 무선 모뎀에 연결된 프로세싱 장치일 수도 있다.
예를 들어, 상기 사용자 단말(300)은 소정의 애플리케이션(예를 들면, 신규 ERP 소프트웨어 등)을 개발, 설계하는 사용자의 컴퓨터일 수 있다.
상기 기 구축 ERP 시스템(400)은 기업의 경영 및 관리에 관한 업무를 위한 컴퓨터 시스템으로서, 인사, 재무, 생산 등 기업의 전 부문에 걸쳐 독립적으로 운영되던 각종 관리시스템의 경영자원을 통합한 통합 시스템일 수 있다. 또한, 기 구축 ERP 시스템(400)은 기업에서의 여러 가지 자원의 흐름, 용도를 감시하며, 경영 자원을 효율적으로 운용하기 위해 경리, 영업, 재고 관리 등의 업무에 관련된 데이터를 수집하고 해석하여, 보다 나은 경영 판단을 할 수 있도록 형성될 수 있다. 상기 기 구축 ERP 시스템(400)은 예를 들어, ㈜ 더존 비즈온의 iCUBE, iU, D_ERP와 같은 ERP 솔루션을 탑재하고 있는 시스템일 수 있다.
상기 기 구축 ERP 시스템(400)은 전표입력, 장부관리, 계정증감관리, 채권연령분석/관리, 결산관리, 제무제표, 자금/예산관리, 예산대비사용분석, 고정자산관리, 부가세신고관리, 금융계좌관리 등), 인사관리, 근태관리, 급여관리, 사회보험관리, 연말정산관리, 퇴직정산관리, 세무신고관리, 소득별전표처리, 일용직관리, 국내판매계획수립/관리, 견적/주문처리, 의뢰/검사관리, 출고/반품처리, 매출공헌도분석, 납품/배송관리, 임시출고/위탁관리, 매출정산, 전자세금계산서처리, 수금/채권관리, 채권연령분석, 수출계획수립/관리, 오더관리, 출고처리, 매출정산, 선적관리, 품의/발주처리, 선적/입고관리, 수입비용처리, 미착정산처리, 수입원가배부, MPS, 소요자재산출, 청구품의/발주, 입고의뢰/검사, 임시입고관리, 매입정산/회계, 지급/채무관리, 재고관리(LOT), 생산계획수립/관리, 자체생산관리, 혼함공정관리, 부산물/해체관리, 임가공생산관리, 투입지시관리, 외주생산관리, 서비스접수/처리, 서비스채권관리, 재무/손익분석, 손익/이익분석, 주요자금분석, 물류/생선요약분석, 특성별매출분석, 계절/분기별생산실적분석, 특성별근태분석, 급여/상여시뮬레이션, 계약관리, 현장관리, 도급/기성관리, 작업일보, 전도금/미지급관리, 노무장비관리, 마감정산관리, 노무신고관리, 외주기성관리, 원가손익관리 등과 같은 기능을 수행할 수 있으며, 이 외에도 상기 기 구축 ERP 시스템(400)이 수행할 수 있는 다양한 기능이 있을 수 있음은 물론이다.
상기 기 구축 ERP 시스템(400)은 위와 같은 다양한 기능을 수행하기 위하여 각 기능에 상응하는 SQL 쿼리를 이용하여 데이터를 저장하거나 데이터를 추출할 수 있다. SQL(Structured Query Language; 구조화 질의 언어)은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이며, 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리 등에 이용될 수 있다. 즉 상기 기 구축 ERP 시스템(400)은 ERP를 위한 데이터베이스에 접근하기 위하여 SQL 쿼리를 실행할 수 있다.
한편 상기 기 구축 ERP 시스템(400)은 작동 중에 로그 데이터를 기록할 수 있다. 로그 데이터는 상기 기 구축 ERP 시스템(400)에 의해 발생하는 액션이나 이벤트, 사용 내역, 다른 소프트웨어와의 통신 메시지 등에 관한 기록을 의미할 수 있다. 특히, 상기 기 구축 ERP 시스템(400)은 작동 중에 수행하는 SQL 쿼리(이하, '런타임 SQL 쿼리')에 관한 로그를 기록할 수 있다.
일 실시예에서, 소스 관리 서버(500)는 상기 기 구축 ERP 시스템(400)에 포함된 소프트웨어를 빌드하기 위한 소스 코드, 소프트웨어 리소스 및/또는 설계 정보를 저장/관리할 수 있으며, 상기 SQL 쿼리 추천 시스템(100)은 소스 관리 서버(500)로부터 상기 기 구축 ERP 시스템(400)의 소스 코드, 소프트웨어 리소스 및/또는 설계 정보를 획득할 수 있다. 설계 정보는 실행 가능한 형태의 소프트웨어의 빌드에는 이용되지 않으나 소프트웨어의 구조나 UI의 구현을 위해 필요한 설계 사항을 정의하고 있는 문서 기타 정보로서, 요구사항 정의서, 아키텍쳐 설계서, 데이터베이스 스키마 설계서, UI 디자인 문서, UI 설계서, 테스트 케이스 등을 포함할 수 있다.
상기 소스 관리 서버(500)는 소스 코드 등을 단순 저장하는 서버일 수도 있으며, 소스코드 등에 대한 형상 관리를 지원하는 서버일 수도 있다. 이 외에도 상기 SQL 쿼리 추천 시스템(100)으로 소스 코드 등을 제공할 수 있는 다양한 소스 관리 서버(500)가 구현될 수 있다.
상기 소스 관리 서버(500)가 형상관리를 지원하는 서버일 경우, 상기 소스 관리 서버(500)는 소정의 형상 관리 솔루션을 제공하는 서버일 수 있으며, 일 실시예에서 상기 형상 관리 솔루션은 분산 버전 컨트롤 시스템인 GIT일 수 있으나 이에 한정되는 것은 아니며, 서브버전(Subversion; SVN) 등 다양한 형상관리 솔루션이 본 발명의 기술적 사상에 적용될 수 있음은 물론이다.
상기 SQL 쿼리 추천 시스템(100)은 상기 사용자 단말(300)로부터 SQL 쿼리 추천을 요청 받아 SQL 쿼리 추천을 수행한 후 검색 결과를 상기 사용자 단말(300)로 제공할 수 있다. 상기 SQL 쿼리 추천 시스템(100)은 상기 사용자 단말(300)과 유무선 네트워크를 통해 본 발명의 기술적 사상을 구현하는데 필요한 데이터 및/또는 정보를 송수신할 수 있다.
필요한 경우, 상기 SQL 쿼리 추천 시스템(100)은 상기 사용자 단말(300)로 GUI(Graphic User Interface)를 제공할 수 있으며, 사용자는 상기 사용자 단말(300)에 디스플레이되는 GUI를 통해 SQL 쿼리 추천을 요청하고, 요청 결과를 제공받을 수 있다. GUI 화면은 복수의 UI 오브젝트를 포함할 수 있으며, GUI 화면의 레이아웃은 상기 GUI 화면에 포함된 개별 UI 오브젝트의 배치 상태를 의미할 수 있다. 한편, 상기 UI 오브젝트는 사용자 단말에 디스플레이되고, 상기 사용자 단말에 상응하는 사용자와 상호작용이 가능한 그래픽 요소를 의미할 수 있다.
상기 SQL 쿼리 추천 시스템(100)은 기 구축된 ERP 시스템(400) 및/또는 소스 관리 서버(500)와 유무선 네트워크를 통해 본 발명의 기술적 사상을 구현하는데 필요한 데이터 및/또는 정보를 송수신할 수 있다. 예를 들어, 상기 SQL 쿼리 추천 시스템(100)은 상기 기 구축된 ERP 시스템(500)으로부터 로그 데이터를 수신할 수 있으며, 상기 소스 관리 서버(500)로부터 소스 코드 등을 수신할 수 있다.
한편, 일 실시예에서, 상기 SQL 쿼리 추천 시스템(100)은 도 1에 도시된 바와 같이, 사용자 단말(300)과 물리적으로 분리되고, 유무선 네트워크를 통하여 본 발명의 기술적 사상을 달성하는데 필요한 소정의 데이터를 송수신할 수 있지만 이에 한정되는 것은 아니다. 다른 일 실시예에서, 상기 SQL 쿼리 추천 시스템(100)은 상기 사용자 단말(300)에 포함되어 구현될 수도 있는데, 이 경우, 상기 SQL 쿼리 추천 시스템(100)은 상기 사용자 단말(300)에 구비된 하드웨어 또는 소프트웨어, 또는 이들의 조합의 형태일 수 있다.
도 2는 본 발명의 일 실시예에 따른 SQL 쿼리 추천 시스템(100)의 개략적인 구성을 나타내는 블록도이다.
도 2를 참조하면, 상기 SQL 쿼리 추천 시스템(100)은 획득모듈(110), 추출모듈(120), 생성모듈(130), 추천모듈(140) 및 제공모듈(150)을 포함할 수 있다.
본 발명의 실시예에 따라서는, 상술한 구성요소들 중 일부 구성요소는 반드시 본 발명의 구현에 필수적으로 필요한 구성요소에 해당하지 않을 수도 있으며, 또한 실시예에 따라 상기 SQL 쿼리 추천 시스템(100)은 이보다 더 많은 구성요소를 포함할 수도 있음은 물론이다. 예를 들어, 상기 SQL 쿼리 추천 시스템(100)은 상기 SQL 쿼리 추천 시스템(100)에 포함된 다른 구성(예를 들면, 획득모듈(110), 추출모듈(120), 생성모듈(130), 추천모듈(140) 및 제공모듈(150) 등)의 기능 및/또는 리소스(resource)를 제어할 수 있는 제어모듈(미도시)을 더 포함할 수 있다.
상기 SQL 쿼리 추천 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 필요한 하드웨어 리소스(resource) 및/또는 소프트웨어를 구비할 수 있으며, 반드시 하나의 물리적인 구성요소를 의미하거나 하나의 장치를 의미하는 것은 아니다. 즉, 상기 SQL 쿼리 추천 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 구비되는 하드웨어 및/또는 소프트웨어의 논리적인 결합을 의미할 수 있으며, 필요한 경우에는 서로 이격된 장치에 설치되어 각각의 기능을 수행함으로써 본 발명의 기술적 사상을 구현하기 위한 논리적인 구성들의 집합으로 구현될 수도 있다. 또한, 상기 SQL 쿼리 추천 시스템(100)은 본 발명의 기술적 사상을 구현하기 위한 각각의 기능 또는 역할별로 별도로 구현되는 구성들의 집합을 의미할 수도 있다. 예를 들어, 상기 획득모듈(110), 추출모듈(120), 생성모듈(130), 추천모듈(140) 및 제공모듈(150)은 서로 다른 물리적 장치에 위치할 수도 있고, 동일한 물리적 장치에 위치할 수도 있다. 또한, 구현 예에 따라서는 상기 획득모듈(110), 추출모듈(120), 생성모듈(130), 추천모듈(140) 및 제공모듈(150) 등 각각의 모듈을 구성하는 세부구성들 역시 서로 다른 물리적 장치에 위치하고, 서로 다른 물리적 장치에 위치한 세부구성들이 서로 유기적으로 결합되어 각각의 모듈들이 수행하는 기능을 실현할 수도 있다.
또한, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 통상의 기술자에게는 용이하게 추론될 수 있다.
상기 획득모듈(110)은 기 구축된 ERP 시스템(400)의 소스 코드를 획득하고, 상기 ERP 시스템이 작동하면서 기록하는 런타임 로그 데이터를 획득할 수 있다.
일 실시예에서, 상기 획득모듈(110)은 소스 관리 서버(500)로부터 기 구축된 ERP 시스템(400)의 소스 코드를 획득할 수 있으며, 상기 기 구축된 ERP 시스템(400)으로부터 런타임 로그 데이터를 획득할 수 있다.
상기 추출모듈(120)은 상기 소스 코드를 파싱하고 분석하여 상기 소스코드에 포함된 복수의 소스 SQL 쿼리를 추출하고, 상기 런타임 로그 데이터를 파싱하고 분석하여 상기 런타임 로그 데이터로부터 상기 ERP 시스템에 의해 호출된 런타임 SQL 쿼리를 추출할 수 있다.
소스 SQL 쿼리는 소프트웨어 개발자 또는 설계자에 의해 작성되고, 소스 코드 내에 코딩되는 SQL 쿼리를 의미할 수 있다. 소스 SQL 쿼리는 변수 혹은 파라미터를 포함하는 형태의 SQL 쿼리일 수 있다. 런타임 SQL 쿼리는 소스 SQL 쿼리가 구체적으로 실행된 형태의 SQL 쿼리일 수 있다. 예를 들어, 소스 SQL 쿼리가 파라미터 혹은 변수를 포함하는 경우, 런타임 SQL 쿼리는 소스 SQL 쿼리의 파라미터 혹은 변수에 구체적인 값이 할당된 형태일 수 있다. 따라서 런타임 SQL 쿼리는 그에 상응하는 소스 SQL 쿼리의 인스턴스의 개념으로 이해될 수도 있다.
상기 생성모듈(130)은 상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스(200)를 생성할 수 있다.
앞서 언급한 바와 같이, 상기 추출모듈(120)은 기 구축된 ERP 시스템(300)의 소스 코드로부터 복수의 소스 SQL 쿼리를 추출할 수 있으며, 기 구축된 ERP 시스템(300)에 의해 기록되는 런타임 로그 데이터로부터 복수의 런타임 SQL 쿼리를 추출할 수 있다. 상기 생성모듈(130)은 상기 복수의 소스 SQL 쿼리들과 상기 상기 복수의 런타임 SQL 쿼리들 간의 매핑 관계를 파악할 수 있다.
일 실시예에서 상기 ERP 시스템(300)은 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리를 식별할 수 있는 소정의 식별 정보를 로그로 남길 수 있으며, 상기 생성모듈(130)은 이러한 식별 정보를 이용하여 매핑 관계를 파악할 수 있다.
또는 일 실시예에서, 상기 생성모듈(130)은 SQL 쿼리의 구조를 비교하여 매핑 관계를 파악할 수 있다. 이때 보다 정확한 매핑을 위하여 상기 생성모듈(130)은 소스 SQL 쿼리를 포함하는 ERP 메뉴(혹은 ERP 모듈)과 런타임 SQL 쿼리를 실행한 ERP 메뉴(혹은 ERP 모듈)의 동일성을 더 판단할 수도 있다.
이 외에도 상기 생성모듈(130)이 상기 복수의 소스 SQL 쿼리들과 상기 상기 복수의 런타임 SQL 쿼리들 간의 매핑 관계를 파악할 수 있는 다양한 방법이 있을 수 있다.
한편, 상기 추천모듈(140)은 사용자 단말(300)로부터 쿼리 추천 요청을 수신하는 경우, 상기 추천 쿼리 데이터베이스(200)로부터 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출할 수 있다.
쿼리 추천 요청에는 복수의 검색 키워드가 포함될 수 있으며, 상기 추천모듈(140)은 복수의 검색 키워드에 가장 적합한 SQL 쿼리를 추천 SQL 쿼리로서 추출할 수 있다. 또는 상기 쿼리 추천 요청에는 적어도 하나의 검색 조건이 포함될 수도 있다. 검색 조건은 특정 키워드를 포함하는지 여부, 특정 ERP 메뉴(혹은 ERP 모듈)에서 실행되는지 여부 등 다양한 서브 조건을 포함할 수 있다.
일 실시예에서, 상기 추천모듈(140)은 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리가 상기 추천 쿼리 데이터베이스(200)로부터 검색되는 경우, 상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출할 수 있다.
즉, 상기 추천모듈(140)은 상기 추천 쿼리 데이터베이스(200)로부터 런타임 SQL 쿼리가 검색되더라도 검색된 런타임 SQL 쿼리를 추천하는 것이 아니라, 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리 또는 검색된 런타임 SQL 쿼리 및 그에 상응하는 소스 SQL 쿼리를 추천할 수 있다. 따라서 사용자(개발자)는 소스코드에 삽입 가능한 형태의 소스 SQL 쿼리를 추천받을 수 있다.
일 실시예에서, 상기 추천모듈(140)은 상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리와 매핑된 모든 런타임 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 일부로서 더 추출할 수도 있다. 만약 런타임 SQL 쿼리 A, 런타임 SQL 쿼리 B, 런타임 SQL 쿼리 C, 런타임 SQL 쿼리 D와 소스 SQL 쿼리 A가 매핑되어 있고, 상기 추천모듈(140)이 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리 B를 검색한 경우, 상기 추천모듈(140)은 런타임 SQL 쿼리 A, 런타임 SQL 쿼리 B, 런타임 SQL 쿼리 C, 런타임 SQL 쿼리 D 모두를 추천 SQL 쿼리 중 일부로서 더 추출할 수도 있다. 따라서, 사용자(개발자)는 다양한 형태의 SQL 쿼리의 예시를 제공받을 수 있다.
한편, 상기 제공모듈(150)은 상기 사용자 단말(300)로 상기 추천 SQL 쿼리를 제공할 수 있다. 예를 들어, 상기 제공모듈(150)은 네트워크를 통하여 상기 사용자 단말(300)로 상기 추천 SQL 쿼리를 전송할 수 있다.
일 실시예에서, 상기 생성모듈(130)은 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리와 매핑된 적어도 하나의 런타임 SQL 쿼리 간의 차이를 식별하고, 상기 식별 결과에 기초하여 시소러스를 구축할 수 있다. 시소러스는 데이터 검색을 위한 키워드 간의 관계를 나타내는 데이터구조로서, 시소러스 내에서 서로 상이한 다양한 용어가 동일한 개념으로 묶일 수 있다. 본 실시예에서 상기 생성모듈(130)은 동일한 소스 SQL과 매핑된 서로 다른 다양한 런타임 SQL 쿼리에서 동일한 위치에 등장하는 서로 다른 표현을 동일한 개념을 나타내는 유의어로 지정함으로써, 시소러스를 구축할 수 있다. 예를 들어 소스 SQL 쿼리 A와 매핑된 런타임 SQL 쿼리 B 및 런타임 SQL 쿼리 C의 특정 부분(예를 들면, 소스 SQL 쿼리 A의 특정 파라미터에 해당하는 부분)이 각각 D와 E라면, 상기 생성모듈(130)은 D와 E가 유의어 관계가 되도록 시소러스를 구축할 수 있다. 상기 생성모듈(130)에 의해 생성되는 시소러스 상에서 동일한 개념을 나타내는 것이라고 간주되는 두 단어가 일반적인 시소러스 혹은 통상적인 언어 개념에서는 동의어 혹은 유의어가 아닐 수 있다. 하지만 상기 생성모듈(130)에 의해 생성되는 시소러스 상에서 동일한 개념을 나타내는 것이라고 간주되는 두 단어는 ERP(특히, ERP에서 사용되는 SQL 쿼리)의 관점에서는 유사하다고 취급될 수 있다.
한편, 상기 추천모듈(140)은 구축된 상기 시소러스에 기초하여 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리를 검색할 수 있다. 예를 들어 상기 추천모듈(140)은 검색 조건에 포함된 검색어와 유사한 용어를 구축된 시소러스로부터 추출한 후 추출된 유사 용어를 이용하여 검색어를 확장한 후 검색을 수행할 수 있다.
한편, 일 실시예에서, 추출모듈(120)은 상기 소스 코드를 분석하여, 상기 복수의 소스 SQL 쿼리 각각이 포함되는 클래스의 클래스 정의 정보를 더 추출할 수 있다. 여기서 클래스는 객체지향프로그래밍에서 객체의 정의를 나타내며, 클래스 정의 정보는, 해당 클래스 정의 정보에 상응하는 클래스의 프로토타입, 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 메소드의 프로토 타입 및 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 멤버 변수의 정의 정보를 포함할 수 있다. 본 실시예에서, 상기 생성모듈(130)은 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 포함하는 클래스 정의 정보를 상기 소스 SQL 쿼리에 매핑할 수 있다. 만약 소스 SQL 쿼리 A가 클래스 C의 특정 메소드 내에 존재하는 경우 상기 소스 SQL 쿼리 A는 클래스 C의 클래스 정의 정보와 매핑될 수 있다. 한편, 상기 추천모듈(140)은 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 클래스 정의 정보가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 클래스 정의 정보에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출할 수 있다. 또한 상기 추천모듈(140)은 상기 검색된 클래스 정의 정보에 상응하는 소스 SQL 쿼리와 매핑된 런타임 SQL 쿼리들을 추천 SQL 쿼리 중 적어도 일부로서 더 추출할 수도 있다.
일 실시예에서, 추출모듈(120)은 상기 소스 코드를 분석하여, 상기 복수의 소스 SQL 쿼리 각각을 실행하기 위한 GUI(Graphic User Inferface)의 소스 코드를 더 추출할 수 있으며, 상기 생성모듈(130)은 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 실행하기 위한 GUI 소스 코드를 상기 상기 소스 SQL 쿼리에 매핑할 수 있다. 각 SQL 쿼리는 특정한 GUI 요소 혹은 GUI 요소들과 연관되어 있을 수 있다. 예를 들어 각 SQL 쿼리는 해당 SQL 쿼리에 대한 실행 명령을 유발하는 GUI 요소가 선택되는 경우에 실행될 수 있으며, 실행 시에 특정 GUI 요소를 통해 입력된 정보가 해당 SQL 쿼리의 파라미터로 입력될 수 있다. 따라서 상기 생성모듈(130)은 각 소스 SQL 쿼리와 연관되어 있는 GUI 요소 혹은 GUI 요소의 그룹을 분석하고, 이들을 그에 상응하는 소스 SQL 쿼리와 매핑할 수 있다.
본 실시예에서, 상기 추천모듈(140)은 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 GUI 소스 코드가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 GUI 소스 코드에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출할 수 있다. 또한 상기 추천모듈(140)은 상기 검색된 검색된 GUI 소스 코드에 상응하는 소스 SQL 쿼리와 매핑된 런타임 SQL 쿼리들을 추천 SQL 쿼리 중 적어도 일부로서 더 추출할 수도 있다.
도 3은 추천 쿼리 데이터베이스(200)에 저장되는 정보의 예를 도시한 도면이다. 도 3을 참조하면, 소스 SQL 쿼리 #1에는 클래스 정의 정보 #1, GUI 설계 정보 #1, 런타임 SQL 쿼리 #1-1 내지 런타임 SQL 쿼리 #1-M1, GUI 소스 코드 #1-1 내지 GUI 소스 #1-K1이 매핑될 수 있다. 소스 SQL 쿼리 #2에는 클래스 정의 정보 #2, GUI 설계 정보 #2, 런타임 SQL 쿼리 #2-1 내지 런타임 SQL 쿼리 #2-M2, GUI 소스 코드 #2-1 내지 GUI 소스 #1-K2이 매핑될 수 있다. 물론 상기 추천 쿼리 데이터베이스(200)에는 더 많은 소스 SQL 쿼리 및 그와 매핑된 정보들이 더 저장될 수 있음은 물론이다.
한편, 일 실시예에서, 상기 획득모듈(110)은 상기 ERP 시스템에서 표시되는 각 GUI에 대한 GUI 설계 정보를 획득할 수 있으며, 상기 생성모듈(130)은 상기 GUI의 소스 코드 각각에 상응하는 GUI 설계 정보를 해당 GUI 소스 코드와 매핑하여 상기 추천 쿼리 데이터베이스에 저장할 수 있다.
본 실시예에서, 상기 제공모듈(150)은 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출되는 경우, 추출된 상기 적어도 하나의 추천 SQL 쿼리 각각에 상응하는 GUI 설계 정보를 상기 사용자 단말로 더 제공할 수 있다.
도 4는 본 발명의 일 실시예에 따른 SQL 쿼리 추천 방법을 도시한 흐름도이다.
도 4를 참조하면, 상기 SQL 쿼리 추천 시스템(100)은 기 구축된 ERP 시스템(400)의 소스 코드를 획득할 수 있다(S100).
상기 SQL 쿼리 추천 시스템(100)은 상기 소스 코드를 분석하여 상기 소스코드에 포함된 복수의 소스 SQL 쿼리를 추출할 수 있다(S110).
또한 실시예에 따라 상기 SQL 쿼리 추천 시스템(100)은 상기 소스 코드를 분석하여 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리가 포함된 클래스의 클래스 정의 정보를 더 추출할 수도 있다(S120). 여기서 클래스 정의 정보는, 해당 클래스 정의 정보에 상응하는 클래스의 프로토타입, 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 메소드의 프로토 타입 및 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 멤버 변수의 정의 정보를 포함할 수 있다.
또한 실시예에 따라 상기 SQL 쿼리 추천 시스템(100)은 상기 소스 코드를 분석하여 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 실행하기 위한 GUI(Graphic User Inferface)의 소스 코드를 더 추출할 수도 있다(S120).
또한 실시예에 따라 상기 SQL 쿼리 추천 시스템(100)은 상기 ERP 시스템에서 표시되는 각 GUI에 대한 GUI 설계 정보를 더 획득할 수도 있다(S120).
한편 상기 SQL 쿼리 추천 시스템(100)은 상기 기 구축 ERP 시스템(400)이 작동하면서 기록하는 런타임 로그 데이터를 획득할 수 있으며(S130), 상기 런타임 로그 데이터로부터 상기 기 구축 ERP 시스템(400)에 의해 호출된 런타임 SQL 쿼리를 추출할 수 있다(S140).
상기 SQL 쿼리 추천 시스템(100)은 추천 쿼리 데이터베이스(200)를 생성할 수 있다. 구체적으로 상기 SQL 쿼리 추천 시스템(100)은 상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스를 생성할 수 있다(S150).
또한 실시예에 따라 상기 SQL 쿼리 추천 시스템(100)은 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 포함하는 클래스 정의 정보를 상기 소스 SQL 쿼리에 매핑할 수도 있다(S150).
또한 실시예에 따라 상기 SQL 쿼리 추천 시스템(100)은 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 실행하기 위한 GUI 소스 코드를 상기 상기 소스 SQL 쿼리에 매핑할 수도 있다(S150).
한편 실시예에 따라 상기 SQL 쿼리 추천 시스템(100)은 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리와 매핑된 적어도 하나의 런타임 SQL 쿼리 간의 차이를 식별하고, 상기 식별 결과에 기초하여 시소러스를 구축할 수 있다(S140).
이후 상기 SQL 쿼리 추천 시스템(100)은 사용자 단말(300)로부터 쿼리 추천 요청을 수신하는 경우, 상기 추천 쿼리 데이터베이스(200)로부터 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출하고, 상기 사용자 단말(300)로 상기 추천 SQL 쿼리를 제공할 수 있다(S160).
일 실시예에서, 상기 SQL 쿼리 추천 시스템(100)은 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리가 상기 추천 쿼리 데이터베이스(200)로부터 검색되는 경우, 상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출할 수 있다.
일 실시예에서, 상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리와 매핑된 모든 런타임 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 일부로서 더 추출할 수도 있다.
일 실시예에서, 상기 SQL 쿼리 추천 시스템(100)은 앞서 구축한 시소러스에 기초하여 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리를 검색할 수 있다.
일 실시예에서, 상기 SQL 쿼리 추천 시스템(100)은 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 클래스 정의 정보가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 클래스 정의 정보에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출할 수 있다.
일 실시예에서, 상기 SQL 쿼리 추천 시스템(100)은 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 GUI 소스 코드가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 GUI 소스 코드에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출할 수 있다.
한편, 실시예에 따라, 상기 SQL 쿼리 추천 시스템(100)은 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리가 추출되는 경우, 추출된 상기 적어도 하나의 추천 SQL 쿼리 각각에 상응하는 GUI 설계 정보를 상기 사용자 단말(300)로 더 제공할 수 있다.
한편, 구현 예에 따라서, 상기 SQL 쿼리 추천 시스템(100)은 프로세서 및 상기 프로세서에 의해 실행되는 프로그램을 저장하는 메모리를 포함할 수 있다. 상기 프로세서는 싱글 코어 CPU혹은 멀티 코어 CPU를 포함할 수 있다. 메모리(11)는 고속 랜덤 액세스 메모리를 포함할 수 있고 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치, 또는 기타 비휘발성 고체상태 메모리 장치와 같은 비휘발성 메모리를 포함할 수도 있다. 프로세서 및 기타 구성 요소에 의한 메모리로의 액세스는 메모리 컨트롤러에 의해 제어될 수 있다. 여기서, 상기 프로그램은, 프로세서에 의해 실행되는 경우, 본 실시예에 따른 SQL 쿼리 추천 시스템(100)으로 하여금, 상술한 SQL 쿼리 추천 시스템 제공방법을 수행하도록 할 수 있다. 예를 들어, 상기 프로그램은 상기 프로세서에 의해 실행되는 경우, 상기 SQL 쿼리 추천 시스템(100)으로 하여금, 사용자 단말로부터 GUI 화면 내에 기 배치되거나 추가적으로 배치될 적어도 하나의 UI 오브젝트 각각에 대한 배치상태 변경명령을 입력받는 단계, 상기 배치상태 변경명령 각각에 응답하여, 상기 배치상태 변경명령의 대상이 된 UI 오브젝트에 대한 배치상태의 변경이 반영된 상기 GUI 화면을 디스플레이하는 단계 및 상기 GUI 화면에 대한 레이아웃 편집이 완료되는 경우, 레이아웃 편집이 완료된 상기 GUI 화면에 포함된 각 UI 오브젝트의 배치상태를 포함하는 레이아웃 정보를 저장하는 단계를 수행하도록 제어할 수 있다.
한편, 본 발명의 실시예에 따른 SQL 쿼리 추천 시스템 제공방법은 컴퓨터가 읽을 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 읽을 수 있는 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다.
그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명은 "SQL 쿼리 추천 방법 및 시스템"에 이용될 수 있다.

Claims (16)

  1. SQL 쿼리 추천 시스템이, 기 구축된 ERP 시스템의 소스 코드를 획득하는 단계;
    상기 SQL 쿼리 추천 시스템이, 상기 소스 코드를 분석하여 상기 소스코드에 포함된 복수의 소스 SQL 쿼리를 추출하는 단계;
    상기 SQL 쿼리 추천 시스템이, 상기 ERP 시스템이 작동하면서 기록하는 런타임 로그 데이터를 획득하는 단계;
    상기 SQL 쿼리 추천 시스템이, 상기 로그 데이터로부터 상기 ERP 시스템에 의해 호출된 런타임 SQL 쿼리를 추출하는 단계;
    상기 SQL 쿼리 추천 시스템이, 상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스를 생성하는 단계;
    상기 SQL 쿼리 추천 시스템이, 사용자 단말로부터 쿼리 추천 요청을 수신하는 경우, 상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출하는 단계; 및
    상기 사용자 단말로 상기 추천 SQL 쿼리를 제공하는 단계를 포함하는 SQL 쿼리 추천 방법.
  2. 제1항에 있어서,
    상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 추천 SQL 쿼리를 추출하는 단계는,
    상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출하는 단계를 포함하는 SQL 쿼리 추천 방법.
  3. 제2항에 있어서,
    상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 추천 SQL 쿼리를 추출하는 단계는,
    상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리와 매핑된 모든 런타임 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 일부로서 더 추출하는 단계를 더 포함하는 SQL 쿼리 추천 방법.
  4. 제2항에 있어서, 상기 SQL 쿼리 추천 방법은,
    상기 SQL 쿼리 추천 시스템이, 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리와 매핑된 적어도 하나의 런타임 SQL 쿼리 간의 차이를 식별하고, 상기 식별 결과에 기초하여 시소러스를 구축하는 단계를 더 포함하되,
    상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 추천 SQL 쿼리를 추출하는 단계는,
    상기 시소러스에 기초하여 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리를 검색하는 단계를 포함하는 SQL 쿼리 추천 방법.
  5. 제1항에 있어서, 상기 SQL 쿼리 추천 방법은,
    상기 소스 코드를 분석하여 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리가 포함된 클래스의 클래스 정의 정보를 더 추출하는 단계를 더 포함하고-여기서 클래스 정의 정보는, 해당 클래스 정의 정보에 상응하는 클래스의 프로토타입, 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 메소드의 프로토 타입 및 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 멤버 변수의 정의 정보를 포함함;
    상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스를 생성하는 단계는,
    상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 포함하는 클래스 정의 정보를 상기 소스 SQL 쿼리에 매핑하는 단계를 포함하는 SQL 쿼리 추천 방법.
  6. 제1항에 있어서, 상기 SQL 쿼리 추천 방법은,
    상기 소스 코드를 분석하여 상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 실행하기 위한 GUI(Graphic User Inferface)의 소스 코드를 더 추출하는 단계를 더 포함하고,
    상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스를 생성하는 단계는,
    상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 실행하기 위한 GUI 소스 코드를 상기 상기 소스 SQL 쿼리에 매핑하는 단계를 포함하고,
    상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 추천 SQL 쿼리를 추출하는 단계는,
    상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 GUI 소스 코드가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 GUI 소스 코드에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출하는 단계를 포함하는 SQL 쿼리 추천 방법.
  7. 제6항에 있어서, 상기 SQL 쿼리 추천 방법은,
    상기 ERP 시스템에서 표시되는 각 GUI에 대한 GUI 설계 정보를 획득하는 단계;
    상기 GUI의 소스 코드 각각에 상응하는 GUI 설계 정보를 해당 GUI 소스 코드와 매핑하여 상기 추천 쿼리 데이터베이스에 저장하는 단계;
    상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출되는 경우, 추출된 상기 적어도 하나의 추천 SQL 쿼리 각각에 상응하는 GUI 설계 정보를 상기 사용자 단말로 더 제공하는 단계를 더 포함하는 SQL 쿼리 추천 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  9. SQL 쿼리 추천 시스템으로서,
    프로세서; 및 프로그램이 저장된 메모리를 포함하되,
    상기 프로그램은, 상기 프로세서에 의해 실행되는 경우, 상기 SQL 쿼리 추천 시스템 이 제1항 내지 제7항 중 어느 한 항에 기재된 방법을 수행하도록 하는 SQL 쿼리 추천 시스템.
  10. 기 구축된 ERP 시스템의 소스 코드를 획득하고, 상기 ERP 시스템이 작동하면서 기록하는 런타임 로그 데이터를 획득하는 획득모듈;
    상기 소스 코드를 분석하여 상기 소스코드에 포함된 복수의 소스 SQL 쿼리를 추출하고, 상기 로그 데이터로부터 상기 ERP 시스템에 의해 호출된 런타임 SQL 쿼리를 추출하는 추출모듈;
    상기 복수의 소스 SQL 쿼리 각각에 상응하는 적어도 하나의 런타임 SQL 쿼리를 매핑하여 추천 쿼리 데이터베이스를 생성하는 생성모듈;
    상기 SQL 쿼리 추천 시스템이, 사용자 단말로부터 쿼리 추천 요청을 수신하는 경우, 상기 추천 쿼리 데이터베이스로부터 상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출하는 추천모듈; 및
    상기 사용자 단말로 상기 추천 SQL 쿼리를 제공하는 제공모듈을 포함하는 SQL 쿼리 추천 시스템.
  11. 제10항에 있어서,
    상기 추천모듈은,
    상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출하는 SQL 쿼리 추천 시스템.
  12. 제11항에 있어서,
    상기 추천모듈은,
    상기 검색된 런타임 SQL 쿼리에 상응하는 소스 SQL 쿼리와 매핑된 모든 런타임 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 일부로서 더 추출하는 SQL 쿼리 추천 시스템.
  13. 제11항에 있어서,
    상기 생성모듈은,
    상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리와 매핑된 적어도 하나의 런타임 SQL 쿼리 간의 차이를 식별하고, 상기 식별 결과에 기초하여 시소러스를 구축하며,
    상기 추천모듈은,
    상기 시소러스에 기초하여 상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 런타임 SQL 쿼리를 검색하는 SQL 쿼리 추천 시스템.
  14. 제10항에 있어서,
    추출모듈은,
    상기 소스 코드를 분석하여, 상기 복수의 소스 SQL 쿼리 각각이 포함되는 클래스의 클래스 정의 정보를 더 추출하고-여기서 클래스 정의 정보는, 해당 클래스 정의 정보에 상응하는 클래스의 프로토타입, 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 메소드의 프로토 타입 및 해당 클래스 정의 정보에 상응하는 클래스에 포함되는 멤버 변수의 정의 정보를 포함함;
    상기 생성모듈은,
    상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 포함하는 클래스 정의 정보를 상기 소스 SQL 쿼리에 매핑하는 SQL 쿼리 추천 방법.
  15. 제10항에 있어서,
    추출모듈은,
    상기 소스 코드를 분석하여, 상기 복수의 소스 SQL 쿼리 각각을 실행하기 위한 GUI(Graphic User Inferface)의 소스 코드를 더 추출하고,
    상기 생성모듈은,
    상기 복수의 소스 SQL 쿼리 각각에 대하여, 상기 소스 SQL 쿼리를 실행하기 위한 GUI 소스 코드를 상기 상기 소스 SQL 쿼리에 매핑하고,
    상기 추천모듈은,
    상기 쿼리 추천 요청에 포함된 검색 조건에 부합하는 GUI 소스 코드가 상기 추천 쿼리 데이터베이스로부터 검색되는 경우, 상기 검색된 GUI 소스 코드에 상응하는 소스 SQL 쿼리를 상기 적어도 하나의 추천 SQL 쿼리 중 하나로서 추출하는 SQL 쿼리 추천 시스템.
  16. 제15항에 있어서, 상기 획득모듈은,
    상기 ERP 시스템에서 표시되는 각 GUI에 대한 GUI 설계 정보를 획득하고,
    상기 생성모듈은,
    상기 GUI의 소스 코드 각각에 상응하는 GUI 설계 정보를 해당 GUI 소스 코드와 매핑하여 상기 추천 쿼리 데이터베이스에 저장하고,
    상기 제공모듈은,
    상기 쿼리 추천 요청에 상응하는 적어도 하나의 추천 SQL 쿼리를 추출되는 경우, 추출된 상기 적어도 하나의 추천 SQL 쿼리 각각에 상응하는 GUI 설계 정보를 상기 사용자 단말로 더 제공하는 SQL 쿼리 추천 시스템.
PCT/KR2019/012980 2019-10-01 2019-10-02 Sql 쿼리 추천 방법 및 시스템 WO2021066231A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0121751 2019-10-01
KR1020190121751A KR102244887B1 (ko) 2019-10-01 2019-10-01 Sql 쿼리 추천 방법 및 시스템

Publications (1)

Publication Number Publication Date
WO2021066231A1 true WO2021066231A1 (ko) 2021-04-08

Family

ID=75338260

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/012980 WO2021066231A1 (ko) 2019-10-01 2019-10-02 Sql 쿼리 추천 방법 및 시스템

Country Status (2)

Country Link
KR (1) KR102244887B1 (ko)
WO (1) WO2021066231A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003229A (zh) * 2021-09-28 2022-02-01 厦门国际银行股份有限公司 一种sql代码相似度分析方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102547033B1 (ko) 2023-03-10 2023-06-22 김제은 키워드 인식 기능을 활용하여 사용자가 선택한 방식으로 정보를 제공하는 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260529A (ja) * 2005-02-16 2006-09-28 Denso Wave Inc プログラム提供システム
US20130226935A1 (en) * 2012-02-29 2013-08-29 Microsoft Corporation Context-based Search Query Formation
KR20150065292A (ko) * 2013-12-05 2015-06-15 정연성 관계형 데이터베이스를 이용한 erp 프로그램 자동변환방법
KR20180059602A (ko) * 2016-11-25 2018-06-05 (주) 더존비즈온 사용자 정의 erp 펑션 공유 방법 및 시스템
KR20180072889A (ko) * 2016-11-23 2018-07-02 (주) 더존비즈온 사용자 정의 erp 펑션 생성 방법 및 이를 수행하는 컴퓨팅 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260529A (ja) * 2005-02-16 2006-09-28 Denso Wave Inc プログラム提供システム
US20130226935A1 (en) * 2012-02-29 2013-08-29 Microsoft Corporation Context-based Search Query Formation
KR20150065292A (ko) * 2013-12-05 2015-06-15 정연성 관계형 데이터베이스를 이용한 erp 프로그램 자동변환방법
KR20180072889A (ko) * 2016-11-23 2018-07-02 (주) 더존비즈온 사용자 정의 erp 펑션 생성 방법 및 이를 수행하는 컴퓨팅 시스템
KR20180059602A (ko) * 2016-11-25 2018-06-05 (주) 더존비즈온 사용자 정의 erp 펑션 공유 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003229A (zh) * 2021-09-28 2022-02-01 厦门国际银行股份有限公司 一种sql代码相似度分析方法及系统
CN114003229B (zh) * 2021-09-28 2022-10-18 厦门国际银行股份有限公司 一种sql代码相似度分析方法及系统

Also Published As

Publication number Publication date
KR102244887B1 (ko) 2021-04-28
KR20210039533A (ko) 2021-04-12

Similar Documents

Publication Publication Date Title
US11789715B2 (en) Systems and methods for transformation of reporting schema
US11726760B2 (en) Systems and methods for entry point-based code analysis and transformation
US20230244476A1 (en) Systems and methods for code analysis heat map interfaces
US20240078096A1 (en) Systems and methods for code clustering analysis and transformation
US10866791B2 (en) Transforming non-Apex code to Apex code
CN109902105B (zh) 用于微服务架构的数据查询系统、方法、设备及存储介质
US20050246350A1 (en) System and method for classifying and normalizing structured data
CN103294475A (zh) 基于图形化业务场景和领域模板的业务自动生成系统和方法
CN101454779A (zh) 基于搜索的应用开发框架
WO2021066231A1 (ko) Sql 쿼리 추천 방법 및 시스템
CN113962597A (zh) 一种数据分析方法、装置、电子设备及存储介质
US8402433B2 (en) Method and system for performing automated transactions using a server-side script-engine
WO2019098428A1 (ko) 사용자 별 확장 가능 관리 테이블을 이용한 erp 펑션 제공 방법 및 이를 수행하는 erp 펑션 제공 시스템
US20230119881A1 (en) Data network, system and method for data ingestion in a data network
WO2018097361A1 (ko) 사용자 정의 erp 펑션 생성 방법 및 이를 수행하는 컴퓨팅 시스템
US11599801B2 (en) Method for solving problem, computing system and program product
KR20210039536A (ko) 형상관리를 이용한 설계자-개발자간 협업 시스템 및 방법
KR20130027767A (ko) 데이터베이스와 연동되는 프로그램을 제어하는 서비스 제공 방법 및 시스템
KR102240891B1 (ko) 다차원 분석 리포트 생성 방법 및 시스템
Chapple Microsoft SQL Server 2008 for dummies
WO2021051583A1 (zh) 变量的传输和收集方法、装置及计算机可读存储介质
Qiao et al. Roadmap on Industrial Knowledge System for Data-Oriented Intelligent Operation and Maintenance in Chinese Power Industry
KR20240002418A (ko) 데이터 카드 생성 방법 및 시스템
KR20210095601A (ko) 행정정보 공동이용 활성화를 위한 텍스트 마이닝 기반 행정정보 공동이용 기관 전자적 체계 자가진단 시스템과 그 방법
KR20230172058A (ko) 자연어 명칭 입력을 통한 erp 펑션 ui 자동 생성 방법 및 이를 수행하는 컴퓨팅 시스템

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19947447

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19947447

Country of ref document: EP

Kind code of ref document: A1