KR102612934B1 - System, server and method for automatically generating stacked code based on tree structure infomation - Google Patents

System, server and method for automatically generating stacked code based on tree structure infomation Download PDF

Info

Publication number
KR102612934B1
KR102612934B1 KR1020230121671A KR20230121671A KR102612934B1 KR 102612934 B1 KR102612934 B1 KR 102612934B1 KR 1020230121671 A KR1020230121671 A KR 1020230121671A KR 20230121671 A KR20230121671 A KR 20230121671A KR 102612934 B1 KR102612934 B1 KR 102612934B1
Authority
KR
South Korea
Prior art keywords
project
information
tree structure
structure information
node
Prior art date
Application number
KR1020230121671A
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 KR1020230121671A priority Critical patent/KR102612934B1/en
Application granted granted Critical
Publication of KR102612934B1 publication Critical patent/KR102612934B1/en

Links

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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

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

Abstract

본 발명에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 방법은 클라이언트 단말로부터 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 소정 형태의 트리 구조 정보를 수신하는 단계; 적층식 자동 코드 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성하는 단계; 상기 구조체 정보에 기초하여 상기 설계 대상 소프트웨어에 상응하는 프로젝트 및 소스코드를 생성하는 단계; 및 상기 생성된 프로젝트 및 소스코드를 상기 클라이언트 단말로 전송하는 단계를 포함한다.A method for automatically generating a stacked code based on tree structure information according to the present invention includes the steps of receiving tree structure information in a predetermined form including structure information and logic information of software to be designed from a client terminal; generating structure information from the tree structure information based on a stacked automatic code generation algorithm; generating a project and source code corresponding to the design target software based on the structure information; and transmitting the generated project and source code to the client terminal.

Description

트리 구조 정보 기반의 적층식 코드 자동 생성 시스템, 서버 및 방법{SYSTEM, SERVER AND METHOD FOR AUTOMATICALLY GENERATING STACKED CODE BASED ON TREE STRUCTURE INFOMATION}System, server, and method for automatically generating stacked code based on tree structure information {SYSTEM, SERVER AND METHOD FOR AUTOMATICALLY GENERATING STACKED CODE BASED ON TREE STRUCTURE INFOMATION}

본 발명은 트리 구조 정보 기반의 적층식 코드 자동 생성 시스템, 서버 및 방법에 관한 것으로, 특히 국방 관련 장비 예를 들어 전차, 함정 등을 제어하기 위한 소프트웨어를 개발하는 과정에서 코드 작성, 수정 및 유지 관리를 효율적으로 수행할 수 있도록 한다.The present invention relates to a system, server, and method for automatically generating stacked codes based on tree structure information, particularly for code creation, modification, and maintenance in the process of developing software for controlling defense-related equipment, such as tanks and ships. to be able to perform efficiently.

종래의 코드 작성 및 관리 기술은 주로 텍스트 기반의 접근 방식을 사용하여 소프트웨어를 개발하는 것을 말한다. 이 방식은 개발자가 코드의 명령어와 구문을 기억하고, 이를 기반으로 소스 코드를 일일이 작성해야 하는 단점이 있다. 또한, 이러한 코드는 가독성이 낮아지기 쉬우며, 재사용성과 유지 관리성이 떨어질 수 있어 소프트웨어 개발에 많은 시간과 비용이 소요될 수 있다.Conventional code writing and management techniques primarily refer to using text-based approaches to develop software. This method has the disadvantage of requiring the developer to remember the commands and syntax of the code and write the source code one by one based on them. Additionally, such code is likely to be less readable and less reusable and maintainable, which can result in software development taking a lot of time and money.

이러한 한계를 극복하기 위해 일부 종래 기술은 시각적 프로그래밍 환경을 제공하여 개발자가 코드를 작성하는 데 사용자 인터페이스를 활용하는 방식을 도입하였다. 이러한 환경에서는 프로그램의 기능을 구현하기 위해 블록이나 구성 요소를 시각적으로 배치하고, 이들을 연결하여 프로그램의 구조와 동작을 시각화할 수 있다. 하지만, 이러한 방식은 주로 단순한 프로젝트나 교육용으로 사용되며, 복잡한 프로젝트에는 제한된 기능을 제공하거나 확장성 문제가 발생할 수 있다.To overcome these limitations, some prior technologies have introduced a method in which developers utilize a user interface to write code by providing a visual programming environment. In this environment, blocks or components can be visually arranged to implement program functions, and the structure and operation of the program can be visualized by connecting them. However, this method is mainly used for simple projects or educational purposes, and may provide limited functionality or cause scalability problems in complex projects.

또한, 종래 기술 중에서는 코드 생성 도구를 활용하여 개발자가 작성한 프로그램 설계를 기반으로 소스 코드를 자동으로 생성하는 방식도 존재한다. 이러한 도구는 주로 템플릿 기반의 접근 방식을 사용하여 작동한다. 개발자는 미리 정의된 템플릿을 선택하거나 수정하여 코드를 생성한다. 하지만, 이러한 접근 방식은 템플릿이 제공하는 기능과 구조에 제한을 받아, 개발자가 자신의 요구에 맞게 코드를 수정하거나 확장하기 어려울 수 있다.Additionally, among conventional technologies, there is also a method of automatically generating source code based on a program design created by a developer using a code generation tool. These tools primarily work using a template-based approach. Developers generate code by selecting or modifying predefined templates. However, this approach is limited by the functionality and structure provided by the template, making it difficult for developers to modify or extend the code to suit their needs.

이처럼 기존의 소프트웨어 개발 기술들은 효율성과 유연성 면에서 한계가 있으며, 이로 인해 복잡한 프로젝트나 변화하는 요구사항에 대응하기 어려울 수 있다. As such, existing software development technologies have limitations in terms of efficiency and flexibility, which can make it difficult to respond to complex projects or changing requirements.

본 발명이 해결하고자 하는 과제는 노드 간 상호작용을 표현하는 트리 구조 정보를 통해 코드의 재사용성과 모듈화를 향상시키면서 각 노드에 대한 소스코드를 자동으로 생성할 수 있는, 트리 구조 정보 기반의 적층식 코드 자동 생성 시스템, 서버 및 방법에 관한 것이다.The problem that the present invention aims to solve is a layered code based on tree structure information that can automatically generate source code for each node while improving code reusability and modularity through tree structure information expressing interactions between nodes. It relates to an automatic generation system, server, and method.

다만, 본 발명이 해결하고자 하는 과제는 상기된 바와 같은 과제로 한정되지 않으며, 또다른 과제들이 존재할 수 있다.However, the problem to be solved by the present invention is not limited to the problems described above, and other problems may exist.

상술한 과제를 해결하기 위한 본 발명의 제1 측면에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 방법은 클라이언트 단말로부터 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 소정 형태의 트리 구조 정보를 수신하는 단계; 적층식 자동 코드 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성하는 단계; 상기 구조체 정보에 기초하여 상기 설계 대상 소프트웨어에 상응하는 프로젝트 및 소스코드를 생성하는 단계; 및 상기 생성된 프로젝트 및 소스코드를 상기 클라이언트 단말로 전송하는 단계를 포함한다.The method of automatically generating a stacked code based on tree structure information according to the first aspect of the present invention to solve the above-described problem includes receiving tree structure information in a predetermined form including structure information and logic information of the software to be designed from a client terminal. steps; generating structure information from the tree structure information based on a stacked automatic code generation algorithm; generating a project and source code corresponding to the design target software based on the structure information; and transmitting the generated project and source code to the client terminal.

본 발명의 일부 실시예에 있어서, 상기 클라이언트 단말로부터 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 소정 형태의 트리 구조 정보를 수신하는 단계는, 상기 클라이언트 단말로부터 JSON 타입으로 변환된 상기 트리 구조 정보를 수신할 수 있다.In some embodiments of the present invention, the step of receiving tree structure information in a predetermined form including structure information and logic information of the software to be designed from the client terminal includes the tree structure information converted to JSON type from the client terminal. can receive.

본 발명의 일부 실시예에 있어서, 상기 트리 구조 정보는 상기 설계 대상 소프트웨어를 대표하는 최상위 노드인 프로젝트 노드와, 상기 프로젝트 노드의 하위 노드인 프로젝트 설정 노드 및 클래스 노드와, 상기 프로젝트 설정 노드의 하위 노드인 릴리즈 노드 및 디버그 노드와, 상기 클래스 노드의 하위 노드인 헤더 파일 노드 및 소스 파일 노드를 포함할 수 있다.In some embodiments of the present invention, the tree structure information includes a project node that is the highest node representing the design target software, a project setting node and a class node that are lower nodes of the project node, and lower nodes of the project setting node. It may include an in-release node and a debug node, and a header file node and a source file node that are child nodes of the class node.

본 발명의 일부 실시예에 있어서, 상기 적층식 자동 코드 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성하는 단계는, 상기 트리 구조 정보에 기초하여 프로젝트 템플릿 데이터 구조체를 생성하는 단계; 상기 프로젝트 템플릿 데이터 구조체 내 포함된 프로젝트 설정 정보에 기초하여 프로젝트 설정 데이터 구조체를 생성하는 단계; 및 상기 트리 구조 정보로부터 추출된 클래스 및 함수 정보에 기초하여 클래스 템플릿 데이터 구조체 및 함수 템플릿 데이터 구조체를 생성하는 단계를 포함할 수 있다.In some embodiments of the present invention, generating structure information from the tree structure information based on the stacked automatic code generation algorithm includes generating a project template data structure based on the tree structure information; generating a project setting data structure based on project setting information included in the project template data structure; and generating a class template data structure and a function template data structure based on class and function information extracted from the tree structure information.

본 발명의 일부 실시예에 있어서, 상기 트리 구조 정보에 기초하여 프로젝트 템플릿 데이터 구조체를 생성하는 단계는, 상기 프로젝트의 이름, 지원 플랫폼 버전 및 상기 프로젝트 설정 정보를 포함하는 프로젝트 템플릿 데이터 구조체를 생성할 수 있다.In some embodiments of the present invention, the step of generating a project template data structure based on the tree structure information may generate a project template data structure including the name of the project, the supported platform version, and the project setting information. there is.

본 발명의 일부 실시예에 있어서, 상기 프로젝트 템플릿 데이터 구조체 내 포함된 프로젝트 설정 정보에 기초하여 프로젝트 설정 데이터 구조체를 생성하는 단계는, 상기 프로젝트에 대응하는 프로젝트 설정의 이름, 프로젝트 설정의 플랫폼, 프로젝트에 포함되어야 할 헤더 파일 및 소스 파일의 경로, 추가적인 추가 include 디렉토리, 라이브러리 디렉토리, 프로젝트 종속성 정보를 포함하는 상기 프로젝트 설정 데이터 구조체를 생성할 수 있다.In some embodiments of the present invention, the step of creating a project settings data structure based on the project settings information included in the project template data structure includes the name of the project settings corresponding to the project, the platform of the project settings, and the project. The project setting data structure can be created including the paths of header files and source files to be included, additional include directories, library directories, and project dependency information.

본 발명의 일부 실시예에 있어서, 상기 트리 구조 정보로부터 추출된 클래스 및 함수 정보에 기초하여 클래스 템플릿 데이터 구조체 및 함수 템플릿 데이터 구조체를 생성하는 단계는, 상기 클래스의 이름, 각 클래스의 멤버 변수 타입, 이름 및 해당 변수에 대한 주석 정보, 상기 클래스 내 정의되어야 하는 멤버 함수, 초기화 함수, 종료 함수의 템플릿 데이터의 정보를 포함하는 상기 클래스 템플릿 데이터 구조체를 생성할 수 있다.In some embodiments of the present invention, the step of generating a class template data structure and a function template data structure based on class and function information extracted from the tree structure information includes the name of the class, the member variable type of each class, The class template data structure can be created including name and annotation information for the corresponding variable, and template data information of member functions, initialization functions, and termination functions to be defined in the class.

본 발명의 일부 실시예에 있어서, 상기 트리 구조 정보로부터 추출된 클래스 및 함수 정보에 기초하여 클래스 템플릿 데이터 구조체 및 함수 템플릿 데이터 구조체를 생성하는 단계는, 함수의 이름, 튜플 형태로 저장되는 매개변수의 타입 및 이름, 함수 반환 타입 및 반환값 저장 변수의 이름, 초기화 또는 종료 구문의 반환값에 따른 예외처리방식, 함수 주석 내용, 초기화 또는 종료 구문에서 호출시 필요한 멤버 변수 객체의 이름, 함수의 추가 설정값 정보를 포함하는 상기 함수 템플릿 데이터 구조체를 생성할 수 있다.In some embodiments of the present invention, the step of generating a class template data structure and a function template data structure based on the class and function information extracted from the tree structure information includes the name of the function and the parameters stored in the form of a tuple. Type and name, name of function return type and return value storage variable, exception handling method according to return value of initialization or termination statement, content of function comment, name of member variable object required when called in initialization or termination statement, additional settings of function The function template data structure containing value information can be created.

본 발명의 일부 실시예에 있어서, 상기 적층식 자동 코드 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성하는 단계는, 기능 초기화시 필요한 추가 설정값을 포함하는 고급 정보 집합 구조체를 생성하는 단계를 포함할 수 있다.In some embodiments of the present invention, generating structure information from the tree structure information based on the stacked automatic code generation algorithm includes generating an advanced information set structure including additional settings required when initializing functions. may include.

또한, 본 발명의 제2 측면에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 서버는 클라이언트 단말로부터 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 소정 형태의 트리 구조 정보를 수신하고, 생성된 프로젝트 및 소스 코드를 상기 클라이언트 단말로 전송하는 통신모듈, 상기 트리 구조 정보에 기초하여 상기 프로젝트 및 소스 코드를 생성하기 위한 프로그램이 저장된 메모리 및 상기 메모리에 저장된 프로그램을 실행시킴에 따라 적층식 자동 코드 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성하고, 상기 구조체 정보에 기초하여 상기 설계 대상 소프트웨어에 상응하는 프로젝트 및 소스코드를 생성하는 프로세서를 포함한다.In addition, the automatic stacked code generation server based on tree structure information according to the second aspect of the present invention receives tree structure information in a predetermined form including structural information and logic information of the design target software from the client terminal, and generates the generated project. and a communication module that transmits the source code to the client terminal, a memory storing a program for generating the project and source code based on the tree structure information, and a stacked automatic code generation algorithm by executing the program stored in the memory. and a processor that generates structure information from the tree structure information and generates a project and source code corresponding to the design target software based on the structure information.

본 발명의 일부 실시예에 있어서, 상기 통신모듈은 상기 클라이언트 단말로부터 JSON 타입으로 변환된 상기 트리 구조 정보를 수신할 수 있다.In some embodiments of the present invention, the communication module may receive the tree structure information converted to JSON type from the client terminal.

본 발명의 일부 실시예에 있어서, 상기 트리 구조 정보는 상기 설계 대상 소프트웨어를 대표하는 최상위 노드인 프로젝트 노드와, 상기 프로젝트 노드의 하위 노드인 프로젝트 설정 노드 및 클래스 노드와, 상기 프로젝트 설정 노드의 하위 노드인 릴리즈 노드 및 디버그 노드와, 상기 클래스 노드의 하위 노드인 헤더 파일 노드 및 소스 파일 노드를 포함할 수 있다.In some embodiments of the present invention, the tree structure information includes a project node that is the highest node representing the design target software, a project setting node and a class node that are lower nodes of the project node, and lower nodes of the project setting node. It may include an in-release node and a debug node, and a header file node and a source file node that are child nodes of the class node.

본 발명의 일부 실시예에 있어서, 상기 프로세서는 상기 트리 구조 정보에 기초하여 프로젝트 템플릿 데이터 구조체를 생성하고, 상기 프로젝트 템플릿 데이터 구조체 내 포함된 프로젝트 설정 정보에 기초하여 프로젝트 설정 데이터 구조체를 생성하고, 상기 트리 구조 정보로부터 추출된 클래스 및 함수 정보에 기초하여 클래스 템플릿 데이터 구조체 및 함수 템플릿 데이터 구조체를 생성할 수 있다.In some embodiments of the present invention, the processor generates a project template data structure based on the tree structure information, generates a project settings data structure based on project setting information included in the project template data structure, and A class template data structure and a function template data structure can be created based on class and function information extracted from tree structure information.

본 발명의 일부 실시예에 있어서, 상기 프로세서는 상기 프로젝트의 이름, 지원 플랫폼 버전 및 상기 프로젝트 설정 정보를 포함하는 프로젝트 템플릿 데이터 구조체를 생성할 수 있다.In some embodiments of the present invention, the processor may generate a project template data structure including the name of the project, a supported platform version, and the project setting information.

본 발명의 일부 실시예에 있어서, 상기 프로세서는 상기 프로젝트에 대응하는 프로젝트 설정의 이름, 프로젝트 설정의 플랫폼, 프로젝트에 포함되어야 할 헤더 파일 및 소스 파일의 경로, 추가적인 추가 include 디렉토리, 라이브러리 디렉토리, 프로젝트 종속성 정보를 포함하는 상기 프로젝트 설정 데이터 구조체를 생성할 수 있다.In some embodiments of the present invention, the processor configures the name of the project setting corresponding to the project, the platform of the project setting, the path of the header file and source file to be included in the project, an additional additional include directory, a library directory, and project dependency. The project setting data structure containing information can be created.

본 발명의 일부 실시예에 있어서, 상기 프로세서는 상기 클래스의 이름, 각 클래스의 멤버 변수 타입, 이름 및 해당 변수에 대한 주석 정보, 상기 클래스 내 정의되어야 하는 멤버 함수, 초기화 함수, 종료 함수의 템플릿 데이터의 정보를 포함하는 상기 클래스 템플릿 데이터 구조체를 생성할 수 있다.In some embodiments of the present invention, the processor stores the name of the class, the type of member variable of each class, the name and annotation information for the variable, and the template data of the member function, initialization function, and termination function to be defined in the class. The class template data structure containing information can be created.

본 발명의 일부 실시예에 있어서, 상기 프로세서는 함수의 이름, 튜플 형태로 저장되는 매개변수의 타입 및 이름, 함수 반환 타입 및 반환값 저장 변수의 이름, 초기화 또는 종료 구문의 반환값에 따른 예외처리방식, 함수 주석 내용, 초기화 또는 종료 구문에서 호출시 필요한 멤버 변수 객체의 이름, 함수의 추가 설정값 정보를 포함하는 상기 함수 템플릿 데이터 구조체를 생성할 수 있다.In some embodiments of the present invention, the processor processes exception handling according to the name of the function, the type and name of the parameter stored in the form of a tuple, the name of the function return type and return value storage variable, and the return value of the initialization or termination statement. The function template data structure can be created including the method, the content of the function comment, the name of the member variable object required when calling in the initialization or termination statement, and the additional setting value information of the function.

본 발명의 일부 실시예에 있어서, 상기 프로세서는 기능 초기화시 필요한 추가 설정값을 포함하는 고급 정보 집합 구조체를 생성할 수 있다.In some embodiments of the present invention, the processor may generate an advanced information set structure that includes additional settings required when initializing functions.

또한, 본 발명의 제3 측면에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 시스템은 사용자 인터페이스 통해 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 트리 구조 정보를 생성하고, 상기 트리 구조 정보를 소정 형태로 변환하는 클라이언트 단말과, 상기 변환된 트리 구조 정보를 수신하고, 적층식 자동 코드 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성하고, 상기 구조체 정보에 기초하여 상기 설계 대상 소프트웨어에 상응하는 프로젝트 및 소스코드를 생성하여 상기 클라이언트 단말로 전송하는 서버를 포함한다.In addition, the automatic stacked code generation system based on tree structure information according to the third aspect of the present invention generates tree structure information including structure information and logic information of the software to be designed through a user interface, and prescribes the tree structure information. A client terminal for converting into a form, receiving the converted tree structure information, generating structure information from the tree structure information based on a stacked automatic code generation algorithm, and corresponding to the design target software based on the structure information. It includes a server that generates a project and source code and transmits them to the client terminal.

상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합되어 상기 트리 구조 정보 기반의 적층식 코드 자동 생성 방법을 실행하며, 컴퓨터 판독가능 기록매체에 저장된다.A computer program according to another aspect of the present invention for solving the above-described problem is combined with a hardware computer to execute the tree structure information-based automatic stacked code generation method, and is stored in a computer-readable recording medium.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

전술한 본 발명의 일 실시예에 따르면, 소프트웨어의 구성 요소를 계층화된 트리 구조로 시각화하여 개발자가 전체 아키텍처를 더욱 쉽게 이해하고 작업할 수 있도록 한다. 개발자가 코드 작성 및 수정을 수행할 때, 구조와 상호작용을 직관적으로 파악할 수 있어 작업 효율성이 향상될 수 있으며, 이는 개발자가 복잡한 코드 로직을 이해하는 데 걸리는 시간을 줄이고, 실수를 방지하며 작업 시간을 단축하는 데 도움을 줄 수 있다.According to an embodiment of the present invention described above, software components are visualized in a hierarchical tree structure so that developers can more easily understand and work on the overall architecture. When developers write and modify code, they can intuitively understand the structure and interactions, which can improve work efficiency, which reduces the time it takes developers to understand complex code logic, prevents mistakes, and saves work time. It can help to shorten .

또한, 본 발명의 일 실시예에 따르면 소프트웨어를 더 모듈화하고 재사용 가능한 구성 요소로 분리하여 코드 품질을 향상시킬 수 있다. 모듈성이 높아지면서 코드 작성이 더 명확하고 일관되며, 재사용 가능한 부분은 여러 프로젝트에서 활용할 수 있어 개발 효율성을 높여주며, 이로써 코드의 가독성이 향상되고 유지보수가 더욱 용이해질 수 있다.Additionally, according to one embodiment of the present invention, code quality can be improved by making software more modular and separating it into reusable components. As modularity increases, code writing becomes clearer and more consistent, and reusable parts can be used in multiple projects, increasing development efficiency. This can improve code readability and make it easier to maintain.

또한, 본 발명의 일 실시예에 따르면 확장성과 협업을 강화하여 프로젝트 규모와 복잡도에 관계없이 개발 팀의 생산성을 향상시킬 수 있다. 또한, 협업이 쉽게 이루어지며 여러 개발자가 동시에 작업할 수 있는 환경을 제공할 수 있어, 프로젝트의 진행 속도를 촉진하고 개발 과정을 보다 원활하게 만들 수 있다.Additionally, according to an embodiment of the present invention, scalability and collaboration can be strengthened to improve the productivity of the development team regardless of project size and complexity. Additionally, collaboration can be easily achieved and an environment where multiple developers can work simultaneously can be provided, speeding up project progress and making the development process more smooth.

또한, 본 발명의 일 실시예에 따르면 자동 코드 생성 방식을 적용하여 개발자가 수동으로 코드를 작성하는 시간을 크게 줄여주며, 이는 개발 프로세스에서 발생하는 비용을 절감하는 데 기여한다. 또한, 코드 품질의 향상으로 인해 유지보수 비용이 줄어들며, 오류가 적고 구조화된 코드는 수정이나 확장 시에도 더 쉽게 대응할 수 있어 추가적인 비용을 줄일 수 있는 이점이 있다.In addition, according to one embodiment of the present invention, the time for developers to manually write code is greatly reduced by applying an automatic code generation method, which contributes to reducing costs incurred in the development process. In addition, maintenance costs are reduced due to improvements in code quality, and structured code with fewer errors can respond more easily to modifications or extensions, which has the advantage of reducing additional costs.

또한, 본 발명의 일 실시예에 따르면 개발자가 자신의 요구에 맞게 코드를 수정하거나 확장할 수 있는 유연성을 제공하며, 미리 정의된 구조와 기능을 기반으로 코드를 생성하되, 개발자는 필요한 경우 이를 수정하거나 확장하여 프로젝트의 요구에 맞게 코드를 맞춤화할 수 있다.In addition, according to one embodiment of the present invention, it provides flexibility for developers to modify or extend the code to suit their needs, and generates code based on predefined structures and functions, but the developer modifies it if necessary. or extend it to customize the code to fit the needs of your project.

종합적으로, 본 발명에 따른 트리 구조 기반 적층식 코드 자동 생성 방식은 개발자가 소프트웨어 개발 과정에서 더 효율적으로 작업할 수 있도록 지원하며, 개발 비용과 시간을 절약하면서도 높은 품질의 코드를 생성하는 데 기여하며, 이러한 방식은 소프트웨어 개발의 효율성과 유연성을 더욱 향상시킬 수 있다.Overall, the tree structure-based stacked code automatic generation method according to the present invention helps developers work more efficiently in the software development process and contributes to generating high-quality code while saving development costs and time. , this method can further improve the efficiency and flexibility of software development.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.

이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시 예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 본 발명의 일 실시예에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 시스템을 설명하기 위한 도면이다.
도 2는 클라이언트 단말에서 제공되는 사용자 인터페이스를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 서버의 블록도이다.
도 4는 본 발명의 일 실시예에서의 트리 구조 정보를 설명하기 위한 도면이다.
도 5a 내지 5c는 트리 구조 정보를 JSON 타입으로 변환하는 일 예시를 도시한 도면이다.
도 6은 본 발명의 일 실시예에서의 구조체 정보를 도시한 도면이다.
도 7은 본 발명의 일 실시예에서 트리 구조 정보의 적층식 코드 변환 과정을 설명하기 위한 도면이다.
도 8은 구조체 정보에 기초하여 헤더 파일을 생성한 결과의 일 예시를 나타낸 도면이다.
도 9a 및 도 9b는 구조체 정보에 기초하여 소스 파일을 생성한 결과의 일 예시를 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 서버에서 수행되는 적층식 코드 자동 생성 방법의 순서도이다.
The drawings attached below are intended to aid understanding of the present embodiment and provide examples along with a detailed description. However, the technical features of this embodiment are not limited to specific drawings, and the features disclosed in each drawing may be combined to form a new embodiment.
1 is a diagram illustrating an automatic stacked code generation system based on tree structure information according to an embodiment of the present invention.
Figure 2 is a diagram for explaining a user interface provided by a client terminal.
Figure 3 is a block diagram of a stacked code automatic generation server based on tree structure information according to an embodiment of the present invention.
Figure 4 is a diagram for explaining tree structure information in an embodiment of the present invention.
5A to 5C are diagrams illustrating an example of converting tree structure information into JSON type.
Figure 6 is a diagram showing structure information in one embodiment of the present invention.
Figure 7 is a diagram for explaining a stacked code conversion process of tree structure information in an embodiment of the present invention.
Figure 8 is a diagram showing an example of the result of generating a header file based on structure information.
FIGS. 9A and 9B are diagrams showing an example of the results of generating a source file based on structure information.
Figure 10 is a flowchart of a method for automatically generating a stacked code performed on a server according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. The advantages and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are merely provided to ensure that the disclosure of the present invention is complete and to provide a general understanding of the technical field to which the present invention pertains. It is provided to fully inform the skilled person of the scope of the present invention, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for describing embodiments and is not intended to limit the invention. As used herein, singular forms also include plural forms, unless specifically stated otherwise in the context. As used in the specification, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other elements in addition to the mentioned elements. Like reference numerals refer to like elements throughout the specification, and “and/or” includes each and every combination of one or more of the referenced elements. Although “first”, “second”, etc. are used to describe various components, these components are of course not limited by these terms. These terms are merely used to distinguish one component from another. Therefore, it goes without saying that the first component mentioned below may also be a second component within the technical spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined.

먼저 배경기술에서 설명한 종래기술들에서의 문제점을 보다 자세히 설명하면 다음과 같다.First, the problems in the prior art described in the background are explained in more detail as follows.

1. 텍스트 기반 접근 방식: 종래 기술에서는 개발자가 코드를 텍스트 기반으로 작성해야 하며, 이는 복잡한 명령어와 구문을 기억하고, 각 줄마다 문법에 맞게 작성해야 하는 번거로움을 초래한다. 이로 인해 개발자의 생산성이 저하되며, 오타나 문법 오류가 발생할 가능성도 높아지는 문제가 있다.1. Text-based approach: In the prior art, developers must write code based on text, which causes the inconvenience of having to remember complex commands and syntax and write each line grammatically. This reduces developer productivity and increases the likelihood of typos or grammatical errors.

2. 가독성, 재사용성 및 유지 관리성 문제: 종래 기술에서는 코드의 가독성, 재사용성 및 유지 관리성이 떨어지는 경우가 많아 소프트웨어 개발에 상당한 시간 및 비용이 소요된다. 이러한 문제는 프로젝트 규모가 커질수록 심각해지며, 유지 보수의 어려움으로 인한 추가 비용을 초래할 수 있다.2. Readability, reusability, and maintainability issues: In the prior art, code readability, reusability, and maintainability are often poor, so software development takes a significant amount of time and money. These problems become more serious as the project scale increases, and may result in additional costs due to maintenance difficulties.

3. 시각적 프로그래밍 환경의 한계: 일부 종래 기술은 시각적 프로그래밍 환경을 제공하지만, 이는 주로 단순한 프로젝트에 적합하며 복잡한 프로젝트에서는 제한적인 기능 제공이나 확장성 문제가 발생할 수 있다. 이로 인해 프로젝트의 복잡도가 높을수록 개발 효율이 저하되는 문제가 있다. 3. Limitations of the visual programming environment: Some conventional technologies provide a visual programming environment, but this is mainly suitable for simple projects and may provide limited functionality or have scalability problems in complex projects. As a result, the higher the complexity of the project, the lower the development efficiency.

4. 템플릿 기반 코드 생성 도구의 제한성: 종래 기술의 코드 생성 도구는 템플릿 기반의 방식을 사용하므로, 개발자가 자신의 요구에 맞게 코드를 수정하거나 확장하는 데 제한을 가질 수 있다. 또한, 템플릿은 제작자의 의도와 다른 요구 사항을 충족하기 어려울 수 있어, 개발자가 추가적인 작업을 수행해야 하는 경우도 있다.4. Limitations of template-based code generation tools: Since code generation tools in the prior art use a template-based method, developers may have limitations in modifying or expanding the code to suit their needs. Additionally, templates may have difficulty meeting requirements that differ from the creator's intentions, requiring developers to perform additional work.

5. 생산성 및 협업의 어려움: 종래 기술에서는 여러 개발자가 동일한 소스 코드를 동시에 작업하기 어려운 경우가 있다. 이로 인해 소스 코드의 충돌과 상호 작용 문제로 인해 협업 효율성이 떨어지며, 프로젝트의 진행 속도가 저하될 수 있다.5. Difficulty in productivity and collaboration: In the prior art, it is sometimes difficult for multiple developers to work on the same source code simultaneously. This can reduce collaboration efficiency and slow project progress due to source code conflicts and interaction issues.

이러한 문제점들은 종래 기술이 소프트웨어 개발의 효율성과 유연성을 제한하는 요인으로 작용한다. 이로 인해 복잡한 프로젝트의 개발과 유지보수가 어려워지며, 생산성과 코드 품질의 저하로 인한 추가 비용이 발생할 수 있다. 이에 대한 대안으로, 본 발명의 일 실시예에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 시스템, 서버 및 방법은 소프트웨어 개발 과정에서 코드 작성, 수정 및 유지 관리를 효율적으로 수행할 수 있는 방법을 제공함으로써 소프트웨어의 개발 시간 및 개발 비용을 절감하고 높은 품질의 코드 생성이 가능하도록 한다.These problems act as factors that limit the efficiency and flexibility of software development in the prior art. This makes development and maintenance of complex projects difficult, and may incur additional costs due to reduced productivity and code quality. As an alternative to this, the automatic stacked code generation system, server, and method based on tree structure information according to an embodiment of the present invention provide a method to efficiently create, modify, and maintain code during the software development process. By doing so, it reduces software development time and development costs and enables high-quality code generation.

컴퓨터 프로그래밍에서 소스 코드는 일련의 컴퓨터 명령어로 구성되어 있으며, 프로그래머는 소스 코드를 작성 및 관리함으로써 소프트웨어의 기능과 동작을 구현한다. 이러한 프로세서는 복잡하고 많은 시간이 소요되며, 특히 대규모 소프트웨어 프로젝트에서는 코드의 가독성, 재사용성 및 유지 보수성이 중요한 이슈가 된다In computer programming, source code consists of a series of computer instructions, and programmers implement the functions and operations of software by writing and managing source code. These processors are complex and time-consuming, and readability, reusability, and maintainability of code become important issues, especially in large-scale software projects.

본 발명의 일 실시예는 소프트웨어 개발자가 프로그램의 구조와 로직을 효과적으로 설계할 수 있는 도구를 제공한다. 본 발명은 소프트웨어의 구성 요소를 작성하고, 각 노드는 특정한 기능이나 역할을 가지며 해당 데이터는 트리 구조 형태의 정보로 저장된다. 개발자는 이 생성 방식을 통해 소프트웨어의 전체 아키텍처를 시각적으로 이해하고, 필요한 변경사항을 쉽게 파악하고 적용할 수 있다.One embodiment of the present invention provides a tool that allows software developers to effectively design the structure and logic of a program. The present invention creates software components, each node has a specific function or role, and the corresponding data is stored as information in the form of a tree structure. This generation method allows developers to visually understand the overall architecture of the software and easily identify and apply any necessary changes.

본 발명은 노드 간 상호작용을 표현하는 방식을 통해 코드의 재사용성과 모듈화를 향상시킨다. 이를 통해 개발자는 효율적인 코드 작성과 수정이 가능하며, 결과적으로 소프트웨어 개발 시간과 비용을 줄일 수 있다.The present invention improves code reusability and modularity through a way to express interactions between nodes. This allows developers to write and modify code efficiently, ultimately reducing software development time and costs.

또한, 본 발명은 적층식 코드 자동 생성 알고리즘을 활용하여 각 노드에 대한 소스 코드를 자동으로 생성할 수 있다. 이 과정에서 개발자는 노드 간의 상호작용을 정의하고, 알고리즘이 해당 정보를 바탕으로 실제 실행 가능한 소스 코드를 생성한다.Additionally, the present invention can automatically generate source code for each node by utilizing a stacked code automatic generation algorithm. In this process, the developer defines the interactions between nodes, and the algorithm generates actual executable source code based on that information.

이와 같은 본 발명의 일 실시예에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 시스템, 서버 및 방법에서의 특징은 다음과 같다.The features of the automatic stacked code generation system, server, and method based on tree structure information according to an embodiment of the present invention are as follows.

1. 계층화된 트리 구조를 통한 시각적 프로그래밍 환경 제공: 본 발명은 소프트웨어의 구성 요소를 계층화된 트리 구조로 나타내어 개발자가 소프트웨어 아키텍처를 시각적으로 파악할 수 있도록 한다. 이러한 트리 구조는 프로그램의 다양한 모듈 및 하위 모듈 간의 관계를 명확히 나타내며, 이렇게 시각화된 환경에서 개발자는 프로그램의 구조와 로직을 더 직관적으로 이해하며, 변경사항을 쉽게 적용할 수 있다.1. Providing a visual programming environment through a layered tree structure: The present invention displays software components in a layered tree structure so that developers can visually understand the software architecture. This tree structure clearly represents the relationships between the various modules and sub-modules of the program, and in this visualized environment, developers can understand the structure and logic of the program more intuitively and easily apply changes.

2. 높은 재사용성 및 모듈성 지원: 트리 구조의 노드 간 상호작용을 나타내는 방식은 코드의 재사용성과 모듈성을 높이는데 기여한다. 각 노드는 독립적인 기능을 나타내며, 이러한 기능들은 다른 프로젝트에서도 활용할 수 있다. 이로 인해 개발자는 이전에 작성한 모듈을 다른 프로젝트에서도 활용하며, 효율적인 코드 작성과 수정이 가능하며, 개발 시간과 비용을 절감할 수 있다.2. Support for high reusability and modularity: The method of representing the interaction between nodes in the tree structure contributes to increasing the reusability and modularity of the code. Each node represents an independent function, and these functions can also be utilized in other projects. This allows developers to use previously written modules in other projects, enable efficient code writing and modification, and reduce development time and costs.

3. 적층식 코드 자동 생성 알고리즘 적용: 본 발명은 트리 구조의 각 노드에 대한 소스 코드를 자동으로 생성하는 적층식 코드 자동 생성 알고리즘을 적용하여 트리의 각 노드에 대해 정의된 기능을 바탕으로 실행 가능한 소스 코드를 생한다. 각 노드의 기능과 상호작용을 정의하는 과정에서 개발자는 프로그램 동작을 명확히 구체화할 수 있으며, 이 정보를 기반으로 알고리즘이 코드를 자동으로 생성할 수 있다.3. Application of the stacked code automatic generation algorithm: The present invention applies the stacked code automatic generation algorithm that automatically generates the source code for each node of the tree structure to create executable code based on the function defined for each node of the tree. Generate source code. In the process of defining the functions and interactions of each node, developers can clearly specify program behavior, and the algorithm can automatically generate code based on this information.

4. 확장성 및 협업 지원: 본 발명은 프로젝트의 규모와 복잡도에 관계없이 확장성을 제공하며, 다수의 개발자들이 협업하기에 적합한 구조를 가진다. 트리 구조와 적층식 코드 생성 알고리즘은 여러 개발자가 동시에 다양한 모듈을 작업하고, 이를 통합하여 하나의 프로그램으로 완성할 수 있는 환경을 제공하며, 이로 인해 개발 팀의 생산성이 향상되고, 프로젝트의 진행 속도가 향상될 수 있다.4. Scalability and collaboration support: The present invention provides scalability regardless of the size and complexity of the project and has a structure suitable for collaboration between multiple developers. The tree structure and stacked code generation algorithm provide an environment where multiple developers can work on various modules at the same time and integrate them to complete a single program, which improves the productivity of the development team and speeds up project progress. It can be improved.

이와 같은 특징들을 통해 본 발명은 종래 기술의 문제점을 극복하고, 소프트웨어 개발의 효율성과 유연성을 높일 수 있는 방법을 제공할 수 있다.Through these features, the present invention can overcome the problems of the prior art and provide a method to increase the efficiency and flexibility of software development.

이하 각 도면을 참조하여 본 발명의 일 실시예에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 시스템, 서버 및 방법에 대해 보다 상세히 설명하도록 한다.Hereinafter, the automatic stacked code generation system, server, and method based on tree structure information according to an embodiment of the present invention will be described in more detail with reference to each drawing.

도 1은 본 발명의 일 실시예에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 시스템(1)을 설명하기 위한 도면이다. 도 2는 클라이언트 단말(200)에서 제공되는 사용자 인터페이스를 설명하기 위한 도면이다. 도 3은 본 발명의 일 실시예에 따른 트리 구조 정보 기반의 적층식 코드 자동 생성 서버(100)의 블록도이다.Figure 1 is a diagram for explaining a stacked code automatic generation system 1 based on tree structure information according to an embodiment of the present invention. FIG. 2 is a diagram for explaining the user interface provided by the client terminal 200. Figure 3 is a block diagram of a stacked code automatic generation server 100 based on tree structure information according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 적층식 코드 자동 생성 시스템(1)은 클라이언트 단말(200), 적층식 코드 자동 생성 서버(100, 이하 서버) 및 데이터베이스(300)를 포함한다.The stacked code automatic generation system 1 according to an embodiment of the present invention includes a client terminal 200, a stacked code automatic generation server 100 (hereinafter referred to as server), and a database 300.

클라이언트 단말(200)은 사용자에게 사용자 인터페이스를 제공한다. 그리고 도 2에 도시된 바와 같이 사용자 인터페이스를 통해 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 트리 구조 정보를 생성하고, 트리 구조 정보를 소정 형태(예를 들어, JSON 타입)으로 변환하여 서버(100)로 전송한다.The client terminal 200 provides a user interface to the user. And, as shown in FIG. 2, tree structure information including structure information and logic information of the design target software is generated through the user interface, and the tree structure information is converted into a predetermined form (for example, JSON type) and stored on the server ( 100).

사용자 인터페이스는 사용자가 프로그램 생성시 필요한 많은 기능들을 가시적으로 사용자에게 도식한다. 사용자는 이 계층화된 기능들 중 필요한 기능에 대한 연결을 생성하고 수정하며, 이를 통해 프로그램의 구조와 로직을 정의할 수 있다. 사용자는 프로그램의 구조를 시각적으로 이해하고 개별 노드를 추가, 삭제, 이동하여 로직을 효과적으로 제어할 수 있다. 또한, 사용자는 사용자 인터페이스를 통해 자동으로 생성된 코드를 검토하고, 필요에 따라 수정, 확장할 수 있다. 한편, 클라이언트 단말(200)은 웹 브라우저 또는 데스크탑 어플리케이션 형태로 사용자 인터페이스를 제공할 수 있다.The user interface visually shows the user many of the functions needed when creating a program. Users can create and modify connections to the necessary functions among these layered functions, thereby defining the structure and logic of the program. Users can visually understand the structure of the program and effectively control the logic by adding, deleting, and moving individual nodes. Additionally, users can review the automatically generated code through the user interface and modify or extend it as needed. Meanwhile, the client terminal 200 may provide a user interface in the form of a web browser or desktop application.

서버(100)는 통신모듈(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다.The server 100 may include a communication module 110, memory 120, and processor 130.

통신모듈(110)은 클라이언트 단말(200)로부터 변환된 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 트리 구조 정보를 수신하고, 생성된 프로젝트 및 소스코드를 클라이언트 단말(200)로 전송한다. 이와 같은 통신모듈(110)는 유선 통신 모듈 및 무선 통신 모듈을 모두 포함할 수 있다. 유선 통신 모듈은 전력선 통신 장치, 전화선 통신 장치, 케이블 홈(MoCA), 이더넷(Ethernet), IEEE1294, 통합 유선 홈 네트워크 및 RS-485 제어 장치로 구현될 수 있다. 또한, 무선 통신 모듈은 WLAN(wireless LAN), Bluetooth, HDR WPAN, UWB, ZigBee, Impulse Radio, 60GHz WPAN, Binary-CDMA, 무선 USB 기술 및 무선 HDMI 기술, 그밖에 5G(5th generation communication), LTE-A(long term evolution-advanced), LTE(long term evolution), Wi-Fi(wireless fidelity) 등의 기능을 구현하기 위한 모듈로 구성될 수 있다.The communication module 110 receives tree structure information including structure information and logic information of the converted design target software from the client terminal 200, and transmits the generated project and source code to the client terminal 200. This communication module 110 may include both a wired communication module and a wireless communication module. The wired communication module can be implemented as a power line communication device, telephone line communication device, home cable (MoCA), Ethernet, IEEE1294, integrated wired home network, and RS-485 control device. In addition, wireless communication modules include WLAN (wireless LAN), Bluetooth, HDR WPAN, UWB, ZigBee, Impulse Radio, 60GHz WPAN, Binary-CDMA, wireless USB technology and wireless HDMI technology, as well as 5G (5th generation communication) and LTE-A. It may be composed of modules to implement functions such as (long term evolution-advanced), LTE (long term evolution), and Wi-Fi (wireless fidelity).

메모리(120)에는 트리 구조 정보에 기초하여 프로젝트 및 소스 코드를 생성하기 위한 프로그램이 저장된다. 여기에서, 메모리(120)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 휘발성 저장장치를 통칭하는 것이다. 예를 들어, 메모리(120)는 콤팩트 플래시(compact flash; CF) 카드, SD(secure digital) 카드, 메모리 스틱(memory stick), 솔리드 스테이트 드라이브(solid-state drive; SSD) 및 마이크로(micro) SD 카드 등과 같은 낸드 플래시 메모리(NAND flash memory), 하드 디스크 드라이브(hard disk drive; HDD) 등과 같은 마그네틱 컴퓨터 기억 장치 및 CD-ROM, DVD-ROM 등과 같은 광학 디스크 드라이브(optical disc drive) 등을 포함할 수 있다. The memory 120 stores a program for generating a project and source code based on tree structure information. Here, the memory 120 is a general term for non-volatile storage devices and volatile storage devices that continue to retain stored information even when power is not supplied. For example, memory 120 may include compact flash (CF) cards, secure digital (SD) cards, memory sticks, solid-state drives (SSD), and micro SD. This includes NAND flash memory such as cards, magnetic computer storage devices such as hard disk drives (HDD), and optical disc drives such as CD-ROM, DVD-ROM, etc. You can.

프로세서(130)는 프로그램 등 소프트웨어를 실행하여 다중 표적 탐지 시스템(100)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다.The processor 130 may execute software, such as a program, to control at least one other component (e.g., hardware or software component) of the multi-target detection system 100, and may perform various data processing or calculations. .

프로세서(130)는 적층식 코드 자동 생성 알고리즘에 기초하여 트리 구조 정보로부터 구조체 정보를 생성한다. 그리고 구조체 정보에 기초하여 설계 대상 소프트웨어에 상응하는 프로젝트 및 소스코드를 생성하여 클라이언트 단말(200)로 전송한다. The processor 130 generates structure information from tree structure information based on a stacked code automatic generation algorithm. Then, based on the structure information, a project and source code corresponding to the design target software are generated and transmitted to the client terminal 200.

또한, 서버(100)는 생성된 코드와 관련된 데이터를 데이터베이스(300)에 저장하거나, 필요에 따라 이를 검색하고 수정하는 쿼리를 데이터베이스(300)로 전송할 수 있다.Additionally, the server 100 may store data related to the generated code in the database 300 or, if necessary, transmit a query to search and modify it to the database 300.

데이터베이스(300)는 트리 구조 정보, 사용자 정보 및 설정 정보, 프로젝트 메타데이터 등 다양한 데이터를 저장하고 관리한다. 서버(100)는 데이터베이스(300)에 저장된 데이터를 사용하여 코드를 생성하거나 수정하고, 사용자의 요구에 따라 정보를 검색하고 반환할 수 있다. 데이터베이스(300)는 사용자가 작성한 프로젝트의 이력 정보를 저장하여, 사용자가 이전 작업을 검토하거나 복구할 수 있게 한다.The database 300 stores and manages various data such as tree structure information, user information and settings information, and project metadata. The server 100 can create or modify codes using data stored in the database 300, and search and return information according to user requests. The database 300 stores history information on projects created by users, allowing users to review or restore previous work.

도 4는 본 발명의 일 실시예에서의 트리 구조 정보를 설명하기 위한 도면이다.Figure 4 is a diagram for explaining tree structure information in an embodiment of the present invention.

본 발명의 일 실시예에서 트리 구조 정보는 설계 대상 소프트웨어를 대표하는 최상위 노드인 프로젝트 노드와, 프로젝트 노드의 하위 노드인 프로젝트 설정 노드 및 클래스 노드와, 프로젝트 설정 노드의 하위 노드인 릴리즈 노드 및 디버그 노드와, 클래스 노드의 하위 노드인 헤더 파일 노드 및 소스 파일 노드를 포함할 수 있다.In one embodiment of the present invention, the tree structure information includes a project node, which is the highest node representing the software to be designed, a project setting node and a class node, which are lower nodes of the project node, and a release node and debug node, which are lower nodes of the project setting node. Wow, it can include a header file node and a source file node, which are child nodes of the class node.

먼저, 최상위 노드인 프로젝트는 설계 대상 소프트웨어를 대표하는 최상위 노드로, 프로젝트 노드는 하위에 여러 클래스 노드를 포함할 수 있다. 이들 클래스 노드는 프로젝트의 전반적인 구조와 기능을 정의한다.First, the project, the top node, is the top node representing the software to be designed, and the project node may include several class nodes below it. These class nodes define the overall structure and functionality of the project.

프로젝트 설정 노드는 프로젝트의 전반적인 설정을 관리한다. 프로젝트의 이름, 버전 정보, 사용하는 프로그래밍 언어, 컴파일 옵션 등이 이에 해당한다. 이러한 설정들은 프로젝트 전체에 적용되며, 개발 대상 소프트웨어의 특성을 정의하는 역할을 한다.The project settings node manages the overall settings of the project. This includes the project name, version information, programming language used, compilation options, etc. These settings are applied to the entire project and serve to define the characteristics of the software being developed.

클래스 노드는 객체 지향 프로그래밍에서 핵심적인 구성 요소로, 특정한 기능을 수행하는 코드의 묶음을 나타낸다. 클래스 노드는 메소드와 속성을 포함하며, 이들은 각각 헤더 파일과 소스 파일로 표현된다. 클래스는 소프트웨어의 모듈화와 재사용성을 높이는 역할을 한다.A class node is a core component in object-oriented programming and represents a bundle of code that performs a specific function. Class nodes contain methods and properties, which are expressed as header files and source files, respectively. Classes play a role in increasing modularity and reusability of software.

릴리즈 노드는 프로그램이 실제 배포될 때 사용되는 설정을 관리한다. 이러한 설정에는 코드 최적화 옵션, 디버그 정보 제거 옵션 등이 포함될 수 있다. 릴리즈 설정은 최종 사용자가 실행하는 실행 파일을 생성하기 위한 설정을 담당한다.The release node manages the settings used when the program is actually distributed. These settings may include code optimization options, options for removing debug information, and more. Release settings are responsible for creating the executable file that the end user runs.

디버그 노드는 프로그램을 개발하고 테스트할 때 사용되는 설정을 관리한다. 디버그 정보 포함 옵션, 추가적인 로깅 옵션 등이 디버그 노드에 포함될 수 있다. 디버그 설정은 프로그램의 오류를 찾고 수정하는 과정을 용이하게 한다.The debug node manages settings used when developing and testing programs. Options to include debug information, additional logging options, etc. can be included in the debug node. Debug settings facilitate the process of finding and correcting program errors.

헤더 파일 노드는 주로 C++와 같은 언어에서 사용되며, 클래스 선언, 함수 프로토타입, 매크로 등을 포함한다. 즉, 헤더 파일 노드는 각 헤더 파일이 어떤 내용을 가지고 있는지를 정의한다.Header file nodes are mainly used in languages such as C++ and include class declarations, function prototypes, macros, etc. In other words, the header file node defines the contents of each header file.

소스파일 노드는 주로 클래스의 정의, 함수의 구현 등을 포함하며, 프로그램의 실제 코드를 포함한다. 즉. 소스파일 노드는 각 소스 파일이 어떤 코드를 포함하고 있는지를 정의한다.Source file nodes mainly include class definitions, function implementations, etc., and include the actual code of the program. in other words. The source file node defines what code each source file contains.

이처럼, 사용자는 제공된 사용자 인터페이스를 통해 설계 대상 소프트웨어의 구조 및 로직을 시각적으로 설계할 수 있고, 이는 트리 구조 정보로 저장된다. 트리 구조 정보는 설계 대상 소프트웨어의 전반적인 아키텍처와 각 기능, 모듈 또는 클래스 간의 관계를 표현하며, 각 노드는 특정 기능이나 역할을 담당하고, 사용자는 사용자 인터페이스를 통해 노드의 세부 정보와 속성을 지정 및 수정할 수 있다.In this way, the user can visually design the structure and logic of the design target software through the provided user interface, and this is stored as tree structure information. Tree structure information expresses the overall architecture of the software being designed and the relationship between each function, module, or class, where each node is responsible for a specific function or role, and the user can specify and modify the details and properties of the nodes through the user interface. You can.

클라이언트 단말(200)은 서버(100)로 트리 구조 정보를 전송하기 위해 JSON 타입으로 변환한다. 도 5a 내지 5c는 트리 구조 정보를 JSON 타입으로 변환하는 일 예시를 도시한 도면으로, 도 5a는 프로젝트 트리 구조를 JSON 타입으로 변환한 것이고, 도 5b는 헤더 파일 트리 구조를 JSON 타입으로 변환한 것이며, 도 5c는 소스 파일 트리 구조를 JSON 타입으로 변환한 것을 나타내었다. JSON 형식은 데이터의 효율적인 저장 및 전송을 위해 널리 사용되는 형식으로, 계층적 구조와 키-값 쌍을 사용하여 데이터를 표현한다. 사용자 인터페이스에서 입력된 정보는 JSON 형식으로 직렬화 되어, 서버(100)로 전송된다. 이때, JSON 형식을 선택한 이유는 그의 유연성, 가독성 및 범용성 때문이다.The client terminal 200 converts the tree structure information into JSON type to transmit it to the server 100. Figures 5a to 5c are diagrams showing an example of converting tree structure information to JSON type. Figure 5a is a project tree structure converted to JSON type, and Figure 5b is a header file tree structure converted to JSON type. , Figure 5c shows the source file tree structure converted to JSON type. The JSON format is a widely used format for efficient storage and transmission of data, and represents data using a hierarchical structure and key-value pairs. Information entered in the user interface is serialized in JSON format and transmitted to the server 100. At this time, the reason why the JSON format was chosen is because of its flexibility, readability, and versatility.

서버(100)는 JSON 타입으로 변환된 트리 구조 정보를 수신하면 적층식 코드 자동 생성 알고리즘에 기초하여 트리 구조 정보로부터 구조체 정보를 생성한다. 즉, 서버(100)는 해당 정보와 서버(100)에 미리 저장된 메타데이터를 기반으로 적층식 코드 구조를 결정하며, 각 노드와 관계에 따른 코드 생성 알고리즘을 실행한다.When the server 100 receives tree structure information converted to JSON type, it generates structure information from the tree structure information based on a stacked code automatic generation algorithm. That is, the server 100 determines a stacked code structure based on the corresponding information and metadata pre-stored in the server 100, and executes a code generation algorithm according to each node and relationship.

도 6은 본 발명의 일 실시예에서의 구조체 정보를 도시한 도면이다. 도 7은 본 발명의 일 실시예에서 트리 구조 정보의 적층식 코드 변환 과정을 설명하기 위한 도면이다.Figure 6 is a diagram showing structure information in one embodiment of the present invention. Figure 7 is a diagram for explaining a stacked code conversion process of tree structure information in an embodiment of the present invention.

구체적으로, 서버(100)는 JSON 타입의 트리 구조 정보에 기초하여 첫번째로 프로젝트 템플릿 데이터 구조체(ProjectTemplateData)를 생성할 수 있다. 프로젝트 템플릿 데이터 구조체는 프로젝트의 기본 정보와 해당 프로젝트에 포함된 모든 설정 정보를 포함할 수 있다. 즉, 프로젝트 템플릿 데이터 구조체는 프로젝트의 이름(prjName), 지원 플랫폼 버전(platformVersion), 프로젝트 설정 정보(Configurations)를 JSON 데이터에서 추출하여 구조체에 저장할 수 있다.Specifically, the server 100 may first create a project template data structure (ProjectTemplateData) based on JSON type tree structure information. The project template data structure can include the basic information of the project and all setting information included in the project. In other words, the project template data structure can extract the project name (prjName), supported platform version (platformVersion), and project settings information (Configurations) from JSON data and store them in the structure.

- prjName: 이 문자열은 프로젝트의 이름을 저장하는 항목이다.- prjName: This string is an item that stores the name of the project.

- platformVersion: 프로젝트의 지원 플랫폼 버전을 나타내며, 예를 들어 Win32와 x64 등을 포함할 수 있다.- platformVersion: Indicates the supported platform version of the project and can include, for example, Win32 and x64.

- Configurations: 이 벡터는 프로젝트의 각 설정에 대한 상세 정보를 포함하는 프로젝트 설정 데이터 구조체(ProjectConfigData)의 인스턴스들을 포함한다.- Configurations: This vector contains instances of the project configuration data structure (ProjectConfigData) containing detailed information about each configuration of the project.

그 다음, 서버(100)는 프로젝트 템플릿 데이터 구조체 내에 포함된 프로젝트 설정 정보에 기초하여 프로젝트 설정 데이터 구조체(ProjectConfigData)를 생성할 수 있다. 프로젝트 설정 데이터 구조체는 프로젝트에 대응하는 프로젝트 설정의 이름, 프로젝트 설정의 플랫폼, 프로젝트에 포함되어야 할 헤더 파일 및 소스 파일의 경로, 추가 디렉토리 경로, 프로젝트 종속성 및 전처리 정보를 포함할 수 있다.Next, the server 100 may create a project configuration data structure (ProjectConfigData) based on the project configuration information included in the project template data structure. The project settings data structure may include the name of the project setting corresponding to the project, the platform of the project setting, the path of header files and source files that should be included in the project, additional directory paths, project dependencies, and preprocessing information.

- name: 프로젝트 설정의 이름(예를 들어 Debug, Release)을 저장한다.- name: Saves the name of the project settings (e.g. Debug, Release).

- platform: 프로젝트 설정에 해당하는 플랫폼(예를 들어, Win32, x64 등)을 저장한다.- platform: Saves the platform (e.g. Win32, x64, etc.) corresponding to the project settings.

- headerPaths, sourcePaths: 프로젝트에 포함되어야 할 헤더 파일과 소스 파일의 경로들을 저장한다.- headerPaths, sourcePaths: Stores the paths of header files and source files that should be included in the project.

- addIncDirectories, addLibDirectories, addDependencies, preprocDefinitions: 추가적인 include 디렉터리, 라이브러리 디렉터리, 종속성 및 전처리 정의 등 프로젝트의 종속성과 관련된 정보를 저장한다.- addIncDirectories, addLibDirectories, addDependencies, preprocDefinitions: Stores information related to the project's dependencies, such as additional include directories, library directories, dependencies, and preprocessing definitions.

또한, 서버(100)는 JSON 타입의 트리 구조 정보로부터 추출된 클래스와 함수 정보에 기초하여 클래스 탬플릿 데이터 구조체(ClassTemplateData)와 함수 템플릿 데이터 구조체(FunctionTemplateData)를 생성할 수 있다.Additionally, the server 100 may generate a class template data structure (ClassTemplateData) and a function template data structure (FunctionTemplateData) based on class and function information extracted from JSON-type tree structure information.

클래스 탬플릿 데이터 구조체는 상기 클래스의 이름, 각 클래스의 멤버 변수 타입, 이름 및 해당 변수에 대한 주석 정보, 클래스 내 정의되어야 하는 멤버 함수, 초기화 함수, 종료 함수의 템플릿 데이터의 정보를 포함할 수 있다.The class template data structure may include the name of the class, the type of member variable of each class, annotation information for the name and corresponding variable, and information on template data of member functions, initialization functions, and termination functions to be defined within the class.

- className: 클래스의 이름을 저장한다.- className: Stores the name of the class.

- mVariableTypes, mVariableNames, mVariableComments: 각 클래스의 멤버 변수의 타입, 이름 및 해당 변수에 대한 주석 정보를 저장한다.- mVariableTypes, mVariableNames, mVariableComments: Stores the type and name of member variables of each class and comment information for the variables.

- mFunctions, initFunctions, exitFunctions: 클래스 내에서 정의해야 하는 멤버 함수, 초기화 함수, 종료 함수의 템플릿 데이터를 저장한다.- mFunctions, initFunctions, exitFunctions: Stores template data of member functions, initialization functions, and exit functions that must be defined within the class.

함수 템플릿 데이터 구조체는 함수의 이름, 튜플 형태로 저장되는 매개변수의 타입 및 이름, 함수 반환 타입 및 반환값 저장 변수의 이름, 초기화 또는 종료 구문의 반환값에 따른 예외처리방식, 함수 주석 내용, 초기화 또는 종료 구문에서 호출시 필요한 멤버 변수 객체의 이름, 함수의 추가 설정값 정보를 포함할 수 있다. 즉, 함수 템플릿 데이터 구조체는 함수 템플릿에 관한 상세 정보를 제공한다.The function template data structure includes the name of the function, the type and name of the parameters stored in the form of a tuple, the name of the function return type and return value storage variable, the exception handling method according to the return value of the initialization or termination statement, the contents of the function comment, and the initialization. Alternatively, the termination statement may include the name of the member variable object required when calling and additional setting value information of the function. In other words, the function template data structure provides detailed information about the function template.

- funcName: 함수의 이름을 저장한다.- funcName: Stores the name of the function.

- funcParams: 함수의 매개변수의 타입과 이름을 튜플 형태로 저장한다.- funcParams: Stores the types and names of function parameters in tuple form.

- rtnType 및 rtnValue: 함수의 반환 타입 및 반환 값 저장 변수의 이름을 저장한다.- rtnType and rtnValue: Stores the return type of the function and the name of the return value storage variable.

- errCheckType: 초기화 또는 종료 구문의 반환 값에 따른 예외 처리 방식을 저장한다.- errCheckType: Stores the exception handling method according to the return value of the initialization or termination statement.

- codeComment: 함수에 대한 주석 내용을 저장한다.- codeComment: Stores comments about the function.

- mObj: 초기화 또는 종료 구문에서 호출할 때 필요한 멤버 변수 객체의 이름을 저장한다. - mObj: Stores the name of the member variable object needed when called in initialization or termination statements.

- advInfo: 함수의 추가 설정 값에 대한 정보를 저장한다.- advInfo: Stores information about additional setting values of the function.

그밖에, 서버(100)는 기능 초기화시 필요한 추가 설정값을 포함하는 고급 정보 집합 구조체(AdvancedInfoSet)를 생성할 수 있다.In addition, the server 100 may create an advanced information set structure (AdvancedInfoSet) that includes additional settings required when initializing functions.

- advInfoVariable: 설정 값을 저장하기 위한 멤버 변수의 이름을 저장한다.- advInfoVariable: Saves the name of the member variable to store the setting value.

- advInfoType, advInfoName, advInfoValue: 초기화 시 필요한 추가 설정 값의 타입, 이름, 사용자 설정 값을 저장한다.- advInfoType, advInfoName, advInfoValue: Stores the type, name, and user setting values of additional setting values required during initialization.

또한, 본 발명의 일 실시예에서 서버(100)는 함수 템플릿 데이터 구조체에 정의된 ErrType 열거형 항목을 통해 함수의 반환값에 따른 에러 처리 방식을 결정할 수 있다. 예를 들어, 함수가 에러를 반환할 경우 서버(100)는 출력, 반복 수행, 에러 반환 또는 에러 무시와 같은 다양한 처리 방식을 선택할 수 있다.Additionally, in one embodiment of the present invention, the server 100 can determine an error handling method according to the return value of the function through the ErrType enumeration item defined in the function template data structure. For example, when a function returns an error, the server 100 can select various processing methods such as output, repeat performance, return an error, or ignore the error.

이후, 서버(100)는 구조체 정보에 기초하여 설계 대상 소프트웨어에 상응하는 실행 가능한 프로젝트 및 소스코드를 자동으로 생성할 수 있다. 생성된 프로젝트와 코드는 사용자가 지정한 프로그래밍 언어와 플랫폼에 맞춰져 있으며, 트리 구조 정보에 따라 정확하게 구성된다. 이렇게 생성된 소스코드는 즉시 컴파일 및 실행할 수 있으며, 필요한 경우 사용자에 의해 추가 수정 또는 확장이 가능하다. 참고로, 도 8은 구조체 정보에 기초하여 헤더 파일을 생성한 결과의 일 예시를 나타내었고, 도 9a 및 도 9b는 구조체 정보에 기초하여 소스 파일을 생성한 결과의 일 예시를 나타내었다.Afterwards, the server 100 can automatically generate an executable project and source code corresponding to the design target software based on the structure information. The generated projects and code are tailored to the programming language and platform specified by the user, and are accurately structured according to tree structure information. The source code generated in this way can be compiled and executed immediately, and can be further modified or expanded by the user if necessary. For reference, Figure 8 shows an example of the result of generating a header file based on structure information, and Figures 9A and 9B show an example of the result of generating a source file based on structure information.

이하에서는 도 10을 참조하여, 본 발명의 일 실시예에 따른 서버(100)에서 수행되는 적층식 코드 자동 생성 방법에 대해 설명하도록 한다.Hereinafter, with reference to FIG. 10, a method of automatically generating a stacked code performed in the server 100 according to an embodiment of the present invention will be described.

도 10은 본 발명의 일 실시예에 따른 서버(100)에서 수행되는 적층식 코드 자동 생성 방법의 순서도이다.Figure 10 is a flowchart of a method for automatically generating a stacked code performed in the server 100 according to an embodiment of the present invention.

먼저, 클라이언트 단말(200)로부터 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 소정 형태의 트리 구조 정보를 수신한다(S110).First, tree structure information in a predetermined form including structural information and logic information of the software to be designed is received from the client terminal 200 (S110).

다음으로, 적층식 코드 자동 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성한다(S120).Next, structure information is generated from the tree structure information based on a stacked code automatic generation algorithm (S120).

다음으로, 구조체 정보에 기초하여 상기 설계 대상 소프트웨어에 상응하는 프로젝트 및 소스코드를 생성한다(S130).Next, a project and source code corresponding to the design target software are generated based on the structure information (S130).

다음으로, 생성된 프로젝트 및 소스코드를 상기 클라이언트 단말(200)로 전송한다(S140).Next, the generated project and source code are transmitted to the client terminal 200 (S140).

한편, 상술한 설명에서, 단계 S110 내지 S140은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. 아울러, 기타 생략된 내용이라 하더라도 도 1 내지 도 9b에 기술된 내용과 도 10에 기술된 내용은 상호 적용될 수 있다.Meanwhile, in the above description, steps S110 to S140 may be further divided into additional steps or combined into fewer steps, depending on the implementation of the present invention. Additionally, some steps may be omitted or the order between steps may be changed as needed. In addition, even if other omitted content, the content described in FIGS. 1 to 9B and the content described in FIG. 10 can be mutually applied.

이상에서 전술한 본 발명의 일 실시예에 따른 적층식 코드 자동 생성 방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The method of automatically generating a stacked code according to an embodiment of the present invention described above may be implemented as a program (or application) and stored in a medium in order to be executed in conjunction with a computer, which is hardware.

상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-mentioned program is C, C++, JAVA, Ruby, and It may include code encoded in a computer language such as machine language. These codes may include functional codes related to functions that define the necessary functions for executing the methods, and include control codes related to execution procedures necessary for the computer's processor to execute the functions according to predetermined procedures. can do. In addition, these codes may further include memory reference-related codes that indicate at which location (address address) in the computer's internal or external memory additional information or media required for the computer's processor to execute the above functions should be referenced. there is. In addition, if the computer's processor needs to communicate with any other remote computer or server to execute the above functions, the code uses the computer's communication module to determine how to communicate with any other remote computer or server. It may further include communication-related codes regarding whether communication should be performed and what information or media should be transmitted and received during communication.

상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as a register, cache, or memory. Specifically, examples of the storage medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc., but are not limited thereto. That is, the program may be stored in various recording media on various servers that the computer can access or on various recording media on the user's computer. Additionally, the medium may be distributed to computer systems connected to a network, and computer-readable code may be stored in a distributed manner.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The description of the present invention described above is for illustrative purposes, and those skilled in the art will understand that the present invention can be easily modified into other specific forms without changing the technical idea or essential features of the present invention. will be. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive. For example, each component described as unitary may be implemented in a distributed manner, and similarly, components described as distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the claims described below rather than the detailed description above, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. do.

1: 적층식 코드 자동 생성 시스템
100: 적층식 코드 자동 생성 서버
110: 통신모듈
120: 메모리
130: 프로세서
200: 클라이언트 단말
300: 데이터베이스
1: Stacked code automatic generation system
100: Stacked code automatic generation server
110: Communication module
120: memory
130: processor
200: client terminal
300: database

Claims (19)

컴퓨터에 의해 수행되는 방법에 있어서,
클라이언트 단말로부터 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 소정 형태의 트리 구조 정보를 수신하는 단계;
적층식 자동 코드 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성하는 단계;
상기 구조체 정보에 기초하여 상기 설계 대상 소프트웨어에 상응하는 프로젝트 및 소스코드를 생성하는 단계; 및
상기 생성된 프로젝트 및 소스코드를 상기 클라이언트 단말로 전송하는 단계를 포함하고,
상기 트리 구조 정보는 상기 설계 대상 소프트웨어를 대표하는 최상위 노드인 프로젝트 노드와,
상기 프로젝트 노드의 하위 노드인 프로젝트 설정 노드 및 클래스 노드와,
상기 프로젝트 설정 노드의 하위 노드인 릴리즈 노드 및 디버그 노드와, 상기 클래스 노드의 하위 노드인 헤더 파일 노드 및 소스 파일 노드를 포함하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 방법.
In a method performed by a computer,
Receiving tree structure information in a predetermined form including structure information and logic information of the design target software from a client terminal;
generating structure information from the tree structure information based on a stacked automatic code generation algorithm;
generating a project and source code corresponding to the design target software based on the structure information; and
Including transmitting the generated project and source code to the client terminal,
The tree structure information includes a project node, which is the highest node representing the design target software,
A project setting node and a class node that are sub-nodes of the project node,
A method of automatically generating a stacked code based on tree structure information, including a release node and a debug node that are lower nodes of the project setting node, and a header file node and a source file node that are lower nodes of the class node.
제1항에 있어서,
상기 클라이언트 단말로부터 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 소정 형태의 트리 구조 정보를 수신하는 단계는,
상기 클라이언트 단말로부터 JSON 타입으로 변환된 상기 트리 구조 정보를 수신하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 방법.
According to paragraph 1,
The step of receiving tree structure information in a predetermined form including structure information and logic information of the design target software from the client terminal,
A method of automatically generating a stacked code based on tree structure information, wherein the tree structure information converted to JSON type is received from the client terminal.
삭제delete 제1항에 있어서,
상기 적층식 자동 코드 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성하는 단계는,
상기 트리 구조 정보에 기초하여 프로젝트 템플릿 데이터 구조체를 생성하는 단계;
상기 프로젝트 템플릿 데이터 구조체 내 포함된 프로젝트 설정 정보에 기초하여 프로젝트 설정 데이터 구조체를 생성하는 단계; 및
상기 트리 구조 정보로부터 추출된 클래스 및 함수 정보에 기초하여 클래스 템플릿 데이터 구조체 및 함수 템플릿 데이터 구조체를 생성하는 단계를 포함하는 트리 구조 정보 기반의 적층식 코드 자동 생성 방법.
According to paragraph 1,
The step of generating structure information from the tree structure information based on the stacked automatic code generation algorithm,
generating a project template data structure based on the tree structure information;
generating a project setting data structure based on project setting information included in the project template data structure; and
A method of automatically generating a stacked code based on tree structure information, including generating a class template data structure and a function template data structure based on class and function information extracted from the tree structure information.
제4항에 있어서,
상기 트리 구조 정보에 기초하여 프로젝트 템플릿 데이터 구조체를 생성하는 단계는,
상기 프로젝트의 이름, 지원 플랫폼 버전 및 상기 프로젝트 설정 정보를 포함하는 프로젝트 템플릿 데이터 구조체를 생성하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 방법.
According to paragraph 4,
The step of creating a project template data structure based on the tree structure information is,
A method of automatically generating a stacked code based on tree structure information, which generates a project template data structure including the name of the project, the supported platform version, and the project setting information.
제4항에 있어서,
상기 프로젝트 템플릿 데이터 구조체 내 포함된 프로젝트 설정 정보에 기초하여 프로젝트 설정 데이터 구조체를 생성하는 단계는,
상기 프로젝트에 대응하는 프로젝트 설정의 이름, 프로젝트 설정의 플랫폼, 프로젝트에 포함되어야 할 헤더 파일 및 소스 파일의 경로, 추가적인 추가 include 디렉토리, 라이브러리 디렉토리, 프로젝트 종속성 정보를 포함하는 상기 프로젝트 설정 데이터 구조체를 생성하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 방법.
According to paragraph 4,
The step of creating a project settings data structure based on the project settings information included in the project template data structure is:
Creating the project settings data structure including the name of the project settings corresponding to the project, the platform of the project settings, the path to the header file and source file to be included in the project, additional additional include directories, library directories, and project dependency information. A method for automatically generating stacked codes based on tree structure information.
제4항에 있어서,
상기 트리 구조 정보로부터 추출된 클래스 및 함수 정보에 기초하여 클래스 템플릿 데이터 구조체 및 함수 템플릿 데이터 구조체를 생성하는 단계는,
상기 클래스의 이름, 각 클래스의 멤버 변수 타입, 이름 및 해당 변수에 대한 주석 정보, 상기 클래스 내 정의되어야 하는 멤버 함수, 초기화 함수, 종료 함수의 템플릿 데이터의 정보를 포함하는 상기 클래스 템플릿 데이터 구조체를 생성하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 방법.
According to paragraph 4,
The step of generating a class template data structure and a function template data structure based on the class and function information extracted from the tree structure information includes:
Creating the class template data structure including the name of the class, member variable type of each class, annotation information for the name and corresponding variable, and template data information of member functions, initialization functions, and termination functions to be defined in the class. A method for automatically generating layered code based on tree structure information.
제4항에 있어서,
상기 트리 구조 정보로부터 추출된 클래스 및 함수 정보에 기초하여 클래스 템플릿 데이터 구조체 및 함수 템플릿 데이터 구조체를 생성하는 단계는,
함수의 이름, 튜플 형태로 저장되는 매개변수의 타입 및 이름, 함수 반환 타입 및 반환값 저장 변수의 이름, 초기화 또는 종료 구문의 반환값에 따른 예외처리방식, 함수 주석 내용, 초기화 또는 종료 구문에서 호출시 필요한 멤버 변수 객체의 이름, 함수의 추가 설정값 정보를 포함하는 상기 함수 템플릿 데이터 구조체를 생성하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 방법.
According to paragraph 4,
The step of generating a class template data structure and a function template data structure based on the class and function information extracted from the tree structure information includes:
The name of the function, the type and name of the parameter stored in tuple form, the name of the function return type and return value storage variable, the exception handling method according to the return value of the initialization or termination statement, the contents of the function comment, and the call in the initialization or termination statement. A method of automatically generating a stacked code based on tree structure information, which generates the function template data structure including the name of the member variable object and additional setting value information of the function.
제4항에 있어서,
상기 적층식 자동 코드 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성하는 단계는,
기능 초기화시 필요한 추가 설정값을 포함하는 고급 정보 집합 구조체를 생성하는 단계를 포함하는 트리 구조 정보 기반의 적층식 코드 자동 생성 방법.
According to paragraph 4,
The step of generating structure information from the tree structure information based on the stacked automatic code generation algorithm,
A method of automatically generating layered code based on tree-structured information, including the step of creating a high-level information set structure containing additional settings required for function initialization.
클라이언트 단말로부터 설계 대상 소프트웨어의 구조 정보 및 로직 정보를 포함하는 소정 형태의 트리 구조 정보를 수신하고, 생성된 프로젝트 및 소스 코드를 상기 클라이언트 단말로 전송하는 통신모듈,
상기 트리 구조 정보에 기초하여 상기 프로젝트 및 소스 코드를 생성하기 위한 프로그램이 저장된 메모리 및
상기 메모리에 저장된 프로그램을 실행시킴에 따라 적층식 자동 코드 생성 알고리즘에 기초하여 상기 트리 구조 정보로부터 구조체 정보를 생성하고, 상기 구조체 정보에 기초하여 상기 설계 대상 소프트웨어에 상응하는 프로젝트 및 소스코드를 생성하는 프로세서를 포함하고,
상기 트리 구조 정보는 상기 설계 대상 소프트웨어를 대표하는 최상위 노드인 프로젝트 노드와,
상기 프로젝트 노드의 하위 노드인 프로젝트 설정 노드 및 클래스 노드와,
상기 프로젝트 설정 노드의 하위 노드인 릴리즈 노드 및 디버그 노드와, 상기 클래스 노드의 하위 노드인 헤더 파일 노드 및 소스 파일 노드를 포함하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 서버.
A communication module that receives tree structure information in a predetermined form including structural information and logic information of the design target software from a client terminal and transmits the generated project and source code to the client terminal;
A memory storing a program for generating the project and source code based on the tree structure information, and
By executing the program stored in the memory, structure information is generated from the tree structure information based on a stacked automatic code generation algorithm, and a project and source code corresponding to the design target software are generated based on the structure information. Includes a processor,
The tree structure information includes a project node, which is the highest node representing the design target software,
A project setting node and a class node that are sub-nodes of the project node,
A stacked code automatic generation server based on tree structure information, including a release node and a debug node that are lower nodes of the project setting node, and a header file node and a source file node that are lower nodes of the class node.
제10항에 있어서,
상기 통신모듈은 상기 클라이언트 단말로부터 JSON 타입으로 변환된 상기 트리 구조 정보를 수신하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 서버.
According to clause 10,
The communication module is a stacked code automatic generation server based on tree structure information that receives the tree structure information converted to JSON type from the client terminal.
삭제delete 제10항에 있어서,
상기 프로세서는 상기 트리 구조 정보에 기초하여 프로젝트 템플릿 데이터 구조체를 생성하고, 상기 프로젝트 템플릿 데이터 구조체 내 포함된 프로젝트 설정 정보에 기초하여 프로젝트 설정 데이터 구조체를 생성하고, 상기 트리 구조 정보로부터 추출된 클래스 및 함수 정보에 기초하여 클래스 템플릿 데이터 구조체 및 함수 템플릿 데이터 구조체를 생성하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 서버.
According to clause 10,
The processor generates a project template data structure based on the tree structure information, generates a project setting data structure based on project setting information included in the project template data structure, and classes and functions extracted from the tree structure information. A layered code automatic generation server based on tree structure information that generates class template data structures and function template data structures based on the information.
제13항에 있어서,
상기 프로세서는 상기 프로젝트의 이름, 지원 플랫폼 버전 및 상기 프로젝트 설정 정보를 포함하는 프로젝트 템플릿 데이터 구조체를 생성하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 서버.
According to clause 13,
The automatic stacked code generation server based on tree structure information, wherein the processor generates a project template data structure including the name of the project, a supported platform version, and the project setting information.
제13항에 있어서,
상기 프로세서는 상기 프로젝트에 대응하는 프로젝트 설정의 이름, 프로젝트 설정의 플랫폼, 프로젝트에 포함되어야 할 헤더 파일 및 소스 파일의 경로, 추가적인 추가 include 디렉토리, 라이브러리 디렉토리, 프로젝트 종속성 정보를 포함하는 상기 프로젝트 설정 데이터 구조체를 생성하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 서버.
According to clause 13,
The processor generates the project setting data structure including the name of the project setting corresponding to the project, the platform of the project setting, the path of the header file and source file to be included in the project, an additional additional include directory, a library directory, and project dependency information. A server that automatically generates layered code based on tree structure information.
제13항에 있어서,
상기 프로세서는 상기 클래스의 이름, 각 클래스의 멤버 변수 타입, 이름 및 해당 변수에 대한 주석 정보, 상기 클래스 내 정의되어야 하는 멤버 함수, 초기화 함수, 종료 함수의 템플릿 데이터의 정보를 포함하는 상기 클래스 템플릿 데이터 구조체를 생성하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 서버.
According to clause 13,
The processor generates the class template data including the name of the class, the type of member variable of each class, the name and annotation information for the corresponding variable, and the template data of the member function, initialization function, and termination function to be defined in the class. A layered code automatic generation server based on tree structure information that generates structures.
제13항에 있어서,
상기 프로세서는 함수의 이름, 튜플 형태로 저장되는 매개변수의 타입 및 이름, 함수 반환 타입 및 반환값 저장 변수의 이름, 초기화 또는 종료 구문의 반환값에 따른 예외처리방식, 함수 주석 내용, 초기화 또는 종료 구문에서 호출시 필요한 멤버 변수 객체의 이름, 함수의 추가 설정값 정보를 포함하는 상기 함수 템플릿 데이터 구조체를 생성하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 서버.
According to clause 13,
The processor stores the name of the function, the type and name of the parameter stored in the form of a tuple, the name of the function return type and return value storage variable, the exception handling method according to the return value of the initialization or termination statement, the contents of the function comment, and the initialization or termination. A stacked code automatic generation server based on tree structure information that generates the function template data structure including the name of the member variable object required when calling from the syntax and additional setting value information of the function.
제13항에 있어서,
상기 프로세서는 기능 초기화시 필요한 추가 설정값을 포함하는 고급 정보 집합 구조체를 생성하는 것인 트리 구조 정보 기반의 적층식 코드 자동 생성 서버.
According to clause 13,
The automatic stacked code generation server based on tree structure information, wherein the processor generates an advanced information set structure including additional settings required when initializing functions.
삭제delete
KR1020230121671A 2023-09-13 2023-09-13 System, server and method for automatically generating stacked code based on tree structure infomation KR102612934B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230121671A KR102612934B1 (en) 2023-09-13 2023-09-13 System, server and method for automatically generating stacked code based on tree structure infomation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230121671A KR102612934B1 (en) 2023-09-13 2023-09-13 System, server and method for automatically generating stacked code based on tree structure infomation

Publications (1)

Publication Number Publication Date
KR102612934B1 true KR102612934B1 (en) 2023-12-12

Family

ID=89159477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230121671A KR102612934B1 (en) 2023-09-13 2023-09-13 System, server and method for automatically generating stacked code based on tree structure infomation

Country Status (1)

Country Link
KR (1) KR102612934B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100010758A (en) * 2008-07-23 2010-02-02 성균관대학교산학협력단 Method and device for generating of code
US20210182034A1 (en) * 2018-10-29 2021-06-17 The Mathworks, Inc. Systems and methods for automatic code generation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100010758A (en) * 2008-07-23 2010-02-02 성균관대학교산학협력단 Method and device for generating of code
US20210182034A1 (en) * 2018-10-29 2021-06-17 The Mathworks, Inc. Systems and methods for automatic code generation

Similar Documents

Publication Publication Date Title
US9465590B2 (en) Code generation framework for application program interface for model
CN111241454B (en) Method, system and device for generating webpage codes
US8869108B2 (en) Techniques related to customizations for composite applications
US9465608B2 (en) Code separation with semantic guarantees
CN111209005B (en) Method and apparatus for compiling program file, and computer-readable storage medium
CN110149800B (en) Apparatus for processing abstract syntax tree associated with source code of source program
CN107220172A (en) Automatic user interface is carried out by model-driven methodologies(UI)The method and system of test
US20100138808A1 (en) Embedded system design device and a method thereof using a target independent model
CN111078555B (en) Test file generation method, system, server and storage medium
US20190171433A1 (en) Methods for enabling a computer to migrate microservices and to perform microservice templating
AU2003281721A1 (en) Bi-directional programming system/method for program development
CN106776779B (en) Method for generating entity file by JSON data based on Mac platform
US10810022B2 (en) Executable configuration template language
US10691434B2 (en) System and method for converting a first programming language application to a second programming language application
Buchmann et al. Handcrafting a Triple Graph Transformation System to Realize Round-trip Engineering Between UML Class Models and Java Source Code.
KR101552914B1 (en) Web server application framework web application processing method using the framework and computer readable medium processing the method
Dasseville et al. A web-based IDE for IDP
US9542165B2 (en) Model to Petri-Net transformation
KR102612934B1 (en) System, server and method for automatically generating stacked code based on tree structure infomation
CN115904480B (en) Code reconstruction method, device, electronic equipment and storage medium
CN115878097B (en) Method and system for creating timing task
CN117215556A (en) Modularized page rapid construction method, system, equipment and medium
US20230041718A1 (en) Automated code generation based on pseudo-code
Belafia et al. From monolithic to microservice architecture: the case of extensible and domain-specific IDEs
CN115964042A (en) Menu generation method and device, storage medium and electronic equipment

Legal Events

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