KR102324352B1 - Ai-based program auto-generation system - Google Patents

Ai-based program auto-generation system Download PDF

Info

Publication number
KR102324352B1
KR102324352B1 KR1020210080919A KR20210080919A KR102324352B1 KR 102324352 B1 KR102324352 B1 KR 102324352B1 KR 1020210080919 A KR1020210080919 A KR 1020210080919A KR 20210080919 A KR20210080919 A KR 20210080919A KR 102324352 B1 KR102324352 B1 KR 102324352B1
Authority
KR
South Korea
Prior art keywords
unit
user terminal
component
input
voice
Prior art date
Application number
KR1020210080919A
Other languages
Korean (ko)
Inventor
박수연
Original Assignee
수테크시스템즈 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 수테크시스템즈 주식회사 filed Critical 수테크시스템즈 주식회사
Priority to KR1020210080919A priority Critical patent/KR102324352B1/en
Application granted granted Critical
Publication of KR102324352B1 publication Critical patent/KR102324352B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/005Language recognition

Abstract

The present invention relates to a system for automatically generating an AI-based program that enables a component-based software to be developed by having a plurality of components disposed according to an input from a user to enable coding automation, and enables automatic distribution of a program. The system for automatically generating the AI-based program according to the present invention comprises: a user terminal; and a service server connected, to each other, to the user terminal through a communication network and comprising an editor part that automatically generates a program code based on an input from the user terminal, wherein the editor part comprises a component part comprising a plurality of components selected from the user terminal and disposed on a screen. Therefore, the present invention is capable of having an effect of developing a software even if not developed by a developer.

Description

AI 기반 프로그램 자동 생성 시스템{AI-BASED PROGRAM AUTO-GENERATION SYSTEM}AI-based program automatic generation system {AI-BASED PROGRAM AUTO-GENERATION SYSTEM}

본 발명은 AI 기반 프로그램 자동 생성 시스템에 관한 것으로, 더욱 상세하게는 코딩 자동화가 가능하도록 사용자로부터의 입력에 따라 배치되는 복수개의 컴포넌트를 구비하여 컴포넌트 기반 소프트웨어의 개발이 가능하고, 프로그램의 자동 배포가 가능한 AI 기반 프로그램 자동 생성 시스템에 관한 것이다.The present invention relates to an AI-based program automatic generation system, and more particularly, by providing a plurality of components arranged according to an input from a user to enable coding automation, the development of component-based software is possible, and automatic distribution of the program is possible. It relates to a possible AI-based program automatic creation system.

최근 기업들은 소프트웨어 개발자의 임금 인상에 따른 개발자 확보가 어려워지고, 확보된 개발자도 기술역량이 부족하여 정보시스템 개발 및 구축에 어려움을 격고 있다.Recently, companies are having difficulties in securing developers due to the increase in wages of software developers, and the secured developers are also experiencing difficulties in developing and constructing information systems due to lack of technical competency.

한편 정보시스템 개발은 분석, 설계, 구현 및 테스트, 인도 절차를 거쳐 사용자가 원하는 정보시스템을 개발한다. 그 중 분석 단계에서의 요구사항 분석과, 구현 및 테스트 단계에서의 프로그램 구현은 정보시스템 개발에 중요한 한 요소이다.Meanwhile, information system development develops the information system desired by users through analysis, design, implementation, testing, and delivery procedures. Among them, the requirements analysis in the analysis stage and the program implementation in the implementation and test stage are important factors in information system development.

그러나 현재 소프트웨어 개발자 품귀 현상에 따른 개발 업체 어려움과 이에 따른 정보시스템 품질 저하가 많은 문제로 대두되고 있다. 이에 따라 소프트웨어 개발을 개발자가 아닌 사람도 쉽게 코딩 할 수 있는 코딩 자동화 도구를 통해 정보시스템에 대한 품질 향상 및 개발자 품귀 현상에 대한 개선이 필요하다.However, the current difficulties of developers due to the shortage of software developers and the resulting deterioration of information system quality are emerging as many problems. Accordingly, it is necessary to improve the quality of the information system and improve the developer shortage through a coding automation tool that enables non-developers to easily code software development.

또한 개발에 있어서 표준화 지침(국방 SHADE, 공공 데이터표준)을 적용하기에는 많은 노력과 많은 공수가 발생하며, 이를 해소하기 위한 방법으로 코딩 자동화 도구 사용을 통한 요구사항 분석 시점부터 화면 설계 시 데이터 표준화 지침을 준수함으로써 표준화 정책에 적극 반영함으로써 소프트웨어 표준화 정책에 부합할 수 있다.In addition, applying the standardization guidelines (defense SHADE, public data standards) in development requires a lot of effort and a lot of work, and as a way to solve this, data standardization guidelines are applied when designing screens from the point of analysis of requirements through the use of coding automation tools. By complying with it, it is possible to comply with the software standardization policy by actively reflecting it in the standardization policy.

대한민국 등록특허공보 제10-0962342호 (2010년 06월 10일 공고)Republic of Korea Patent Publication No. 10-0962342 (Announced on June 10, 2010)

상술한 문제점을 해결하기 위한 본 발명의 목적은 개발자가 아니더라도 소프트웨어의 개발이 가능한 AI 기반 프로그램 자동 생성 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION An object of the present invention for solving the above-described problems is to provide an AI-based automatic program generation system capable of developing software even if not a developer.

본 발명의 또 다른 목적은 자동화된 코드 생성과 자동 웹서비스 배포 및 실행이 가능한 AI 기반 프로그램 자동 생성 시스템을 제공하는 것이다.Another object of the present invention is to provide an AI-based program automatic generation system capable of automatic code generation and automatic web service distribution and execution.

상술한 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 AI 기반 프로그램 자동 생성 시스템은, 사용자단말기 및 상기 사용자단말기와 통신망을 통해 서로 연결되며, 상기 사용자단말기로부터의 입력을 기초로 프로그램 코드를 자동 생성하는 에디터부를 포함하는 서비스서버를 포함하며, 상기 에디터부는, 상기 사용자단말기로부터 선택되어 화면에 배치되는 복수개의 컴포넌트(component)를 포함하는 컴포넌트부를 포함한다.In order to achieve the above object, the AI-based program automatic generation system according to an embodiment of the present invention is connected to each other through a user terminal and a communication network with the user terminal, and generates a program code based on an input from the user terminal. and a service server including an editor unit that is automatically generated, wherein the editor unit includes a component unit including a plurality of components selected from the user terminal and arranged on a screen.

상기 에디터부는, 상기 사용자단말기로부터의 입력에 따라 상기 컴포넌트를 추천하는 컴포넌트추천부를 더 포함한다.The editor unit further includes a component recommendation unit for recommending the component according to an input from the user terminal.

상기 입력은, 문장입력을 포함하고, 상기 컴포넌트추천부는, 상기 문장입력에 따른 문장을 분석하여 컴포넌트를 추천한다.The input includes a sentence input, and the component recommendation unit recommends a component by analyzing a sentence according to the sentence input.

상기 입력은, 음성입력을 포함하고, 상기 컴포넌트추천부는, 상기 음성입력에 따른 음성(音聲)을 분석하여 컴포넌트를 추천한다.The input includes a voice input, and the component recommendation unit recommends a component by analyzing a voice according to the voice input.

상기 서비스서버는, 자동웹서비스배포부를 더 포함하며, 상기 자동웹서비스배포부는, 상기 컴포넌트 배치 시 자동으로 데이터베이스를 생성하는 자동DB생성부 및 상기 사용자단말기가 설계한 화면의 웹 상 자동배포를 지원하는 자동배포부를 포함하고, 상기 자동DB생성부는, 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용하여 상기 데이터베이스를 생성한다.The service server further includes an automatic web service distribution unit, and the automatic web service distribution unit supports an automatic DB generation unit that automatically creates a database when the component is arranged and an automatic distribution of the screen designed by the user terminal on the web. and an automatic distribution unit to, wherein the automatic DB generation unit generates the database by using the data standardization guidelines of public institutions announced by the Ministry of Public Administration and Security.

본 발명인 AI 기반 프로그램 자동 생성 시스템에 따르면, 개발자가 아니더라도 소프트웨어의 개발이 가능한 효과가 있다.According to the AI-based program automatic generation system of the present invention, there is an effect that software can be developed even if you are not a developer.

본 발명인 AI 기반 프로그램 자동 생성 시스템에 따르면, 자동화된 코드 생성과 자동 웹서비스 배포 및 실행이 가능한 효과가 있다.According to the AI-based program automatic generation system of the present invention, there is an effect that automatic code generation and automatic web service distribution and execution are possible.

도 1은 본 발명에 따른 AI 기반 프로그램 자동 생성 시스템의 구성을 보여주는 블록도이다.
도 2는 본 발명에 따른 서비스서버의 구성을 보여주는 블록도이다.
도 3은 본 발명에 따른 서비스서버가 제공하는 초기화면을 보여주는 도면이다.
도 4는 본 발명에 따른 컴포넌트에 의한 화면 설계 시 자동으로 데이터베이스가 생성된 모습을 보여주는 도면이다.
도 5는 본 발명에 따른 자동DB생성부가 데이터베이스를 생성할 때 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용한 모습을 보여주는 도면이다.
도 6은 컨포넌트를 활용하여 설계한 화면이 자동배포된 모습을 보여주는 도면이다.
도 7은 본 발명에 따른 시스템이 제공하는 서비스의 흐름을 보여주는 흐름도이다.
1 is a block diagram showing the configuration of an AI-based program automatic generation system according to the present invention.
2 is a block diagram showing the configuration of a service server according to the present invention.
3 is a view showing an initial screen provided by the service server according to the present invention.
4 is a diagram showing a state in which a database is automatically generated when a screen is designed by a component according to the present invention.
5 is a diagram showing a state in which the data standardization guidelines of public institutions announced by the Ministry of Public Administration and Security are utilized when the automatic DB generator according to the present invention creates a database.
6 is a diagram showing a state in which a screen designed using a component is automatically distributed.
7 is a flowchart showing the flow of services provided by the system according to the present invention.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. In adding reference numerals to components in each drawing, it should be noted that the same components are given the same reference numerals as much as possible even though they are indicated in different drawings.

그리고 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.And in describing the embodiment of the present invention, if it is determined that a detailed description of a related known configuration or function interferes with the understanding of the embodiment of the present invention, the detailed description thereof will be omitted.

또한, 본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다.In addition, in describing the components of the embodiment of the present invention, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only for distinguishing the components from other components, and the essence, order, or order of the components are not limited by the terms.

본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 “포함한다” 및/또는 “포함하는” 은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.As used herein, the singular also includes the plural, unless the phrase specifically states otherwise. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components.

본 명세서에서 소프트웨어는, 프로그램 및 데이터를 포함하는 용어로 사용되었고, 프로그램은 어플리케이션(application, app, 앱), 웹, 웹 페이지를 포함하는 용어로 사용되었다. 이하에서는 프로그램을 웹이라 기재하였다. 프로그램 코드는 소스 코드를 포함한다. In this specification, software is used as a term including a program and data, and a program is used as a term including an application (application, app, app), web, and web page. Hereinafter, the program is described as a web. Program code includes source code.

본 명세서에서는 운영자 또는 사용자가 만든 프로그램을 프로젝트라고 한다.In this specification, a program created by an operator or a user is referred to as a project.

이하, 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명하고자 한다.Hereinafter, the present invention will be described in more detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 AI 기반 프로그램 자동 생성 시스템(1000)의 구성을 보여주는 블록도이다.1 is a block diagram showing the configuration of an AI-based automatic program generation system 1000 according to the present invention.

본 발명에 따른 AI 기반 프로그램 자동 생성 시스템(1000)은, 도 1을 참조하면, 사용자단말기(200) 및 그 사용자단말기(200)와 통신망을 통해 서로 연결되며, 사용자단말기(200)로부터의 입력을 기초로 프로그램 코드를 자동 생성하는 에디터부(120)를 포함하는 서비스서버(100)를 포함한다.AI-based program automatic generation system 1000 according to the present invention, referring to FIG. 1 , a user terminal 200 and the user terminal 200 are connected to each other through a communication network, and input from the user terminal 200 is and a service server 100 including an editor unit 120 that automatically generates a program code based on the program code.

본 발명에 따른 사용자단말기(200)는, 통신망을 통해 서비스서버(100)에 접속하여 어플리케이션 및/또는 웹 페이지를 포함하는 소프트웨어의 생성이 가능하다. 사용자단말기(200)는 후술하게 될 컴포넌트를 배치하여 웹 상 화면을 설계할 수 있다.The user terminal 200 according to the present invention is capable of generating software including an application and/or a web page by accessing the service server 100 through a communication network. The user terminal 200 may design a screen on the web by arranging components to be described later.

서비스서버(100)는 에디터부(120)를 포함한다. 에디터부(120)는 사용자단말기(200)로부터의 입력을 기초로 HTML, CSS, JAVA SCRIPT 등 소프트웨어를 구성하는 프로그램 코드를 자동 생성한다. 에디터부(120)는 사용자단말기(200)로부터의 입력을 기초로 웹 사이트를 제작할 수 있도록 다양한 디자인 템플릿을 제공할 수 있다. 에디터부(120)는 사용자단말기(200)에 의해 선택 및/또는 배치된 컴포넌트를 기초로 웹 상 화면의 설계를 지원한다.The service server 100 includes an editor unit 120 . The editor unit 120 automatically generates program codes constituting software such as HTML, CSS, and JAVA SCRIPT based on the input from the user terminal 200 . The editor unit 120 may provide various design templates to create a web site based on an input from the user terminal 200 . The editor unit 120 supports the design of a screen on the web based on the components selected and/or arranged by the user terminal 200 .

서비스서버(100)는 에디터부(120)에 의해 생성된 프로그램 코드를 통해 구성된 소프트웨어의 데이터베이스(이하, ‘DB’)의 표준화를 자동 반영, DB 자동 생성, 자동배포, 운영환경의 자동실행을 지원하는 자동웹서비스배포부(130)를 더 포함하며, 자동웹서비스배포부(130)의 세부구성은 후술하도록 한다.The service server 100 automatically reflects the standardization of the database (hereinafter, 'DB') of the software configured through the program code generated by the editor unit 120, and supports automatic DB creation, automatic distribution, and automatic execution of the operating environment. It further includes an automatic web service distribution unit 130, and the detailed configuration of the automatic web service distribution unit 130 will be described later.

본 발명에 따른 서비스서버(100)의 구성을 도 2를 참조하여 더욱 상세히 설명하면 아래와 같다.The configuration of the service server 100 according to the present invention will be described in more detail with reference to FIG. 2 as follows.

도 2는 본 발명에 따른 서비스서버(100)의 구성을 보여주는 블록도이다.2 is a block diagram showing the configuration of the service server 100 according to the present invention.

본 발명에 따른 서비스서버(100)는, 도 2를 참조하면, 회원관리부(110), 에디터부(120), 자동웹서비스배포부(130), 마이페이지부(140) 및 고객지원부(150)를 포함한다.The service server 100 according to the present invention, referring to FIG. 2 , a member management unit 110 , an editor unit 120 , an automatic web service distribution unit 130 , a my page unit 140 , and a customer support unit 150 ). includes

본 발명에 따른 회원관리부(110)는, 로그인부(111), 간편로그인부(112), 비밀번호찾기부(113), 아이디찾기부(114) 및 회원가입부(115)를 포함한다.The member management unit 110 according to the present invention includes a login unit 111 , a simple login unit 112 , a password search unit 113 , an ID search unit 114 , and a member registration unit 115 .

로그인부(111)는, 본 발명에 따른 서비스서버(100)를 이용하기 위하여 사용자단말기(200)가 접속할 수 있는 기능을 제공한다. 간편로그인부(112)는, Google, Kakao, Naver 등에서 제공하는 API를 이용한 로그인 기능을 제공한다. 비밀번호찾기부(113)는, 사용자단말기(200)로부터 이메일 인증 또는 핸드폰 인증을 통하여 비밀번호 찾기 기능을 제공한다. 아이디찾기부(114)는, 사용자의 정보 인증 또는 핸드폰 인증을 통한 아이디 찾기 기능을 제공한다. 회원가입부(115)는, 사용자단말기(200)가 서비스서버(100)를 이용하기 위하여 회원정보를 등록하는 기능을 제공한다.The login unit 111 provides a function that the user terminal 200 can access to use the service server 100 according to the present invention. The simple login unit 112 provides a login function using APIs provided by Google, Kakao, Naver, and the like. The password search unit 113 provides a password search function through email authentication or mobile phone authentication from the user terminal 200 . The ID search unit 114 provides an ID search function through user information authentication or mobile phone authentication. The member registration unit 115 provides a function of registering member information in order for the user terminal 200 to use the service server 100 .

본 발명에 따른 에디터부(120)는, 메인화면생성부(121), 메뉴생성부(122), 컴포넌트부(123), 컴포넌트추천부(124), Header 및 Footer 생성부(125), 팝업화면생성부(126), 미리보기부(127), 소스보기부(128) 및 서비스시작부(129)를 포함한다.The editor unit 120 according to the present invention includes a main screen generation unit 121, a menu generation unit 122, a component unit 123, a component recommendation unit 124, a header and footer generation unit 125, and a pop-up screen. It includes a generation unit 126 , a preview unit 127 , a source view unit 128 , and a service start unit 129 .

메인화면생성부(121)는, 프로젝트의 메인화면을 생성하는 기능을 제공한다. 메뉴생성부(122)는, 프로젝트의 메뉴를 생성하는 기능을 제공한다. The main screen generating unit 121 provides a function of generating the main screen of the project. The menu generating unit 122 provides a function of generating a menu of a project.

컴포넌트부(123)는, 사용자단말기(200)로부터 선택되어 화면에 배치되는 복수개의 컴포넌트를 포함한다. 컴포넌트부(123)는, TEXT, GRID, IMAGE, BUTTON 등 페이지 제작을 위해 구성되어지는 복수개의 서로 다른 컴포넌트를 제공한다. 컴포넌트부(123)는 컴포넌트 소스 코드를 생성한다. 컴포넌트부(123)에는 생성된 컴포넌트 소스 코드가 저장된다. 컴포넌트부(123)는 사용자단말기(200)에 의해 선택 및 배치된 컴포넌트에 대한 정보를 저장한다.The component unit 123 includes a plurality of components selected from the user terminal 200 and arranged on the screen. The component unit 123 provides a plurality of different components configured for page production, such as TEXT, GRID, IMAGE, and BUTTON. The component unit 123 generates component source codes. The component unit 123 stores the generated component source code. The component unit 123 stores information on components selected and arranged by the user terminal 200 .

컴포넌트추천부(124)는, 사용자단말기(200)로부터의 입력에 따라 복수개의 서로 다른 컴포넌트 중 특정 컴포넌트들을 사용자단말기(200)로 추천하는 기능을 제공한다. 사용자단말기(200)로부터의 입력은, 마우스 등 입력장치에 의한 클릭, 키보드 등 입력장치에 의한 단어나 문장 입력, 마이크 등 입력장치에 의한 음성입력을 포함한다. 컴포넌트추천부(124)의 상세한 설명은 후술하도록 한다.The component recommendation unit 124 provides a function of recommending specific components among a plurality of different components to the user terminal 200 according to an input from the user terminal 200 . The input from the user terminal 200 includes a click by an input device such as a mouse, a word or sentence input by an input device such as a keyboard, and a voice input by an input device such as a microphone. A detailed description of the component recommendation unit 124 will be described later.

Header 및 Footer 생성부(125)는, 모든 페이지에 적용되는 프로젝트의 Header, Footer를 생성하는 기능을 제공한다. 팝업화면생성부(126)는, 메뉴로 이동하지 않고 버튼클릭이나 별도의 액션을 통하여 오픈하는 팝업을 생성하는 기능을 제공한다. 미리보기부(127)는, 제작한 프로젝트를 실제 웹페이지 형태로 미리 볼 수 있는 기능을 제공한다. 소스보기부(128)는, 제작한 프로젝트의 실제 소스를 조회 및 수정할 수 있는 기능을 제공한다. 서비스시작부(129)는, 서비스서버(100)를 통해 설계된 프로젝트를 서비스 가능한 형태로 웹 호스팅 하는 기능을 제공한다.The header and footer generation unit 125 provides a function of generating a header and footer of a project applied to all pages. The pop-up screen generating unit 126 provides a function of generating a pop-up that is opened through a button click or a separate action without moving to a menu. The preview unit 127 provides a function for previewing the produced project in the form of an actual web page. The source viewing unit 128 provides a function to inquire and modify the actual source of the produced project. The service start unit 129 provides a function of web hosting a project designed through the service server 100 in a serviceable form.

본 발명에 따른 자동웹서비스배포부(130)는 웹 자동화 서비스를 제공한다. 본 발명에 따른 자동웹서비스배포부(130)는, 자동소스코드생성부(131), 자동DB생성부(132), 자동도메인생성부(133) 및 자동배포부(134)를 포함한다.The automatic web service distribution unit 130 according to the present invention provides a web automation service. The automatic web service distribution unit 130 according to the present invention includes an automatic source code generation unit 131 , an automatic DB generation unit 132 , an automatic domain generation unit 133 , and an automatic distribution unit 134 .

자동소스코드생성부(131)는, 서비스서버(100)를 이용하여 설계된 프로젝트가 실제 서비스되고 작동할 수 있도록 자동으로 소스 코드를 생성해주는 기능을 제공한다, The automatic source code generation unit 131 provides a function of automatically generating a source code so that a project designed using the service server 100 can be actually serviced and operated.

자동DB생성부(132)는, 데이터의 조회, 입력, 수정, 삭제를 위한 테이블 및 컬럼을 자동으로 생성해주는 기능을 제공한다, 또한 자동DB생성부(132)는, 사용자단말기(200)에 의한 컴포넌트 배치 시, 화면 상 배치된 컴포넌트를 기초로 자동으로 데이터베이스를 생성한다. 한편, 자동DB생성부(132)는 데이터베이스를 생성할 때 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용한다. The automatic DB generation unit 132 provides a function of automatically generating tables and columns for data inquiry, input, modification, and deletion. In addition, the automatic DB generation unit 132 is configured by the user terminal 200 When placing components, a database is automatically created based on the components placed on the screen. On the other hand, the automatic DB generation unit 132 utilizes the data standardization guidelines of public institutions announced by the Ministry of Public Administration and Security when creating a database.

자동도메인생성부(133)는, 자동으로 사용자가 제작한 프로젝트명으로 도메인을 생성해주는 기능을 제공한다. The automatic domain generation unit 133 provides a function of automatically generating a domain with the project name created by the user.

자동배포부(134)는, 제작한 프로젝트가 서비스 가능하도록 웹서버에 개발소스들을 배포해주는 기능을 제공한다. 자동배포부(134)는 사용자단말기(200)가 컴포넌트의 선택 및 배치에 따라 설계한 화면의 웹 상 자동배포를 지원한다,The automatic distribution unit 134 provides a function of distributing development sources to a web server so that the produced project can be serviced. The automatic distribution unit 134 supports automatic distribution on the web of the screen designed by the user terminal 200 according to the selection and arrangement of components.

본 발명에 따른 마이페이지부(140)는, 프로젝트관리대시보드부(141), 회원정보수정부(142), 구매내역확인부(143) 및 문의내역확인부(144)를 포함한다.The My Page unit 140 according to the present invention includes a project management dashboard unit 141 , a member information correction unit 142 , a purchase history confirmation unit 143 , and an inquiry history confirmation unit 144 .

프로젝트관리대시보드부(141)는, 새로운 프로젝트를 생성하거나 기존에 제작한 프로젝트를 관리하는 기능을 제공한다. 회원정보수정부(142)는, 사용자가 본인의 정보를 수정할 수 있는 기능을 제공한다. 구매내역확인부(143)는, 서비스서버(100)에서 제공하는 서비스에 대한 구매의 사용기한 및 결제정보를 확인 할 수 있는 기능을 제공한다. 문의내역확인부(144)는, 서비스서버(100)에서 사용자단말기(200)에 제공하는 고객센터에 남긴 문의글을 확인 할 수 있는 기능을 제공한다.The project management dashboard unit 141 provides a function of creating a new project or managing an existing project. The member information correction unit 142 provides a function for the user to modify his/her own information. The purchase history confirmation unit 143 provides a function to check the expiration date of purchase and payment information for the service provided by the service server 100 . The inquiry history confirmation unit 144 provides a function to check the inquiry message left in the customer center provided to the user terminal 200 by the service server 100 .

