KR102347203B1 - 개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법 - Google Patents

개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법 Download PDF

Info

Publication number
KR102347203B1
KR102347203B1 KR1020210163507A KR20210163507A KR102347203B1 KR 102347203 B1 KR102347203 B1 KR 102347203B1 KR 1020210163507 A KR1020210163507 A KR 1020210163507A KR 20210163507 A KR20210163507 A KR 20210163507A KR 102347203 B1 KR102347203 B1 KR 102347203B1
Authority
KR
South Korea
Prior art keywords
information
erd
program code
terminal device
server
Prior art date
Application number
KR1020210163507A
Other languages
English (en)
Inventor
조동건
Original Assignee
조동건
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 조동건 filed Critical 조동건
Priority to KR1020210163507A priority Critical patent/KR102347203B1/ko
Application granted granted Critical
Publication of KR102347203B1 publication Critical patent/KR102347203B1/ko

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/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

프로그램 코드 자동 생성 방법이 제공된다. ERD 정보를 생성하는 단말 장치 및 ERD 정보에 기초하여 프로그램 코드를 생성하는 서버를 이용한 프로그램 코드 자동 생성 방법은, 단말 장치가 ERD 정보를 관리할 수 있는ERD 도구를 이용하여, 제1 데이터 베이스를 생성하고, 제1 데이터 베이스에 기초하여 제1 ERD 정보를 생성하는 단계, 단말 장치가 상기 제1 ERD 정보 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 서버로 전송하는 단계, 서버가 프로그래밍 옵션 정보에 기초하여 제1 ERD 정보에 대응되는 제1 프로그램 코드를 생성하는 단계 및 서버가 상기 생성된 제1 프로그램 코드를 단말 장치로 전송하는 단계를 포함하고, 프로그래밍 옵션 정보는, 단말 장치가 요구하는 프로그래밍 언어 및 코드 유형 중 적어도 하나를 포함하고, 제1 ERD 정보는, 제1 데이터 베이스에 기초하여 생성된 ERD가 제1 데이터 타입으로 저장된 정보일 수 있다.

Description

개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법 {METHOD FOR AUTOMATICALLY GENERATING PROGRAM CODE BASED ON A ENTITY-RELATIONSHIP DIAGRAM INFORMATION}
본 개시는 개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법에 관한 것이다.
최근 많은 분야의 산업 기반이 IT 기술로 재편됨에 따라, IT 기술에 적용되는 소프트웨어를 개발하기 위한 개발자의 수요가 급증하게 되었다. 다만, 현재 소프트웨어를 개발할 수 있는 개발자의 수요 대비 공급은 턱없이 부족한 실정이며, 많은 기업은 만성적으로 개발자 구입난에 시달리고 있다.
이러한 상황에 맞물려, 소프트웨어 개발 자동화의 필요성 및 중요성은 점차 대두되고 있다. 소프트웨어 개발 자동화 기술를 구현하기 위하여 다양한 시도가 존재하였으나, 현재까지 의미있는 개발 자동화 기술은 고안되지 않고 있다.
한편, 데이터 베이스 설계도인 개체-관계 다이어램(entity-relationship diagram, ERD)을 설계하는 것은 고도의 기술적 지식을 요구한다. 따라서, ERD를 설계하는 인력은 보통 각 개발팀에서 가장 경력이 많고 뛰어난 개발자인 경우가 많다.
일본 등록특허공보 제6753598호, 2020.09.09
본 개시가 해결하고자 하는 과제는 개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법을 제공하는 것이다.
본 개시가 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 개시의 일 실시예로, 개체-관계 모델(entity-relationship diagram, ERD) 정보를 생성하는 단말 장치 및 상기 ERD 정보에 기초하여 프로그램 코드를 생성하는 서버를 이용한 프로그램 코드 자동 생성 방법은, 상기 단말 장치가 상기 ERD 정보를 관리할 수 있는 ERD 도구(tool)를 이용하여, 제1 데이터 베이스를 생성하고, 상기 제1 데이터 베이스에 기초하여 제1 ERD 정보를 생성하는 단계, 상기 단말 장치가 상기 제1 ERD 정보 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 상기 서버로 전송하는 단계, 상기 서버가 상기 프로그래밍 옵션 정보에 기초하여 상기 제1 ERD 정보에 대응되는 제1 프로그램 코드를 생성하는 단계 및 상기 서버가 상기 생성된 제1 프로그램 코드를 상기 단말 장치로 전송하는 단계를 포함하고, 상기 프로그래밍 옵션 정보는, 상기 단말 장치가 요구하는 프로그래밍 언어 및 코드 유형 중 적어도 하나를 포함하고, 상기 제1 ERD 정보는, 상기 제1 데이터 베이스에 기초하여 생성된 ERD가 제1 데이터 타입으로 저장된 정보일 수 있다.
그리고, 상기 제1 프로그램 코드를 생성하는 단계는, 상기 서버가 기 저장된 ERD 정보 중 상기 제1 ERD 정보와의 유사도가 임계값을 초과하는 제2 ERD 정보를 식별하는 단계 및 상기 제2 ERD 정보를 통해 생성한 제2 프로그램 코드를 이용하여 상기 제1 프로그램 코드를 생성하는 단계를 포함할 수 있다.
그리고, 상기 제1 프로그램 코드를 생성하는 단계는, 상기 제1 ERD 정보 및 상기 제2 ERD 정보를 비교하는 단계, 상기 제2 ERD 정보 및 상기 제1 ERD 정보 간의 비교 정보에 기초하여, 상기 제2 프로그램 코드 중 상기 제1 프로그램 코드 생성을 위해 변경이 필요한 코드에 대한 정보를 획득하는 단계 및 상기 획득된 변경이 필요한 코드에 대한 정보를 이용하여 상기 제1 프로그램 코드를 생성하는 단계를 포함할 수 있다.
그리고, 상기 제1 ERD 정보를 생성하는 단계는, 상기 단말 장치가, 상기 ERD 도구를 통해, 상기 제1 데이터 베이스에서 테이블 생성과 관련된 SQL(structured query language) 구문을 추출하는 단계 및 상기 추출된 SQL 구문을 이용하여 상기 제1 ERD 정보를 생성하는 단계를 포함할 수 있다.
그리고, 상기 단말 장치는, 상기 ERD 도구를 통해, 사용자로부터 상기 제1 ERD 정보를 생성하기 위한 단어 사전 상에 제1 단어를 추가하거나 기 저장된 제2 단어를 수정하기 위한 제1 명령을 입력받고, 상기 제2 단어를 이용하는 제1 용어 사전, 및 상기 제1 용어 사전을 이용하는 테이블 컬럼(column)을 상기 제1 명령에 기초하여 동기화화할 수 있다.
그리고, 상기 단말 장치는, 상기 ERD 도구를 통해, 상기 사용자로부터 상기 제1 ERD 정보를 생성하기 위한 도메인 사전 상에 제1 도메인을 추가하거나 기 저장된 제2 도메인을 수정하기 위한 제2 명령을 입력받고, 상기 제2 도메인을 이용하는 제2 용어 사전 및 상기 제2 용어 사전을 이용하는 테이블 컬럼을 상기 제2 명령에 기초하여 동기화할 수 있다.
그리고, 상기 단말 장치는, 상기 제1 명령 또는 상기 제2 명령에 기초한 동기화에 의해, 상기 단어 사전, 상기 제1 용어 사전, 상기 제2 용어 사전 및 상기 도메인 사전 상에 중복되는 항목이 있는 경우, 상기 중복되는 항목을 나타내는 오류 메시지를 표시할 수 있다.
그리고, 상기 서버는, 상기 제1 ERD 정보 중 상기 제1 프로그램 코드에 포함된 코드 구문 각각에 대응되는 정보를 시각적으로 나타내는 UI를 생성하여 상기 단말 장치로 제공할 수 있다.
그리고, 하나 이상의 명령을 저장하는 하나 이상의 비-일시적(non-transitory) 컴퓨터 판독가능 매체로서, 상기 하나 이상의 명령은 하나 이상의 프로세서에 의해서 실행되어, 개체-관계 모델(entity-relationship diagram, ERD) 정보에 기초하여 프로그램 코드 자동 생성 방법을 제공하는 서버가: 상기 ERD 정보를 관리할 수 있는 ERD 도구(tool)를 이용하여 생성된 제1 데이터 베이스에 기초하여 생성된 제1 ERD 정보, 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 상기 단말 장치로부터 수신하고, 상기 프로그래밍 옵션 정보에 기초하여 상기 제1 ERD 정보에 대응되는 제1 프로그램 코드를 생성고, 상기 생성된 제1 프로그램 코드를 상기 단말 장치로 전송하고, 상기 프로그래밍 옵션 정보는, 상기 단말 장치가 요구하는 프로그래밍 언어 및 코드 유형 중 적어도 하나를 포함하고, 상기 제1 ERD 정보는, 상기 제1 데이터 베이스에 기초하여 생성된 ERD가 제1 데이터 타입으로 저장된 정보일 수 있다.
그리고, 개체-관계 모델(entity-relationship diagram, ERD) 정보에 기초하여 프로그램 코드 자동 생성 방법을 제공하는 서버에 있어서, 상기 서버는: 무선 신호를 송수신하기 위한 하나 이상의 송수신부(transceiver); 및 상기 하나 이상의 송수신부를 제어하는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는: 상기 ERD 정보를 관리할 수 있는 ERD 도구(tool)를 이용하여 생성된 제1 데이터 베이스에 기초하여 생성된 제1 ERD 정보, 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 단말 장치로부터 상기 하나 이상의 송수신부를 통해 수신하고, 상기 프로그래밍 옵션 정보에 기초하여 상기 제1 ERD 정보에 대응되는 제1 프로그램 코드를 생성하고, 상기 생성된 제1 프로그램 코드를 상기 단말 장치로 상기 하나 이상의 송수신부를 통해 전송하도록 설정되고, 상기 프로그래밍 옵션 정보는, 상기 단말 장치가 요구하는 프로그래밍 언어 및 코드 유형 중 적어도 하나를 포함하고, 상기 제1 ERD 정보는, 상기 제1 데이터 베이스에 기초하여 생성된 ERD가 제1 데이터 타입으로 저장된 정보일 수 있다.
본 개시의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 개시를 통해 개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법이 제공될 수 있다. 구체적으로, 본 개시의 다양한 실시예에 의해, 많은 개발 정보가 포함된 ERD 정보에 기초하여 프로그램 코드가 자동으로 생성됨에 따라, 소프트웨어 개발의 생산성 및 효율성이 증가할 수 있다.
본 개시의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일 실시예에 따른, 프로그램 코드 자동 생성 방법을 구현하는 시스템의 개략도이다.
도 2는 본 개시의 일 실시예에 따른, 프로그램 코드 자동 생성 방법을 설명하기 위한 순서도이다.
도 3은 본 개시의 일 실시예에 따른, ERD 정보의 비교 정보에 기초하여 프로그램 코드를 자동으로 생성하는 방법을 설명하기 위한 순서도이다.
도 4는 본 개시의 일 실시예에 따른, 프로그램 코드를 자동으로 생성하기 위한 단말 장치 및 서버의 동작을 설명하기 위한 시퀀스도이다.
도 5는 본 개시의 일 실시예에 따른, 프로그램 코드를 자동으로 생성하기 위한 단말 장치 및 서버의 구성을 설명하기 위한 블록도이다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시는 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시의 개시가 완전하도록 하고, 본 개시가 속하는 기술 분야의 통상의 기술자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 개시의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
그리고, 본 개시를 설명함에 있어서, 개체-관계 모델(entity-relationship diagram, ERD)은 데이터 베이스 모델링 분야에서 구조화된 데이터를 나타내기 위한 표현 방식을 의미한다. 즉, ERD는 개체(entity) 간의 관계(relation)를 도표로 표현하는 방식을 의미하며, 이를 통해 데이터 베이스를 보다 체계적으로 설계/저장/관리할 수 있다.
이하, 첨부된 도면을 참조하여 본 개시의 실시예를 상세하게 설명한다.
도 1은 본 개시의 일 실시예에 따른, ERD에 기초하여 프로그램 코드를 자동으로 생성하는 방법을 구현하는 시스템의 개략도이다.
도 1에 도시된 바와 같이, 본 개시의 일 실시예에 따른, 프로그램 코드 자동 생성 방법을 구현하는 시스템은, 복수의 사용자(또는, 클라이언트)가 이용하는 단말 장치(200-1, 200-2), 서버(100) 및 서버(100)를 관리하는 관리자가 이용하는 단말 장치(300)를 포함할 수 있다. 복수의 사용자 각각이 이용하는 단말 장치(200-1, 200-2), 서버(100) 및 관리자가 이용하는 단말 장치(300)는 네트워크(W)를 이용하여 통신을 수행할 수 있다.
여기서, 네트워크(W)는 유선 네트워크와 무선 네트워크를 포함할 수 있다. 예를 들어, 무선 네트워크는 근거리 네트워크(LAN: Local Area Network), 도시권 네트워크(MAN: Metropolitan Area Network), 광역 네트워크(WAN: Wide Area Network) 등의 다양한 네트워크를 포함할 수 있다. 다만, 본 개시의 실시예에 따른 네트워크는 상기 열거된 네트워크에 국한되지 않고, 공지의 무선 데이터 네트워크나 공지의 전화 네트워크, 공지의 유무선 텔레비전 네트워크를 적어도 일부로 포함할 수도 있다.
사용자가 이용하는 단말 장치(200-1, 200-2)는, 상기 ERD 정보를 관리할 수 있는 ERD 도구(tool)를 이용하여 데이터 베이스를 생성하고, 데이터 베이스에 기초하여 ERD 정보를 생성할 수 있다. 여기서, ERD 도구는, 데이터 베이스를 설계/관리하고, 상기 데이터 베이스에 기초하여 ERD 정보를 관리(예로, 생성/삭제/추가 등)할 수 있게 지원하는 소프트웨어를 의미한다. ERD 도구는 웹(web) 사이트 기반 소프트웨어로 구현될 수 있으나, 이에 국한되는 것은 아니며, 단말에 설치된 어플리케이션(application) 기반 소프트웨어로 구현될 수 있다.
그리고, 단말 장치(200-1, 200-2)는, 네트워크(W)를 통해, ERD 정보 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 서버(100)로 전송할 수 있다. 각 단말 장치(200-1, 200-2)에 의해 수행되는 동작 및 단말 장치(200-1, 200-2)의 구성은 후술하는 부분에서 구체적으로 설명하도록 한다.
한편, 도 1에는, 제1 사용자 및 제2 사용자가 이용하는 단말 장치(200-1, 200-2)만이 도시되어 있으나 이는 설명의 편의를 위한 것이며, 시스템(1000) 상에는 추가 사용자가 이용하는 단말 장치가 포함될 수 있다.
그리고, 도 1에는 사용자가 이용하는 단말 장치(200-1, 200-2)가 스마트폰으로 구현되고, 서버를 관리하는 장치(300)는 데스크탑으로 구현된 실시예를 도시하고 있다. 다만, 이는 일 실시예에 불과하며, 각 장치는 서버(100)와 각종 데이터를 교환할 수 있는 유형의 기기(예를 들어, 데스크탑 PC, 태블릿 PC, 노트북, 웨어러블 기기 등)로 구현될 수 있다.
서버(100)는 네트워크(W)를 통해 사용자가 이용하는 단말 장치로부터 ERD 정보 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 수신할 수 있다. 그리고, 서버(100)는 네트워크(W)를 통해 ERD 정보에 기초하여 생성한 프로그램 코드를 사용자가 이용하는 단말 장치에 전송할 수 있다.
서버(100)에 의해 수행되는 동작 및 서버(100)의 구성은 후술하는 부분에서 구체적으로 설명하도록 한다.
도 2는 본 개시의 일 실시예에 따른, 프로그램 코드 자동 생성 방법을 설명하기 위한 순서도이다.
단말 장치는, 상기 ERD 정보를 관리할 수 있는 ERD 도구를 이용하여, 제1 데이터 베이스를 생성하고, 제1 데이터 베이스에 기초하여 제1 ERD 정보를 생성할 수 있다(S210).
여기서, ERD 정보를 관리할 수있는 ERD 도구는, 데이터 베이스를 설계/관리하고, 상기 데이터 베이스에 기초하여 ERD 정보를 생성할 수 있게 지원하는 소프트웨어를 의미할 수 있다.
단말은 제1 데이터 베이스에 기초하여 생성한 제1 ERD를 제1 데이터 타입으로 저장함으로써 제1 ERD 정보를 획득할 수 있다. 즉, 단말은 제1 데이터 베이스에 기초하여 생성한 제1 ERD를 자동으로 제1 데이터 타입으로 저장할 수 있다. 여기서, 제1 데이터 타입은, JSON(javascript object notation), xml(eXtensible markup langauge) 등을 포함할 수 있으나, 이에 국한되는 것은 아니다. 즉, 단말은 ERD를 다양한 데이터 타입으로 저장하여 제1 ERD 정보를 획득할 수 있다.
한편, JSON은 자바스크립트에서 주로 사용되는 데이터 형태를 의미하며, Rest API 통신에서 데이터를 다른 장치와 교환할때 사용될 수 있다.
단말 장치는 제1 ERD 정보 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 서버로 전송할 수 있다(S220).
여기서, 프로그래밍 옵션 정보는, 단말 장치가 요구하는 프로그래밍 언어(예로, C#, Java, Python) 및 코드 유형 중 적어도 하나를 포함할 수 있다. 즉, 단말은 제1 ERD 정보에 기초하여 생성할 프로그램 코드에 대한 커스텀(custom) 정보가 포함된 코드 생성 요청 신호를 서버에 전송할 수 있다.
서버는 프로그래밍 옵션 정보에 기초하여 제1 ERD 정보에 대응되는 제1 프로그램 코드를 생성할 수 있다(S230).
여기서, 제1 프로그램 코드는, 하나 이상의 케이스(case)의 코드를 의미할 수 있다. 추후, 단말이 서버로부터 하나 이상의 케이스의 코드를 수신한 경우, 단말의 사용자는 상기 하나 이상의 케이스의 코드 중 최적의 케이스의 코드를 선택하여 작업할 수 있다.
본 개시의 일 실시예로, 서버는, 제1 ERD 정보에 포함된 테이블 각각의 기본키(primary key, PK), 외래키(foreign key, FK), 값 자동 증가(auto increment, AI), 데이터 타입(또는, 도메인) 정보, NULL 값, 인덱스 값, 고유 인덱스 값, 또는 테이블간의 관계 정보 중 적어도 하나를 이용하여, 프로그램 옵션 정보에 따른 프로그램밍 언어에 기반하여 제1 프로그램 코드를 생성할 수 있다.
예를 들어, 서버는 제1 ERD 정보에 포함된 제1 테이블의 데이터 타입을 단말 장치가 요구하는 프로그래밍 언어 타입으로 매핑(또는, 변환)하거나 문자열을 재배열할 수 있다. 그리고, 서버는, 매핑된 프로그래밍 언어 타입 및 지배열된 문자열을 이용하여, 단말 장치가 요구한 프로그래밍 언어에 기초하여 제1 프로그램 코드를 생성할 수 있다.
또 다른 실시예로, 서버는 ERD 정보 및 프로그래밍 옵션 정보에 기초하여 하나 이상의 프로그램 코드를 생성하도록 학습된 인공지능 모델을 이용하여 제1 프로그램 코드를 생성할 수 있다.
예로, 서버는, 특정 ERD 정보에 포함된 테이블 각각의 PK, FK, AI, 데이터 타입(또는, 도메인) 정보, NULL 값, 인덱스 값, 고유 인덱스 값, 또는 테이블간의 관계 정보 등으로 구성된 학습 데이터를 통해, 특정 유형의 프로그램 코드를 출력할 수 있도록 인공 지능 모델을 학습시킬 수 있다.
이 때, 학습 방식은 지도 학습(supervised learning) 방식일 수 있으나 이에 국한되는 것은 아니며, 비 지도 학습 방식일 수도 있다. 서버는 기 학습된 인공 지능 모델에 제1 ERD 정보 및 프로그래밍 옵션 정보를 입력하여 제1 프로그램 코드를 획득할 수 있다.
또 다른 실시예로, 제1 프로그램 코드를 생성한 후 또는 생성하는 동안, 서버는 제1 ERD 정보 중 제1 프로그램 코드에 포함된 코드 구문 각각에 대응되는 정보를 시각적으로 나타내는 UI를 생성할 수 있다.
구체적으로, 서버는 제1 프로그램 코드 중 특정 구문이 제1 ERD 정보 중 어떤 정보에 기초하여 생성되었는지를 시각적으로 나타내는 UI를 생성할 수 있다.
예를 들어, 제1 프로그램 코드 중 제1 구문이 제1 ERD 정보 중 제1 테이블과 관련된 정보에 기초하여 생성된 경우, 상기 UI에는 제1 구문과 제1 테이블과 관련된 정보는 동일한 색으로 하이라이트 처리될 수 있다.
서버는 제1 프로그램 코드를 단말 장치로 전송할 수 있다(S240). 이 때, 서버는 제1 프로그램 코드와 함께 제1 프로그램 코드 중 특정 구문이 제1 ERD 정보 중 어떤 정보에 기초하여 생성되었는지를 시각적으로 나타내는 UI를 단말 장치로 전송할 수 있다.
단말 장치는 서버로부터 수신된 제1 프로그램 코드에 기반하여 제1 프로그램의 실제 설계를 위한 코드를 자동으로 생성할 수 있다. 예를 들어, 제1 프로그램 코드(예로, 테스트 데이터)에는 제1 프로그램 코드의 실제 설계를 위한 힌트/단서가 될 수 있는 데이터가 포함될 수 있다. 단말 장치는 힌트/단서가 될 수 있는 데이터를 이용하여 제1 프로그램의 실제 설계를 위한 코드를 생성할 수 있다.
한편, 도 2는 서버가 제1 프로그램 코드를 생성하여 단말 장치에 전송하는 실시예를 도시하고 있으나 이에 국한되는 것은 아니다. 본 개시의 또 다른 실시예로, 단말 장치는 ERD 도구를 통해 획득된 제1 ERD 정보를 이용하여 제1 프로그램 코드를 생성할 수도 있다. 서버가 제1 ERD 정보에 기반하여 제1 프로그램 코드를 생성하는 상술된 방식과 같이, 단말 장치는 제1 프로그램 코드를 생성할 수도 있다.
도 3은 본 개시의 일 실시예에 따른, ERD 정보의 비교 정보에 기초하여 프로그램 코드를 자동으로 생성하는 방법을 설명하기 위한 순서도이다. 구체적으로, 도 3은 서버가 기 저장된 ERD 정보를 활용하여 새로 입력된 ERD에 대응되는 프로그램 코드를 생성하는 과정을 설명한 순서도이다.
서버는 기 저장된 하나 이상의 ERD 정보 중 제1 ERD 정보와의 유사도가 임계값을 초과하는 제2 ERD 정보를 식별할 수 있다(S310).
예를 들어, 서버는 기 저장된 하나 이상의 ERD 정보 및 제1 ERD 정보 간 각각에 포함된 테이블 각각의 PK, FK, AI, 데이터 타입(또는, 도메인) 정보, NULL 값, 인덱스 값, 고유 인덱스 값, 또는 테이블간의 관계 정보를 비교하여 유사도를 산출할 수 있다.
기 저장된 하나 이상의 ERD 정보 중 제1 ERD 정보와의 유사도가 임계값을 초과하는 ERD 정보가 복수인 경우, 서버는 상기 복수의 ERD 정보 중 유사도가 가장 높은 ERD 정보를 제2 ERD 정보로 식별할 수 있다.
서버는 제1 ERD 정보와 식별된 제2 ERD 정보를 비교할 수 있다(S320). 예를 들어, 서버는 제1 ERD 정보와 제2 ERD 정보에 포함된 테이블 각각의 PK, FK, AI, 데이터 타입 정보 등에 대한 차이점 및 공통점을 식별할 수 있다.
서버는, 제2 ERD 정보 및 제1 ERD 정보 간의 비교 정보에 기초하여, 제2 프로그램 코드 중 변경이 필요한 코드에 대한 정보를 획득할 수 있다(S330).
여기서, 제2 ERD 정보 및 제1 ERD 정보 간의 비교 정보는, 제1 ERD 정보와 제2 ERD 정보에 포함된 테이블 각각의 PK, FK, AI, 데이터 타입 정보 등에 대한 차이점 및 공통점을 포함할 수 있다.
서버는, 제2 ERD 정보 및 상기 제1 ERD 정보 간의 비교 정보에 기초하여, 제2 ERD 정보를 통해 생성된 제2 프로그램 코드 중 변경이 필요한 코드에 대한 정보를 획득할 수 있다(S330).
예를 들어, 서버는 제1 ERD 정보 및 제2 ERD 정보 각각에 포함된 테이블의 PK, FK, AI, 데이터 타입 정보 등에 대한 차이점을 이용하여 제2 프로그램 코드 중 제1 프로그램 코드 생성을 위해 변경이 필요한 구문을 식별할 수 있다.
서버는 획득된 변경이 필요한 코드에 대한 정보를 이용하여 제1 프로그램 코드를 생성할 수 있다(S340). 즉, 서버는 비교 정보에 기초하여 기 생성된 제2 프로그램 코드 중 변경할 부분을 식별하고, 식별한 부분만을 변경함으로써 프로그램 코드를 생성하는 시간을 단축시킬 수 있다.
도 4는 본 개시의 일 실시예에 따른, 프로그램 코드를 자동으로 생성하기 위한 단말 장치 및 서버의 동작을 설명하기 위한 시퀀스도이다.
단말 장치(200-1)는 ERD 정보를 관리할 수 있는 ERD 도구를 이용하여 제1 데이터 베이스를 생성할 수 있다(S410).
단말 장치(200-1)는 상기 ERD 도구를 이용하여 제1 데이터 베이스에 기초하여 제1 ERD 정보를 생성할 수 있다(S420).
구체적으로, 단말 장치(200-1)는 제1 데이터 베이스에서 테이블 생성과 관련된 SQL(structured query language) 구문을 추출할 수 있다. 그리고 단말 장치(200-1)는 추출된 SQL 구문을 이용하여 제1 ERD 정보를 생성할 수 있다. 즉, 단말 장치(200-1)는 SQL 구문을 이용하여 ERD를 자동 생성(또는, reverse enginerring)할 수 있다.
단말 장치(200-1)는 다양한 방식으로 SQL 구문에 기반하여 ERD를 자동으로 생성할 수 있다.
예를 들어, 단말 장치는 SQL 구문 상에서 여러 의미로 사용될 수 있는 명령어(command)를 고유 문자로 치환할 수 있다. 그리고, 단말 장치(200-1)는 SQL 구문에서 기능 단위를 토큰(token)으로 설정(즉, 토큰화(tokenizer)할 수 있다. 즉, 단말 장치(200-1)는 SQL 구문을 특정 기능을 토큰 단위로 추출할 수 있다.
그리고, 단말 장치(200-1)는 SQL 구문에 대한 뎁스(depth) 값을 산출할 수 있다. 예로, 단말 장치(200-1)는 상기 SQL 구문을 명령어인지 문자열인지 구분하기 위해 뎁스 값을 산출할 수 있다. 단말 장치(200-1)는 상기 SQL 구문이 문자열의 시작과 끝인지 또는 문자열 그 자체인지 여부를 구분할 수 있다. 단말 장치(200-1)는 따옴표(')의 개수를 계수로 간주할 수 있다. 그리고, 단말 장치(200-1)는 동일 뎁스값을 가진 구문은 동일 시점(parallel)으로 처리할 수 있다.
단말 장치(200-1)는 SQL 구문을 분석하여 테이블 및 컬럼을 생성할 수 있다. 예로, 단말 장치(200-1)는 SQL 구문을 분석하여 PK, FK, AI, 데이터 타입 정보 등과 같은 파라미터를 추출하고, 추출된 파라미터에 기반하여 ERD 정보를 구성하는 테이블 및 컬럼을 생성할 수 있다.
본 개시의 또 다른 실시예로, 단말 장치(200-1)는, ERD 정보를 관리할 수 있는 ERD 도구를 통해, 제1 ERD 정보를 생성하기 위한 (표준) 단어 사전, (표준) 용어 사전 및 (표준) 타입(또는, 도메인 사전)을 관리할 수 있다.
여기서, 단어 사전은 특정 프로젝트에서 사용되며 일정한 의미를 가지는 최소 단위의 단어를 정의한 사전을 의미한다. 용어 사전은 특정 프로젝트에서 사용되는 단어의 조합인 용어를 정의한 사전을 의미한다. 도메인 사전은 특정 속성에 대해 정의된 조건을 만족시키는 값의 범위인 도메인을 정의한 사전을 의미한다.
본 개시의 일 실시예로, 단말 장치(200-1)는, ERD 정보를 관리할 수 있는 ERD 도구를 통해, 사용자로부터 제1 ERD 정보를 생성하기 위한 단어 사전 상에 제1 단어를 추가하거나 (단어 사전 상에) 기 저장된 제2 단어를 수정하기 위한 제1 명령을 입력받을 수 있다. 이 때, 단말 장치(200-1)는, 제1 단어 또는 제2 단어를 이용하는 제1 용어 사전, 및 제1 용어 사전을 이용하는 테이블 컬럼(column)을 제1 명령에 기초하여 동기화할 수 있다. 즉, 단말은, 제2 단어를 이용하는 제1 용어 사전, 및 제1 용어 사전을 이용하는 테이블 컬럼 상에, 제2 단어를 제1 명령에 따라 수정하고 제1 단말을 추가할 수 있다.
본 개시의 또 다른 실시예로, 단말 장치(200-1)는, ERD 정보를 관리할 수 있는 ERD 도구를 통해, 사용자로부터 제1 ERD 정보를 생성하기 위한 도메인 사전 상에 제1 도메인을 추가하거나 (도메인 사전 상에) 기 저장된 제2 도메인을 수정하기 위한 제2 명령을 입력받을 수 있다. 이 때, 단말 장치(200-1)는, 제2 도메인을 이용하는 제2 용어 사전 및 제2 용어 사전을 이용하는 테이블 컬럼을 제2 명령에 기초하여 동기화할 수 있다. 즉, 단말은, 제2 도메인을 이용하는 제2 용어 사전, 및 제2 용어 사전을 이용하는 테이블 컬럼 상에, 제2 도메인을 제2 명령에 따라 수정하고 제1 도메인을 추가할 수 있다.
본 개시의 또 다른 실시예로, 단말 장치(200-1)는, 상기 제1 명령 또는 상기 제2 명령에 기초한 동기화에 의해, 단어 사전, 제1 용어 사전, 제2 용어 사전 및 도메인 사전 상에 중복되는 항목이 있는 경우, 중복되는 항목을 나타내는 오류 메시지를 표시할 수 있다.
단말 장치(200-1)는 제1 ERD 정보 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 서버(100)로 전송할 수 있다(S430).
프로그램 코드 생성 요청 신호가 수신되면, 서버(100)는 프로그래밍 옵션 정보에 기초하여 제1 프로그램 코드를 생성할 수 있다(S440).
서버는 제1 프로그램 코드를 단말 장치(200-1)로 전송할 수 있다(S450). 이 때, 서버는 제1 프로그램 코드와 함께 제1 프로그램 코드 중 특정 구문이 제1 ERD 정보 중 어떤 정보에 기초하여 생성되었는지를 시각적으로 나타내는 UI를 단말 장치로 전송할 수 있다.
단말 장치(200-1)는 제1 프로그램 코드에 기초하여 프로그램을 빌드(build)할 수 있다(S460).
도 5는 본 개시의 일 실시예에 따른, 프로그램 코드를 자동으로 생성하기 위한 서버(100) 및 단말 장치(200-1)의 구성을 설명하기 위한 블록도이다. 도 5에 도시된 바와 같이, 서버(100)는 메모리(110), 통신부(120) 및 프로세서(130)를 포함하고, 단말 장치(200-1)는 메모리(210), 통신부(220) 및 프로세서(230)가 포함될 수 있다. 다만, 이에 국한되는 것은 아니며, 서버(100) 및 단말 장치(200-1)는 필요한 동작에 따라 당업자 관점에서 자명한 범위 내에서 소프트웨어 및 하드웨어 구성이 포함될 수 있다.
서버의 메모리(110)에는 ERD 정보에 기초하여 프로그램 코드를 생성하기 위한 소프트웨어가 저장될 수 있다. 또한, 메모리(110)에는 단말 장치(200-1)로부터 수신된 ERD 정보 및 상기 ERD 정보에 기초하여 생성된 프로그램 코드가 저장될 수 있다.
통신부(120)는 단말 장치(200-1) 또는 서버(100)를 관리하기 위한 단말 장치와 데이터 또는 신호를 교환할 수 있다. 예를 들어, 통신부(120)는 단말 장치(200-1)로부터 프로그램 코드 생성 요청 신호를 수신할 수 있다.
프로세서(130)는 메모리(110)와 전기적으로 연결되어 서버(100)의 전반적인 동작 및 기능을 제어할 수 있다. 도 2 내지 도 4를 참조하며 설명한 서버(100)의 전반적인 동작 및 기능은 프로세서(130)에 의해 구현될 수 있다.
단말 장치(200-1)의 메모리(210)에는 단말 장치(200-1)가 각종 기능 및 동작을 수행하기 위해 필요한 데이터가 저장될 수 있다.
통신부(220)는 서버(100)와 데이터 또는 신호를 교환할 수 있다. 예를 들어, 통신부(220)는 서버(100)로 프로그램 코드 생성 요청 신호를 수신할 수 있다.
프로세서(230)는 메모리(210)와 전기적으로 연결되어 단말 장치(200-1)의 전반적인 동작 및 기능을 제어할 수 있다. 도 2 내지 도 4를 참조하며 설명한 단말 장치(200-1)의 전반적인 동작 및 기능은 프로세서(230)에 의해 구현될 수 있다.
본 개시의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
이상, 첨부된 도면을 참조로 하여 본 개시의 실시예를 설명하였지만, 본 개시가 속하는 기술분야의 통상의 기술자는 본 개시가 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100 : 서버
200-1, 200-2: 단말 장치

Claims (10)

  1. 개체-관계 모델(entity-relationship diagram, ERD) 정보를 생성하는 단말 장치 및 상기 ERD 정보에 기초하여 프로그램 코드를 생성하는 서버를 이용한 프로그램 코드 자동 생성 방법에 있어서,
    상기 단말 장치가 상기 ERD 정보를 관리할 수 있는 ERD 도구(tool)를 이용하여, 제1 데이터 베이스를 생성하고, 상기 제1 데이터 베이스에 기초하여 제1 ERD 정보를 생성하는 단계;
    상기 단말 장치가 상기 제1 ERD 정보 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 상기 서버로 전송하는 단계;
    상기 서버가 상기 프로그래밍 옵션 정보에 기초하여 상기 제1 ERD 정보에 대응되는 제1 프로그램 코드를 생성하는 단계; 및
    상기 서버가 상기 생성된 제1 프로그램 코드를 상기 단말 장치로 전송하는 단계;를 포함하고,
    상기 프로그래밍 옵션 정보는, 상기 단말 장치가 요구하는 프로그래밍 언어 및 코드 유형 중 적어도 하나를 포함하고,
    상기 제1 ERD 정보는, 상기 제1 데이터 베이스에 기초하여 생성된 ERD가 제1 데이터 타입으로 저장된 정보인, 프로그램 코드 자동 생성 방법.
  2. 제1항에 있어서,
    상기 제1 프로그램 코드를 생성하는 단계는,
    상기 서버가 기 저장된 ERD 정보 중 상기 제1 ERD 정보와의 유사도가 임계값을 초과하는 제2 ERD 정보를 식별하는 단계; 및
    상기 제2 ERD 정보를 통해 생성한 제2 프로그램 코드를 이용하여 상기 제1 프로그램 코드를 생성하는 단계;를 포함하는, 프로그램 코드 자동 생성 방법.
  3. 제2항에 있어서,
    상기 제1 프로그램 코드를 생성하는 단계는,
    상기 제1 ERD 정보 및 상기 제2 ERD 정보를 비교하는 단계;
    상기 제2 ERD 정보 및 상기 제1 ERD 정보 간의 비교 정보에 기초하여, 상기 제2 프로그램 코드 중 상기 제1 프로그램 코드 생성을 위해 변경이 필요한 코드에 대한 정보를 획득하는 단계; 및
    상기 획득된 변경이 필요한 코드에 대한 정보를 이용하여 상기 제1 프로그램 코드를 생성하는 단계;를 포함하는, 프로그램 코드 자동 생성 방법.
  4. 제1항에 있어서,
    상기 제1 ERD 정보를 생성하는 단계는,
    상기 단말 장치가, 상기 ERD 도구를 통해, 상기 제1 데이터 베이스에서 테이블 생성과 관련된 SQL(structured query language) 구문을 추출하는 단계; 및
    상기 추출된 SQL 구문을 이용하여 상기 제1 ERD 정보를 생성하는 단계;를 포함하는, 프로그램 코드 자동 생성 방법.
  5. 제1항에 있어서,
    상기 단말 장치는, 상기 ERD 도구를 통해, 사용자로부터 상기 제1 ERD 정보를 생성하기 위한 단어 사전 상에 제1 단어를 추가하거나 기 저장된 제2 단어를 수정하기 위한 제1 명령을 입력받는 단계; 및
    상기 단말 장치는, 상기 제2 단어를 이용하는 제1 용어 사전, 및 상기 제1 용어 사전을 이용하는 테이블 컬럼(column)을 상기 제1 명령에 기초하여 동기화하는 단계;를 더 포함하는, 프로그램 코드 자동 생성 방법.
  6. 제5항에 있어서,
    상기 단말 장치는, 상기 ERD 도구를 통해, 상기 사용자로부터 상기 제1 ERD 정보를 생성하기 위한 도메인 사전 상에 제1 도메인을 추가하거나 기 저장된 제2 도메인을 수정하기 위한 제2 명령을 입력받는 단계; 및
    상기 단말 장치는, 상기 제2 도메인을 이용하는 제2 용어 사전 및 상기 제2 용어 사전을 이용하는 테이블 컬럼을 상기 제2 명령에 기초하여 동기화하는 단계;를 더 포함하는, 프로그램 코드 자동 생성 방법.
  7. 제6항에 있어서,
    상기 단말 장치는, 상기 제1 명령 또는 상기 제2 명령에 기초한 동기화에 의해, 상기 단어 사전, 상기 제1 용어 사전, 상기 제2 용어 사전 및 상기 도메인 사전 상에 중복되는 항목이 있는 경우, 상기 중복되는 항목을 나타내는 오류 메시지를 표시하는 단계;를 더 포함하는, 프로그램 코드 자동 생성 방법.
  8. 제1항에 있어서,
    상기 서버는, 상기 제1 ERD 정보 중 상기 제1 프로그램 코드에 포함된 코드 구문 각각에 대응되는 정보를 시각적으로 나타내는 UI를 생성하여 상기 단말 장치로 제공하는 단계;를 더 포함하는, 프로그램 코드 자동 생성 방법.
  9. 하나 이상의 명령을 저장하는 하나 이상의 비-일시적(non-transitory) 컴퓨터 판독가능 매체로서,
    상기 하나 이상의 명령은 하나 이상의 프로세서에 의해서 실행되어, 개체-관계 모델(entity-relationship diagram, ERD) 정보에 기초하여 프로그램 코드 자동 생성 방법을 제공하는 서버가:
    상기 ERD 정보를 관리할 수 있는 ERD 도구(tool)를 이용하여 생성된 제1 데이터 베이스에 기초하여 생성된 제1 ERD 정보, 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 단말 장치로부터 수신하고,
    상기 프로그래밍 옵션 정보에 기초하여 상기 제1 ERD 정보에 대응되는 제1 프로그램 코드를 생성하고,
    상기 생성된 제1 프로그램 코드를 상기 단말 장치로 전송하고,
    상기 프로그래밍 옵션 정보는, 상기 단말 장치가 요구하는 프로그래밍 언어 및 코드 유형 중 적어도 하나를 포함하고,
    상기 제1 ERD 정보는, 상기 제1 데이터 베이스에 기초하여 생성된 ERD가 제1 데이터 타입으로 저장된 정보인, 컴퓨터 판독가능 매체.
  10. 개체-관계 모델(entity-relationship diagram, ERD) 정보에 기초하여 프로그램 코드 자동 생성 방법을 제공하는 서버에 있어서, 상기 서버는:
    무선 신호를 송수신하기 위한 하나 이상의 송수신부(transceiver); 및
    상기 하나 이상의 송수신부를 제어하는 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는:
    상기 ERD 정보를 관리할 수 있는 ERD 도구(tool)를 이용하여 생성된 제1 데이터 베이스에 기초하여 생성된 제1 ERD 정보, 및 프로그래밍 옵션 정보가 포함된 프로그램 코드 생성 요청 신호를 단말 장치로부터 상기 하나 이상의 송수신부를 통해 수신하고,
    상기 프로그래밍 옵션 정보에 기초하여 상기 제1 ERD 정보에 대응되는 제1 프로그램 코드를 생성하고,
    상기 생성된 제1 프로그램 코드를 상기 단말 장치로 상기 하나 이상의 송수신부를 통해 전송하도록 설정되고,
    상기 프로그래밍 옵션 정보는, 상기 단말 장치가 요구하는 프로그래밍 언어 및 코드 유형 중 적어도 하나를 포함하고,
    상기 제1 ERD 정보는, 상기 제1 데이터 베이스에 기초하여 생성된 ERD가 제1 데이터 타입으로 저장된 정보인, 서버.
KR1020210163507A 2021-11-24 2021-11-24 개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법 KR102347203B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210163507A KR102347203B1 (ko) 2021-11-24 2021-11-24 개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210163507A KR102347203B1 (ko) 2021-11-24 2021-11-24 개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법

Publications (1)

Publication Number Publication Date
KR102347203B1 true KR102347203B1 (ko) 2022-01-03

Family

ID=79348560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210163507A KR102347203B1 (ko) 2021-11-24 2021-11-24 개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법

Country Status (1)

Country Link
KR (1) KR102347203B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160108306A (ko) * 2014-01-10 2016-09-19 시암벨라 리미티드 자동 장치 프로그램 생성을 위한 방법 및 장치
KR20160117965A (ko) * 2015-04-01 2016-10-11 삼성에스디에스 주식회사 NoSQL 모델 생성 방법 및 그 장치
KR102099069B1 (ko) * 2020-02-27 2020-04-08 김기창 하이브리드 erd 관리 시스템 및 그 방법
KR20210012400A (ko) * 2019-07-25 2021-02-03 여승기 프로그래밍 코드 자동생성을 통한 백엔드 구축 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160108306A (ko) * 2014-01-10 2016-09-19 시암벨라 리미티드 자동 장치 프로그램 생성을 위한 방법 및 장치
KR20160117965A (ko) * 2015-04-01 2016-10-11 삼성에스디에스 주식회사 NoSQL 모델 생성 방법 및 그 장치
KR20210012400A (ko) * 2019-07-25 2021-02-03 여승기 프로그래밍 코드 자동생성을 통한 백엔드 구축 방법
KR102099069B1 (ko) * 2020-02-27 2020-04-08 김기창 하이브리드 erd 관리 시스템 및 그 방법

Similar Documents

Publication Publication Date Title
US11036774B2 (en) Knowledge-based question answering system for the DIY domain
US20220207067A1 (en) User-customized question-answering system based on knowledge graph
US20180210883A1 (en) System for converting natural language questions into sql-semantic queries based on a dimensional model
US20200265103A1 (en) Systems and methods for issue tracking systems
US9785725B2 (en) Method and system for visualizing relational data as RDF graphs with interactive response time
CN105378721A (zh) 知识捕获和发现系统
CN112434059B (zh) 数据处理方法、装置、计算机设备和存储介质
CN104252533A (zh) 搜索方法和搜索装置
US9646004B2 (en) Hierarchical database report generation with automated query generation for placeholders
KR20200014047A (ko) 시맨틱 트리플 기반의 지식 확장 시스템, 방법 및 컴퓨터 프로그램
KR101009924B1 (ko) 온톨로지 스키마와 결합된 개체명 사전 및 마이닝 규칙을 이용한 개체명 사전 또는 마이닝 규칙 데이터베이스 갱신 장치 및 방법
JPWO2009087996A1 (ja) 情報抽出装置及び情報抽出システム
US11651017B2 (en) Method and apparatus for the conversion and display of data
CN111553138B (zh) 用于规范内容结构文档的辅助写作方法及装置
KR102347203B1 (ko) 개체-관계 다이어그램 정보에 기초한 프로그램 코드 자동 생성 방법
CN101853314A (zh) 语义Web服务的自动生成系统
JP2019121060A (ja) 生成プログラム、生成方法及び情報処理装置
CN116861708A (zh) 生产设备多维模型构建方法及装置
US9471650B2 (en) System and method for contextual workflow automation
KR20130131657A (ko) 브랜드 네이밍 방법 및 네이밍 시스템, 그 기록매체
KR102417131B1 (ko) 쿼리기반 딥러닝 기계학습 시스템
KR102646588B1 (ko) 맞춤형 지식 그래프 생성을 위한 시스템 및 방법
KR102492008B1 (ko) 회의록 관리 방법 및 장치
CN112836023A (zh) 一种基于知识图谱的问答方法及装置
CN114741526B (zh) 一种网络空间安全领域知识图谱云平台

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant