KR102372677B1 - Method of controlling web application and apparatus thereof - Google Patents

Method of controlling web application and apparatus thereof Download PDF

Info

Publication number
KR102372677B1
KR102372677B1 KR1020200093100A KR20200093100A KR102372677B1 KR 102372677 B1 KR102372677 B1 KR 102372677B1 KR 1020200093100 A KR1020200093100 A KR 1020200093100A KR 20200093100 A KR20200093100 A KR 20200093100A KR 102372677 B1 KR102372677 B1 KR 102372677B1
Authority
KR
South Korea
Prior art keywords
flow
uri
software component
uid
dna
Prior art date
Application number
KR1020200093100A
Other languages
Korean (ko)
Other versions
KR20210061917A (en
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 KR20210061917A publication Critical patent/KR20210061917A/en
Application granted granted Critical
Publication of KR102372677B1 publication Critical patent/KR102372677B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Abstract

웹 애플리케이션 관리 방법이 개시된다. 본 발명에 따른 웹 애플리케이션 관리 방법은, 제1 소프트웨어 컴포넌트로부터 추출된 제1 URI(Uniform Resource Identifier)를 수신하는 단계, 상기 제1 소프트웨어 컴포넌트를 기초로 생성한 제1 플로우를 수신하는 단계, 상기 제1 URI 및 상기 제1 플로우를 포함하는 제1 DNA를 생성하는 단계, 제2 소프트웨어 컴포넌트로부터 추출된 제2 URI를 수신하는 단계, 상기 제2 소프트웨어 컴포넌트를 기초로 생성한 제2 플로우를 수신하는 단계 및 상기 제1 URI 및 상기 제2 URI를 비교하는 단계를 포함할 수 있다. 따라서, 웹 애플리케이션의 보안 성능이 향상될 수 있다.A web application management method is disclosed. A web application management method according to the present invention includes the steps of receiving a first Uniform Resource Identifier (URI) extracted from a first software component, receiving a first flow generated based on the first software component, and the first Generating a first DNA including one URI and the first flow, receiving a second URI extracted from a second software component, receiving a second flow generated based on the second software component and comparing the first URI and the second URI. Accordingly, the security performance of the web application may be improved.

Description

웹 애플리케이션 관리 방법 및 장치{METHOD OF CONTROLLING WEB APPLICATION AND APPARATUS THEREOF}METHOD OF CONTROLLING WEB APPLICATION AND APPARATUS THEREOF

본 발명은, 웹 애플리케이션 서버 관리 방법 및 장치에 관한 것으로, 더욱 상세하게는 웹 애플리케이션의 고유 특성을 기반으로 웹 애플리케이션을 관리하는 웹 애플리케이션 관리 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for managing a web application server, and more particularly, to a method and apparatus for managing a web application for managing a web application based on unique characteristics of the web application.

최근 클라이언트(client)로써 웹 브라우저(web browser)를 사용하는 사람이 증가하고 있고, 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어를 의미하는 웹 애플리케이션(web application)이 주목받고 있다. 웹 애플리케이션은 사용자 단말에 소프트웨어를 설치하지 않아도 유지 관리가 가능한 장점이 있다. 따라서, 웹 애플리케이션의 수요는 증가하고 있다.Recently, more people use a web browser as a client, and a web application, which means application software that can be used in a web browser through the Internet or an intranet, is attracting attention. The web application has an advantage in that it can be maintained without installing software on the user terminal. Accordingly, the demand for web applications is increasing.

한편, 웹 애플리케이션은 종류가 다양하며 기술적으로 고도화되어 있어 외부의 공격으로부터 보안을 유지하는 것이 어려울 수 있다. 웹 애플리케이션에 대한 보안을 유지하기 위하여, 외부로부터 들어오는 패킷 중 인가되지 않은 패킷을 차단하는 방식으로 웹 애플리케이션에 대한 보안을 유지하는 방화벽, 외부로부터의 악성코드나 침입 패턴 등을 사전에 탐지해 외부로부터의 침입을 방지하는 방식으로 웹 애플리케이션에 대한 보안을 유지하는 IPS(Intrusion Prevention System) 및 IDS(Intrusion Detection System) 방법이 기존에 사용되어 왔으나, 웹 애플리케이션에 대한 공격은 탐지와 방어가 매우 어려워 기존의 방법만으로는 웹 애플리케이션 보안을 유지하는 것이 어려울 수 있다.On the other hand, web applications are diverse and technologically advanced, so it may be difficult to maintain security from external attacks. In order to maintain the security of web applications, a firewall that maintains security for web applications by blocking unauthorized packets among incoming packets, and malicious codes or intrusion patterns from the outside are detected in advance. IPS (Intrusion Prevention System) and IDS (Intrusion Detection System) methods that maintain security for web applications have been used in the past, but attacks on web applications are very difficult to detect and defend. It can be difficult to secure a web application by using methods alone.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 웹 애플리케이션의 고유 특성인 URI(Uniform Resource Idntifier) 및 소프트웨어 컴포넌트를 기초로 웹 애플리케이션에 대한 DNA(DeoxyriboNucleic Acid)를 생성하고 업데이트하는 웹 애플리케이션 관리 방법 및 장치를 제공하는 데 있다.An object of the present invention for solving the above problems is a web application management method for generating and updating DNA (DeoxyriboNucleic Acid) for a web application based on a Uniform Resource Idntifier (URI) and a software component, which are unique characteristics of a web application and to provide an apparatus.

상기와 같은 문제점을 해결하기 위한 본 발명의 일 실시예에 따른, 웹 애플리케이션 관리 방법은 제1 소프트웨어 컴포넌트로부터 추출된 제1 URI(Uniform Resource Identifier)를 수신하는 단계, 상기 제1 소프트웨어 컴포넌트를 기초로 생성한 제1 플로우를 수신하는 단계, 상기 제1 URI 및 상기 제1 플로우를 포함하는 제1 DNA를 생성하는 단계, 제2 소프트웨어 컴포넌트로부터 추출된 제2 URI를 수신하는 단계, 상기 제2 소프트웨어 컴포넌트를 기초로 생성한 제2 플로우를 수신하는 단계 및 상기 제1 URI 및 상기 제2 URI를 비교하는 단계를 포함할 수 있다.According to an embodiment of the present invention for solving the above problems, a web application management method includes the steps of receiving a first Uniform Resource Identifier (URI) extracted from a first software component, based on the first software component Receiving the generated first flow, generating the first DNA including the first URI and the first flow, receiving a second URI extracted from a second software component, the second software component It may include receiving a second flow generated based on , and comparing the first URI and the second URI.

여기서, 상기 제1 소프트웨어 컴포넌트 및 상기 제2 소프트웨어 컴포넌트 중 하나 이상은 WAR(Web application ARchive) 파일에 포함된 자바 클래스(java class) 파일로부터 획득될 수 있다.Here, at least one of the first software component and the second software component may be obtained from a Java class file included in a Web application ARchive (WAR) file.

여기서, 상기 제1 플로우는 상기 제1 소프트웨어 컴포넌트의 명칭 및 상기 제1 소프트웨어 컴포넌트의 UID(Unique Identifier)를 포함할 수 있다.Here, the first flow may include a name of the first software component and a unique identifier (UID) of the first software component.

여기서, 상기 제2 플로우는 상기 제2 소프트웨어 컴포넌트의 명칭 및 상기 제2 소프트웨어 컴포넌트의 UID를 포함할 수 있다.Here, the second flow may include a name of the second software component and a UID of the second software component.

여기서, 상기 제1 DNA를 생성하는 단계는, 상기 제1 DNA를 저장하는 단계를 더 포함할 수 있다.Here, the generating of the first DNA may further include storing the first DNA.

여기서, 상기 제1 URI 및 상기 제2 URI를 비교하는 단계는, 상기 제1 URI 및 상기 제2 URI가 동일하지 않은 경우, 상기 제2 URI 및 상기 제2 플로우를 포함하는 제2 DNA를 생성하는 단계를 더 포함할 수 있다.Here, the comparing of the first URI and the second URI comprises generating a second DNA including the second URI and the second flow when the first URI and the second URI are not the same. It may include further steps.

여기서, 상기 제2 DNA를 생성하는 단계는, 상기 제2 DNA를 저장하는 단계를 더 포함할 수 있다.Here, generating the second DNA may further include storing the second DNA.

여기서, 상기 제1 URI 및 상기 제2 URI를 비교하는 단계는, 상기 제1 URI 및 상기 제2 URI가 동일한 경우, 상기 제1 DNA에 포함된 제1 플로우의 UID 및 상기 제2 플로우의 UID를 비교하는 단계를 더 포함할 수 있다.Here, the comparing of the first URI and the second URI includes, when the first URI and the second URI are the same, the UID of the first flow and the UID of the second flow included in the first DNA The step of comparing may be further included.

여기서, 상기 제1 플로우의 UID 및 상기 제2 플로우의 UID를 비교하는 단계는, 상기 제1 플로우의 UID 및 상기 제2 플로우의 UID가 동일하지 않은 경우, 상기 제1 DNA의 제1 URI를 상기 제2 URI로 갱신하는 단계 및 상기 제1 DNA의 제1 플로우를 상기 제2 플로우로 갱신하는 단계를 더 포함할 수 있다.In this case, the comparing the UID of the first flow and the UID of the second flow includes: when the UID of the first flow and the UID of the second flow are not the same, the first URI of the first DNA The method may further include updating to a second URI and updating the first flow of the first DNA to the second flow.

여기서, 상기 제1 DNA의 제1 플로우를 상기 제2 플로우로 갱신하는 단계는, 상기 제1 플로우의 루트 컴포넌트에 포함된 상기 제1 소프트웨어 컴포넌트의 명칭을 제2 플로우의 루트 컴포넌트에 포함된 상기 제2 소프트웨어 컴포넌트의 명칭으로 갱신하는 단계 및 상기 제1 플로우의 루트 컴포넌트에 포함된 제1 소프트웨어 컴포넌트의 UID를 상기 제2 소프트웨어 컴포넌트의 UID로 갱신하는 단계를 더 포함할 수 있다.Here, the updating of the first flow of the first DNA to the second flow may include adding the name of the first software component included in the root component of the first flow to the second flow included in the root component of the second flow. 2 The method may further include updating the name of the software component and updating the UID of the first software component included in the root component of the first flow to the UID of the second software component.

여기서, 상기 제1 플로우의 차일드 컴포넌트에 포함된 상기 제1 소프트웨어 컴포넌트의 명칭을 제2 플로우의 루트 컴포넌트에 포함된 상기 제2 소프트웨어 컴포넌트의 명칭으로 갱신하는 단계 및 상기 제1 플로우의 차일드 컴포넌트에 포함된 제1 소프트웨어 컴포넌트의 UID를 상기 제2 소프트웨어 컴포넌트의 UID로 갱신하는 단계를 더 포함할 수 있다.Here, updating the name of the first software component included in the child component of the first flow to the name of the second software component included in the root component of the second flow and including in the child component of the first flow The method may further include updating the UID of the first software component to be the UID of the second software component.

본 발명의 다른 실시예에 따른 웹 애플리케이션 관리 장치는 프로세서(processor) 및 상기 프로세서에 의해 실행되는 하나 이상의 명령들이 저장된 메모리(memory)를 포함할 수 있고, 상기 하나 이상의 명령들은, 제1 소프트웨어 컴포넌트로부터 추출된 제1 URI(Uniform Resource Identifier)를 수신하고, 상기 제1 소프트웨어 컴포넌트를 기초로 생성한 제1 플로우를 수신하고, 상기 제1 URI 및 상기 제1 플로우를 포함하는 제1 DNA를 생성하고, 제2 소프트웨어 컴포넌트로부터 추출된 제2 URI를 수신하고, 상기 제2 소프트웨어 컴포넌트를 기초로 생성한 제2 플로우를 수신하고 그리고, 상기 제1 URI 및 상기 제2 URI를 비교하도록 실행될 수 있다.Web application management apparatus according to another embodiment of the present invention may include a processor (processor) and one or more instructions executed by the processor are stored in memory (memory), the one or more instructions, from a first software component Receiving the extracted first URI (Uniform Resource Identifier), receiving a first flow generated based on the first software component, and generating a first DNA including the first URI and the first flow, receive a second URI extracted from a second software component, receive a second flow generated based on the second software component, and compare the first URI and the second URI.

여기서, 상기 제1 소프트웨어 컴포넌트 및 상기 제2 소프트웨어 컴포넌트 중 하나 이상은 WAR(Web application ARchive) 파일에 포함된 자바 클래스(java class) 파일로부터 획득될 수 있다.Here, at least one of the first software component and the second software component may be obtained from a Java class file included in a Web application ARchive (WAR) file.

여기서, 상기 제1 플로우는 상기 제1 소프트웨어 컴포넌트의 명칭 및 상기 제1 소프트웨어 컴포넌트의 UID(Unique Identifier)를 포함하고, 상기 제2 플로우는 상기 제2 소프트웨어 컴포넌트의 명칭 및 상기 제2 소프트웨어 컴포넌트의 UID를 포함할 수 있다.Here, the first flow includes a name of the first software component and a UID (Unique Identifier) of the first software component, and the second flow includes a name of the second software component and a UID of the second software component. may include

여기서, 상기 제1 URI 및 상기 제2 URI를 비교하는 경우, 상기 하나 이상의 명령들은, 상기 제1 URI 및 상기 제2 URI가 동일하지 않은 경우, 상기 제2 URI 및 상기 제2 플로우를 포함하는 제2 DNA를 생성하도록 더 실행될 수 있다.Here, when comparing the first URI and the second URI, the one or more commands include a second URI including the second URI and the second flow when the first URI and the second URI are not the same 2 can be further implemented to generate DNA.

여기서, 상기 제1 URI 및 상기 제2 URI를 비교하는 경우, 상기 하나 이상의 명령들은, 상기 제1 URI 및 상기 제2 URI가 동일한 경우, 상기 제1 DNA에 포함된 제1 플로우의 UID 및 상기 제2 플로우의 UID를 비교하도록 더 실행될 수 있다.Here, when comparing the first URI and the second URI, the one or more commands may include, when the first URI and the second URI are the same, the UID of the first flow and the second URI included in the first DNA. It may be further executed to compare the UIDs of the two flows.

여기서, 상기 제1 플로우의 UID 및 상기 제2 플로우의 UID를 비교하는 경우, 상기 하나 이상의 명령들은, 상기 제1 플로우의 UID 및 상기 제2 플로우의 UID가 동일하지 않은 경우, 상기 제1 DNA의 제1 URI를 상기 제2 URI로 갱신하고 그리고, 상기 제1 DNA의 제1 플로우를 상기 제2 플로우로 갱신하도록 더 실행될 수 있다.Here, when comparing the UID of the first flow and the UID of the second flow, the one or more commands, when the UID of the first flow and the UID of the second flow are not the same, of the first DNA and updating the first URI with the second URI, and updating the first flow of the first DNA with the second flow.

여기서, 상기 제1 DNA의 제1 플로우를 상기 제2 플로우로 갱신하는 경우, 상기 하나 이상의 명령들은, 상기 제1 플로우의 루트 컴포넌트에 포함된 상기 제1 소프트웨어 컴포넌트의 명칭을 제2 플로우의 루트 컴포넌트에 포함된 상기 제2 소프트웨어 컴포넌트의 명칭으로 갱신하고 그리고, 상기 제1 플로우의 루트 컴포넌트에 포함된 제1 소프트웨어 컴포넌트의 UID를 상기 제2 소프트웨어 컴포넌트의 UID로 갱신하도록 더 실행될 수 있다.Here, when the first flow of the first DNA is updated to the second flow, the one or more instructions change the name of the first software component included in the root component of the first flow to the root component of the second flow. and updating the name of the second software component included in , and updating the UID of the first software component included in the root component of the first flow to the UID of the second software component.

여기서, 상기 하나 이상의 명령들은, 상기 제1 플로우의 차일드 컴포넌트에 포함된 상기 제1 소프트웨어 컴포넌트의 명칭을 제2 플로우의 루트 컴포넌트에 포함된 상기 제2 소프트웨어 컴포넌트의 명칭으로 갱신하고 그리고, 상기 제1 플로우의 차일드 컴포넌트에 포함된 제1 소프트웨어 컴포넌트의 UID를 상기 제2 소프트웨어 컴포넌트의 UID로 갱신하도록 더 실행될 수 있다.Here, the one or more instructions update the name of the first software component included in the child component of the first flow to the name of the second software component included in the root component of the second flow, and and updating the UID of the first software component included in the child component of the flow to the UID of the second software component.

본 발명에 의하면, 미리 저장된 웹 애플리케이션(web application) DNA(DeoxyriboNucleic Acid)의 URI(Uniform Resource Identifier)와 새로 획득한 웹 애플리케이션 DNA의 URI의 비교 결과를 기초로 소프트웨어 컴포넌트의 DNA를 생성 여부를 결정함으로써, DNA 생성 속도가 향상될 수 있고, 이에 따라 웹 애플리케이션에 대한 보안이 향상될 수 있다.According to the present invention, based on the comparison result of the URI (Uniform Resource Identifier) of the web application DNA (DeoxyriboNucleic Acid) stored in advance and the URI of the newly acquired web application DNA, by determining whether to generate the DNA of the software component , DNA generation speed can be improved, and thus security for web applications can be improved.

또한 본 발명에 의하면, 미리 저장된 웹 애플리케이션 DNA의 플로우와 새로 획득한 소프트웨어 컴포넌트의 플로우의 비교 결과를 기초로 미리 저장된 웹 애플리케이션 DNA의 갱신 여부를 결정함으로써, 웹 애플리케이션 배포 속도가 향상될 수 있고, 이에 따라 웹 애플리케이션에 대한 보안이 향상될 수 있다.In addition, according to the present invention, web application distribution speed can be improved by determining whether to update the web application DNA stored in advance based on the comparison result of the flow of the web application DNA stored in advance and the flow of the newly acquired software component. Accordingly, security for the web application may be improved.

도 1은 본 발명의 일 실시예에 따른 웹 애플리케이션 관리 장치를 도시한 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 웹 애플리케이션 관리 장치를 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 플로우 생성 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 웹 애플리케이션 관리 방법을 도시한 흐름도이다.
1 is a block diagram illustrating a web application management apparatus according to an embodiment of the present invention.
2 is a block diagram illustrating a web application management apparatus according to another embodiment of the present invention.
3 is a conceptual diagram illustrating a flow generation method according to an embodiment of the present invention.
4 is a flowchart illustrating a web application management method according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When an element is referred to as being “connected” or “connected” to another element, it is understood that it may be directly connected or connected to the other element, but other elements may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It is to be understood that this does not preclude the possibility of addition or existence of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. In describing the present invention, in order to facilitate the overall understanding, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

도 1은 본 발명의 일 실시예에 따른 웹 애플리케이션 관리 장치의 블록도이다.1 is a block diagram of a web application management apparatus according to an embodiment of the present invention.

도 1을 참조하면, 웹 애플리케이션 관리 장치(100)는 적어도 하나의 프로세서(110), 메모리(120) 및 네트워크와 연결되어 통신을 수행하는 송수신 장치(130)를 포함할 수 있다. 또한, 웹 애플리케이션 관리 장치(100)는 입력 인터페이스 장치(140), 출력 인터페이스 장치(150) 및 저장 장치(160)등을 더 포함할 수 있다.Referring to FIG. 1 , the web application management apparatus 100 may include at least one processor 110 , a memory 120 , and a transceiver 130 connected to a network to perform communication. In addition, the web application management apparatus 100 may further include an input interface device 140 , an output interface device 150 , and a storage device 160 .

웹 애플리케이션 관리 장치(100)에 포함된 각각의 구성 요소들은 버스(bus)(170)에 의해 연결되어 상호간에 통신을 수행할 수 있다. 다만, 웹 애플리케이션 관리 장치(100)에 포함된 각각의 구성요소들은 공통 버스(170)가 아니라, 프로세서(110)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다. 예를 들어, 프로세서(110)는 메모리(120), 송수신 장치(130), 입력 인터페이스 장치(140), 출력 인터페이스 장치(150) 및 저장 장치(160) 중에서 적어도 하나와 전용 인터페이스를 통하여 연결될 수도 있다.Each of the components included in the web application management apparatus 100 may be connected by a bus 170 to communicate with each other. However, each component included in the web application management apparatus 100 may be connected through an individual interface or an individual bus centered on the processor 110 rather than the common bus 170 . For example, the processor 110 may be connected to at least one of the memory 120 , the transceiver 130 , the input interface device 140 , the output interface device 150 , and the storage device 160 through a dedicated interface. .

프로세서(110)는 메모리(120) 및 저장 장치(160) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(110)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(120) 및 저장 장치(160) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(120)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다. 메모리(120) 및 저장 장치(160) 중 하나 이상은 웹 애플리케이션 관리 장치(100)의 동작을 위한 프로그램을 포함할 수 있다.The processor 110 may execute a program command stored in at least one of the memory 120 and the storage device 160 . The processor 110 may mean a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to embodiments of the present invention are performed. Each of the memory 120 and the storage device 160 may be configured of at least one of a volatile storage medium and a non-volatile storage medium. For example, the memory 120 may be configured as at least one of a read only memory (ROM) and a random access memory (RAM). At least one of the memory 120 and the storage device 160 may include a program for the operation of the web application management apparatus 100 .

도 2는 본 발명의 다른 실시예에 따른 웹 애플리케이션 관리 장치의 블록도이다.2 is a block diagram of a web application management apparatus according to another embodiment of the present invention.

도 2를 참조하면 웹 애플리케이션 관리 장치(200)는 컴포넌트 추출부(210), URI(Uniform Resource Identifier) 추출부(220), 플로우 생성부(230), DNA 생성부(240) 및 저장부(250)를 포함할 수 있다. 한편, 도면에는 도시되지 않았으나 웹 애플리케이션 관리 장치(200)는 웹 서버(web server) 및 웹 컨테이너(web container)를 포함할 수 있다. 웹 서버는 Nginx, Appach HTTP Server 및 IIS 중 하나일 수 있고, 웹 컨테이너는 Tomcat 및 Jeus 중 하나일 수 있으나, 이는 일 예시일 뿐이며 이에 한정하지 아니한다.Referring to FIG. 2 , the web application management apparatus 200 includes a component extraction unit 210 , a Uniform Resource Identifier (URI) extraction unit 220 , a flow generation unit 230 , a DNA generation unit 240 , and a storage unit 250 . ) may be included. Meanwhile, although not shown in the drawings, the web application management apparatus 200 may include a web server and a web container. The web server may be one of Nginx, Appach HTTP Server, and IIS, and the web container may be one of Tomcat and Jeus, but this is only an example and is not limited thereto.

컴포넌트 추출부(210)는 사용자로부터 웹 애플리케이션에 대한 요청을 수신할 수 있다. 웹 애플리케이션에 대한 요청은 WAR(Web application ARchive) 파일을 포함할 수 있다.The component extractor 210 may receive a request for a web application from a user. The request to the web application may include a WAR (Web application ARchive) file.

WAR 파일은 사용자가 요청하는 웹 애플리케이션에 대한 정보를 포함할 수 있다.The WAR file may contain information about the web application requested by the user.

WAR 파일은 이클립스(eclipse)에 의해 생성된 것일 수 있다. WAR 파일은 자바서버 페이지(javaserver page), 클래스(class), 서블릿(servlet), XML(Extensible Markup Language) 및 웹 애플리케이션에 대한 메타 정보를 포함할 수 있으나, 이는 일 예시일 뿐이며 이에 한정하지 아니한다.The WAR file may be generated by Eclipse. The WAR file may include meta information about a javaserver page, a class, a servlet, an Extensible Markup Language (XML), and a web application, but this is only an example and is not limited thereto.

자바 서버 페이지는 HTML(HypertextMarkup Language) 및 자바 프로그램을 조합하여 동적인 웹 페이지를 구현시키기 위한 것일 수 있다. 클래스는 소프트웨어 컴포넌트를 포함할 수 있다. 소프트웨어 컴포넌트는 웹 애플리케이션의 구성 요소일 수 있고, 복수일 수 있다. 또한, 소프트웨어 컴포넌트의 URI(Uniform Resource Identifier)는 소프트웨어 컴포넌트에 대한 웹 애플리케이션의 URI와 동일할 수 있다. 서블릿은 웹 애플리케이션을 획득하기 위하여 웹 컨테이너에서 실행되는 소프트웨어일 수 있다. XML은 웹 애플리케이션을 구조화하는 표준 형식일 수 있다.The Java server page may be for implementing a dynamic web page by combining HTML (Hypertext Markup Language) and a Java program. A class may contain software components. A software component may be a component of a web application, or there may be a plurality. Also, a Uniform Resource Identifier (URI) of the software component may be the same as the URI of a web application for the software component. A servlet may be software running in a web container to obtain a web application. XML can be a standard format for structuring web applications.

웹 애플리케이션에 대한 메타 정보는 웹 애플리케이션의 URI 및 HTTP 메소드(HyperText Transfer Protocol Method)를 포함할 수 있다. HTTP 메소드는 GET, PUT, POST 및 DELETE를 포함할 수 있다.The meta information about the web application may include a URI and a HyperText Transfer Protocol method (HTTP) of the web application. HTTP methods can include GET, PUT, POST, and DELETE.

컴포넌트 추출부(210)는 WAR 파일로부터 소프트웨어 컴포넌트를 추출할 수 있다. 컴포넌트 추출부(210)는 클래스로부터 소프트웨어 컴포넌트를 추출할 수 있다. 예를 들어, 컴포넌트 추출부(210)는 WAR 파일로부터 제1 웹 애플리케이션에 대한 소프트웨어 컴포넌트인 제1 소프트웨어 컴포넌트를 추출할 수 있고, 제2 웹 애플리케이션에 대한 소프트웨어 컴포넌트인 제2 소프트웨어 컴포넌트를 추출할 수 있다.The component extractor 210 may extract a software component from the WAR file. The component extractor 210 may extract a software component from the class. For example, the component extraction unit 210 may extract a first software component that is a software component for the first web application from the WAR file, and may extract a second software component that is a software component for the second web application. there is.

컴포넌트 추출부(210)는 소프트웨어 컴포넌트를 URI 추출부(220) 및 플로우 생성부(230)에 전송할 수 있다.The component extractor 210 may transmit a software component to the URI extractor 220 and the flow generator 230 .

URI 추출부(220)는 소프트웨어 컴포넌트를 컴포넌트 추출부(210)로부터 수신할 수 있다. URI 추출부(220)는 소프트웨어 컴포넌트로부터 소프트웨어 컴포넌트의 URI를 추출할 수 있다. 예를 들어, URI 추출부(220)는 제1 소프트웨어 컴포넌트로부터 제1 URI를 추출할 수 있고 제2 소프트웨어 컴포넌트로부터 제2 URI를 추출할 수 있다. 여기에서, 제1 URI는 제1 웹 애플리케이션에 대한 URI일 수 있고, 제2 URI는 제2 웹 애플리케이션에 대한 URI일 수 있다. URI 추출부(220)는 URI를 DNA(DeoxyriboNucleic Acid) 생성부(240) 및 저장부(250)에 전송할 수 있다.The URI extraction unit 220 may receive a software component from the component extraction unit 210 . The URI extraction unit 220 may extract the URI of the software component from the software component. For example, the URI extraction unit 220 may extract the first URI from the first software component and may extract the second URI from the second software component. Here, the first URI may be a URI for the first web application, and the second URI may be a URI for the second web application. The URI extraction unit 220 may transmit the URI to the DNA (DeoxyriboNucleic Acid) generation unit 240 and the storage unit 250 .

플로우 생성부(230)는 소프트웨어 컴포넌트를 컴포넌트 추출부(210)로부터 수신할 수 있다. 플로우 생성부(230)는 소프트웨어 컴포넌트를 기초로 소프트웨어 컴포넌트에 대한 플로우를 생성할 수 있다. 플로우 생성부(230)가 소프트웨어 컴포넌트를 기초로 플로우를 생성하는 방법은 다음과 같을 수 있다.The flow generator 230 may receive a software component from the component extractor 210 . The flow generator 230 may generate a flow for the software component based on the software component. A method for the flow generating unit 230 to generate a flow based on a software component may be as follows.

도 3은 본 발명의 일 실시예에 따른 플로우 생성 방법을 설명하기 위한 개념도이다.3 is a conceptual diagram illustrating a flow generation method according to an embodiment of the present invention.

도 3을 참조하면, 플로우 생성부(예를 들어, 도 2의 플로우 생성부(230))는 소프트웨어 컴포넌트를 기초로 해당 소프트웨어 컴포넌트의 플로우를 생성할 수 있다. 플로우는 루트 컴포넌트(root component) 및 하나 이상의 차일드 컴포넌트(child component)를 포함할 수 있다.Referring to FIG. 3 , the flow generating unit (eg, the flow generating unit 230 of FIG. 2 ) may generate a flow of the corresponding software component based on the software component. A flow may include a root component and one or more child components.

플로우 생성부는 소프트웨어 컴포넌트로부터 소프트웨어 컴포넌트의 명칭을 추출할 수 있다. 예를 들어, 플로우 생성부(230)는 제1 소프트웨어 컴포넌트로부터 제1 명칭을 추출할 수 있고, 제2 소프트웨어 컴포넌트로부터 제2 명칭을 추출할 수 있다.The flow generator may extract the name of the software component from the software component. For example, the flow generator 230 may extract a first name from the first software component and may extract a second name from the second software component.

또한, 플로우 생성부는 소프트웨어 컴포넌트로부터 소프트웨어 컴포넌트의 UID(Unique Identifier)를 추출할 수 있다. 예를 들어, 플로우 생성부는 제1 소프트웨어 컴포넌트로부터 제1 UID를 추출할 수 있고 제2 소프트웨어 컴포넌트로부터 제2 UID을 추출할 수 있다.Also, the flow generator may extract a UID (Unique Identifier) of the software component from the software component. For example, the flow generating unit may extract the first UID from the first software component and extract the second UID from the second software component.

플로우 생성부는 추출한 명칭 및 UID를 포함하는 루트 컴포넌트를 생성할 수 있다. 또한, 플로우 생성부는 루트 컴포넌트를 기초로 하나 이상의 차일드 컴포넌트를 생성할 수 있다. 차일드 컴포넌트에 포함된 명칭 및 UID는 루트 컴포넌트에 포함된 명칭 및 UID와 동일할 수 있다.The flow generator may generate a root component including the extracted name and UID. Also, the flow generator may generate one or more child components based on the root component. The name and UID included in the child component may be the same as the name and UID included in the root component.

예를 들어, 플로우 생성부가 제1 소프트웨어 컴포넌트를 기초로 플로우를 생성하는 경우, 플로우 생성부는 제1 명칭 및 제1 UID를 포함하는 루트 컴포넌트 및 하나 이상의 차일드 컴포넌트를 생성하는 방식으로, 제1 소프트웨어 컴포넌트에 대한 플로우인 제1 플로우를 생성할 수 있다.For example, when the flow generating unit generates a flow based on the first software component, the flow generating unit generates a root component including a first name and a first UID and one or more child components, such that the first software component It is possible to create a first flow that is a flow for .

플로우 생성부가 제2 소프트웨어 컴포넌트를 기초로 플로우를 생성하는 경우, 플로우 생성부는 제2 명칭 및 제2 UID를 포함하는 루트 컴포넌트 및 하나 이상의 차일드 컴포넌트를 생성하는 방식으로, 제2 소프트웨어 컴포넌트에 대한 플로우인 제2 플로우를 생성할 수 있다.When the flow generating unit generates a flow based on the second software component, the flow generating unit generates a root component including a second name and a second UID and one or more child components, in a manner that is a flow for the second software component A second flow may be created.

다시 도 2를 참조하면, 플로우 생성부(230)는 플로우를 DNA 생성부(240) 및 저장부(250)에 전송할 수 있다.Referring back to FIG. 2 , the flow generator 230 may transmit the flow to the DNA generator 240 and the storage unit 250 .

DNA 생성부(240)는 URI를 URI 추출부(220)로부터 수신할 수 있고, 플로우를 플로우 생성부(230)로부터 수신할 수 있다. DNA 생성부(240)는 URI 및 플로우를 기초로 소프트웨어 컴포넌트의 DNA를 생성할 수 있다. DNA 생성부(240)는 소프트웨어 컴포넌트의 URI 및 플로우를 포함하는 DNA를 생성할 수 있다. 예를 들어, DNA 생성부(240)는 제1 URL 및 제1 플로우를 포함하는 제1 DNA를 생성할 수 있고, 제2 URL 및 제2 플로우를 포함하는 제2 DNA를 생성할 수 있다.The DNA generator 240 may receive the URI from the URI extractor 220 and receive the flow from the flow generator 230 . The DNA generator 240 may generate the DNA of the software component based on the URI and the flow. The DNA generator 240 may generate DNA including a URI and a flow of a software component. For example, the DNA generator 240 may generate a first DNA including a first URL and a first flow, and may generate a second DNA including a second URL and a second flow.

한편, DNA 생성부(240) URI 추출부(220)로부터 수신한 URI 및 플로우 생성부(230)로부터 수신한 플로우를 는 DNA 저장부(250)에 저장된 DNA와 비교할 수 있다. 여기에서, DNA 저장부(250)에 저장된 DNA는 DNA 생성부(240)에 의해 생성되어 미리 저장된 것일 수 있다. DNA 생성부(240)는 비교 결과를 기초로 DNA 생성 여부를 결정할 수 있다.Meanwhile, the URI received from the URI extraction unit 220 of the DNA generation unit 240 and the flow received from the flow generation unit 230 may be compared with the DNA stored in the DNA storage unit 250 . Here, the DNA stored in the DNA storage unit 250 may be generated and stored in advance by the DNA generation unit 240 . The DNA generator 240 may determine whether to generate DNA based on the comparison result.

예를 들어, URI 추출부(220)로부터 제1 URI를 수신하고, 저장부(250)에 제3 DNA가 저장되어 있는 경우, DNA 생성부(240)는 제1 URI 및 제3 URI를 비교할 수 있다. 제3 URI는 제3 DNA에 포함될 수있다.For example, if the first URI is received from the URI extraction unit 220 and the third DNA is stored in the storage unit 250 , the DNA generation unit 240 may compare the first URI and the third URI. there is. The third URI may be included in the third DNA.

URI 추출부(220)로부터 수신한 URI가 저장부(250)에 미리 저장된 DNA의 URI와 동일하지 않은 경우, DNA 생성부(240)는 URI 추출부(220)로부터 수신한 URI에 해당하는 소프트웨어 컴포넌트의 DNA를 생성할 수 있다. 예를 들어, DNA 생성부(240)는 제1 URI와 제3 URI가 동일하지 않은 경우, 제1 소프트웨어 컴포넌트에 대한 DNA를 생성할 수 있다.When the URI received from the URI extraction unit 220 is not the same as the URI of the DNA previously stored in the storage unit 250 , the DNA generation unit 240 is a software component corresponding to the URI received from the URI extraction unit 220 . can generate DNA. For example, when the first URI and the third URI are not the same, the DNA generator 240 may generate DNA for the first software component.

DNA 생성부(240)는 저장부(250)에 미리 저장된 DNA의 URI와 URI 추출부(220)로부터 수신한 URI가 동일한 경우, 플로우 생성부(230)로부터 수신한 플로우의 UID를 저장부(250)에 미리 저장된 DNA에 포함된 플로우의 UID와 비교할 수 있다.When the URI of the DNA previously stored in the storage unit 250 and the URI received from the URI extraction unit 220 are the same, the DNA generation unit 240 stores the UID of the flow received from the flow generation unit 230 in the storage unit 250 . ) can be compared with the UID of the flow included in the DNA stored in advance.

예를 들어, DNA 생성부(240)는 제1 URI와 제3 URI가 동일한 경우, 플로우 생성부(230)로부터 수신한 제1 플로우의 UID와 제3 DNA에 포함된 제3 플로우의 제3 UID를 비교할 수 있다.For example, when the first URI and the third URI are the same, the DNA generator 240 may generate the UID of the first flow received from the flow generator 230 and the third UID of the third flow included in the third DNA. can be compared.

플로우 생성부(230)로부터 수신한 플로우의 UID가 저장부(250)에 미리 저장된 DNA의 UID와 동일한 경우, DNA 생성부(240)는 해당 소프트웨어 컴포넌트에 대한 DNA를 생성하지 않을 수 있다. 예를 들어, DNA 생성부(240)는 제1 플로우의 UID와 제3 플로우의 UID가 동일한 경우, 제1 소프트웨어 컴포넌트에 대한 DNA를 생성하지 않을 수 있다.When the UID of the flow received from the flow generator 230 is the same as the UID of the DNA previously stored in the storage 250 , the DNA generator 240 may not generate DNA for the corresponding software component. For example, when the UID of the first flow and the UID of the third flow are the same, the DNA generator 240 may not generate the DNA for the first software component.

플로우 생성부(230)로부터 수신한 플로우의 UID가 저장부(250)에 미리 저장된 DNA의 UID와 동일하지 않은 경우, DNA 생성부(240)는 미리 저장된 DNA의 플로우를 갱신할 수 있다. DNA 생성부(240)는 미리 저장된 DNA의 플로우에 포함된 루트 컴포넌트의 값을 플로우 생성부(230)로부터 수신한 플로우에 포함된 루트 컴포넌트의 값으로 갱신할 수 있다. 예를 들어, DNA 생성부(240)는 제1 플로우의 UID와 제3 플로우의 UID가 동일하지 않은 경우, 제3 플로우의 루트 컴포넌트의 값을 제1 플로우의 루트 컴포넌트의 값으로 갱신할 수 있다.When the UID of the flow received from the flow generation unit 230 is not the same as the UID of the DNA previously stored in the storage unit 250 , the DNA generation unit 240 may update the previously stored DNA flow. The DNA generator 240 may update the value of the root component included in the pre-stored DNA flow with the value of the root component included in the flow received from the flow generator 230 . For example, when the UID of the first flow and the UID of the third flow are not the same, the DNA generator 240 may update the value of the root component of the third flow to the value of the root component of the first flow. .

또한, DNA 생성부(240)는 미리 저장된 DNA의 플로우의 차일드 컴포넌트의 값을 플로우 생성부(230)로부터 수신한 플로우의 루트 컴포넌트의 값으로 갱신할 수 있다. 예를 들어, DNA 생성부(240)는 제1 플로우의 UID와 제3 플로우의 UID가 동일하지 않은 경우, 제3 플로우의 차일드 컴포넌트의 값을 제1 플로우의 루트 컴포넌트의 값으로 갱신할 수 있다.Also, the DNA generator 240 may update the pre-stored value of the child component of the flow of DNA with the value of the root component of the flow received from the flow generator 230 . For example, when the UID of the first flow and the UID of the third flow are not the same, the DNA generator 240 may update the value of the child component of the third flow to the value of the root component of the first flow. .

저장부(250)는 URI를 URI 추출부(220)로부터 수신할 수 있고, 플로우를 플로우 생성부(230)로부터 수신할 수 있다. 또한, 저장부(250)는 DNA를 DNA 생성부(240)로부터 수신할 수 있다. 저장부(250)에는 URI, 플로우 및 DNA가 저장될 수 있다.The storage unit 250 may receive the URI from the URI extraction unit 220 , and may receive the flow from the flow generation unit 230 . Also, the storage unit 250 may receive DNA from the DNA generator 240 . The storage unit 250 may store URI, flow, and DNA.

도 4는 본 발명의 일 실시예에 따른 웹 애플리케이션 관리 방법을 도시한 흐름도이다.4 is a flowchart illustrating a web application management method according to an embodiment of the present invention.

도 4를 참조하면, DNA 생성부(예를 들어, 도 2의 DNA 생성부(240))는 URI 추출부(예를 들어, 도 2의 URI 추출부(220))로부터 제1 소프트웨어 컴포넌트의 URI인 제1 URI를 수신할 수 있다(S410). 또한 DNA 생성부는 플로우 생성부(예를 들어, 도 2의 플로우 생성부(230))로부터 제1 소프트웨어 컴포넌트의 플로우인 제1 플로우를 수신할 수 있다.Referring to FIG. 4 , the DNA generating unit (eg, the DNA generating unit 240 of FIG. 2 ) receives the URI of the first software component from the URI extracting unit (eg, the URI extracting unit 220 of FIG. 2 ). A first URI may be received (S410). Also, the DNA generator may receive a first flow that is a flow of the first software component from the flow generator (eg, the flow generator 230 of FIG. 2 ).

DNA 생성부는 URI 추출부로부터 수신한 제1 URI와 미리 저장된 DNA에 포함된 제2 URI가 동일한지 확인할 수 있다(S430). 미리 저장된 DNA는 저장부(예를 들어, 도 2의 저장부(250))에 저장된 DNA일 수 있다. 제1 URI와 제2 URI가 동일하지 않은 경우(S430의 아니오), DNA 생성부는 제1 소프트웨어 컴포넌트에 대한 DNA를 생성할 수 있다(S440). DNA 생성부는 제1 URI 및 제1 플로우를 포함하는 제1 소프트웨어 컴포넌트에 대한 DNA인 제1 DNA를 생성할 수 있고, 이를 저장부(예를 들어, 도 2의 저장부(250)에 저장할 수 있다.The DNA generator may check whether the first URI received from the URI extractor is the same as the second URI included in the pre-stored DNA (S430). The pre-stored DNA may be DNA stored in the storage unit (eg, the storage unit 250 of FIG. 2 ). When the first URI and the second URI are not the same (No in S430), the DNA generator may generate DNA for the first software component (S440). The DNA generator may generate a first DNA that is DNA for a first software component including a first URI and a first flow, and store it in a storage unit (eg, the storage unit 250 of FIG. 2 ). .

제1 URI와 제2 URI가 동일한 경우(S430의 예), DNA생성부는 제1 DNA를 생성하지 않을 수 있고, 제1 플로우의 UID를 미리 저장된 DNA에 포함된 제2 플로우의 UID와 비교할 수 있다(S450). 제1 플로우의 UID가 제2 플로우의 UID와 동일한 경우(S450의 예), DNA 생성부는 제2 플로우에 대한 갱신 없이 관리를 종료할 수 있다.When the first URI and the second URI are the same (Yes of S430), the DNA generator may not generate the first DNA, and may compare the UID of the first flow with the UID of the second flow included in the pre-stored DNA. (S450). When the UID of the first flow is the same as the UID of the second flow (Yes in S450 ), the DNA generator may end management without updating the second flow.

제1 플로우의 UID가 제2 플로우의 UID와 동일하지 않은 경우(S450의 아니오), DNA 생성부는 제2 플로우에 포함된 루트 컴포넌트의 값을 제1 플로우에 포함된 루트 컴포넌트의 값으로 갱신할 수 있다(S460). 즉, DNA 생성부는 제2 플로우의 루트 컴포넌트에 포함된 소프트웨어 컴포넌트의 명칭을 제1 플로우의 루트 컴포넌트에 포함된 제1 소프트웨어 컴포넌트 명칭으로 갱신할 수 있다. DNA 생성부는 제2 플로우의 루트 컴포넌트에 포함된 UID를 제1 플로우의 루트 컴포넌트에 포함된 UID로 갱신할 수 있다.If the UID of the first flow is not the same as the UID of the second flow (No in S450), the DNA generator may update the value of the root component included in the second flow to the value of the root component included in the first flow. There is (S460). That is, the DNA generator may update the name of the software component included in the root component of the second flow to the name of the first software component included in the root component of the first flow. The DNA generator may update the UID included in the root component of the second flow to the UID included in the root component of the first flow.

DNA 생성부는 제2 플로우에 포함된 차일드 컴포넌트의 값을 제1 플로우에 포함된 루트 컴포넌트의 값으로 갱신할 수 있다(S470). 즉, DNA 생성부는 제2 플로우의 차일드 컴포넌트에 포함된 소프트웨어 컴포넌트의 명칭을 제1 플로우의 루트 컴포넌트에 포함된 제1 소프트웨어 컴포넌트 명칭으로 갱신할 수 있다. DNA 생성부는 제2 플로우의 차일드 컴포넌트에 포함된 UID를 제1 플로우의 루트 컴포넌트에 포함된 UID로 갱신할 수 있다.The DNA generator may update the value of the child component included in the second flow to the value of the root component included in the first flow ( S470 ). That is, the DNA generator may update the name of the software component included in the child component of the second flow to the name of the first software component included in the root component of the first flow. The DNA generator may update the UID included in the child component of the second flow to the UID included in the root component of the first flow.

본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The methods according to the present invention may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the computer-readable medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software.

컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer-readable media include hardware devices specially configured to store and carry out program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as at least one software module to perform the operations of the present invention, and vice versa.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although it has been described with reference to the above embodiments, it will be understood by those skilled in the art that various modifications and changes can be made to the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. will be able

Claims (19)

프로세서가 실행하는 웹 애플리케이션 관리 프로그램에 의해 실행되는 웹 애플리케이션 관리 방법으로서,
제1 소프트웨어 컴포넌트로부터 추출된 제1 URI(Uniform Resource Identifier)를 수신하는 단계;
상기 제1 소프트웨어 컴포넌트를 기초로 생성한, 제1 소프트웨어 컴포넌트의 명칭 및 제1 소프트웨어 컴포넌트의 UID(Unique Identifier)를 포함하는 제1 플로우를 수신하는 단계;
상기 제1 URI 및 상기 제1 플로우를 포함하는 제1 DNA를 생성하는 단계;
제2 소프트웨어 컴포넌트로부터 추출된 제2 URI를 수신하는 단계;
상기 제2 소프트웨어 컴포넌트를 기초로 생성한, 제2 소프트웨어 컴포넌트의 명칭 및 제2 소프트웨어 컴포넌트의 UID(Unique Identifier)를 포함하는 제2 플로우를 수신하는 단계; 및
상기 제1 URI 및 상기 제2 URI를 비교하는 단계를 포함하고,
상기 제1 URI 및 상기 제2 URI를 비교하는 단계는,
상기 제1 URI 및 상기 제2 URI가 동일한 경우,
상기 제1 DNA에 포함된 제1 플로우의 UID 및 상기 제2 플로우의 UID를 비교하는 단계를 더 포함하는, 웹 애플리케이션 관리 방법.
A web application management method executed by a web application management program executed by a processor, the method comprising:
receiving a first Uniform Resource Identifier (URI) extracted from a first software component;
Receiving a first flow including a name of the first software component and a UID (Unique Identifier) of the first software component generated based on the first software component;
generating a first DNA including the first URI and the first flow;
receiving a second URI extracted from a second software component;
Receiving a second flow including a name of a second software component and a UID (Unique Identifier) of the second software component generated based on the second software component; and
comparing the first URI and the second URI;
Comparing the first URI and the second URI comprises:
When the first URI and the second URI are the same,
Further comprising the step of comparing the UID of the first flow and the UID of the second flow included in the first DNA, web application management method.
청구항 1에 있어서,
상기 제1 소프트웨어 컴포넌트 및 상기 제2 소프트웨어 컴포넌트 중 하나 이상은 WAR(Web application ARchive) 파일로부터 획득되는, 웹 애플리케이션 관리 방법.
The method according to claim 1,
wherein at least one of the first software component and the second software component is obtained from a Web application ARchive (WAR) file.
삭제delete 삭제delete 청구항 1에 있어서,
상기 제1 DNA를 생성하는 단계는,
상기 제1 DNA를 저장하는 단계를 더 포함하는 웹 애플리케이션 관리 방법.
The method according to claim 1,
The step of generating the first DNA,
Web application management method further comprising the step of storing the first DNA.
청구항 1에 있어서,
상기 제1 URI 및 상기 제2 URI를 비교하는 단계는,
상기 제1 URI 및 상기 제2 URI가 동일하지 않은 경우,
상기 제2 URI 및 상기 제2 플로우를 포함하는 제2 DNA를 생성하는 단계를 더 포함하는, 웹 애플리케이션 관리 방법.
The method according to claim 1,
Comparing the first URI and the second URI comprises:
When the first URI and the second URI are not the same,
Further comprising the step of generating a second DNA comprising the second URI and the second flow, the web application management method.
청구항 6에 있어서,
상기 제2 DNA를 생성하는 단계는,
상기 제2 DNA를 저장하는 단계를 더 포함하는, 웹 애플리케이션 관리 방법.
7. The method of claim 6,
The step of generating the second DNA,
Further comprising the step of storing the second DNA, web application management method.
삭제delete 청구항 1에 있어서,
상기 제1 플로우의 UID 및 상기 제2 플로우의 UID를 비교하는 단계는,
상기 제1 플로우의 UID 및 상기 제2 플로우의 UID가 동일하지 않은 경우,
상기 제1 DNA의 제1 URI를 상기 제2 URI로 갱신하는 단계; 및
상기 제1 DNA의 제1 플로우를 상기 제2 플로우로 갱신하는 단계를 더 포함하는, 웹 애플리케이션 관리 방법.
The method according to claim 1,
Comparing the UID of the first flow and the UID of the second flow comprises:
When the UID of the first flow and the UID of the second flow are not the same,
updating the first URI of the first DNA to the second URI; and
Further comprising the step of updating the first flow of the first DNA to the second flow, the web application management method.
청구항 9에 있어서,
상기 제1 DNA의 제1 플로우를 상기 제2 플로우로 갱신하는 단계는,
상기 제1 플로우의 루트 컴포넌트에 포함된 상기 제1 소프트웨어 컴포넌트의 명칭을 제2 플로우의 루트 컴포넌트에 포함된 상기 제2 소프트웨어 컴포넌트의 명칭으로 갱신하는 단계; 및
상기 제1 플로우의 루트 컴포넌트에 포함된 제1 소프트웨어 컴포넌트의 UID를 상기 제2 소프트웨어 컴포넌트의 UID로 갱신하는 단계를 더 포함하는, 웹 애플리케이션 관리 방법.
10. The method of claim 9,
Updating the first flow of the first DNA to the second flow comprises:
updating the name of the first software component included in the root component of the first flow to the name of the second software component included in the root component of a second flow; and
The method further comprising: updating a UID of a first software component included in a root component of the first flow to a UID of the second software component.
청구항 10에 있어서,
상기 제1 플로우의 차일드 컴포넌트에 포함된 상기 제1 소프트웨어 컴포넌트의 명칭을 제2 플로우의 루트 컴포넌트에 포함된 상기 제2 소프트웨어 컴포넌트의 명칭으로 갱신하는 단계; 및
상기 제1 플로우의 차일드 컴포넌트에 포함된 제1 소프트웨어 컴포넌트의 UID를 상기 제2 소프트웨어 컴포넌트의 UID로 갱신하는 단계를 더 포함하는, 웹 애플리케이션 관리 방법.
11. The method of claim 10,
updating the name of the first software component included in the child component of the first flow to the name of the second software component included in the root component of the second flow; and
Further comprising the step of updating the UID of the first software component included in the child component of the first flow to the UID of the second software component, the web application management method.
프로세서(processor); 및
상기 프로세서에 의해 실행되는 하나 이상의 명령들이 저장된 메모리(memory)를 포함하며,
상기 하나 이상의 명령들은,
제1 소프트웨어 컴포넌트로부터 추출된 제1 URI(Uniform Resource Identifier)를 수신하고;
상기 제1 소프트웨어 컴포넌트를 기초로 생성한, , 제1 소프트웨어 컴포넌트의 명칭 및 제1 소프트웨어 컴포넌트의 UID(Unique Identifier)를 포함하는 제1 플로우를 수신하고;
상기 제1 URI 및 상기 제1 플로우를 포함하는 제1 DNA를 생성하고;
제2 소프트웨어 컴포넌트로부터 추출된 제2 URI를 수신하고;
상기 제2 소프트웨어 컴포넌트를 기초로 생성한, 제2 소프트웨어 컴포넌트의 명칭 및 제2 소프트웨어 컴포넌트의 UID(Unique Identifier)를 포함하는 제2 플로우를 수신하고; 그리고,
상기 제1 URI 및 상기 제2 URI를 비교하도록 실행되고,
상기 제1 URI 및 상기 제2 URI를 비교하는 경우,
상기 하나 이상의 명령들은,
상기 제1 URI 및 상기 제2 URI가 동일한 경우,
상기 제1 DNA에 포함된 제1 플로우의 UID 및 상기 제2 플로우의 UID를 비교하도록 더 실행되는, 웹 애플리케이션 관리 장치.
processor; and
and a memory in which one or more instructions executed by the processor are stored,
The one or more instructions
receive a first Uniform Resource Identifier (URI) extracted from the first software component;
Receive a first flow, which is generated based on the first software component, and includes a name of the first software component and a Unique Identifier (UID) of the first software component;
generate a first DNA comprising the first URI and the first flow;
receive a second URI extracted from a second software component;
receive a second flow including a name of a second software component and a Unique Identifier (UID) of the second software component, generated based on the second software component; And,
and compare the first URI and the second URI;
When comparing the first URI and the second URI,
The one or more instructions
When the first URI and the second URI are the same,
The web application management apparatus further executed to compare the UID of the first flow and the UID of the second flow included in the first DNA.
청구항 12에 있어서,
상기 제1 소프트웨어 컴포넌트 및 상기 제2 소프트웨어 컴포넌트 중 하나 이상은 WAR(Web application ARchive) 파일에 포함된 자바 클래스(java class) 파일로부터 획득되는, 웹 애플리케이션 관리 장치.
13. The method of claim 12,
wherein at least one of the first software component and the second software component is obtained from a Java class file included in a Web application ARchive (WAR) file.
삭제delete 청구항 12에 있어서,
상기 제1 URI 및 상기 제2 URI를 비교하는 경우,
상기 하나 이상의 명령들은,
상기 제1 URI 및 상기 제2 URI가 동일하지 않은 경우,
상기 제2 URI 및 상기 제2 플로우를 포함하는 제2 DNA를 생성하도록 더 실행되는 웹 애플리케이션 관리 장치.
13. The method of claim 12,
When comparing the first URI and the second URI,
The one or more instructions
When the first URI and the second URI are not the same,
and generate a second DNA including the second URI and the second flow.
삭제delete 청구항 12에 있어서,
상기 제1 플로우의 UID 및 상기 제2 플로우의 UID를 비교하는 경우,
상기 하나 이상의 명령들은,
상기 제1 플로우의 UID 및 상기 제2 플로우의 UID가 동일하지 않은 경우,
상기 제1 DNA의 제1 URI를 상기 제2 URI로 갱신하고; 그리고,
상기 제1 DNA의 제1 플로우를 상기 제2 플로우로 갱신하도록 더 실행되는, 웹 애플리케이션 관리 장치.
13. The method of claim 12,
When comparing the UID of the first flow and the UID of the second flow,
The one or more instructions
When the UID of the first flow and the UID of the second flow are not the same,
updating the first URI of the first DNA to the second URI; And,
and updating the first flow of the first DNA to the second flow.
청구항 17에 있어서,
상기 제1 DNA의 제1 플로우를 상기 제2 플로우로 갱신하는 경우,
상기 하나 이상의 명령들은,
상기 제1 플로우의 루트 컴포넌트에 포함된 상기 제1 소프트웨어 컴포넌트의 명칭을 제2 플로우의 루트 컴포넌트에 포함된 상기 제2 소프트웨어 컴포넌트의 명칭으로 갱신하고; 그리고,
상기 제1 플로우의 루트 컴포넌트에 포함된 제1 소프트웨어 컴포넌트의 UID를 상기 제2 소프트웨어 컴포넌트의 UID로 갱신하도록 더 실행되는, 웹 애플리케이션 관리 장치.
18. The method of claim 17,
When updating the first flow of the first DNA to the second flow,
The one or more instructions
updating the name of the first software component included in the root component of the first flow to the name of the second software component included in the root component of the second flow; And,
and update the UID of the first software component included in the root component of the first flow to the UID of the second software component.
청구항 18에 있어서,
상기 하나 이상의 명령들은,
상기 제1 플로우의 차일드 컴포넌트에 포함된 상기 제1 소프트웨어 컴포넌트의 명칭을 제2 플로우의 루트 컴포넌트에 포함된 상기 제2 소프트웨어 컴포넌트의 명칭으로 갱신하고; 그리고,
상기 제1 플로우의 차일드 컴포넌트에 포함된 제1 소프트웨어 컴포넌트의 UID를 상기 제2 소프트웨어 컴포넌트의 UID로 갱신하도록 더 실행되는 웹 애플리케이션 관리 장치.
19. The method of claim 18,
The one or more instructions
updating the name of the first software component included in the child component of the first flow to the name of the second software component included in the root component of a second flow; And,
The web application management apparatus further executed to update the UID of the first software component included in the child component of the first flow to the UID of the second software component.
KR1020200093100A 2019-11-20 2020-07-27 Method of controlling web application and apparatus thereof KR102372677B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190149753 2019-11-20
KR1020190149753 2019-11-20

Publications (2)

Publication Number Publication Date
KR20210061917A KR20210061917A (en) 2021-05-28
KR102372677B1 true KR102372677B1 (en) 2022-03-10

Family

ID=76140400

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200093100A KR102372677B1 (en) 2019-11-20 2020-07-27 Method of controlling web application and apparatus thereof

Country Status (1)

Country Link
KR (1) KR102372677B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202185B2 (en) * 2011-04-08 2015-12-01 Ca, Inc. Transaction model with structural and behavioral description of complex transactions
KR20190127124A (en) * 2018-05-03 2019-11-13 주식회사 지행아이티 Method and apparatus for verifying integrity of source code and related data using blockchain

Also Published As

Publication number Publication date
KR20210061917A (en) 2021-05-28

Similar Documents

Publication Publication Date Title
US11126749B2 (en) Apparatus and method for securing web application server source code
CN108206802B (en) Method and device for detecting webpage backdoor
CN101834866B (en) CC (Communication Center) attack protective method and system thereof
CN101388768B (en) Method and device for detecting malicious HTTP request
US9356963B2 (en) Detecting and applying different security policies to active client requests running within secure user web sessions
CN103001817B (en) A kind of method and apparatus of real-time detection of webpage cross-domain request
US20070136809A1 (en) Apparatus and method for blocking attack against Web application
CN105868258A (en) Crawler system
WO2008094628A2 (en) Content transform proxy
US9774620B2 (en) Automatic code and data separation of web application
CN104519008A (en) Cross-site scripting attack defense method and device and application server
CN105635064B (en) CSRF attack detection method and device
CN103810268A (en) Search result recommendation information loading method, device and system and URL detection method, device and system
WO2015109912A1 (en) Buffer overflow attack detection device and method and security protection system
US20160342689A1 (en) Method, device and system for loading recommendation information and detecting web address
CN108028843B (en) Method, system and computing device for securing delivery of computer-implemented functionality
CN104008331A (en) Access method, device and system of malicious web
CN102882988A (en) Method, device and equipment for acquiring address information of resource information
JP7028699B2 (en) Malignant website detection device, malignant website detection method and malignant website detection program
KR102372677B1 (en) Method of controlling web application and apparatus thereof
KR101917996B1 (en) Method and Apparatus for Detecting Malicious Script
CN110708308B (en) Cross-site script vulnerability mining method and system for cloud computing environment
CN109246069B (en) Webpage login method and device and readable storage medium
JP6059610B2 (en) COMMUNICATION DEVICE, ACCESS CONTROL METHOD, AND PROGRAM
Altmeier et al. Adidos–adaptive and intelligent fully-automatic detection of denial-of-service weaknesses in web services

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right