본 발명에 따른 고객지원부(150)는, 문의처부(151), 공지사항부(152) 및 문의게시판부(153)를 포함한다.The customer support unit 150 according to the present invention includes an inquiry address unit 151 , a notice unit 152 , and an inquiry bulletin board unit 153 .

문의처부(151)는, 서비스서버(100)를 운영하는 공급자의 정보를 확인 할 수 있는 기능을 제공한다. 공지사항부(152)는, 서비스서버(100) 관련 공지사항을 확인 할 수 있는 기능을 제공한다. 문의게시판부(153)는, 서비스서버(100) 관련 문의 글을 등록할 수 있는 기능을 제공한다.The inquiry unit 151 provides a function for checking information of a provider operating the service server 100 . The notice unit 152 provides a function to check the notice related to the service server 100 . The inquiry bulletin board 153 provides a function for registering an inquiry related to the service server 100 .

도 3은 본 발명에 따른 서비스서버(100)가 제공하는 초기화면을 보여주는 도면이다.3 is a view showing an initial screen provided by the service server 100 according to the present invention.

서비스서버(100)는 그래픽 유저 인터페이스 환경을 사용자단말기(200)로 제공한다. 사용자단말기(200)가 서비스서버(100)에 접속한 초기화면은 도 3에 도시된 바와 같다. 서비스서버(100)가 제공하는 초기화면의 일측(A)에는 컴포넌트부(123)가 제공하는 복수개의 컴포넌트가 구비된다. 사용자단말기(200)는 컴포넌트부(123)가 제공하는 복수개의 컴포넌트 중 어느 하나를 선택할 수 있다. 사용자단말기(200)에 의해 선택된 컴포넌트는 화면에 배치된다. 이때 선택된 컴포넌트의 배치되는 위치도 설정할 수 있다(B). 사용자단말기(200)는 컴포넌트를 활용하여 앱 또는 웹 페이지의 화면을 설계할 수 있다. 도 3에서는 컴포넌트의 일 예로 상품정보, 상품조회, 상품 목록의 입력 및 표출이 가능한 컴포넌트를 보여주고 있다.The service server 100 provides a graphical user interface environment to the user terminal 200 . An initial screen in which the user terminal 200 accesses the service server 100 is shown in FIG. 3 . A plurality of components provided by the component unit 123 are provided on one side (A) of the initial screen provided by the service server 100 . The user terminal 200 may select any one of a plurality of components provided by the component unit 123 . The component selected by the user terminal 200 is placed on the screen. At this time, the arrangement position of the selected component can also be set (B). The user terminal 200 may design the screen of the app or web page by using the component. 3 shows a component capable of inputting and displaying product information, product inquiry, and product list as an example of a component.

도 4는 본 발명에 따른 컴포넌트에 의한 화면 설계 시 자동으로 데이터베이스가 생성된 모습을 보여주는 도면이고, 도 5는 본 발명에 따른 자동DB생성부(132)가 데이터베이스를 생성할 때 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용한 모습을 보여주는 도면이다.4 is a view showing a state in which a database is automatically generated when a screen is designed by a component according to the present invention. It is a diagram showing the application of data standardization guidelines of public institutions.

본 발명에 따른 자동DB생성부(132)는, 도 4를 참조하면, 컨포넌트에 의한 화면 설계 시 자동으로 데이터베이스를 생성한다. 사용자단말기(200)는, 전술한 바와 같이 컴포넌트를 선택, 배치 및/또는 활용하여 앱 또는 웹 페이지의 화면을 설계할 수 있다. 자동DB생성부(132)는 개별 컨포넌트 내 입력된 데이터를 데이터베이스화 하며 이때 DB 표준화를 자동 반영하는 것이 가능하다. The automatic DB generation unit 132 according to the present invention automatically creates a database when designing a screen by a component, referring to FIG. 4 . The user terminal 200 may design the screen of the app or web page by selecting, arranging and/or utilizing components as described above. The automatic DB generation unit 132 converts data input in individual components into a database, and at this time, it is possible to automatically reflect DB standardization.

본 발명에 따른 자동DB생성부(132)는, 도 5를 참조하면, 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용하여 데이터베이스를 설계한다. 본 명세서에서 행정안전부에서 고시한 공공기관의 데이터 표준화 지침이란, 행정안전부, 디지털정부국, 정보화 표준·지침 자료실, 공공기관의 데이터베이스 표준화 지침 제정 (등록일 : 2015.07.27. 작성자 : 행정정보공유과) 에 따른 데이터 표준화 지침을 의미하며, 데이터 표준화 지침은 다음의 주소에 게시되어 있다.The automatic DB generation unit 132 according to the present invention, with reference to FIG. 5 , designs a database by using the data standardization guidelines of public institutions announced by the Ministry of Public Administration and Security. In this specification, the guidelines for data standardization of public institutions announced by the Ministry of the Interior and Safety refer to the Ministry of Public Administration and Security, the Digital Government, the Information Standards and Guidelines Archive, and the establishment of database standardization guidelines for public institutions (Registration date: 2015.07.27. Author: Administrative Information Sharing Division) Data standardization guidelines according to the data standardization guidelines are posted at the following address.

‘https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do?bbsId=BBSMSTR_000000000045&nttId=46590’‘https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do?bbsId=BBSMSTR_000000000045&nttId=46590’

개발에 있어서 표준화 지침(국방 SHADE, 공공 데이터표준)을 적용하기에는 많은 노력과 공수가 발생하며 이를 위한 해소 방법으로 코딩 자동화 도구 사용을 통한 요구사항 분석 시점부터 화면 설계시 데이터 표준화 지침을 준수함으로써 표준화 정책에 적극 반영함으로써 소프트웨어 표준화 정책에 부합할 수 있다. 따라서 여러 사람이 설계하고 개발하더라도 서로 간의 의사소통이 쉽고, 일관성을 유지하며, 최소의 노력으로 높은 품질의 컴포넌트 기반 정보시스템의 개발이 가능하다.Applying standardization guidelines (defense SHADE, public data standards) in development requires a lot of effort and man-hours, and as a solution for this, standardization policy by complying with data standardization guidelines when designing screens from the point of analysis of requirements through the use of coding automation tools By actively reflecting it in the software standardization policy, it can be met. Therefore, even if several people design and develop it, communication with each other is easy, it maintains consistency, and it is possible to develop a high-quality component-based information system with minimal effort.

도 6은 컨포넌트를 활용하여 설계한 화면이 자동배포된 모습을 보여주는 도면이다.6 is a diagram showing a state in which a screen designed using a component is automatically distributed.

본 발명에 따른 서비스서버(100)는, 전술한 바와 같이 사용자단말기(200)가 설계한 화면의 웹 상 자동배포를 지원하는 자동웹서비스배포부(130)를 포함한다. 에디터부(120)에 의해 제작 및 설계된 프로젝트는 서비스시작부(129)에 의해 웹 서비스 가능한 형태로 웹 호스팅된다.The service server 100 according to the present invention includes an automatic web service distribution unit 130 that supports automatic distribution on the web of the screen designed by the user terminal 200 as described above. The project produced and designed by the editor unit 120 is web-hosted in a web serviceable form by the service start unit 129 .

자동웹서비스배포부(130)는 서비스시작부(129)가 웹 서비스 가능한 형태로 웹 호스팅한 프로젝트를 실제 서비스되고 작동할 수 있도록 자동으로 소스 코드를 생성하는 자동소스코드생성부(131), 데이터베이스를 자동으로 생성하는 자동DB생성부(132), 제작된 프로젝트 명으로 도메인을 생성하는 자동도메인생성부(133) 및 제작된 프로젝트가 서비스 가능하도록 웹 서버에 개발소스들을 배포하는 자동배포부(134)에 의해 사용자단말기(200)가 설계한 화면을 포함하는 프로젝트를 웹 상으로 자동배포하는 것이 가능하다.The automatic web service distribution unit 130 is an automatic source code generation unit 131 that automatically generates a source code so that the service start unit 129 can actually service and operate a web-hosted project in a web serviceable form, a database An automatic DB generation unit 132 that automatically generates ), it is possible to automatically distribute the project including the screen designed by the user terminal 200 on the web.

도 7은 본 발명에 따른 시스템이 제공하는 서비스의 흐름을 보여주는 흐름도이다.7 is a flowchart showing the flow of services provided by the system according to the present invention.

도 7을 참조하면, 사용자단말기(200)는 통신망을 통해 서비스서버(100)에 접속하며, 회원가입부(115)에 의해 회원가입한다. 회원가입한 사용자단말기(200)는 로그인부(111)에 의해 로그인된다. 로그인한 사용자단말기(200)는 서비스 구매여부에 따라 서비스를 구매한 경우 BASIC, Developer 권한을 부여받고, 서비스를 구매하지 않은 경우 Demo 권한을 부여받는다. 사용자단말기(200)는 에디터부(120)에 의해 컴포넌트를 활용하여 화면을 생성하고, 생성한 화면을 저장한다. 또한 사용자단말기(200)는 프로젝트를 생성하고, 프로젝트를 저장한다. 저장된 프로젝트는 HTML 파일을 다운로드하는 것이 가능하다. 제작된 프로젝트는 자동으로 웹 서비스의 실행이 가능하다. 웹 서비스의 실행을 위해 제작된 프로젝트는 빌드되고, 자동으로 배포된다.Referring to FIG. 7 , the user terminal 200 accesses the service server 100 through a communication network, and joins the membership by the member registration unit 115 . The user terminal 200 registered as a member is logged in by the log-in unit 111 . The logged-in user terminal 200 is granted BASIC and Developer rights when purchasing the service, and Demo rights when not purchasing the service, depending on whether or not the service is purchased. The user terminal 200 generates a screen by using the component by the editor unit 120 and stores the generated screen. In addition, the user terminal 200 creates a project and stores the project. Saved projects can be downloaded as HTML files. The created project can automatically run the web service. The project created for the execution of the web service is built and automatically deployed.

전술한 바와 같이, 컴포넌트부(123)는 복수개의 서로 다른 컴포넌트를 구비한다. 이때, 컴포넌트추천부(124)는, 사용자단말기(200)로 특정 컴포넌트를 제시하여 줄 수 있다. 컴포넌트추천부(124)는 특정 컴포넌트를 도 3에 도시된 바와 같이 화면 일측(A)에 표출하고, 사용자단말기(200)는 추천되어 화면 상 표출된 컴포넌트를 선택하는 것이 가능하다.As described above, the component unit 123 includes a plurality of different components. In this case, the component recommendation unit 124 may present a specific component to the user terminal 200 . The component recommendation unit 124 displays a specific component on one side A of the screen as shown in FIG. 3 , and the user terminal 200 can select a recommended component displayed on the screen.

사용자단말기(200)는 마우스, 키보드, 마이크 등 입력장치를 포함한다. 사용자단말기(200)는 컴포넌트를 제시받기 위해 입력장치를 통해 단어, 문장 또는 음성(音聲)을 입력할 수 있고, 사용자단말기(200)는 입력된 단어, 문장 또는 음성을 서비스서버(100)로 송신한다. 사용자단말기(200)로부터 단어, 문장 또는 음성을 수신한 서비스서버(100)는, 수신한 단어, 문장 또는 음성을 컴포넌트추천부(124)로 송신한다. 컴포넌트추천부(124)는 수신한 단어, 문장 또는 음성을 기초로 특정 컴포넌트를 추천할 수 있다.The user terminal 200 includes an input device such as a mouse, a keyboard, and a microphone. The user terminal 200 may input a word, a sentence, or a voice through an input device in order to receive the component, and the user terminal 200 transmits the inputted word, sentence, or voice to the service server 100 . send The service server 100 that has received the word, sentence or voice from the user terminal 200 transmits the received word, sentence or voice to the component recommendation unit 124 . The component recommendation unit 124 may recommend a specific component based on the received word, sentence, or voice.

서비스서버(100)는 사용자단말기(200)로부터의 입력을 기초로 프로그램 코드를 자동 생성한다. 이때의 입력은 단어입력, 문장입력 및 음성입력을 포함한다. 서비스서버(100)는 입력을 위한 GUI, 사용자 인터페이스를 제공한다.The service server 100 automatically generates a program code based on an input from the user terminal 200 . The input at this time includes a word input, a sentence input, and a voice input. The service server 100 provides a GUI and a user interface for input.

사용자단말기(200)로부터의 입력이 단어입력인 경우, 컴포넌트추천부(124)는 해당 단어를 분석하고, 해당 단어와 연관성 높은 컴포넌트를 연산하여 연관성이 높은 순서대로 화면 상 표출한다.When the input from the user terminal 200 is a word input, the component recommendation unit 124 analyzes the word, calculates components with high relevance to the word, and displays them on the screen in order of high relevance.

사용자단말기(200)로부터의 입력이 문장입력인 경우, 컴포넌트추천부(124)는 해당 문장을 분석하여, 단어를 추출하고, 추출된 단어와 연관성 높은 컴포넌트를 연산하여 연관성이 높은 순서대로 화면 상 표출한다.When the input from the user terminal 200 is a sentence input, the component recommendation unit 124 analyzes the sentence, extracts a word, calculates a component highly related to the extracted word, and displays it on the screen in order of high correlation do.

사용자단말기(200)로부터의 입력이 음성입력인 경우, 컴포넌트추천부(124)는 해당 음성을 분석하여, 텍스트화(문장화) 처리하고, 처리된 문장에서 단어를 추출하며, 추출된 단어와 연관성 높은 컴포넌트를 연산하여 연관성이 높은 순서대로 화면 상 표출한다.When the input from the user terminal 200 is a voice input, the component recommendation unit 124 analyzes the voice, converts it into text (sentence form), extracts a word from the processed sentence, and correlates with the extracted word High components are calculated and displayed on the screen in the order of high relevance.

컴포넌트추천부(124)는 단어, 문장, 음성을 처리하기 위해 사용자단말기(200)로부터 입력되어 수신한 단어, 문장, 음성을 분석하여 사용자의 패턴(행동패턴)을 도출할 수 있는데, 사용자단말기(200)에 입력하는 텍스트(단어 또는 문장을 포함한다)들 예를 들어 문자, 카카오톡, 페이스북, 트위터 등과 같은 SNS 어플리케이션 통해 입력하는 텍스트들을 컴포넌트추천부(124)가 텍스트 정보들을 분석함으로써 사용자의 패턴을 도출할 수 있다. 한편, 컴포넌트추천부(124)가 음성을 수신한 경우, 수신한 음성을 텍스트화하는 공지의 기술이 적용될 수 있다.The component recommendation unit 124 may derive a user's pattern (action pattern) by analyzing the words, sentences, and voices input and received from the user terminal 200 to process words, sentences, and voices. 200), the component recommendation unit 124 analyzes text information for texts (including words or sentences) inputted through SNS applications such as text, KakaoTalk, Facebook, Twitter, etc. patterns can be derived. Meanwhile, when the component recommendation unit 124 receives a voice, a known technique for converting the received voice into text may be applied.

이러한 컴포넌트추천부(124)는 수신한 단어 및 문장을 자연어 처리하고, 자연어 처리된 문장으로부터 단어를 인식하고, 인식한 문장 내 단어들 사이의 관계를 분석하여 각 단어들에 대해 의미를 부여하는 방식으로 텍스트를 해석할 수도 있다.The component recommendation unit 124 performs natural language processing on the received words and sentences, recognizes words from the natural language-processed sentences, analyzes relationships between words in the recognized sentences, and assigns meanings to each word. can also interpret the text.

이러한 방식의 텍스트 해석을 통해 컴포넌트추천부(124)는 사용자의 의도를 더욱 정확히 파악할 수 있고, 이로 인해 사용자의 패턴(행동 패턴)을 정확하게 도출하여 사용자단말기(200)에게 더욱 적합한 컴포넌트를 추천할 수 있게 된다.Through text interpretation in this way, the component recommendation unit 124 can more accurately understand the user's intention, and thereby can recommend a more suitable component to the user terminal 200 by accurately deriving the user's pattern (behavioral pattern). there will be

자연어 처리(Natural Language Processing)에 대해 부가적으로 설명하자면, 자연어 처리는 일반적으로 인간이 발화하는 언어 현상을 기계적으로 분석해서 컴퓨터가 이해할 수 있는 형태로 만드는 자연어(자연 언어) 이해 혹은 그러한 형태를 다시 인간이 이해할 수 있는 언어로 표현하는 제반 기술을 의미한다.As an additional explanation for Natural Language Processing, natural language processing is a natural language (Natural Language) understanding or reconstruction of natural language that a computer can understand by mechanically analyzing human speech phenomena. It refers to various technologies expressed in a language that humans can understand.

이러한 자연어 처리는 형태소 분석 및 품사 부착을 통해 이루어 질 수 있다. 형태소 분석은 예를 들어 '복합 명사'는 '복합+명사', '복+합명사', '복합명+사' 등등의 다양한 방식으로 쪼개질 수 있는 데 이들 중에서 가장 적합한 분해 결과를 선택하는 것인데, 다양하게 쪼개지는 분석 결과들 중에서 적합한 결과를 선택하기 위해, 테이블 파싱이라는 동적 프로그래밍 방법을 사용한다. 구체적으로 '복합+명사'로 쪼개질 확률이 그 외로 분석될 확률보다 더 크면 그걸로 선택하도록 하는 알고리즘이다Such natural language processing can be accomplished through morphological analysis and part-of-speech attachment. For morpheme analysis, for example, 'compound noun' can be divided into various methods such as 'complex + noun', 'complex + compound noun', 'compound + noun', etc., and the most appropriate decomposition result is selected among them. , a dynamic programming method called table parsing is used to select an appropriate result from among various analysis results. Specifically, if the probability of splitting into 'compound + noun' is greater than the probability of other analysis, it is an algorithm that selects it.

품사 부착은 형태소 분석을 통해 나온 결과 중 가장 적합한 형태의 품사를 부착하는 것을 말한다. 보통 태거라고 하는 모듈이 이 기능을 수행한다. 이는 형태소 분석기가 출력한 다양한 분석 결과 중에서 문맥에 적합한 하나의 분석 결과를 선택하는 모듈이라 할 수 있다. 분석 시 문맥 좌우에 위치한 중의성 해소의 힌트가 되는 정보를 이용해서 적합한 분석 결과를 선택한다. 보통 태거는 대규모의 품사부착을 이용해서 구현하는데 은닉 마르코프 모델(HMM)이 널리 사용되고 있다.Part-of-speech attachment refers to attaching the most appropriate form of speech among the results obtained through morpheme analysis. A module, usually called a tagger, performs this function. This is a module that selects one analysis result suitable for the context from among various analysis results output by the morpheme analyzer. During analysis, an appropriate analysis result is selected using information that is a hint for disambiguation located on the left and right of the context. Usually, the tagger is implemented using a large-scale part-of-speech attachment, and the Hidden Markov Model (HMM) is widely used.

본 발명에서는 위와 방식의 자연어 처리를 통해 컴포넌트추천부(124)에서 사용자단말기(200)로부터 입력되는 텍스트를 분석할 수 있다.In the present invention, the text input from the user terminal 200 can be analyzed by the component recommendation unit 124 through the natural language processing described above.

또한 컴포넌트추천부(124)는 자연어 처리된 텍스트로부터 문장을 인식할 때, 상기 텍스트가 입력된 시간 및 장소를 참고하며, 인식한 문장 내 단어들 사이의 관계를 분석하여 각 단어들에 대해 의미를 부여함으로써, 사용자가 입력할 때의 시간과 장소까지 고려함으로써 사용자의 의도를 더욱 정확하게 파악하고 적합한 분석 결과를 도출할 수 있다.In addition, when recognizing a sentence from the natural language-processed text, the component recommendation unit 124 refers to the time and place at which the text was input, and analyzes the relationship between the words in the recognized sentence to determine the meaning of each word. By giving the input, it is possible to more accurately grasp the user's intention and derive an appropriate analysis result by considering the time and place of the user's input.

또한 본 발명에서는 사용자단말기(200)에 소정 어플리케이션이 설치되고, 컴포넌트추천부(124)가 도출한 사용자의 입력 패턴을 바탕으로 사용자의 패턴에 적합한 추천 컴포넌트를 사용자단말기(200)로 전송하여, 사용자단말기(200)의 화면에 표시되도록 구성될 수 있다.In addition, in the present invention, a predetermined application is installed in the user terminal 200, and a recommended component suitable for the user's pattern is transmitted to the user terminal 200 based on the user's input pattern derived by the component recommendation unit 124, and the user It may be configured to be displayed on the screen of the terminal 200 .

한편, 컴포넌트추천부(124)가 문장 또는 음성으로부터 처리하여 도출한 단어는 웹 페이지에 태그의 형태로 삽입될 수 있다. 이때 삽입된 태그는 추후 웹 페이지가 배포된 경우 웹 페이지가 검색될 때 검색이 용이하도록 이용될 수 있다.On the other hand, the word derived by processing from the sentence or voice by the component recommendation unit 124 may be inserted into the web page in the form of a tag. In this case, the inserted tag may be used to facilitate the search when the web page is searched when the web page is later distributed.

사용자단말기(200)로부터의 입력이 음성인 경우, 전술한 바와 같이 처리되어 텍스트화 되고, 처리된 텍스트에서 단어가 추출된다. 한편, 본 발명에 따른 시스템의 일 실시예로서, 회의상황에서 자동적으로 회의록을 작성하고, 작성된 회의록을 기초로 프로그램이 제작되거나, 회의록을 기초로 특정 컴포넌트가 추천될 수 있다.When the input from the user terminal 200 is a voice, it is processed as described above and converted into text, and words are extracted from the processed text. Meanwhile, as an embodiment of the system according to the present invention, minutes may be automatically created in a meeting situation, a program may be produced based on the prepared minutes, or a specific component may be recommended based on the minutes.

이때의 사용자단말기(200)는 회의 참석자들이 각각 소유하는 복수개의 사용자단말기(200)(이하, ‘참석자단말기’라 함)일 수 있다. 참석자단말기는 참석자의 음성을 입력받는 마이크를 구비한다. 참석자단말기는 서비스서버(100)와 통신망으로 연결된다. 서비스서버(100)는 음성 녹취록 파일 및/또는 회의록을 작성하기 위한 회의록작성부(미도시)를 더 포함한다.In this case, the user terminals 200 may be a plurality of user terminals 200 (hereinafter, referred to as 'participant terminals') owned by the conference participants, respectively. The participant terminal includes a microphone for receiving the participant's voice. The participant terminal is connected to the service server 100 through a communication network. The service server 100 further includes a meeting minutes writing unit (not shown) for writing a voice recording file and/or meeting minutes.

참석자단말기는 각 참석자단말기에 입력되는 음성 및 음성 레벨을 감지하여 일정 레벨 이상 또는 이하의 음성 레벨이 감지될 경우, 각 참석자단말기의 소유자가 회의에서 발언을 시작 또는 종료한 것으로 자동 인식되도록 이루어진다. The participant terminal detects the voice and voice levels input to each participant terminal, and when a voice level above or below a certain level is detected, it is automatically recognized that the owner of each participant terminal has started or finished speaking in the meeting.

각 참석자단말기의 마이크에 구비되는 마이크로 프로세서에 의하여 입력되는 아날로그 음성신호가 A/D 컨버팅되면서 음성 데이터로 변환되고, 변환된 음성 데이터를 토대로 마이크로 프로세서가 연산을 수행하여 입력되는 각각의 음성 데이터를 구분하도록 이루어진다. 또한, 참석자단말기의 마이크에 구비되는 마이크로 프로세서에 의하여 순간적으로 높은 음성 레벨이 발생하거나, 유효한 정보가 없는 음성 레벨일 경우 단말의 소유자가 발언을 시작한 것으로 오인하는 것이 방지되도록 이루어진다. 한편, 각 참석자단말기의 적소에 음성 레벨을 감지하도록 이루어지는 음성 감지센서가 포함된다.An analog voice signal input by a microprocessor provided in the microphone of each participant's terminal is A/D converted and converted into voice data, and the microprocessor performs an operation based on the converted voice data to classify the inputted voice data made to do In addition, when a high voice level is instantaneously generated by the microprocessor provided in the microphone of the participant's terminal or there is no valid information, it is prevented that the owner of the terminal mistakenly believes that he has started speaking. On the other hand, a voice detection sensor configured to detect the voice level is included in the proper place of each participant's terminal.

더불어, 각 참석자단말기의 소정위치에 소유자가 발언을 하지 않았음에도 불구하고 모종의 이유로 높은 음성 레벨이 감지된 경우 이를 단말의 소유자가 발언을 시작한 것으로 오인하는 것을 방지하기 위한 음성오인 감지센서가 포함된다.In addition, when a high voice level is detected for some reason even though the owner does not speak at a predetermined location of each participant's terminal, a voice misinterpretation detection sensor is included to prevent the owner of the terminal from mistakenly saying that he has started speaking. .

각각의 참석자단말기는 각 회의 참석자에 의하여 입력되는 음성 레벨을 감지하고, 감지된 음성 레벨이 일정 레벨 이상이면 참석자단말기의 소유자가 회의에서 발언을 시작하는 것으로 인식하며, 일정 시간 동안 일정 레벨 이하이면 발언이 종료된 것으로 인식한다.Each participant terminal detects the voice level input by each meeting participant, and if the detected voice level is above a certain level, it is recognized that the owner of the participant terminal starts speaking in the meeting. Recognize that this is over.

회의록작성부는 이들 참석자가 소유한 각각의 참석자단말기가 보낸 음성 정보를 발언시간 정보에 따라 시간의 순서대로 정렬한다.The meeting minutes writing unit arranges the voice information sent by each participant terminal owned by these participants in chronological order according to the speech time information.

한편, 두 명 이상의 참석자가 동시에 발언할 경우 두 음성 데이터가 겹치는 시간의 구간이 발생되며, 발언을 하지 않을 경우 음성 데이터가 없는 시간의 구간이 발생되기도 한다. 회의록작성부는 각 참석자의 발언을 정렬된 음성 정보로 통합하여 하나의 음성 녹취록 파일로 생성한다.On the other hand, when two or more participants speak at the same time, a period of time in which the two voice data overlaps occurs, and when not speaking, a period of time in which there is no voice data may occur. The meeting minutes recorder integrates each participant's remarks into sorted voice information and creates a single voice transcript file.

이렇게 여러개의 분산된 참석자단말기의 마이크로부터 추출된 음성 정보를 통해 생성된 음성 녹취록 파일은 회의장의 특정 지역에 설치된 단일 마이크를 통하여 추출된 음성 정보만으로 생성된 음성 녹취록 파일에 비하여 각 발언자의 발언을 보다 선명하게 녹음 및 녹취할 수 있게 된다.In this way, the voice transcript file generated through the voice information extracted from the microphones of several dispersed attendee terminals is compared to the voice transcript file generated only with the voice information extracted through a single microphone installed in a specific area of the conference hall. You will be able to record and record clearly.

회의록작성부에 의해 생성된 음성 녹취록 파일에는 음성이 수록되어 있다. 컴포넌트추천부(124)는 음성 녹취록 파일에 수록된 음성을 전술한 바와 같이 처리하여 텍스트화 하고, 텍스트를 분석하여 사용자단말기(200)로 컴포넌트를 추천해줄 수 있다.The audio is recorded in the audio transcript file generated by the meeting minutes recording unit. The component recommendation unit 124 may process the voice recorded in the voice transcript file as described above to convert it into text, analyze the text, and recommend a component to the user terminal 200 .

본 발명에 따른 에디터부(120)는, 사용자단말기(200)로부터 영상을 입력받는 영상입력부(미도시)를 더 포함할 수 있다. 영상입력부는 입력받은 영상을 웹 페이지에 게시한다. 이때 영상입력부는 영상을 게시할 때, 프레임 분할 스레드를 이용한 영상 처리가 가능하다.The editor unit 120 according to the present invention may further include an image input unit (not shown) for receiving an image from the user terminal 200 . The image input unit posts the received image on the web page. In this case, the image input unit can process an image using a frame dividing thread when posting an image.

제안한 방법에서는 영상정보의 크기를 줄이기 위하여 프레임을 블록 단위로 분할하여 비교하는 프레임 블록화 방법을 사용한다. 이때 데이터의 효율적인 처리를 위해 16개의 스레드를 이용하여 구현한다. 가공된 모든 데이터들은 ARIA 암호화 알고리즘에 의해 암호화되어 저장되기 때문에 영상정보에 대한 기밀성이 보장된다. 실험 결과를 통하여, 영상처리 속도는 원본 영상을 사용하는 기존의 방법에 비해 약 40% 정도 개선되었고, 영상의 크기는 약 60% 정도 감소됨을 확인하였다.In the proposed method, a frame-blocking method is used in which frames are divided into blocks and compared in order to reduce the size of image information. In this case, it is implemented using 16 threads for efficient data processing. Since all processed data is encrypted and stored by ARIA encryption algorithm, confidentiality of image information is guaranteed. Through the experimental results, it was confirmed that the image processing speed was improved by about 40% compared to the existing method using the original image, and the size of the image was reduced by about 60%.

현재의 영상은 과거의 아날로그 방식에서 디지털 방식으로 전환하면서 대량의 정보를 저장할 수 있게 되었다. 이렇게 많은 양의 정보를 저장하게 되면서 저장 공간에 대한 비용이 대폭 증가하였고 이를 위한 대책이 필요하게 되었다. 또한, 디지털 방식이므로 정보에 대한 접근도 용이하게 되어 이에 대한 보안대책도 필요하게 되었다. 일반적으로 사용되고 있는 영상의 처리는 있는 그대로의 영상을 찍어서 디지털 영상으로 전환한 후 저장하는 방식을 사용하고 있다. 즉 영상을 적절한 방법으로 가공하지 않은 채 그대로 저장하는 방식이다. 그러나 기존의 방법들은 영상에 대한 위조, 변조가 가능하기 때문에 사생활 침해 등 많은 보안관련 문제가 발생할 수 있다. 본 발명에서는 프레임 분할 스레드를 이용한 영상 처리 시스템의 설계 및 구현을 제안한다. 제안한 방법에서는 영상 정보의 크기를 줄이기 위하여 프레임을 블록 단위로 분할하여 비교하는 프레임 블록화 방법을 사용하고, 16개의 스레드를 이용하여 구현한다. 가공된 모든 데이터들은 ARIA 암호화 알고리즘에 의해 암호화되어 저장되기 때문에 영상정보에 대한 기밀성이 보장된다.The current image has been converted from the analog method of the past to the digital method, and a large amount of information can be stored. As such a large amount of information is stored, the cost of storage space has increased significantly, and countermeasures for this have become necessary. In addition, since it is a digital method, access to information is easy, and security measures are also required. A generally used image processing method is to take an image as it is, convert it into a digital image, and then store it. That is, it is a method of storing the image as it is without processing it in an appropriate way. However, since the existing methods allow forgery and falsification of images, many security-related problems such as invasion of privacy may occur. The present invention proposes a design and implementation of an image processing system using a frame division thread. In the proposed method, in order to reduce the size of image information, a frame block method is used, which divides and compares frames in blocks, and implements them using 16 threads. Since all processed data is encrypted and stored by ARIA encryption algorithm, confidentiality of image information is guaranteed.

제안하는 영상 처리 시스템Proposed image processing system

본 발명에서 제안하는 시스템의 영상 처리과정은 사용자단말기(200)로부터 영상을 전송받아서 영상 가공과 암호화를 진행한다. 가공된 데이터는 Viewer로 전송되어 Viewer에서 복호화 및 영상 복원을 실행하여 원래 영상을 재생한다. 본 발명에서의 영상 가공 방법은 프레임의 상관 관계를 이용한 방법으로 비교 대상 프레임과 현재 재생되는 프레임을 비교하여 의미 있는 픽셀의 값만을 추출하여 저장한다. 이 방법을 이용하면 중복되는 프레임을 제외하고 의미 있는 프레임만을 추출하여 기존 중복되는 프레임에 합성하기 때문에 프레임 용량을 대폭 줄일 수 있다. 영상 보안시스템에서 카메라로 촬영을 하고 기준프레임을 60초마다 생성한다고 가정했을 때, 촬영 후 Viewer 서버로 전송까지의 동작은 그림 1과 같다. In the image processing process of the system proposed in the present invention, an image is received from the user terminal 200 and image processing and encryption are performed. The processed data is transmitted to the Viewer, and the original image is reproduced by performing decoding and image restoration in the Viewer. The image processing method in the present invention is a method using the correlation between frames, comparing the frame to be compared with the frame currently being reproduced, extracting and storing only meaningful pixel values. By using this method, frame capacity can be greatly reduced because only meaningful frames are extracted and combined into existing overlapping frames, excluding overlapping frames. Assuming that the video security system takes a picture with a camera and generates a reference frame every 60 seconds, the operation from shooting to transmission to the Viewer server is as shown in Figure 1.

Figure 112021071907449-pat00001
Figure 112021071907449-pat00001

<그림 1. 제안하는 영상 처리의 순서도><Figure 1. Flowchart of the proposed image processing>

제안하는 영상 처리과정은 그림 1에 나타난 바와 같이 카메라 촬영을 시작으로 프레임을 수신하여 비교 대상 프레임과 현재 프레임 간의 차이를 구한 후, 그 값을 블록화시킨다. 이때 프레임 간의 차이값과 블록화는 효율성을 고려하여 16 분할 스레드를 기반으로 하여 설계된다. 그 후 블록화된 프레임이 정렬되며 각 블록의 첫 좌표(기준 프레임)를 파일에 저장해둔다. 이후에 ARIA 암호알고리즘을 이용하여 기준이 되는 각 프레임 데이터에 대해 암호화를 수행하여 Viewer로 보내고, 가공된 블록 정렬 데이터들도 Viewer로 전송한다.As shown in Fig. 1, the proposed image processing process receives frames starting with camera shooting, finds the difference between the comparison target frame and the current frame, and blocks the values. At this time, the difference between frames and block are designed based on 16 split threads in consideration of efficiency. After that, the blocked frames are sorted and the first coordinates of each block (reference frame) are saved in a file. After that, using the ARIA encryption algorithm, encryption is performed on each frame data as a standard and sent to the Viewer, and the processed block alignment data is also sent to the Viewer.

16분할 스레드 설계16 split thread design

동영상이란 각각의 정지된 화면 즉, 프레임을 빠르게 지나가게 하여 마치 움직이는 것처럼 보이도록 하는 기술이다. 프레임의 상관관계란 연속된 프레임이 약간의 차이가 있을 때 배경은 똑같지만 움직이는 물체가 있는 부분이 두 프레임의 차이를 말한다. 프레임의 상관관계를 이용하여 픽셀 차이를 구하기 위해 종래에는 주로 두 프레임 전체를 픽셀 단위로 비교하는 방법을 사용해 왔다. 그러나 이 방법은 비교하는데 많은 시간이 소요되기 때문에 보다 효율적인 프레임 비교를 위해서 본 발명에서는 이미지를 16분할하여 처리하는 방법을 제안한다. 비교 대상 프레임(기준 프레임)과 현재 재생되는 프레임을 비교하여 의미 있는 내용을 추출한다. 즉, 두 프레임과의 비교에서 움직이는 물체가 없는 고정된(기준) 프레임은 추출하지 않고, 움직이는 물체가 존재하는 경우 두 프레임의 픽셀의 차이만을 구하는 방법이다. 이때 픽셀 차이를 비교하여 중복되는 데이터는 제거되고, 의미 있는 데이터만을 가변적인 블록으로 구성하게 된다. 다시 말해서 픽셀 차이를 비교한 후, 같은 부분은 흰색으로 채우고 움직이는 물체(기준 프레임과 다른 부분)만 이미지에 채운다. 프레임을 블록 단위로 분할하는 이유는 의미 있는 픽셀의 값을 객체화시켜서 빠르고 정확하게 처리하기 위한 것이며, 이때 값을 가지지 않은 블록은 의미가 없으므로 연산에서 제외된다. 픽셀(프레임) 간의 차이 값을 구하는 것과 프레임 블록화는 둘 다 영역을 지정한 후 수행이 가능하기 때문에 전체영역을 16분할하여 동시에 스레드를 이용할 수 있다. 따라서 각 분할된 영역의 스레드는 동 시간대에 프레임간의 차이 값 구하기와 프레임 블록화가 수행되고 모든 영역에 대한 작업이 끝났을 때 다음 프레임의 작업을 수행하게 된다. 이렇게 16분할 스레드를 설계함으로써 영상 처리 속도를 증대하여 현재 프레임과 다음 프레임간의 속도 간섭을 막을 수 있다. 그림 2는 프레임 16분할 스레드의 구성 예를 나타낸다. 스레드는 CPU 내에서 실행되는 최소의 프로그램 단위로서 스레드 ID, 레지스터들의 집합, 스택, 프로그램 카운터 등과 같은 정보들로 구성된다. 멀티스레드는 동일 프로세스 내에서도 메모리 공유가 가능하므로 효율적인 데이터 처리가 가능함은 물론 시스템의 자원 낭비를 줄인다. 본 발명에서는 많은 스레드가 실행될 때 데이터의 데이터 처리의 효율성을 고려하여 16분할하여 영상을 처리한다. 그림 2에서 Locked는 동기를 맞추기 위해 사용하며, 하나의 프로세스에 속한 16개의 스레드는 메모리 등의 자원을 공유하여 병렬처리가 가능하므로 처리속도가 매우 빠르게 된다. A moving picture is a technology that makes each still screen, that is, a frame, pass quickly to make it appear as if it is moving. Frame correlation refers to the difference between the two frames in that the background is the same but there is a moving object when successive frames are slightly different. In order to obtain a pixel difference using the frame correlation, a method of comparing the entire two frames in units of pixels has been mainly used in the prior art. However, since this method takes a lot of time for comparison, the present invention proposes a method of processing an image by dividing the image into 16 for more efficient frame comparison. A meaningful content is extracted by comparing the comparison target frame (reference frame) with the currently played frame. That is, in comparison with two frames, a fixed (reference) frame without a moving object is not extracted, but only the difference between the pixels of the two frames is obtained when a moving object is present. At this time, by comparing the pixel difference, overlapping data is removed, and only meaningful data is composed of variable blocks. In other words, after comparing the pixel difference, the same part is filled with white and only the moving object (the part different from the reference frame) is filled in the image. The reason for dividing a frame into blocks is to process meaningful pixel values quickly and accurately by objectifying them. In this case, blocks with no values are excluded from calculations because they are meaningless. Since both finding the difference between pixels (frames) and blocking frames can be performed after designating an area, the entire area can be divided into 16 and threads can be used at the same time. Therefore, the thread of each divided area performs the work of the next frame when the difference value between frames and frame block are performed at the same time period and the work for all areas is finished. By designing 16-split threads in this way, the image processing speed can be increased to prevent speed interference between the current frame and the next frame. Figure 2 shows an example of a frame 16-split thread configuration. A thread is the smallest program unit executed in the CPU and consists of information such as a thread ID, a set of registers, a stack, and a program counter. Since multi-threading enables memory sharing within the same process, efficient data processing is possible and system resource waste is reduced. In the present invention, when many threads are executed, the image is processed by dividing the data into 16 in consideration of the efficiency of data processing. In Figure 2, Locked is used to synchronize, and 16 threads belonging to one process share resources such as memory for parallel processing, so processing speed is very fast.

Figure 112021071907449-pat00002
Figure 112021071907449-pat00002

<그림 2. 프레임 16분할 스레드의 구성 예><Figure 2. Example of frame 16-split thread configuration>

기준 프레임 지정frame reference

기준 프레임(이미지) 지정은 지정된 장소를 촬영하는 영상의 특성을 이용하여 지정된 시간마다 기준 이미지를 생성한다. 기준 이미지가 지정되면 그 이후의 프레임들은 이 기준 이미지와 픽셀을 비교하게 된다. 기준 이미지와 이후 프레임의 배경밝기가 같고 움직이는 물체가 있다고 가정했을 때, 이전과 중복되는 부분에 대해서는 픽셀의 차이가 없으므로 이 부분은 흰색으로 채우고 움직이는 물체만을 추출하여 이미지에 채운다. 비교를 위한 이미지 파일들의 크기를 절약하기 위하여 일정 시간마다 생성하는 기준 이미지를 이용한다. 그림 3의 (a)는 기준 이미지를 생성하기 위한 방법을, (b)는 픽셀 비교를 위한 효율적인 알고리즘을 나타낸다. In the reference frame (image) designation, a reference image is generated every designated time by using the characteristics of an image to be photographed at a designated place. When a reference image is designated, subsequent frames are compared with this reference image and pixels. Assuming that the background brightness of the reference image and the subsequent frame is the same and there is a moving object, there is no pixel difference for the overlapping part with the previous one, so this part is filled with white, and only the moving object is extracted and filled in the image. In order to save the size of image files for comparison, a reference image generated every predetermined time is used. Figure 3 (a) shows the method for generating the reference image, and (b) shows the efficient algorithm for pixel comparison.

Figure 112021071907449-pat00003
Figure 112021071907449-pat00003

<그림 3(a) 기준 이미지 생성><Figure 3(a) Create a reference image>

Figure 112021071907449-pat00004
Figure 112021071907449-pat00004

<그림 3(b) 픽셀 비교><Figure 3(b) Pixel Comparison>

그림 3(a) 와 그림 3(b)에서 알 수 있듯이 기준 이미지는 60초 마다 생성이 되며, 이 파일은 암호화되어 저장된다.As shown in Figure 3(a) and Figure 3(b), the reference image is created every 60 seconds, and this file is encrypted and stored.

프레임 블록화 및 블록정렬Frame Blocking and Block Alignment

픽셀 차이를 비교하여 중복되는 데이터가 제거되면 의미 있는 데이터만을 가변적인 블록으로 구성한다. 이때, 픽셀이 같은 부분은 흰색으로 채우고 기준 프레임(이미지)과 달라지는 부분만을 채우고 일정한 크기로 블록화 한다. 만일 이 수준의 값보다 더욱 정밀한 움직임이나 데이터를 추출하고자 한다면 픽셀 비교의 기준 값을 더 낮추거나 블록의 크기를 줄여서 데이터를 추출하면 된다. 블록화를 한 후 각 블록들을 좌측 상단부터 차례대로 채운다. 이때 각 블록의 원래 위치를 찾을 수 있도록 각 블록의 앞에 좌표 값을 넣어준다. 블록화와 블록정렬은 전체 이미지를 블록 크기별로 탐색하여 수행한다. 탐색한 값이 흰색이 아닐 경우에만 값을 저장하여 블록화하고. 그 블록의 첫 번째 좌표를 저장하고 블록들을 정렬한다. 그림 4는 16분할로 동시 실행하는 블록화 및 블록정렬 과정을 나타낸다.When overlapping data is removed by comparing pixel differences, only meaningful data is composed of variable blocks. At this time, a portion with the same pixel is filled with white, only a portion different from the reference frame (image) is filled, and blocks are made to a certain size. If you want to extract more precise motion or data than this level, you can extract the data by lowering the reference value for pixel comparison or reducing the size of the block. After block formation, each block is filled in order from the top left. At this time, the coordinate values are put in front of each block so that the original position of each block can be found. Blocking and block sorting are performed by searching the entire image by block size. Only when the searched value is not white, the value is stored and blocked. Store the first coordinates of the block and sort the blocks. Figure 4 shows the blockization and block sorting processes that are executed simultaneously in 16 divisions.

Figure 112021071907449-pat00005
Figure 112021071907449-pat00005

<그림 4. 이미지 블록화 및 블록정렬 과정><Figure 4. Image Blocking and Block Alignment Process>

이러한 과정을 통하여 이미지를 가공했을 때, 불필요한 데이터를 줄여 이미지 파일의 크기를 기존의 원본 이미지 파일 크기보다 최대 1/30까지 줄일 수 있다. 정렬 할 때에는 각 블록의 첫 좌표가 파일에 저장되며 Viewer를 통해 읽어 들일 때 같이 읽어 들여서 블록을 재배치 할 때 사용한다.When the image is processed through this process, the size of the image file can be reduced by up to 1/30 of the size of the original image file by reducing unnecessary data. When sorting, the first coordinates of each block are saved in the file, and they are read together when reading through the Viewer and used when rearranging blocks.

이미지 Viewer 설계Image Viewer Design

이미지를 영상으로 재생시키려면 각 이미지를 촬영할 때의 처리속도(FPS, Frame Per Second)를 알아야 실제 촬영 영상과 동일한 영상을 볼 수 있다. FPS를 모른다면 영상이 너무 빠르거나 느리고 영상 재생 중 누락되는 부분이 있을 수 있다. 그렇기 때문에 영상을 처리할 때 FPS를 이미지 파일에 같이 저장해야 한다. Viewer 서버에는 영상 촬영 후 가공된 이미지파일들이 저장된다. 이때 이미지들은 블록화 및 블록정렬 후에 저장되기 때문에 Viewer에서는 이미 전송된 각 블록들(조각들)의 좌표(각각의 기준 프레임에 대한 좌표)를 찾아야 한다. 그리고 블록 좌표에 맞춰 기준 이미지 파일에 정렬된 블록을 연결하여 원래 영상을 재생한다.In order to reproduce an image as a video, you need to know the processing speed (FPS, Frame Per Second) when taking each image to view the same video as the actual recorded video. If you do not know the FPS, the video may be too fast or too slow, and there may be parts missing during video playback. Therefore, when processing an image, the FPS must be saved in the image file. In the Viewer server, the processed image files are stored after shooting the video. At this time, since images are stored after blockization and block alignment, the viewer has to find the coordinates (coordinates for each reference frame) of each block (fragments) that have already been transmitted. Then, the original image is reproduced by connecting the blocks aligned to the reference image file according to the block coordinates.

기준 프레임의 암호화Encryption of frame of reference

제안한 영상 처리 시스템은 ARIA 암호알고리즘을 기반으로 하여 암호화 및 복호를 수행한다. 대칭키 알고리즘인 ARIA는 블록의 길이가 128비트이며, 128/192/256비트인 키의 길이를 가변적으로 사용할 수 있다. 또한, 키의 크기에 따라 각각 10/12/14번의 라운드를 반복하여 암호화를 실행한다. 구현된 암호화 엔진은 암호화와 복호화를 수행하는 라운드 모듈과 키 값을 생성하기 위한 스케줄러로 되어 있다. 본 발명에서는 128비트의 키를 사용하여 암호화 엔진을 설계하고 구현한다. 라운드 함수의 모듈은 키 덧셈(AddRoundKey 함수), 치환 계층(SubstLayer 함수), 그리고 확산 계층(DiffLayer 함수) 등 크게 세 부분으로 구성된다. 라운드 함수의 키 덧셈은 128 비트의 라운드 키와 128 비트의 입력 값에 대해 비트 별로 XOR 연산을 수행한다. 치환 계층은 2 종류로 구성되며, 이들 각계층은 8비트의 입력과 출력 S-box 그리고 그들에 대한 역변환 구조를 가진다. 확산 함수를 수행하는 확산 계층은 16×16 인볼루션(Involution) 구조이며, 행렬 연산을 실행한다.The proposed image processing system performs encryption and decryption based on the ARIA encryption algorithm. ARIA, a symmetric key algorithm, has a block length of 128 bits, and the length of a key of 128/192/256 bits can be variably used. Also, according to the size of the key, 10/12/14 rounds are repeated to execute encryption. The implemented encryption engine consists of a round module that performs encryption and decryption and a scheduler for generating key values. In the present invention, an encryption engine is designed and implemented using a key of 128 bits. The round function module consists of three main parts: key addition (AddRoundKey function), substitution layer (SubstLayer function), and diffusion layer (DiffLayer function). Key addition of the round function performs bitwise XOR operation on the 128-bit round key and the 128-bit input value. The permutation layer is composed of two types, and each layer has an 8-bit input and output S-box and an inverse transformation structure for them. The spreading layer performing the spreading function has a 16×16 involution structure and performs matrix operations.

구현 결과Implementation result

본 발명에서는 기존의 ARIA C(C++) 소스 코드를 C# 코드로 변환하여 시스템을 구현하였다. 각각 클래스를 이용하여 정의 부분과 암호화, 복호화 부분을 재구성 하였으며, 고정 키 값을 설정하여 사용하였다. 그림 5는 기존의 ARIA 알고리즘의 C 소스코드를 C# 코드로 변환하는 과정을 나타낸다. 그림 6은 정렬된 프레임과 기준 프레임의 암호화 된 예를 보여준다. 블록 정렬 후 나오는 최종 프레임(정렬된 기준 프레임)에 대해서만 암호화를 수행한다. 그림 6에서 알 수 있듯이 정렬된 프레임을 암호화했을 경우 동일한 주소(Address)에 암호화된 프레임(기준 프레임)이 저장되어 있다. 이때 암호화 대상 파일은 기준 프레임 파일(bmp 파일)이며, 이 파일은 특성상 헤더부분이 손상되면 파일 전체를 읽을 수 없게 된다. 그래서 본 발명에서는 프레임의 헤더 부분인 bmp 파일은 부분적으로 암호화하여 암호화 속도를 높이는 방법을 이용하였다. 그림 7은 그림 6의 정렬된 프레임의 3개의 평문(Plaintext) 주소(Address)에 대한 각각 암호화(Ciphertext) 및 복호화된(Decrypted) 결과를 보여준다. 위에서 설명한 것처럼, 영상 시스템에서의 Viewer는 고정 프레임 파일과 정렬된 파일, 그리고 좌표 파일을 읽어 들인다. 그 다음에 좌표 파일로부터 블록의 좌표를 읽어 들이고 블록 정렬에 이 좌표를 적용시켜서 블록을 원래 위치로 이동시키는 역할을 한다.In the present invention, the system was implemented by converting the existing ARIA C (C++) source code into C# code. Using each class, the definition part and the encryption and decryption part were reconstructed, and a fixed key value was set and used. Figure 5 shows the process of converting the C source code of the existing ARIA algorithm into C# code. Figure 6 shows an encrypted example of an aligned frame and a reference frame. Encryption is performed only on the last frame (aligned reference frame) that comes out after block alignment. As shown in Figure 6, if the aligned frame is encrypted, the encrypted frame (reference frame) is stored at the same address. At this time, the file to be encrypted is a reference frame file (bmp file). Due to the nature of this file, if the header part is damaged, the entire file becomes unreadable. Therefore, in the present invention, the bmp file, which is the header part of the frame, is partially encrypted to increase the encryption speed. Figure 7 shows the results of encryption (Ciphertext) and decryption (Decrypted) for three plaintext addresses of the aligned frame of Figure 6, respectively. As described above, the viewer in the video system reads the fixed frame file, the aligned file, and the coordinate file. Then, it reads the coordinates of the block from the coordinate file and applies these coordinates to the block alignment to move the block to its original position.

Figure 112021071907449-pat00006
Figure 112021071907449-pat00006

<그림 5. 기존 ARIA C 코드를 C# 으로 변환하는 과정><Figure 5. Process of converting existing ARIA C code to C#>

Figure 112021071907449-pat00007
Figure 112021071907449-pat00007

<그림 6. 정렬된 프레임과 암호화된 프레임의 예><Figure 6. Example of aligned frame and encrypted frame>

Figure 112021071907449-pat00008
Figure 112021071907449-pat00008

<그림 7. 정렬된 프레임에 대한 암호화 및 복호화된 결과><Figure 7. Encryption and Decryption Results for Aligned Frames>

성능평가Performance evaluation

표 1은 5분간 영상을 촬영하면서 기존의 원본영상과 제안한 방법에 대한 실험결과를 나타낸다.Table 1 shows the experimental results of the existing original image and the proposed method while shooting an image for 5 minutes.

Figure 112021071907449-pat00009
Figure 112021071907449-pat00009

<표 1. 영상처리 결과 및 성능 비교><Table 1. Comparison of image processing results and performance>

원본영상의 경우는 영상을 가공하지 않고 동영상을 그대로 촬영한 방법이다. 실제로 국내에서 제일 많이 쓰이는 방법으로 많은 저장 공간을 필요로 하고 누구나 접근이 가능하여 데이터 보안에 문제가 있다. 제안방법1은 여기에서 제안한 분할 스레드 기반의 방법을, 제안방법2는 분할 스레드 기반 및 암호화 방법을 병행하여 수행한 결과를 나타낸다. 표 1에서 알 수 있듯이 제안방법1은 기존의 원본 영상과 비교하여 FPS는 약 40% 정도 개선되었다. 그리고 용량의 경우도 약 75% 정도 감소되었지만, 누구나 접근이 가능하여 보안에 노출되어 있다. 제안방법2의 경우는 BMP 파일의 헤더부분만 부분적으로 암호화되어 전송하므로 속도 면에서는 방법1과 차이가 없다. 그러나 평균 용량의 경우는 암호화 수행을 통하여 어느 정도 증가하였지만, 비인가자의 접근 및 기밀성이 보장되므로 보안성은 우수한 편이다. 그림 8은 Viewer에서 실행한 화면의 일부분을 나타낸다. 그림 8에서 흰색으로 보이는 부분은 기준 프레임과 변화(차이)가 없는 부분을 나타낸다. 4개의 파일 들 중에서 서버에 파일로 저장되는 이미지 파일들은 블록 정렬과(a)과 기준 프레임(c)이다. 기준 프레임과 블록 영상(d)은 기준 프레임에 블록 재배치된 결과를 합성한 영상인데 실제 촬영되는 영상이 (d)와 같다. 암호화된 이미지는 Viewer에서 영상을 재생할 때만 복호화를 행한다.In the case of the original video, it is a method of shooting a video as it is without processing the video. In fact, it is the most used method in Korea and requires a lot of storage space, and anyone can access it, so there is a problem in data security. Proposed method 1 shows the result of performing the split-thread-based method proposed here, and Proposed method 2 shows the result of concurrently performing the split-thread-based and encryption method. As can be seen from Table 1, the FPS of Proposed Method 1 was improved by about 40% compared to the original video. And the capacity has also been reduced by about 75%, but anyone can access it, so it is exposed to security. In the case of Proposed Method 2, only the header part of the BMP file is partially encrypted and transmitted, so there is no difference from Method 1 in terms of speed. However, the average capacity increased to some extent through encryption, but security is excellent because access and confidentiality of unauthorized persons are guaranteed. Figure 8 shows a part of the screen executed in Viewer. The part shown in white in Figure 8 represents the part with no change (difference) from the reference frame. Among the four files, the image files stored as files in the server are block alignment (a) and reference frame (c). The reference frame and the block image (d) are images obtained by synthesizing the result of rearrangement of blocks in the reference frame, and the actual captured image is the same as (d). The encrypted image is decrypted only when the image is played back in the Viewer.

Figure 112021071907449-pat00010
Figure 112021071907449-pat00010

<그림 8. Viewer 실행 화면><Figure 8. Viewer execution screen>

기존의 영상 처리는 영상을 가공하지 않고 원래의 영상을 디지털 영상으로 전환하여 사용하기 때문에 영상에 대한 위조, 변조 등에 있어서 보안성이 취약하다. 본 발명에서는 ARIA 알고리즘을 사용하여 프레임 분할 스레드 기반의 CCTV 보안시스템을 구현에 관하여 기술하였다. 구현된 시스템은 중복되는 프레임을 제외하고 의미 있는 프레임만을 추출하여 기존 중복되는 프레임에 합성하여 영상을 가공하므로 프레임 용량을 대폭 줄일 수 있다. 구현된 보안시스템의 처리속도는 기존의 영상처리 방법에 비해 약 40% 정도 개선되었고, 용량의 경우는 약 60% 정도 감소하였다. 또한, 구현된 시스템은 영상 데이터가 암호화되어 저장되기 때문에 제 3자에 의한 개인정보나 사생활 침해 등을 방지하는데 효과적이다.The existing image processing does not process the image, but converts the original image into a digital image and uses it, so security is weak in forgery and falsification of the image. In the present invention, the implementation of a frame division thread-based CCTV security system using the ARIA algorithm has been described. The implemented system extracts only meaningful frames, excluding overlapping frames, and processes the images by synthesizing them with the existing overlapping frames, so that the frame capacity can be greatly reduced. The processing speed of the implemented security system was improved by about 40% compared to the existing image processing method, and the capacity was reduced by about 60%. In addition, the implemented system is effective in preventing infringement of personal information or privacy by a third party because the image data is encrypted and stored.

본 발명에 따른 사용자단말기(200)는, 소프트웨어가 탑재되어 데이터의 분석이 가능한, 스마트폰(smartphone), 태블릿 PC(tablet personalcomputer), 이동 전화기(mobile phone), 영상 전화기, 데스크탑 PC(desktoppersonal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), 웨어러블 장치(wearable device)(예: 스마트 안경, 머리 착용형 장치(head-mounted-device(HMD) 등) 또는 스마트 와치(smart watch)) 중 적어도 하나를 포함할 수 있다. 사용자단말기(200)는 서비스서버(100)와 유무선 통신을 수행하는 통신부를 더 포함할 수 있으며 통신부는 BluetoothTM, 지그비(Zigbee), UWB(Ultra Wide Band), Wireless USB, NFC(Near Field Communication), Wireless LAN 중 어느 하나 이상을 위한 전자 부품을 포함할 수 있다.The user terminal 200 according to the present invention is a smart phone, a tablet personal computer (PC), a mobile phone, a video phone, and a desktop PC (desktoppersonal computer), which is equipped with software and can analyze data. , laptop personal computer (PC), netbook computer (netbook computer), personal digital assistant (PDA), portable multimedia player (PMP), wearable device (e.g. smart glasses, head-mounted device) -device (HMD, etc.) or a smart watch). The user terminal 200 may further include a communication unit for performing wired/wireless communication with the service server 100, and the communication unit may include BluetoothTM, Zigbee, Ultra Wide Band (UWB), Wireless USB, Near Field Communication (NFC), It may include electronic components for any one or more of the Wireless LANs.

본 발명에 따른 통신망은 단말들 및 서버들과 같은 각각의 노드 상호간에 정보 교환이 가능한 연결구조를 의미하는 것으로, 이러한 통신망의 일 예에는, 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, 5G 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), wifi 네트워크, 블루투스(Bluetooth) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다. The communication network according to the present invention refers to a connection structure capable of exchanging information between respective nodes such as terminals and servers. Examples of such a communication network include a 3rd Generation Partnership Project (3GPP) network, Long Term Evolution (LTE) ) network, 5G network, WIMAX (World Interoperability for Microwave Access) network, Internet, LAN (Local Area Network), Wireless LAN (Wireless Local Area Network), WAN (Wide Area Network), PAN (Personal Area Network) , a wifi network, a Bluetooth network, a satellite broadcasting network, an analog broadcasting network, a Digital Multimedia Broadcasting (DMB) network, and the like, but are not limited thereto.

본 발명에 따른 컴포넌트(component)란, 기존의 코딩 방식에 의한 개발에서 벗어나 소프트웨어 구성단위(module)를 미리 만든 것을 의미한다. 서비스서버(100)는 필요한 응용 기술을 개발할 때 컴포넌트를 조립하여 소프트웨어를 개발할 수 있다. 컴포넌트 기술을 활용하면 복잡한 정보 시스템을 신속하게 구축할 수 있으며, 유사한 정보 시스템을 구축할 때 재사용이 가능한 장점이 있다. 특히, 급속도로 변하는 인터넷 환경에서 표준화된 소프트웨어를 만드는 것이 필요하기 때문에 컴포넌트는 매우 중요하다고 할 수 있다.A component according to the present invention means that a software module is made in advance, out of development by an existing coding method. The service server 100 may develop software by assembling components when developing a necessary application technology. By using component technology, a complex information system can be quickly built, and there is an advantage that it can be reused when constructing a similar information system. In particular, components are very important because it is necessary to make standardized software in the rapidly changing Internet environment.

컴포넌트는 프로그램의 소스코드를 모듈별로 나누고 유동적으로 바뀔 부분에 대해서는 코드화시킨 것을 말한다. 이러한 컴포넌트의 소스코드는 각 프로그램 언어별로 저장이 되어 향후 새로운 플랫폼이나 언어 그리고 버전업된 프로그램에 개방적 구조 형태를 취하고 있다. 사용자에게 미리 제공되는 컴포넌트가 미리 설정되어 있을 수 있다. 사용자단말기(200)에 의해 선택 및/또는 화면에 배치된 컴포넌트는 그 순서 등에 의해 서로 연결되어 프로그램이 생성될 수 있다. 서비스서버(100)는 사용자단말기(200)가 화면 상에서 개별 컴포넌트를 끌어서 서로 연결할 수 있도록 지원한다. A component refers to the division of the program's source code into modules and coding the parts to be changed dynamically. The source code of these components is stored for each program language, so it takes the form of an open structure to new platforms, languages, and versioned programs in the future. A component provided to the user in advance may be preset. Components selected by the user terminal 200 and/or arranged on the screen may be connected to each other according to their order, and a program may be generated. The service server 100 supports the user terminal 200 to connect to each other by dragging individual components on the screen.

한편, 본 발명에 따른 컴포넌트는, 미리 마련되어 저장되어 있을 수도 있으나 이에 한정되는 것은 아니고, 서비스서버(100)의 운영자, 사용자단말기(200)의 사용자 등의 필요에 의해 생성될 수도 있다.Meanwhile, the component according to the present invention may be prepared and stored in advance, but is not limited thereto, and may be generated according to the needs of the operator of the service server 100 , the user of the user terminal 200 , and the like.

본 명세서에서 회원관리부(110), 에디터부(120), 자동웹서비스배포부(130), 마이페이지부(140), 고객지원부(150), 회의록작성부, 영상입력부 및 그 세부 구성들은 메모리에 저장된 연속된 수행과정들을 실행하는 프로세서들일 수 있다. 또는, 프로세서에 의해 구동되고 제어되는 소프트웨어 모듈들로서 동작할 수 있다. 나아가, 프로세서는 하드웨어 장치일 수 있다.In the present specification, the member management unit 110, the editor unit 120, the automatic web service distribution unit 130, the my page unit 140, the customer support unit 150, the meeting minutes writing unit, the image input unit, and detailed configurations thereof are stored in the memory. They may be processors executing stored sequential execution processes. Alternatively, it may operate as software modules driven and controlled by a processor. Furthermore, the processor may be a hardware device.

참고로, 본 발명에 따른 서비스서버(100)가 제공하는 서비스는 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독가능매체에 기록될 수 있다. 상기 컴퓨터 판독가능매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용가능한 것일 수도 있다. 컴퓨터 판독가능매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체, 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급언어코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.For reference, the service provided by the service server 100 according to the present invention may be implemented in the form of a program command that can be executed through 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 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. Examples of computer readable media include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floppy disks, and ROM, RAM, A hardware device specifically configured to store and execute program instructions, such as flash memory, may be included. Examples of program instructions include not only machine code such as generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1개의 유닛이 2개 이상의 하드웨어를 이용하여 실현되어도 되고, 2개 이상의 유닛이 1개의 하드웨어에 의해 실현되어도 된다.In this specification, a "part" includes a unit realized by hardware, a unit realized by software, and a unit realized using both. In addition, one unit may be implemented using two or more hardware, and two or more units may be implemented by one hardware.

본 발명의 보호범위가 이상에서 명시적으로 설명한 실시예의 기재와 표현에 제한되는 것은 아니다. 또한, 본 발명이 속하는 기술분야에서 자명한 변경이나 치환으로 말미암아 본 발명이 보호범위가 제한될 수도 없음을 다시 한 번 첨언한다.The protection scope of the present invention is not limited to the description and expression of the embodiments explicitly described above. In addition, it is added once again that the protection scope of the present invention cannot be limited due to obvious changes or substitutions in the technical field to which the present invention pertains.

100 : 서비스서버 110 : 회원관리부
111 : 로그인부 112 : 간편로그인부
113 : 비밀번호찾기부 114 : 아이디찾기부
115 : 회원가입부 120 : 에디터부
121 : 메인화면생성부 122 : 메뉴생성부
123 : 컴포넌트부 124 : 컴포넌트추천부
125 : Header 및 Footer 생성부 126 : 팝업화면생성부
127 : 미리보기부 128 : 소스보기부
129 : 서비스시작부 130 : 자동웹서비스배포부
131 : 자동소스코드생성부 132 : 자동DB생성부
133 : 자동도메인생성부 134 : 자동배포부
140 : 마이페이지부 141 : 프로젝트관리대시보드부
142 : 회원정보수정부 143 : 구매내역확인부
144 : 문의내역확인부 150 : 고객지원부
151 : 문의처부 152 : 공지사항부
153 : 문의게시판부 200 : 사용자단말기
1000 : AI 기반 프로그램 자동 생성 시스템
100: service server 110: member management unit
111: login unit 112: simple login unit
113: password retrieval unit 114: ID retrieval unit
115: member registration unit 120: editor unit
121: main screen generation unit 122: menu generation unit
123: component unit 124: component recommendation unit
125: Header and Footer generation unit 126: Pop-up screen generation unit
127: preview unit 128: source view unit
129: service start unit 130: automatic web service distribution unit
131: automatic source code generation unit 132: automatic DB generation unit
133: automatic domain generation unit 134: automatic distribution unit
140: my page unit 141: project management dashboard unit
142: Member information correction unit 143: Purchase history confirmation unit
144: inquiry history confirmation unit 150: customer support department
151: Inquiry Department 152: Notice Department
153: inquiry board 200: user terminal
1000: AI-based program automatic creation system

Claims (5)

사용자단말기; 및
상기 사용자단말기와 통신망을 통해 서로 연결되며, 상기 사용자단말기로부터의 입력을 기초로 프로그램 코드를 자동 생성하는 에디터부를 포함하는 서비스서버;
를 포함하며,
상기 에디터부는,
상기 사용자단말기로부터 선택되어 화면에 배치되는 복수개의 컴포넌트(component)를 포함하는 컴포넌트부;
를 포함하고,
상기 에디터부는,
상기 사용자단말기로부터의 입력에 따라 상기 컴포넌트를 추천하는 컴포넌트추천부를 더 포함하며,
상기 입력은, 음성입력을 포함하고,
상기 컴포넌트추천부는,
상기 음성입력에 따른 음성(音聲)을 분석하여 컴포넌트를 추천하되,
상기 사용자단말기는, 복수개가 구비되고,
상기 복수개의 사용자단말기는, 각각 회의 참석자들의 음성을 입력받는 마이크를 구비하며,
상기 서비스서버는, 복수개의 분산된 상기 마이크로부터 입력받은 음성정보를 통해 음성 녹취록 파일을 생성하는 회의록작성부를 더 포함하고,
상기 회의록작성부는,
상기 복수개의 사용자단말기가 각각 송신한 복수개의 음성정보를 발언시간에 따른 시간의 순서대로 정렬하여 상기 음성 녹취록 파일을 생성하고,
상기 컴포넌트추천부는, 상기 음성 녹취록 파일에 포함된 음성을 분석하여 컴포넌트를 추천하여, 회의상황에서 자동적으로 작성된 음성 녹취록 파일을 기초로 상기 컴포넌트의 추천이 가능한 것을 특징으로 하는, AI 기반 프로그램 자동 생성 시스템.
user terminal; and
a service server connected to the user terminal and each other through a communication network, the service server including an editor unit for automatically generating a program code based on an input from the user terminal;
includes,
The editor unit,
a component unit including a plurality of components selected from the user terminal and arranged on a screen;
including,
The editor unit,
Further comprising a component recommendation unit for recommending the component according to the input from the user terminal,
The input includes a voice input,
The component recommendation unit,
Recommend a component by analyzing the voice according to the voice input,
The user terminal is provided with a plurality,
Each of the plurality of user terminals includes a microphone for receiving the voices of conference participants,
The service server further includes a meeting minutes writing unit for generating a voice transcript file through the voice information received from the plurality of distributed microphones,
The minutes of the meeting,
The plurality of voice information transmitted by the plurality of user terminals is arranged in the order of time according to the speaking time to generate the voice transcript file,
The component recommendation unit recommends a component by analyzing the voice included in the voice transcript file, and recommends the component based on the voice transcript file automatically created in a meeting situation. .
삭제delete 청구항 1에 있어서,
상기 입력은, 문장입력을 더 포함하고,
상기 컴포넌트추천부는,
상기 문장입력에 따른 문장을 분석하여 컴포넌트를 추천하는 것을 특징으로 하는, AI 기반 프로그램 자동 생성 시스템.
The method according to claim 1,
The input further includes a sentence input,
The component recommendation unit,
AI-based program automatic generation system, characterized in that the component is recommended by analyzing the sentence according to the sentence input.
삭제delete 청구항 1 또는 청구항 3에 있어서,
상기 서비스서버는,
자동웹서비스배포부를 더 포함하며,
상기 자동웹서비스배포부는,
상기 컴포넌트 배치 시 자동으로 데이터베이스를 생성하는 자동DB생성부; 및
상기 사용자단말기가 설계한 화면의 웹 상 자동배포를 지원하는 자동배포부;를 포함하고,
상기 자동DB생성부는, 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용하여 상기 데이터베이스를 생성하는 것을 특징으로 하는, AI 기반 프로그램 자동 생성 시스템.
4. The method according to claim 1 or 3,
The service server is
It further includes an automatic web service distribution unit,
The automatic web service distribution unit,
an automatic DB generation unit that automatically creates a database when the components are placed; and
including; an automatic distribution unit that supports automatic distribution on the web of the screen designed by the user terminal;
The automatic DB generation unit, AI-based program automatic generation system, characterized in that for generating the database by using the data standardization guidelines of public institutions announced by the Ministry of Public Administration and Security.
KR1020210080919A 2021-06-22 2021-06-22 Ai-based program auto-generation system KR102324352B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210080919A KR102324352B1 (en) 2021-06-22 2021-06-22 Ai-based program auto-generation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210080919A KR102324352B1 (en) 2021-06-22 2021-06-22 Ai-based program auto-generation system

Publications (1)

Publication Number Publication Date
KR102324352B1 true KR102324352B1 (en) 2021-11-12

Family

ID=78487310

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210080919A KR102324352B1 (en) 2021-06-22 2021-06-22 Ai-based program auto-generation system

Country Status (1)

Country Link
KR (1) KR102324352B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240012055A (en) 2022-07-20 2024-01-29 뱅크웨어글로벌 주식회사 Apparatus and method for generating rest api source using json format data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010025674A (en) * 2001-01-16 2001-04-06 이기수 System and method for creating homepage through server side script automatic generation
KR100962342B1 (en) 2009-07-15 2010-06-10 주식회사 네오패드 System and method for providing creation, registration and management service of homepage
KR20190061488A (en) * 2017-11-28 2019-06-05 윤종식 A program coding system based on artificial intelligence through voice recognition and a method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010025674A (en) * 2001-01-16 2001-04-06 이기수 System and method for creating homepage through server side script automatic generation
KR100962342B1 (en) 2009-07-15 2010-06-10 주식회사 네오패드 System and method for providing creation, registration and management service of homepage
KR20190061488A (en) * 2017-11-28 2019-06-05 윤종식 A program coding system based on artificial intelligence through voice recognition and a method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240012055A (en) 2022-07-20 2024-01-29 뱅크웨어글로벌 주식회사 Apparatus and method for generating rest api source using json format data

Similar Documents

Publication Publication Date Title
US11127088B2 (en) Cross-blockchain interaction method, system, computer device, and storage medium
US20190007469A1 (en) Copy and paste for web conference content
Craigen et al. Defining cybersecurity
US20190005265A1 (en) Dynamic content redaction
US8667565B2 (en) Security restructuring for web media
US20180349567A1 (en) Apparatus, system, and method of preventing forgery or falsification of electronic document based on content
Karie et al. Toward a general ontology for digital forensic disciplines
JP2019512933A (en) Video stream extension
US10460030B2 (en) Generating structured meeting reports through semantic correlation of unstructured voice and text data
US9594734B2 (en) Meta tag ownership and control
US11921889B2 (en) Selective display of sensitive data
US11800201B2 (en) Method and apparatus for outputting information
Hopper et al. YouTube for transcribing and Google Drive for collaborative coding: Cost-effective tools for collecting and analyzing interview data
JP6920475B2 (en) Modify digital video content
WO2019227429A1 (en) Method, device, apparatus, terminal, server for generating multimedia content
Vicari Exploring the Cuban blogosphere: Discourse networks and informal politics
KR102324352B1 (en) Ai-based program auto-generation system
Isard Approaches to the anonymisation of sign language corpora
US9830474B2 (en) Concealing sensitive content from unauthorized users
US10560479B2 (en) Communication with component-based privacy
CN114554131A (en) High-security smart screen conference content sharing method, system and medium
US20130152157A1 (en) Automatic filtering in social networks
CN115686408A (en) Content appearance transformation for remote application sharing
Sun et al. ZoomP3: Privacy-Preserving Publishing of Online Video Conference Recordings
Sun Security and Privacy Solutions for Camera and Camera Based Authentication

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant