KR102324352B1 - Ai 기반 프로그램 자동 생성 시스템 - Google Patents
Ai 기반 프로그램 자동 생성 시스템 Download PDFInfo
- 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
Links
- 238000009826 distribution Methods 0.000 claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 49
- 230000000694 effects Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 32
- 238000012545 processing Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 15
- 238000013461 design Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000003058 natural language processing Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 150000001875 compounds Chemical class 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000007123 defense Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007480 spreading Effects 0.000 description 2
- 238000003892 spreading Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 230000033772 system development Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 244000240602 cacao Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/005—Language recognition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명은 AI 기반 프로그램 자동 생성 시스템에 관한 것으로, 코딩 자동화가 가능하도록 사용자로부터의 입력에 따라 배치되는 복수개의 컴포넌트를 구비하여 컴포넌트 기반 소프트웨어의 개발이 가능하고, 프로그램의 자동 배포가 가능한 특징이 있다. 본 발명에 따른 AI 기반 프로그램 자동 생성 시스템은, 사용자단말기 및 상기 사용자단말기와 통신망을 통해 서로 연결되며, 상기 사용자단말기로부터의 입력을 기초로 프로그램 코드를 자동 생성하는 에디터부를 포함하는 서비스서버를 포함하며, 상기 에디터부는, 상기 사용자단말기로부터 선택되어 화면에 배치되는 복수개의 컴포넌트(component)를 포함하는 컴포넌트부를 포함한다.
Description
본 발명은 AI 기반 프로그램 자동 생성 시스템에 관한 것으로, 더욱 상세하게는 코딩 자동화가 가능하도록 사용자로부터의 입력에 따라 배치되는 복수개의 컴포넌트를 구비하여 컴포넌트 기반 소프트웨어의 개발이 가능하고, 프로그램의 자동 배포가 가능한 AI 기반 프로그램 자동 생성 시스템에 관한 것이다.
최근 기업들은 소프트웨어 개발자의 임금 인상에 따른 개발자 확보가 어려워지고, 확보된 개발자도 기술역량이 부족하여 정보시스템 개발 및 구축에 어려움을 격고 있다.
한편 정보시스템 개발은 분석, 설계, 구현 및 테스트, 인도 절차를 거쳐 사용자가 원하는 정보시스템을 개발한다. 그 중 분석 단계에서의 요구사항 분석과, 구현 및 테스트 단계에서의 프로그램 구현은 정보시스템 개발에 중요한 한 요소이다.
그러나 현재 소프트웨어 개발자 품귀 현상에 따른 개발 업체 어려움과 이에 따른 정보시스템 품질 저하가 많은 문제로 대두되고 있다. 이에 따라 소프트웨어 개발을 개발자가 아닌 사람도 쉽게 코딩 할 수 있는 코딩 자동화 도구를 통해 정보시스템에 대한 품질 향상 및 개발자 품귀 현상에 대한 개선이 필요하다.
또한 개발에 있어서 표준화 지침(국방 SHADE, 공공 데이터표준)을 적용하기에는 많은 노력과 많은 공수가 발생하며, 이를 해소하기 위한 방법으로 코딩 자동화 도구 사용을 통한 요구사항 분석 시점부터 화면 설계 시 데이터 표준화 지침을 준수함으로써 표준화 정책에 적극 반영함으로써 소프트웨어 표준화 정책에 부합할 수 있다.
상술한 문제점을 해결하기 위한 본 발명의 목적은 개발자가 아니더라도 소프트웨어의 개발이 가능한 AI 기반 프로그램 자동 생성 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 자동화된 코드 생성과 자동 웹서비스 배포 및 실행이 가능한 AI 기반 프로그램 자동 생성 시스템을 제공하는 것이다.
상술한 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 AI 기반 프로그램 자동 생성 시스템은, 사용자단말기 및 상기 사용자단말기와 통신망을 통해 서로 연결되며, 상기 사용자단말기로부터의 입력을 기초로 프로그램 코드를 자동 생성하는 에디터부를 포함하는 서비스서버를 포함하며, 상기 에디터부는, 상기 사용자단말기로부터 선택되어 화면에 배치되는 복수개의 컴포넌트(component)를 포함하는 컴포넌트부를 포함한다.
상기 에디터부는, 상기 사용자단말기로부터의 입력에 따라 상기 컴포넌트를 추천하는 컴포넌트추천부를 더 포함한다.
상기 입력은, 문장입력을 포함하고, 상기 컴포넌트추천부는, 상기 문장입력에 따른 문장을 분석하여 컴포넌트를 추천한다.
상기 입력은, 음성입력을 포함하고, 상기 컴포넌트추천부는, 상기 음성입력에 따른 음성(音聲)을 분석하여 컴포넌트를 추천한다.
상기 서비스서버는, 자동웹서비스배포부를 더 포함하며, 상기 자동웹서비스배포부는, 상기 컴포넌트 배치 시 자동으로 데이터베이스를 생성하는 자동DB생성부 및 상기 사용자단말기가 설계한 화면의 웹 상 자동배포를 지원하는 자동배포부를 포함하고, 상기 자동DB생성부는, 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용하여 상기 데이터베이스를 생성한다.
본 발명인 AI 기반 프로그램 자동 생성 시스템에 따르면, 개발자가 아니더라도 소프트웨어의 개발이 가능한 효과가 있다.
본 발명인 AI 기반 프로그램 자동 생성 시스템에 따르면, 자동화된 코드 생성과 자동 웹서비스 배포 및 실행이 가능한 효과가 있다.
도 1은 본 발명에 따른 AI 기반 프로그램 자동 생성 시스템의 구성을 보여주는 블록도이다.
도 2는 본 발명에 따른 서비스서버의 구성을 보여주는 블록도이다.
도 3은 본 발명에 따른 서비스서버가 제공하는 초기화면을 보여주는 도면이다.
도 4는 본 발명에 따른 컴포넌트에 의한 화면 설계 시 자동으로 데이터베이스가 생성된 모습을 보여주는 도면이다.
도 5는 본 발명에 따른 자동DB생성부가 데이터베이스를 생성할 때 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용한 모습을 보여주는 도면이다.
도 6은 컨포넌트를 활용하여 설계한 화면이 자동배포된 모습을 보여주는 도면이다.
도 7은 본 발명에 따른 시스템이 제공하는 서비스의 흐름을 보여주는 흐름도이다.
도 2는 본 발명에 따른 서비스서버의 구성을 보여주는 블록도이다.
도 3은 본 발명에 따른 서비스서버가 제공하는 초기화면을 보여주는 도면이다.
도 4는 본 발명에 따른 컴포넌트에 의한 화면 설계 시 자동으로 데이터베이스가 생성된 모습을 보여주는 도면이다.
도 5는 본 발명에 따른 자동DB생성부가 데이터베이스를 생성할 때 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용한 모습을 보여주는 도면이다.
도 6은 컨포넌트를 활용하여 설계한 화면이 자동배포된 모습을 보여주는 도면이다.
도 7은 본 발명에 따른 시스템이 제공하는 서비스의 흐름을 보여주는 흐름도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다.
그리고 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다.
본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 “포함한다” 및/또는 “포함하는” 은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
본 명세서에서 소프트웨어는, 프로그램 및 데이터를 포함하는 용어로 사용되었고, 프로그램은 어플리케이션(application, app, 앱), 웹, 웹 페이지를 포함하는 용어로 사용되었다. 이하에서는 프로그램을 웹이라 기재하였다. 프로그램 코드는 소스 코드를 포함한다.
본 명세서에서는 운영자 또는 사용자가 만든 프로그램을 프로젝트라고 한다.
이하, 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명하고자 한다.
도 1은 본 발명에 따른 AI 기반 프로그램 자동 생성 시스템(1000)의 구성을 보여주는 블록도이다.
본 발명에 따른 AI 기반 프로그램 자동 생성 시스템(1000)은, 도 1을 참조하면, 사용자단말기(200) 및 그 사용자단말기(200)와 통신망을 통해 서로 연결되며, 사용자단말기(200)로부터의 입력을 기초로 프로그램 코드를 자동 생성하는 에디터부(120)를 포함하는 서비스서버(100)를 포함한다.
본 발명에 따른 사용자단말기(200)는, 통신망을 통해 서비스서버(100)에 접속하여 어플리케이션 및/또는 웹 페이지를 포함하는 소프트웨어의 생성이 가능하다. 사용자단말기(200)는 후술하게 될 컴포넌트를 배치하여 웹 상 화면을 설계할 수 있다.
서비스서버(100)는 에디터부(120)를 포함한다. 에디터부(120)는 사용자단말기(200)로부터의 입력을 기초로 HTML, CSS, JAVA SCRIPT 등 소프트웨어를 구성하는 프로그램 코드를 자동 생성한다. 에디터부(120)는 사용자단말기(200)로부터의 입력을 기초로 웹 사이트를 제작할 수 있도록 다양한 디자인 템플릿을 제공할 수 있다. 에디터부(120)는 사용자단말기(200)에 의해 선택 및/또는 배치된 컴포넌트를 기초로 웹 상 화면의 설계를 지원한다.
서비스서버(100)는 에디터부(120)에 의해 생성된 프로그램 코드를 통해 구성된 소프트웨어의 데이터베이스(이하, ‘DB’)의 표준화를 자동 반영, DB 자동 생성, 자동배포, 운영환경의 자동실행을 지원하는 자동웹서비스배포부(130)를 더 포함하며, 자동웹서비스배포부(130)의 세부구성은 후술하도록 한다.
본 발명에 따른 서비스서버(100)의 구성을 도 2를 참조하여 더욱 상세히 설명하면 아래와 같다.
도 2는 본 발명에 따른 서비스서버(100)의 구성을 보여주는 블록도이다.
본 발명에 따른 서비스서버(100)는, 도 2를 참조하면, 회원관리부(110), 에디터부(120), 자동웹서비스배포부(130), 마이페이지부(140) 및 고객지원부(150)를 포함한다.
본 발명에 따른 회원관리부(110)는, 로그인부(111), 간편로그인부(112), 비밀번호찾기부(113), 아이디찾기부(114) 및 회원가입부(115)를 포함한다.
로그인부(111)는, 본 발명에 따른 서비스서버(100)를 이용하기 위하여 사용자단말기(200)가 접속할 수 있는 기능을 제공한다. 간편로그인부(112)는, Google, Kakao, Naver 등에서 제공하는 API를 이용한 로그인 기능을 제공한다. 비밀번호찾기부(113)는, 사용자단말기(200)로부터 이메일 인증 또는 핸드폰 인증을 통하여 비밀번호 찾기 기능을 제공한다. 아이디찾기부(114)는, 사용자의 정보 인증 또는 핸드폰 인증을 통한 아이디 찾기 기능을 제공한다. 회원가입부(115)는, 사용자단말기(200)가 서비스서버(100)를 이용하기 위하여 회원정보를 등록하는 기능을 제공한다.
본 발명에 따른 에디터부(120)는, 메인화면생성부(121), 메뉴생성부(122), 컴포넌트부(123), 컴포넌트추천부(124), Header 및 Footer 생성부(125), 팝업화면생성부(126), 미리보기부(127), 소스보기부(128) 및 서비스시작부(129)를 포함한다.
메인화면생성부(121)는, 프로젝트의 메인화면을 생성하는 기능을 제공한다. 메뉴생성부(122)는, 프로젝트의 메뉴를 생성하는 기능을 제공한다.
컴포넌트부(123)는, 사용자단말기(200)로부터 선택되어 화면에 배치되는 복수개의 컴포넌트를 포함한다. 컴포넌트부(123)는, TEXT, GRID, IMAGE, BUTTON 등 페이지 제작을 위해 구성되어지는 복수개의 서로 다른 컴포넌트를 제공한다. 컴포넌트부(123)는 컴포넌트 소스 코드를 생성한다. 컴포넌트부(123)에는 생성된 컴포넌트 소스 코드가 저장된다. 컴포넌트부(123)는 사용자단말기(200)에 의해 선택 및 배치된 컴포넌트에 대한 정보를 저장한다.
컴포넌트추천부(124)는, 사용자단말기(200)로부터의 입력에 따라 복수개의 서로 다른 컴포넌트 중 특정 컴포넌트들을 사용자단말기(200)로 추천하는 기능을 제공한다. 사용자단말기(200)로부터의 입력은, 마우스 등 입력장치에 의한 클릭, 키보드 등 입력장치에 의한 단어나 문장 입력, 마이크 등 입력장치에 의한 음성입력을 포함한다. 컴포넌트추천부(124)의 상세한 설명은 후술하도록 한다.
Header 및 Footer 생성부(125)는, 모든 페이지에 적용되는 프로젝트의 Header, Footer를 생성하는 기능을 제공한다. 팝업화면생성부(126)는, 메뉴로 이동하지 않고 버튼클릭이나 별도의 액션을 통하여 오픈하는 팝업을 생성하는 기능을 제공한다. 미리보기부(127)는, 제작한 프로젝트를 실제 웹페이지 형태로 미리 볼 수 있는 기능을 제공한다. 소스보기부(128)는, 제작한 프로젝트의 실제 소스를 조회 및 수정할 수 있는 기능을 제공한다. 서비스시작부(129)는, 서비스서버(100)를 통해 설계된 프로젝트를 서비스 가능한 형태로 웹 호스팅 하는 기능을 제공한다.
본 발명에 따른 자동웹서비스배포부(130)는 웹 자동화 서비스를 제공한다. 본 발명에 따른 자동웹서비스배포부(130)는, 자동소스코드생성부(131), 자동DB생성부(132), 자동도메인생성부(133) 및 자동배포부(134)를 포함한다.
자동소스코드생성부(131)는, 서비스서버(100)를 이용하여 설계된 프로젝트가 실제 서비스되고 작동할 수 있도록 자동으로 소스 코드를 생성해주는 기능을 제공한다,
자동DB생성부(132)는, 데이터의 조회, 입력, 수정, 삭제를 위한 테이블 및 컬럼을 자동으로 생성해주는 기능을 제공한다, 또한 자동DB생성부(132)는, 사용자단말기(200)에 의한 컴포넌트 배치 시, 화면 상 배치된 컴포넌트를 기초로 자동으로 데이터베이스를 생성한다. 한편, 자동DB생성부(132)는 데이터베이스를 생성할 때 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용한다.
자동도메인생성부(133)는, 자동으로 사용자가 제작한 프로젝트명으로 도메인을 생성해주는 기능을 제공한다.
자동배포부(134)는, 제작한 프로젝트가 서비스 가능하도록 웹서버에 개발소스들을 배포해주는 기능을 제공한다. 자동배포부(134)는 사용자단말기(200)가 컴포넌트의 선택 및 배치에 따라 설계한 화면의 웹 상 자동배포를 지원한다,
본 발명에 따른 마이페이지부(140)는, 프로젝트관리대시보드부(141), 회원정보수정부(142), 구매내역확인부(143) 및 문의내역확인부(144)를 포함한다.
프로젝트관리대시보드부(141)는, 새로운 프로젝트를 생성하거나 기존에 제작한 프로젝트를 관리하는 기능을 제공한다. 회원정보수정부(142)는, 사용자가 본인의 정보를 수정할 수 있는 기능을 제공한다. 구매내역확인부(143)는, 서비스서버(100)에서 제공하는 서비스에 대한 구매의 사용기한 및 결제정보를 확인 할 수 있는 기능을 제공한다. 문의내역확인부(144)는, 서비스서버(100)에서 사용자단말기(200)에 제공하는 고객센터에 남긴 문의글을 확인 할 수 있는 기능을 제공한다.
본 발명에 따른 고객지원부(150)는, 문의처부(151), 공지사항부(152) 및 문의게시판부(153)를 포함한다.
문의처부(151)는, 서비스서버(100)를 운영하는 공급자의 정보를 확인 할 수 있는 기능을 제공한다. 공지사항부(152)는, 서비스서버(100) 관련 공지사항을 확인 할 수 있는 기능을 제공한다. 문의게시판부(153)는, 서비스서버(100) 관련 문의 글을 등록할 수 있는 기능을 제공한다.
도 3은 본 발명에 따른 서비스서버(100)가 제공하는 초기화면을 보여주는 도면이다.
서비스서버(100)는 그래픽 유저 인터페이스 환경을 사용자단말기(200)로 제공한다. 사용자단말기(200)가 서비스서버(100)에 접속한 초기화면은 도 3에 도시된 바와 같다. 서비스서버(100)가 제공하는 초기화면의 일측(A)에는 컴포넌트부(123)가 제공하는 복수개의 컴포넌트가 구비된다. 사용자단말기(200)는 컴포넌트부(123)가 제공하는 복수개의 컴포넌트 중 어느 하나를 선택할 수 있다. 사용자단말기(200)에 의해 선택된 컴포넌트는 화면에 배치된다. 이때 선택된 컴포넌트의 배치되는 위치도 설정할 수 있다(B). 사용자단말기(200)는 컴포넌트를 활용하여 앱 또는 웹 페이지의 화면을 설계할 수 있다. 도 3에서는 컴포넌트의 일 예로 상품정보, 상품조회, 상품 목록의 입력 및 표출이 가능한 컴포넌트를 보여주고 있다.
도 4는 본 발명에 따른 컴포넌트에 의한 화면 설계 시 자동으로 데이터베이스가 생성된 모습을 보여주는 도면이고, 도 5는 본 발명에 따른 자동DB생성부(132)가 데이터베이스를 생성할 때 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용한 모습을 보여주는 도면이다.
본 발명에 따른 자동DB생성부(132)는, 도 4를 참조하면, 컨포넌트에 의한 화면 설계 시 자동으로 데이터베이스를 생성한다. 사용자단말기(200)는, 전술한 바와 같이 컴포넌트를 선택, 배치 및/또는 활용하여 앱 또는 웹 페이지의 화면을 설계할 수 있다. 자동DB생성부(132)는 개별 컨포넌트 내 입력된 데이터를 데이터베이스화 하며 이때 DB 표준화를 자동 반영하는 것이 가능하다.
본 발명에 따른 자동DB생성부(132)는, 도 5를 참조하면, 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용하여 데이터베이스를 설계한다. 본 명세서에서 행정안전부에서 고시한 공공기관의 데이터 표준화 지침이란, 행정안전부, 디지털정부국, 정보화 표준·지침 자료실, 공공기관의 데이터베이스 표준화 지침 제정 (등록일 : 2015.07.27. 작성자 : 행정정보공유과) 에 따른 데이터 표준화 지침을 의미하며, 데이터 표준화 지침은 다음의 주소에 게시되어 있다.
‘https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do?bbsId=BBSMSTR_000000000045&nttId=46590’
개발에 있어서 표준화 지침(국방 SHADE, 공공 데이터표준)을 적용하기에는 많은 노력과 공수가 발생하며 이를 위한 해소 방법으로 코딩 자동화 도구 사용을 통한 요구사항 분석 시점부터 화면 설계시 데이터 표준화 지침을 준수함으로써 표준화 정책에 적극 반영함으로써 소프트웨어 표준화 정책에 부합할 수 있다. 따라서 여러 사람이 설계하고 개발하더라도 서로 간의 의사소통이 쉽고, 일관성을 유지하며, 최소의 노력으로 높은 품질의 컴포넌트 기반 정보시스템의 개발이 가능하다.
도 6은 컨포넌트를 활용하여 설계한 화면이 자동배포된 모습을 보여주는 도면이다.
본 발명에 따른 서비스서버(100)는, 전술한 바와 같이 사용자단말기(200)가 설계한 화면의 웹 상 자동배포를 지원하는 자동웹서비스배포부(130)를 포함한다. 에디터부(120)에 의해 제작 및 설계된 프로젝트는 서비스시작부(129)에 의해 웹 서비스 가능한 형태로 웹 호스팅된다.
자동웹서비스배포부(130)는 서비스시작부(129)가 웹 서비스 가능한 형태로 웹 호스팅한 프로젝트를 실제 서비스되고 작동할 수 있도록 자동으로 소스 코드를 생성하는 자동소스코드생성부(131), 데이터베이스를 자동으로 생성하는 자동DB생성부(132), 제작된 프로젝트 명으로 도메인을 생성하는 자동도메인생성부(133) 및 제작된 프로젝트가 서비스 가능하도록 웹 서버에 개발소스들을 배포하는 자동배포부(134)에 의해 사용자단말기(200)가 설계한 화면을 포함하는 프로젝트를 웹 상으로 자동배포하는 것이 가능하다.
도 7은 본 발명에 따른 시스템이 제공하는 서비스의 흐름을 보여주는 흐름도이다.
도 7을 참조하면, 사용자단말기(200)는 통신망을 통해 서비스서버(100)에 접속하며, 회원가입부(115)에 의해 회원가입한다. 회원가입한 사용자단말기(200)는 로그인부(111)에 의해 로그인된다. 로그인한 사용자단말기(200)는 서비스 구매여부에 따라 서비스를 구매한 경우 BASIC, Developer 권한을 부여받고, 서비스를 구매하지 않은 경우 Demo 권한을 부여받는다. 사용자단말기(200)는 에디터부(120)에 의해 컴포넌트를 활용하여 화면을 생성하고, 생성한 화면을 저장한다. 또한 사용자단말기(200)는 프로젝트를 생성하고, 프로젝트를 저장한다. 저장된 프로젝트는 HTML 파일을 다운로드하는 것이 가능하다. 제작된 프로젝트는 자동으로 웹 서비스의 실행이 가능하다. 웹 서비스의 실행을 위해 제작된 프로젝트는 빌드되고, 자동으로 배포된다.
전술한 바와 같이, 컴포넌트부(123)는 복수개의 서로 다른 컴포넌트를 구비한다. 이때, 컴포넌트추천부(124)는, 사용자단말기(200)로 특정 컴포넌트를 제시하여 줄 수 있다. 컴포넌트추천부(124)는 특정 컴포넌트를 도 3에 도시된 바와 같이 화면 일측(A)에 표출하고, 사용자단말기(200)는 추천되어 화면 상 표출된 컴포넌트를 선택하는 것이 가능하다.
사용자단말기(200)는 마우스, 키보드, 마이크 등 입력장치를 포함한다. 사용자단말기(200)는 컴포넌트를 제시받기 위해 입력장치를 통해 단어, 문장 또는 음성(音聲)을 입력할 수 있고, 사용자단말기(200)는 입력된 단어, 문장 또는 음성을 서비스서버(100)로 송신한다. 사용자단말기(200)로부터 단어, 문장 또는 음성을 수신한 서비스서버(100)는, 수신한 단어, 문장 또는 음성을 컴포넌트추천부(124)로 송신한다. 컴포넌트추천부(124)는 수신한 단어, 문장 또는 음성을 기초로 특정 컴포넌트를 추천할 수 있다.
서비스서버(100)는 사용자단말기(200)로부터의 입력을 기초로 프로그램 코드를 자동 생성한다. 이때의 입력은 단어입력, 문장입력 및 음성입력을 포함한다. 서비스서버(100)는 입력을 위한 GUI, 사용자 인터페이스를 제공한다.
사용자단말기(200)로부터의 입력이 단어입력인 경우, 컴포넌트추천부(124)는 해당 단어를 분석하고, 해당 단어와 연관성 높은 컴포넌트를 연산하여 연관성이 높은 순서대로 화면 상 표출한다.
사용자단말기(200)로부터의 입력이 문장입력인 경우, 컴포넌트추천부(124)는 해당 문장을 분석하여, 단어를 추출하고, 추출된 단어와 연관성 높은 컴포넌트를 연산하여 연관성이 높은 순서대로 화면 상 표출한다.
사용자단말기(200)로부터의 입력이 음성입력인 경우, 컴포넌트추천부(124)는 해당 음성을 분석하여, 텍스트화(문장화) 처리하고, 처리된 문장에서 단어를 추출하며, 추출된 단어와 연관성 높은 컴포넌트를 연산하여 연관성이 높은 순서대로 화면 상 표출한다.
컴포넌트추천부(124)는 단어, 문장, 음성을 처리하기 위해 사용자단말기(200)로부터 입력되어 수신한 단어, 문장, 음성을 분석하여 사용자의 패턴(행동패턴)을 도출할 수 있는데, 사용자단말기(200)에 입력하는 텍스트(단어 또는 문장을 포함한다)들 예를 들어 문자, 카카오톡, 페이스북, 트위터 등과 같은 SNS 어플리케이션 통해 입력하는 텍스트들을 컴포넌트추천부(124)가 텍스트 정보들을 분석함으로써 사용자의 패턴을 도출할 수 있다. 한편, 컴포넌트추천부(124)가 음성을 수신한 경우, 수신한 음성을 텍스트화하는 공지의 기술이 적용될 수 있다.
이러한 컴포넌트추천부(124)는 수신한 단어 및 문장을 자연어 처리하고, 자연어 처리된 문장으로부터 단어를 인식하고, 인식한 문장 내 단어들 사이의 관계를 분석하여 각 단어들에 대해 의미를 부여하는 방식으로 텍스트를 해석할 수도 있다.
이러한 방식의 텍스트 해석을 통해 컴포넌트추천부(124)는 사용자의 의도를 더욱 정확히 파악할 수 있고, 이로 인해 사용자의 패턴(행동 패턴)을 정확하게 도출하여 사용자단말기(200)에게 더욱 적합한 컴포넌트를 추천할 수 있게 된다.
자연어 처리(Natural Language Processing)에 대해 부가적으로 설명하자면, 자연어 처리는 일반적으로 인간이 발화하는 언어 현상을 기계적으로 분석해서 컴퓨터가 이해할 수 있는 형태로 만드는 자연어(자연 언어) 이해 혹은 그러한 형태를 다시 인간이 이해할 수 있는 언어로 표현하는 제반 기술을 의미한다.
이러한 자연어 처리는 형태소 분석 및 품사 부착을 통해 이루어 질 수 있다. 형태소 분석은 예를 들어 '복합 명사'는 '복합+명사', '복+합명사', '복합명+사' 등등의 다양한 방식으로 쪼개질 수 있는 데 이들 중에서 가장 적합한 분해 결과를 선택하는 것인데, 다양하게 쪼개지는 분석 결과들 중에서 적합한 결과를 선택하기 위해, 테이블 파싱이라는 동적 프로그래밍 방법을 사용한다. 구체적으로 '복합+명사'로 쪼개질 확률이 그 외로 분석될 확률보다 더 크면 그걸로 선택하도록 하는 알고리즘이다
품사 부착은 형태소 분석을 통해 나온 결과 중 가장 적합한 형태의 품사를 부착하는 것을 말한다. 보통 태거라고 하는 모듈이 이 기능을 수행한다. 이는 형태소 분석기가 출력한 다양한 분석 결과 중에서 문맥에 적합한 하나의 분석 결과를 선택하는 모듈이라 할 수 있다. 분석 시 문맥 좌우에 위치한 중의성 해소의 힌트가 되는 정보를 이용해서 적합한 분석 결과를 선택한다. 보통 태거는 대규모의 품사부착을 이용해서 구현하는데 은닉 마르코프 모델(HMM)이 널리 사용되고 있다.
본 발명에서는 위와 방식의 자연어 처리를 통해 컴포넌트추천부(124)에서 사용자단말기(200)로부터 입력되는 텍스트를 분석할 수 있다.
또한 컴포넌트추천부(124)는 자연어 처리된 텍스트로부터 문장을 인식할 때, 상기 텍스트가 입력된 시간 및 장소를 참고하며, 인식한 문장 내 단어들 사이의 관계를 분석하여 각 단어들에 대해 의미를 부여함으로써, 사용자가 입력할 때의 시간과 장소까지 고려함으로써 사용자의 의도를 더욱 정확하게 파악하고 적합한 분석 결과를 도출할 수 있다.
또한 본 발명에서는 사용자단말기(200)에 소정 어플리케이션이 설치되고, 컴포넌트추천부(124)가 도출한 사용자의 입력 패턴을 바탕으로 사용자의 패턴에 적합한 추천 컴포넌트를 사용자단말기(200)로 전송하여, 사용자단말기(200)의 화면에 표시되도록 구성될 수 있다.
한편, 컴포넌트추천부(124)가 문장 또는 음성으로부터 처리하여 도출한 단어는 웹 페이지에 태그의 형태로 삽입될 수 있다. 이때 삽입된 태그는 추후 웹 페이지가 배포된 경우 웹 페이지가 검색될 때 검색이 용이하도록 이용될 수 있다.
사용자단말기(200)로부터의 입력이 음성인 경우, 전술한 바와 같이 처리되어 텍스트화 되고, 처리된 텍스트에서 단어가 추출된다. 한편, 본 발명에 따른 시스템의 일 실시예로서, 회의상황에서 자동적으로 회의록을 작성하고, 작성된 회의록을 기초로 프로그램이 제작되거나, 회의록을 기초로 특정 컴포넌트가 추천될 수 있다.
이때의 사용자단말기(200)는 회의 참석자들이 각각 소유하는 복수개의 사용자단말기(200)(이하, ‘참석자단말기’라 함)일 수 있다. 참석자단말기는 참석자의 음성을 입력받는 마이크를 구비한다. 참석자단말기는 서비스서버(100)와 통신망으로 연결된다. 서비스서버(100)는 음성 녹취록 파일 및/또는 회의록을 작성하기 위한 회의록작성부(미도시)를 더 포함한다.
참석자단말기는 각 참석자단말기에 입력되는 음성 및 음성 레벨을 감지하여 일정 레벨 이상 또는 이하의 음성 레벨이 감지될 경우, 각 참석자단말기의 소유자가 회의에서 발언을 시작 또는 종료한 것으로 자동 인식되도록 이루어진다.
각 참석자단말기의 마이크에 구비되는 마이크로 프로세서에 의하여 입력되는 아날로그 음성신호가 A/D 컨버팅되면서 음성 데이터로 변환되고, 변환된 음성 데이터를 토대로 마이크로 프로세서가 연산을 수행하여 입력되는 각각의 음성 데이터를 구분하도록 이루어진다. 또한, 참석자단말기의 마이크에 구비되는 마이크로 프로세서에 의하여 순간적으로 높은 음성 레벨이 발생하거나, 유효한 정보가 없는 음성 레벨일 경우 단말의 소유자가 발언을 시작한 것으로 오인하는 것이 방지되도록 이루어진다. 한편, 각 참석자단말기의 적소에 음성 레벨을 감지하도록 이루어지는 음성 감지센서가 포함된다.
더불어, 각 참석자단말기의 소정위치에 소유자가 발언을 하지 않았음에도 불구하고 모종의 이유로 높은 음성 레벨이 감지된 경우 이를 단말의 소유자가 발언을 시작한 것으로 오인하는 것을 방지하기 위한 음성오인 감지센서가 포함된다.
각각의 참석자단말기는 각 회의 참석자에 의하여 입력되는 음성 레벨을 감지하고, 감지된 음성 레벨이 일정 레벨 이상이면 참석자단말기의 소유자가 회의에서 발언을 시작하는 것으로 인식하며, 일정 시간 동안 일정 레벨 이하이면 발언이 종료된 것으로 인식한다.
회의록작성부는 이들 참석자가 소유한 각각의 참석자단말기가 보낸 음성 정보를 발언시간 정보에 따라 시간의 순서대로 정렬한다.
한편, 두 명 이상의 참석자가 동시에 발언할 경우 두 음성 데이터가 겹치는 시간의 구간이 발생되며, 발언을 하지 않을 경우 음성 데이터가 없는 시간의 구간이 발생되기도 한다. 회의록작성부는 각 참석자의 발언을 정렬된 음성 정보로 통합하여 하나의 음성 녹취록 파일로 생성한다.
이렇게 여러개의 분산된 참석자단말기의 마이크로부터 추출된 음성 정보를 통해 생성된 음성 녹취록 파일은 회의장의 특정 지역에 설치된 단일 마이크를 통하여 추출된 음성 정보만으로 생성된 음성 녹취록 파일에 비하여 각 발언자의 발언을 보다 선명하게 녹음 및 녹취할 수 있게 된다.
회의록작성부에 의해 생성된 음성 녹취록 파일에는 음성이 수록되어 있다. 컴포넌트추천부(124)는 음성 녹취록 파일에 수록된 음성을 전술한 바와 같이 처리하여 텍스트화 하고, 텍스트를 분석하여 사용자단말기(200)로 컴포넌트를 추천해줄 수 있다.
본 발명에 따른 에디터부(120)는, 사용자단말기(200)로부터 영상을 입력받는 영상입력부(미도시)를 더 포함할 수 있다. 영상입력부는 입력받은 영상을 웹 페이지에 게시한다. 이때 영상입력부는 영상을 게시할 때, 프레임 분할 스레드를 이용한 영상 처리가 가능하다.
제안한 방법에서는 영상정보의 크기를 줄이기 위하여 프레임을 블록 단위로 분할하여 비교하는 프레임 블록화 방법을 사용한다. 이때 데이터의 효율적인 처리를 위해 16개의 스레드를 이용하여 구현한다. 가공된 모든 데이터들은 ARIA 암호화 알고리즘에 의해 암호화되어 저장되기 때문에 영상정보에 대한 기밀성이 보장된다. 실험 결과를 통하여, 영상처리 속도는 원본 영상을 사용하는 기존의 방법에 비해 약 40% 정도 개선되었고, 영상의 크기는 약 60% 정도 감소됨을 확인하였다.
현재의 영상은 과거의 아날로그 방식에서 디지털 방식으로 전환하면서 대량의 정보를 저장할 수 있게 되었다. 이렇게 많은 양의 정보를 저장하게 되면서 저장 공간에 대한 비용이 대폭 증가하였고 이를 위한 대책이 필요하게 되었다. 또한, 디지털 방식이므로 정보에 대한 접근도 용이하게 되어 이에 대한 보안대책도 필요하게 되었다. 일반적으로 사용되고 있는 영상의 처리는 있는 그대로의 영상을 찍어서 디지털 영상으로 전환한 후 저장하는 방식을 사용하고 있다. 즉 영상을 적절한 방법으로 가공하지 않은 채 그대로 저장하는 방식이다. 그러나 기존의 방법들은 영상에 대한 위조, 변조가 가능하기 때문에 사생활 침해 등 많은 보안관련 문제가 발생할 수 있다. 본 발명에서는 프레임 분할 스레드를 이용한 영상 처리 시스템의 설계 및 구현을 제안한다. 제안한 방법에서는 영상 정보의 크기를 줄이기 위하여 프레임을 블록 단위로 분할하여 비교하는 프레임 블록화 방법을 사용하고, 16개의 스레드를 이용하여 구현한다. 가공된 모든 데이터들은 ARIA 암호화 알고리즘에 의해 암호화되어 저장되기 때문에 영상정보에 대한 기밀성이 보장된다.
제안하는 영상 처리 시스템
본 발명에서 제안하는 시스템의 영상 처리과정은 사용자단말기(200)로부터 영상을 전송받아서 영상 가공과 암호화를 진행한다. 가공된 데이터는 Viewer로 전송되어 Viewer에서 복호화 및 영상 복원을 실행하여 원래 영상을 재생한다. 본 발명에서의 영상 가공 방법은 프레임의 상관 관계를 이용한 방법으로 비교 대상 프레임과 현재 재생되는 프레임을 비교하여 의미 있는 픽셀의 값만을 추출하여 저장한다. 이 방법을 이용하면 중복되는 프레임을 제외하고 의미 있는 프레임만을 추출하여 기존 중복되는 프레임에 합성하기 때문에 프레임 용량을 대폭 줄일 수 있다. 영상 보안시스템에서 카메라로 촬영을 하고 기준프레임을 60초마다 생성한다고 가정했을 때, 촬영 후 Viewer 서버로 전송까지의 동작은 그림 1과 같다.
<그림 1. 제안하는 영상 처리의 순서도>
제안하는 영상 처리과정은 그림 1에 나타난 바와 같이 카메라 촬영을 시작으로 프레임을 수신하여 비교 대상 프레임과 현재 프레임 간의 차이를 구한 후, 그 값을 블록화시킨다. 이때 프레임 간의 차이값과 블록화는 효율성을 고려하여 16 분할 스레드를 기반으로 하여 설계된다. 그 후 블록화된 프레임이 정렬되며 각 블록의 첫 좌표(기준 프레임)를 파일에 저장해둔다. 이후에 ARIA 암호알고리즘을 이용하여 기준이 되는 각 프레임 데이터에 대해 암호화를 수행하여 Viewer로 보내고, 가공된 블록 정렬 데이터들도 Viewer로 전송한다.
16분할 스레드 설계
동영상이란 각각의 정지된 화면 즉, 프레임을 빠르게 지나가게 하여 마치 움직이는 것처럼 보이도록 하는 기술이다. 프레임의 상관관계란 연속된 프레임이 약간의 차이가 있을 때 배경은 똑같지만 움직이는 물체가 있는 부분이 두 프레임의 차이를 말한다. 프레임의 상관관계를 이용하여 픽셀 차이를 구하기 위해 종래에는 주로 두 프레임 전체를 픽셀 단위로 비교하는 방법을 사용해 왔다. 그러나 이 방법은 비교하는데 많은 시간이 소요되기 때문에 보다 효율적인 프레임 비교를 위해서 본 발명에서는 이미지를 16분할하여 처리하는 방법을 제안한다. 비교 대상 프레임(기준 프레임)과 현재 재생되는 프레임을 비교하여 의미 있는 내용을 추출한다. 즉, 두 프레임과의 비교에서 움직이는 물체가 없는 고정된(기준) 프레임은 추출하지 않고, 움직이는 물체가 존재하는 경우 두 프레임의 픽셀의 차이만을 구하는 방법이다. 이때 픽셀 차이를 비교하여 중복되는 데이터는 제거되고, 의미 있는 데이터만을 가변적인 블록으로 구성하게 된다. 다시 말해서 픽셀 차이를 비교한 후, 같은 부분은 흰색으로 채우고 움직이는 물체(기준 프레임과 다른 부분)만 이미지에 채운다. 프레임을 블록 단위로 분할하는 이유는 의미 있는 픽셀의 값을 객체화시켜서 빠르고 정확하게 처리하기 위한 것이며, 이때 값을 가지지 않은 블록은 의미가 없으므로 연산에서 제외된다. 픽셀(프레임) 간의 차이 값을 구하는 것과 프레임 블록화는 둘 다 영역을 지정한 후 수행이 가능하기 때문에 전체영역을 16분할하여 동시에 스레드를 이용할 수 있다. 따라서 각 분할된 영역의 스레드는 동 시간대에 프레임간의 차이 값 구하기와 프레임 블록화가 수행되고 모든 영역에 대한 작업이 끝났을 때 다음 프레임의 작업을 수행하게 된다. 이렇게 16분할 스레드를 설계함으로써 영상 처리 속도를 증대하여 현재 프레임과 다음 프레임간의 속도 간섭을 막을 수 있다. 그림 2는 프레임 16분할 스레드의 구성 예를 나타낸다. 스레드는 CPU 내에서 실행되는 최소의 프로그램 단위로서 스레드 ID, 레지스터들의 집합, 스택, 프로그램 카운터 등과 같은 정보들로 구성된다. 멀티스레드는 동일 프로세스 내에서도 메모리 공유가 가능하므로 효율적인 데이터 처리가 가능함은 물론 시스템의 자원 낭비를 줄인다. 본 발명에서는 많은 스레드가 실행될 때 데이터의 데이터 처리의 효율성을 고려하여 16분할하여 영상을 처리한다. 그림 2에서 Locked는 동기를 맞추기 위해 사용하며, 하나의 프로세스에 속한 16개의 스레드는 메모리 등의 자원을 공유하여 병렬처리가 가능하므로 처리속도가 매우 빠르게 된다.
<그림 2. 프레임 16분할 스레드의 구성 예>
기준 프레임 지정
기준 프레임(이미지) 지정은 지정된 장소를 촬영하는 영상의 특성을 이용하여 지정된 시간마다 기준 이미지를 생성한다. 기준 이미지가 지정되면 그 이후의 프레임들은 이 기준 이미지와 픽셀을 비교하게 된다. 기준 이미지와 이후 프레임의 배경밝기가 같고 움직이는 물체가 있다고 가정했을 때, 이전과 중복되는 부분에 대해서는 픽셀의 차이가 없으므로 이 부분은 흰색으로 채우고 움직이는 물체만을 추출하여 이미지에 채운다. 비교를 위한 이미지 파일들의 크기를 절약하기 위하여 일정 시간마다 생성하는 기준 이미지를 이용한다. 그림 3의 (a)는 기준 이미지를 생성하기 위한 방법을, (b)는 픽셀 비교를 위한 효율적인 알고리즘을 나타낸다.
<그림 3(a) 기준 이미지 생성>
<그림 3(b) 픽셀 비교>
그림 3(a) 와 그림 3(b)에서 알 수 있듯이 기준 이미지는 60초 마다 생성이 되며, 이 파일은 암호화되어 저장된다.
프레임 블록화 및 블록정렬
픽셀 차이를 비교하여 중복되는 데이터가 제거되면 의미 있는 데이터만을 가변적인 블록으로 구성한다. 이때, 픽셀이 같은 부분은 흰색으로 채우고 기준 프레임(이미지)과 달라지는 부분만을 채우고 일정한 크기로 블록화 한다. 만일 이 수준의 값보다 더욱 정밀한 움직임이나 데이터를 추출하고자 한다면 픽셀 비교의 기준 값을 더 낮추거나 블록의 크기를 줄여서 데이터를 추출하면 된다. 블록화를 한 후 각 블록들을 좌측 상단부터 차례대로 채운다. 이때 각 블록의 원래 위치를 찾을 수 있도록 각 블록의 앞에 좌표 값을 넣어준다. 블록화와 블록정렬은 전체 이미지를 블록 크기별로 탐색하여 수행한다. 탐색한 값이 흰색이 아닐 경우에만 값을 저장하여 블록화하고. 그 블록의 첫 번째 좌표를 저장하고 블록들을 정렬한다. 그림 4는 16분할로 동시 실행하는 블록화 및 블록정렬 과정을 나타낸다.
<그림 4. 이미지 블록화 및 블록정렬 과정>
이러한 과정을 통하여 이미지를 가공했을 때, 불필요한 데이터를 줄여 이미지 파일의 크기를 기존의 원본 이미지 파일 크기보다 최대 1/30까지 줄일 수 있다. 정렬 할 때에는 각 블록의 첫 좌표가 파일에 저장되며 Viewer를 통해 읽어 들일 때 같이 읽어 들여서 블록을 재배치 할 때 사용한다.
이미지 Viewer 설계
이미지를 영상으로 재생시키려면 각 이미지를 촬영할 때의 처리속도(FPS, Frame Per Second)를 알아야 실제 촬영 영상과 동일한 영상을 볼 수 있다. FPS를 모른다면 영상이 너무 빠르거나 느리고 영상 재생 중 누락되는 부분이 있을 수 있다. 그렇기 때문에 영상을 처리할 때 FPS를 이미지 파일에 같이 저장해야 한다. Viewer 서버에는 영상 촬영 후 가공된 이미지파일들이 저장된다. 이때 이미지들은 블록화 및 블록정렬 후에 저장되기 때문에 Viewer에서는 이미 전송된 각 블록들(조각들)의 좌표(각각의 기준 프레임에 대한 좌표)를 찾아야 한다. 그리고 블록 좌표에 맞춰 기준 이미지 파일에 정렬된 블록을 연결하여 원래 영상을 재생한다.
기준 프레임의 암호화
제안한 영상 처리 시스템은 ARIA 암호알고리즘을 기반으로 하여 암호화 및 복호를 수행한다. 대칭키 알고리즘인 ARIA는 블록의 길이가 128비트이며, 128/192/256비트인 키의 길이를 가변적으로 사용할 수 있다. 또한, 키의 크기에 따라 각각 10/12/14번의 라운드를 반복하여 암호화를 실행한다. 구현된 암호화 엔진은 암호화와 복호화를 수행하는 라운드 모듈과 키 값을 생성하기 위한 스케줄러로 되어 있다. 본 발명에서는 128비트의 키를 사용하여 암호화 엔진을 설계하고 구현한다. 라운드 함수의 모듈은 키 덧셈(AddRoundKey 함수), 치환 계층(SubstLayer 함수), 그리고 확산 계층(DiffLayer 함수) 등 크게 세 부분으로 구성된다. 라운드 함수의 키 덧셈은 128 비트의 라운드 키와 128 비트의 입력 값에 대해 비트 별로 XOR 연산을 수행한다. 치환 계층은 2 종류로 구성되며, 이들 각계층은 8비트의 입력과 출력 S-box 그리고 그들에 대한 역변환 구조를 가진다. 확산 함수를 수행하는 확산 계층은 16×16 인볼루션(Involution) 구조이며, 행렬 연산을 실행한다.
구현 결과
본 발명에서는 기존의 ARIA C(C++) 소스 코드를 C# 코드로 변환하여 시스템을 구현하였다. 각각 클래스를 이용하여 정의 부분과 암호화, 복호화 부분을 재구성 하였으며, 고정 키 값을 설정하여 사용하였다. 그림 5는 기존의 ARIA 알고리즘의 C 소스코드를 C# 코드로 변환하는 과정을 나타낸다. 그림 6은 정렬된 프레임과 기준 프레임의 암호화 된 예를 보여준다. 블록 정렬 후 나오는 최종 프레임(정렬된 기준 프레임)에 대해서만 암호화를 수행한다. 그림 6에서 알 수 있듯이 정렬된 프레임을 암호화했을 경우 동일한 주소(Address)에 암호화된 프레임(기준 프레임)이 저장되어 있다. 이때 암호화 대상 파일은 기준 프레임 파일(bmp 파일)이며, 이 파일은 특성상 헤더부분이 손상되면 파일 전체를 읽을 수 없게 된다. 그래서 본 발명에서는 프레임의 헤더 부분인 bmp 파일은 부분적으로 암호화하여 암호화 속도를 높이는 방법을 이용하였다. 그림 7은 그림 6의 정렬된 프레임의 3개의 평문(Plaintext) 주소(Address)에 대한 각각 암호화(Ciphertext) 및 복호화된(Decrypted) 결과를 보여준다. 위에서 설명한 것처럼, 영상 시스템에서의 Viewer는 고정 프레임 파일과 정렬된 파일, 그리고 좌표 파일을 읽어 들인다. 그 다음에 좌표 파일로부터 블록의 좌표를 읽어 들이고 블록 정렬에 이 좌표를 적용시켜서 블록을 원래 위치로 이동시키는 역할을 한다.
<그림 5. 기존 ARIA C 코드를 C# 으로 변환하는 과정>
<그림 6. 정렬된 프레임과 암호화된 프레임의 예>
<그림 7. 정렬된 프레임에 대한 암호화 및 복호화된 결과>
성능평가
표 1은 5분간 영상을 촬영하면서 기존의 원본영상과 제안한 방법에 대한 실험결과를 나타낸다.
<표 1. 영상처리 결과 및 성능 비교>
원본영상의 경우는 영상을 가공하지 않고 동영상을 그대로 촬영한 방법이다. 실제로 국내에서 제일 많이 쓰이는 방법으로 많은 저장 공간을 필요로 하고 누구나 접근이 가능하여 데이터 보안에 문제가 있다. 제안방법1은 여기에서 제안한 분할 스레드 기반의 방법을, 제안방법2는 분할 스레드 기반 및 암호화 방법을 병행하여 수행한 결과를 나타낸다. 표 1에서 알 수 있듯이 제안방법1은 기존의 원본 영상과 비교하여 FPS는 약 40% 정도 개선되었다. 그리고 용량의 경우도 약 75% 정도 감소되었지만, 누구나 접근이 가능하여 보안에 노출되어 있다. 제안방법2의 경우는 BMP 파일의 헤더부분만 부분적으로 암호화되어 전송하므로 속도 면에서는 방법1과 차이가 없다. 그러나 평균 용량의 경우는 암호화 수행을 통하여 어느 정도 증가하였지만, 비인가자의 접근 및 기밀성이 보장되므로 보안성은 우수한 편이다. 그림 8은 Viewer에서 실행한 화면의 일부분을 나타낸다. 그림 8에서 흰색으로 보이는 부분은 기준 프레임과 변화(차이)가 없는 부분을 나타낸다. 4개의 파일 들 중에서 서버에 파일로 저장되는 이미지 파일들은 블록 정렬과(a)과 기준 프레임(c)이다. 기준 프레임과 블록 영상(d)은 기준 프레임에 블록 재배치된 결과를 합성한 영상인데 실제 촬영되는 영상이 (d)와 같다. 암호화된 이미지는 Viewer에서 영상을 재생할 때만 복호화를 행한다.
<그림 8. Viewer 실행 화면>
기존의 영상 처리는 영상을 가공하지 않고 원래의 영상을 디지털 영상으로 전환하여 사용하기 때문에 영상에 대한 위조, 변조 등에 있어서 보안성이 취약하다. 본 발명에서는 ARIA 알고리즘을 사용하여 프레임 분할 스레드 기반의 CCTV 보안시스템을 구현에 관하여 기술하였다. 구현된 시스템은 중복되는 프레임을 제외하고 의미 있는 프레임만을 추출하여 기존 중복되는 프레임에 합성하여 영상을 가공하므로 프레임 용량을 대폭 줄일 수 있다. 구현된 보안시스템의 처리속도는 기존의 영상처리 방법에 비해 약 40% 정도 개선되었고, 용량의 경우는 약 60% 정도 감소하였다. 또한, 구현된 시스템은 영상 데이터가 암호화되어 저장되기 때문에 제 3자에 의한 개인정보나 사생활 침해 등을 방지하는데 효과적이다.
본 발명에 따른 사용자단말기(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 중 어느 하나 이상을 위한 전자 부품을 포함할 수 있다.
본 발명에 따른 통신망은 단말들 및 서버들과 같은 각각의 노드 상호간에 정보 교환이 가능한 연결구조를 의미하는 것으로, 이러한 통신망의 일 예에는, 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) 네트워크 등이 포함되나 이에 한정되지는 않는다.
본 발명에 따른 컴포넌트(component)란, 기존의 코딩 방식에 의한 개발에서 벗어나 소프트웨어 구성단위(module)를 미리 만든 것을 의미한다. 서비스서버(100)는 필요한 응용 기술을 개발할 때 컴포넌트를 조립하여 소프트웨어를 개발할 수 있다. 컴포넌트 기술을 활용하면 복잡한 정보 시스템을 신속하게 구축할 수 있으며, 유사한 정보 시스템을 구축할 때 재사용이 가능한 장점이 있다. 특히, 급속도로 변하는 인터넷 환경에서 표준화된 소프트웨어를 만드는 것이 필요하기 때문에 컴포넌트는 매우 중요하다고 할 수 있다.
컴포넌트는 프로그램의 소스코드를 모듈별로 나누고 유동적으로 바뀔 부분에 대해서는 코드화시킨 것을 말한다. 이러한 컴포넌트의 소스코드는 각 프로그램 언어별로 저장이 되어 향후 새로운 플랫폼이나 언어 그리고 버전업된 프로그램에 개방적 구조 형태를 취하고 있다. 사용자에게 미리 제공되는 컴포넌트가 미리 설정되어 있을 수 있다. 사용자단말기(200)에 의해 선택 및/또는 화면에 배치된 컴포넌트는 그 순서 등에 의해 서로 연결되어 프로그램이 생성될 수 있다. 서비스서버(100)는 사용자단말기(200)가 화면 상에서 개별 컴포넌트를 끌어서 서로 연결할 수 있도록 지원한다.
한편, 본 발명에 따른 컴포넌트는, 미리 마련되어 저장되어 있을 수도 있으나 이에 한정되는 것은 아니고, 서비스서버(100)의 운영자, 사용자단말기(200)의 사용자 등의 필요에 의해 생성될 수도 있다.
본 명세서에서 회원관리부(110), 에디터부(120), 자동웹서비스배포부(130), 마이페이지부(140), 고객지원부(150), 회의록작성부, 영상입력부 및 그 세부 구성들은 메모리에 저장된 연속된 수행과정들을 실행하는 프로세서들일 수 있다. 또는, 프로세서에 의해 구동되고 제어되는 소프트웨어 모듈들로서 동작할 수 있다. 나아가, 프로세서는 하드웨어 장치일 수 있다.
참고로, 본 발명에 따른 서비스서버(100)가 제공하는 서비스는 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독가능매체에 기록될 수 있다. 상기 컴퓨터 판독가능매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용가능한 것일 수도 있다. 컴퓨터 판독가능매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체, 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급언어코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1개의 유닛이 2개 이상의 하드웨어를 이용하여 실현되어도 되고, 2개 이상의 유닛이 1개의 하드웨어에 의해 실현되어도 된다.
본 발명의 보호범위가 이상에서 명시적으로 설명한 실시예의 기재와 표현에 제한되는 것은 아니다. 또한, 본 발명이 속하는 기술분야에서 자명한 변경이나 치환으로 말미암아 본 발명이 보호범위가 제한될 수도 없음을 다시 한 번 첨언한다.
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 기반 프로그램 자동 생성 시스템
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 기반 프로그램 자동 생성 시스템
Claims (5)
- 사용자단말기; 및
상기 사용자단말기와 통신망을 통해 서로 연결되며, 상기 사용자단말기로부터의 입력을 기초로 프로그램 코드를 자동 생성하는 에디터부를 포함하는 서비스서버;
를 포함하며,
상기 에디터부는,
상기 사용자단말기로부터 선택되어 화면에 배치되는 복수개의 컴포넌트(component)를 포함하는 컴포넌트부;
를 포함하고,
상기 에디터부는,
상기 사용자단말기로부터의 입력에 따라 상기 컴포넌트를 추천하는 컴포넌트추천부를 더 포함하며,
상기 입력은, 음성입력을 포함하고,
상기 컴포넌트추천부는,
상기 음성입력에 따른 음성(音聲)을 분석하여 컴포넌트를 추천하되,
상기 사용자단말기는, 복수개가 구비되고,
상기 복수개의 사용자단말기는, 각각 회의 참석자들의 음성을 입력받는 마이크를 구비하며,
상기 서비스서버는, 복수개의 분산된 상기 마이크로부터 입력받은 음성정보를 통해 음성 녹취록 파일을 생성하는 회의록작성부를 더 포함하고,
상기 회의록작성부는,
상기 복수개의 사용자단말기가 각각 송신한 복수개의 음성정보를 발언시간에 따른 시간의 순서대로 정렬하여 상기 음성 녹취록 파일을 생성하고,
상기 컴포넌트추천부는, 상기 음성 녹취록 파일에 포함된 음성을 분석하여 컴포넌트를 추천하여, 회의상황에서 자동적으로 작성된 음성 녹취록 파일을 기초로 상기 컴포넌트의 추천이 가능한 것을 특징으로 하는, AI 기반 프로그램 자동 생성 시스템. - 삭제
- 청구항 1에 있어서,
상기 입력은, 문장입력을 더 포함하고,
상기 컴포넌트추천부는,
상기 문장입력에 따른 문장을 분석하여 컴포넌트를 추천하는 것을 특징으로 하는, AI 기반 프로그램 자동 생성 시스템. - 삭제
- 청구항 1 또는 청구항 3에 있어서,
상기 서비스서버는,
자동웹서비스배포부를 더 포함하며,
상기 자동웹서비스배포부는,
상기 컴포넌트 배치 시 자동으로 데이터베이스를 생성하는 자동DB생성부; 및
상기 사용자단말기가 설계한 화면의 웹 상 자동배포를 지원하는 자동배포부;를 포함하고,
상기 자동DB생성부는, 행정안전부에서 고시한 공공기관의 데이터 표준화 지침을 활용하여 상기 데이터베이스를 생성하는 것을 특징으로 하는, AI 기반 프로그램 자동 생성 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210080919A KR102324352B1 (ko) | 2021-06-22 | 2021-06-22 | Ai 기반 프로그램 자동 생성 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210080919A KR102324352B1 (ko) | 2021-06-22 | 2021-06-22 | Ai 기반 프로그램 자동 생성 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102324352B1 true KR102324352B1 (ko) | 2021-11-12 |
Family
ID=78487310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210080919A KR102324352B1 (ko) | 2021-06-22 | 2021-06-22 | Ai 기반 프로그램 자동 생성 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102324352B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240012055A (ko) | 2022-07-20 | 2024-01-29 | 뱅크웨어글로벌 주식회사 | Json 형식의 데이터를 이용한 rest api 소스의 자동 생성 장치 및 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010025674A (ko) * | 2001-01-16 | 2001-04-06 | 이기수 | 서버 사이드 스크립트의 자동 생성을 통한 동적인홈페이지 자동 구축 시스템 및 방법 |
KR100962342B1 (ko) | 2009-07-15 | 2010-06-10 | 주식회사 네오패드 | 홈페이지 생성, 등록 및 관리 서비스 제공 시스템 및 방법 |
KR20190061488A (ko) * | 2017-11-28 | 2019-06-05 | 윤종식 | 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법 |
-
2021
- 2021-06-22 KR KR1020210080919A patent/KR102324352B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010025674A (ko) * | 2001-01-16 | 2001-04-06 | 이기수 | 서버 사이드 스크립트의 자동 생성을 통한 동적인홈페이지 자동 구축 시스템 및 방법 |
KR100962342B1 (ko) | 2009-07-15 | 2010-06-10 | 주식회사 네오패드 | 홈페이지 생성, 등록 및 관리 서비스 제공 시스템 및 방법 |
KR20190061488A (ko) * | 2017-11-28 | 2019-06-05 | 윤종식 | 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240012055A (ko) | 2022-07-20 | 2024-01-29 | 뱅크웨어글로벌 주식회사 | Json 형식의 데이터를 이용한 rest api 소스의 자동 생성 장치 및 방법 |
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 | |
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 | |
US10460031B2 (en) | Generating structured meeting reports through semantic correlation of unstructured voice and text data | |
JP6920475B2 (ja) | デジタルビデオコンテンツの修正 | |
US9600457B2 (en) | Meta tag ownership and control | |
US11921889B2 (en) | Selective display of sensitive data | |
WO2020189441A1 (ja) | 情報処理装置、情報処理方法およびプログラム | |
Hopper et al. | YouTube for transcribing and Google Drive for collaborative coding: Cost-effective tools for collecting and analyzing interview data | |
WO2019227429A1 (zh) | 多媒体内容生成方法、装置和设备/终端/服务器 | |
US9830474B2 (en) | Concealing sensitive content from unauthorized users | |
Vicari | Exploring the Cuban blogosphere: Discourse networks and informal politics | |
KR102324352B1 (ko) | Ai 기반 프로그램 자동 생성 시스템 | |
Bock et al. | “Her” Photographer: The Roanoke Live-Shot Murders and Visual Communication's Place in the Newsroom | |
CN108021317B (zh) | 用于屏幕编辑的方法及装置 | |
CN114554131A (zh) | 一种高安全性的智慧屏会议内容分享方法、***及介质 | |
US20130152157A1 (en) | Automatic filtering in social networks | |
CN115686408A (zh) | 用于远程应用程序共享的内容外观转换 | |
Sun et al. | ZoomP3: Privacy-Preserving Publishing of Online Video Conference Recordings | |
Sun | Security and Privacy Solutions for Camera and Camera Based Authentication | |
CN108282486B (zh) | 一种文件***和文件展示方法 | |
Valcarce et al. | Analysis of the application of augmented reality technologies in Spanish mass media productive processes | |
CN112434327A (zh) | 信息保护方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |