KR102660320B1 - A sever for providing optimal source code based cloud service and a method for providing source code - Google Patents

A sever for providing optimal source code based cloud service and a method for providing source code Download PDF

Info

Publication number
KR102660320B1
KR102660320B1 KR1020230113601A KR20230113601A KR102660320B1 KR 102660320 B1 KR102660320 B1 KR 102660320B1 KR 1020230113601 A KR1020230113601 A KR 1020230113601A KR 20230113601 A KR20230113601 A KR 20230113601A KR 102660320 B1 KR102660320 B1 KR 102660320B1
Authority
KR
South Korea
Prior art keywords
code
source code
recommendation
labeling
information
Prior art date
Application number
KR1020230113601A
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 KR1020230113601A priority Critical patent/KR102660320B1/en
Application granted granted Critical
Publication of KR102660320B1 publication Critical patent/KR102660320B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/105Human resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 일 실시예에 따른 소스코드 제공 서버는, 목적을 달성하기 위한 프로세스를 실행하는 소스코드를 추천하는 소스코드 제공 서버에 있어서, 사용자가 이루고자 하는 목적인 대상목적이 반영된 요청정보를 수신하는 수신모듈; 소스코드에 대한 정보인 코드정보가 저장되어 있는 저장모듈; 및 머신러닝으로 학습된 조합모델을 이용하여, 상기 코드정보와 상기 요청정보를 기초로 사용자의 컴퓨팅 장치에서 구동되어 상기 대상목적을 달성하기 위한 소스코드의 종류와 소스코드의 조합인 추천코드를 결정하는 추천모듈;를 포함할 수 있다. The source code providing server according to an embodiment of the present invention is a source code providing server that recommends source code that executes a process to achieve a goal, and receives request information reflecting the target purpose that the user wants to achieve. module; A storage module in which code information, which is information about source code, is stored; And using a combination model learned through machine learning, a recommendation code that is run on the user's computing device based on the code information and the request information and is a combination of the source code and the type of source code to achieve the target purpose is determined. It may include a recommendation module.

Description

클라우드 기반의 최적 소스코드 제공 서버 및 소스 코드 제공 방법 {A SEVER FOR PROVIDING OPTIMAL SOURCE CODE BASED CLOUD SERVICE AND A METHOD FOR PROVIDING SOURCE CODE}Cloud-based optimal source code provision server and source code provision method {A SEVER FOR PROVIDING OPTIMAL SOURCE CODE BASED CLOUD SERVICE AND A METHOD FOR PROVIDING SOURCE CODE}

본 발명은 클라우드 서비스를 기초로 사용자에게 최적의 소스코드 조합을 추천하고 제공하는 소스코드 제공 서버 및 소스 코드 제공 방법에 대한 것이다. The present invention relates to a source code provision server and source code provision method that recommends and provides the optimal source code combination to users based on cloud services.

인터넷 네트워크의 기술력이 증가되고, 재택 근무와 같이 컴퓨터 업무의 공간적 제약이 없어짐에 따라, 최근 클라우드 환경은 급격하게 성장하고 있다. 예전에는 사람들은 클라우드 서비스를 통해 저장공간을 제공 받는 것에 그쳤지만, 클라우드 기술이 개량됨에 따라,클라우드 서비스를 통해 프로그램을 실행하여 사용하는 경우도 증가하고 있다. 더욱이, 최근에는 개발자들의 지리적, 업무적 효율성을 극대화하도록, 클라우드를 통해 프로그램의 개발도 진행하도록 하는 플랫폼이 개발되어 출시되고 있다. 이러한 플랫폼을 통해 언제, 어느 곳에서나 개발자들은 각종 개발 도구와 개발 소스들을 제공받을 수 있다. As Internet network technology increases and space restrictions for computer work, such as working from home, disappear, the cloud environment has recently grown rapidly. In the past, people only received storage space through cloud services, but as cloud technology improves, the number of people running programs through cloud services is increasing. Moreover, recently, platforms have been developed and released that allow program development through the cloud to maximize geographical and work efficiency for developers. Through these platforms, developers can receive various development tools and development sources anytime, anywhere.

다만, 기존의 클라우드 기반 개발 플랫폼들은 단순히 개발 소프트웨어의 실행 결과값을 제공하거나, 소스코드들의 단순 정보 공유만을 제공하고 있다. 이로 인해, 클라우드에서 제공되는 데이터들이 오류가 있을 경우, 개발자들은 오류 있는 데이터를 그대로 활용하면서 각종 문제에 노출되고 있다. 또한, 개발자들이 실질적으로 소스코드를 조합하고 운영하는데 많은 시간을 쓰기에, 개발자들의 실질적인 업무 효율성을 증가시키지 못하는 문제가 존재한다. However, existing cloud-based development platforms simply provide execution results of development software or simple information sharing of source codes. As a result, when data provided in the cloud contains errors, developers are exposed to various problems by using the erroneous data as is. Additionally, since developers spend a lot of time actually combining and operating source code, there is a problem that does not increase the actual work efficiency of developers.

본 발명은 상술한 문제점을 해결하기 위한 것으로, 컴퓨팅 자원의 안전과 업무 효율을 극대화할 수 있는 소스코드 제공 서버 및 소스코드 제공 방법을 제공하고자 한다. The present invention is intended to solve the above-described problems, and seeks to provide a source code provision server and a source code provision method that can maximize the safety of computing resources and work efficiency.

본 발명의 일 실시예에 따른 소스코드 제공 서버는, 목적을 달성하기 위한 프로세스를 실행하는 소스코드를 추천하는 소스코드 제공 서버에 있어서, 사용자가 이루고자 하는 목적인 대상목적이 반영된 요청정보를 수신하는 수신모듈; 소스코드에 대한 정보인 코드정보가 저장되어 있는 저장모듈; 및 머신러닝으로 학습된 조합모델을 이용하여, 상기 코드정보와 상기 요청정보를 기초로 사용자의 컴퓨팅 장치에서 구동되어 상기 대상목적을 달성하기 위한 소스코드의 종류와 소스코드의 조합인 추천코드를 결정하는 추천모듈;를 포함할 수 있다. The source code providing server according to an embodiment of the present invention is a source code providing server that recommends source code that executes a process to achieve a goal, and receives request information reflecting the target purpose that the user wants to achieve. module; A storage module in which code information, which is information about source code, is stored; And using a combination model learned through machine learning, a recommendation code that is run on the user's computing device based on the code information and the request information and is a combination of the source code and the type of source code to achieve the target purpose is determined. It may include a recommendation module.

또한, 상기 추천코드에 따라 프로세스를 실행할 경우 오류가 발생되는지 여부를 점검하는 점검모듈; 및 상기 점검모듈이 상기 추천코드로서 동작될 때 오류가 발생된다고 판단하는 경우, 설명 가능한 인공지능을 이용하여 오류의 원인을 식별하는 설명모듈;을 더 포함할 수 있다.In addition, an inspection module that checks whether an error occurs when executing the process according to the recommendation code; And when the inspection module determines that an error occurs when operating as the recommendation code, an explanation module that identifies the cause of the error using explainable artificial intelligence.

또한, 상기 추천코드 또는 오류에 대한 정보를 사용자에게 표시하는 인터페이스를 산출하는 인터페이스모듈;을 더 포함할 수 있다. In addition, it may further include an interface module that calculates an interface that displays information about the recommendation code or error to the user.

또한, 상기 요청정보는, 대상목적에 대한 정보인 목적정보 및 사용자의 컴퓨팅 장치의 구동에 대한 정보인 사용환경 정보로 이루어지며, 상기 추천모듈은, 상기 사용환경 정보를 고려하여 상기 추천코드를 결정할 수 있다. In addition, the request information consists of purpose information, which is information about the target purpose, and usage environment information, which is information about the operation of the user's computing device, and the recommendation module determines the recommendation code in consideration of the usage environment information. You can.

또한, 상기 추천모듈은, 사용자의 컴퓨팅 장치에서 발생되는 부하를 고려하여, 시계열적으로 상이한 소스코드가 실행되는 상기 추천코드를 결정할 수 있다. Additionally, the recommendation module may determine the recommendation code in which different source codes are executed in time series, taking into account the load generated in the user's computing device.

또한, 상기 조합모델을 학습하기 위해서, 소스코드에 대한 라벨링을 수행하는 라벨링모듈;을 더 포함하며, 상기 라벨링모듈은, 라벨링모델을 이용하여 자동으로 소스코드에 대한 라벨링을 수행하는 자동라벨링부를 구비할 수 있다. In addition, in order to learn the combination model, it further includes a labeling module that performs labeling on the source code, wherein the labeling module includes an automatic labeling unit that automatically labels the source code using the labeling model. can do.

또한, 상기 라벨링모듈은, 미리 등록된 점검인력에게 상기 자동라벨링부에 의해 수행된 라벨링의 유효성 점검을 요청하는 검수부를 더 구비하고, 상기 자동라벨링부는, 상기 미리 등록된 점검인력의 평가결과를 기초로 상기 라벨링모델을 재 학습할 수 있다. In addition, the labeling module further includes an inspection unit that requests pre-registered inspection personnel to check the validity of labeling performed by the automatic labeling unit, and the automatic labeling unit bases the evaluation results of the pre-registered inspection personnel on the basis of the evaluation results of the pre-registered inspection personnel. You can retrain the labeling model.

또한, 상기 라벨링모듈은, 상기 미리 등록된 점검인력의 평가결과를 기초로 미리 정해진 개시조건이 만족되는 경우, 복수의 업무인력이 수동으로 라벨링하는 업무를 관리하는 스케줄부를 더 구비할 수 있다. In addition, the labeling module may further include a schedule unit that manages manual labeling work by a plurality of workers when a predetermined start condition is satisfied based on the evaluation results of the pre-registered inspection personnel.

또한, 상기 라벨링모듈은, 업무인력의 업무 역량에 대해서 평가하는 인력부 및 라벨링의 난이도를 평가하는 난이도산정부를 더 구비하고, 상기 스케줄부는, 라벨링의 난이도와 업무인력의 업무 역량에 기초하여 상기 업무인력에게 라벨링 업무를 할당할 수 있다. In addition, the labeling module further includes a human resources department that evaluates the work competency of the workforce and a difficulty calculation unit that evaluates the difficulty of labeling, and the schedule unit is configured to perform the task based on the difficulty of labeling and the work competency of the workforce. Labeling tasks can be assigned to personnel.

본 발명의 일 실시예에 따른 소스코드 제공 방법은, 소스코드 제공 서버에 의해 구현되며, 목적을 달성하기 위한 프로세스를 추천하는 방법인, 소스코드 제공 방법에 있어서, 수신모듈에 의해, 사용자가 이루고자 하는 목적인 대상목적이 반영된 요청정보가 수신되는 단계; 및 추천모듈에 의해, 머신러닝으로 학습된 조합모델이 이용되어, 저장모듈에 저장되어 있는 코드정보와 상기 요청정보를 기초로 사용자의 컴퓨팅 장치에 구동되어 상기 대상목적을 달성하기 위한 소스코드의 종류와 소스코드의 조합인 추천코드가 결정되는 단계;를 포함할 수 있다. The method of providing source code according to an embodiment of the present invention is implemented by a source code providing server, and is a method of recommending a process to achieve the purpose. A step of receiving request information reflecting the target purpose; And by the recommendation module, a combination model learned through machine learning is used and driven on the user's computing device based on the code information stored in the storage module and the request information to achieve the type of source code to achieve the target purpose. It may include a step of determining a recommendation code that is a combination of and source code.

본 발명에 따른 소스코드 제공 서버 및 소스코드 제공 방법은, 사용자의 업무 편의성을 증대시킬 수 있다. The source code provision server and source code provision method according to the present invention can increase the user's work convenience.

또한, 오류를 최소화할 수 있다. Additionally, errors can be minimized.

또한, 클라우드 서비스의 신뢰성을 극대화할 수 있다. Additionally, the reliability of cloud services can be maximized.

또한, 클라우드 서비스의 사용성을 증대시킬 수 있다. Additionally, the usability of cloud services can be increased.

다만, 본 발명의 효과가 상술한 효과들로 제한되는 것은 아니며, 언급되지 아니한 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.However, the effects of the present invention are not limited to the effects described above, and effects not mentioned can be clearly understood by those skilled in the art from this specification and the attached drawings.

도 1은 본 발명의 일 실시예에 따른 소스코드 제공 서버의 관계도
도 2는 본 발명의 일 실시예에 따른 소스코드 제공 서버의 구성도
도 3은 본 발명의 일 실시예에 따른 소스코드 제공 방법의 순서도
도 4 및 도 5는 본 발명의 일 실시예에 따른 소스코드 제공 서버에 의해 제공되는 사용자 인터페이스의 예시를 도시한 도면
도 6은 본 발명의 일 실시예에 따른 소스코드 제공 서버가 구비하는 라벨링모듈에 의해 라벨링되는 과정을 설명하기 위한 도면
도 7은 본 발명의 일 실시예에 따른 소스코드 제공 서버가 구비하는 라벨링모듈에 의해 실행되는 수동 라벨링 과정을 설명하기 위한 도면
1 is a relationship diagram of a source code providing server according to an embodiment of the present invention.
Figure 2 is a configuration diagram of a source code providing server according to an embodiment of the present invention.
Figure 3 is a flowchart of a method for providing source code according to an embodiment of the present invention.
4 and 5 are diagrams showing examples of user interfaces provided by a source code providing server according to an embodiment of the present invention.
Figure 6 is a diagram for explaining the labeling process by the labeling module provided by the source code providing server according to an embodiment of the present invention.
Figure 7 is a diagram illustrating a manual labeling process executed by a labeling module provided by a source code providing server according to an embodiment of the present invention.

이하에서는 도면을 참조하여 본 발명의 구체적인 실시예를 상세하게 설명한다. 다만, 본 발명의 사상은 제시되는 실시예에 제한되지 아니하고, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에서 다른 구성요소를 추가, 변경, 삭제 등을 통하여, 퇴보적인 다른 발명이나 본 발명 사상의 범위 내에 포함되는 다른 실시예를 용이하게 제안할 수 있을 것이나, 이 또한 본원 발명 사상 범위 내에 포함된다고 할 것이다.Hereinafter, specific embodiments of the present invention will be described in detail with reference to the drawings. However, the spirit of the present invention is not limited to the presented embodiments, and a person skilled in the art who understands the spirit of the present invention may add, change, or delete other components within the scope of the same spirit, thereby creating other degenerative inventions or the present invention. Other embodiments that are included within the scope of the invention can be easily proposed, but this will also be said to be included within the scope of the invention of the present application.

또한, 각 실시예의 도면에 나타나는 동일한 사상의 범위 내의 기능이 동일한 구성요소는 동일한 참조부호를 사용하여 설명한다.In addition, components having the same function within the scope of the same idea shown in the drawings of each embodiment will be described using the same reference numerals.

도 1은 본 발명의 일 실시예에 따른 소스코드 제공 서버의 관계도이다. Figure 1 is a relationship diagram of a source code providing server according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 소스코드 제공 서버(100)는 사용자의 컴퓨팅 장치(10), 외부 서버(20), 검수인력의 컴퓨팅 장치(30) 및/또는 점검인력의 컴퓨팅 장치와 유/무선으로 네트워크 연결될 수 있다. Referring to FIG. 1, the source code providing server 100 according to an embodiment of the present invention provides the user's computing device 10, the external server 20, the inspection personnel's computing device 30, and/or the inspection personnel's computing device 100. It can be networked with computing devices wired or wirelessly.

본 발명에서 언급하는 온라인 네트워크라 함은 유선 공중망, 무선 이동 통신망, 또는 휴대 인터넷 등과 통합된 코어 망일 수도 있고, TCP/IP 프로토콜 및 그 상위 계층에 존재하는 여러 서비스, 즉 HTTP(Hyper Text Transfer Protocol), HTTPS(Hyper Text Transfer Protocol Secure), Telnet, FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol) 등을 제공하는 전 세계적인 개방형 컴퓨터 네트워크 구조를 의미할 수 있으며, 이러한 예에 한정하지 않고 다양한 형태로 데이터를 송수신할 수 있는 데이터 통신망을 포괄적으로 의미하는 것이다.The online network referred to in the present invention may be a core network integrated with a wired public network, a wireless mobile communication network, or a mobile Internet, and may include TCP/IP protocols and various services existing at the upper layer thereof, such as HTTP (Hyper Text Transfer Protocol). , can refer to a worldwide open computer network structure that provides HTTPS (Hyper Text Transfer Protocol Secure), Telnet, FTP (File Transfer Protocol), DNS (Domain Name System), and SMTP (Simple Mail Transfer Protocol). It is not limited to examples, but comprehensively refers to a data communication network that can transmit and receive data in various forms.

본 발명에서 언급하는 시스템에서 제공하는 클라우드 서비스는 서로 다른 물리적인 위치에 존재하는 기기들의 자원을 가상화 기술로 통합해, 하드웨어, 소프트웨어 등 IT 자원을 필요한 때 필요한 만큼 빌려 쓸 수 있는 환경을 제공하는 서비스로서, IaaS(Infrastructure as a Services) 서비스, PaaS(Platform as a Services) 서비스 및/또는 SaaS(Software as a Services) 서비스로 이루어질 수 있다. The cloud service provided by the system referred to in the present invention is a service that integrates the resources of devices existing in different physical locations through virtualization technology and provides an environment in which IT resources such as hardware and software can be borrowed and used as needed when needed. As a service, it may be comprised of an Infrastructure as a Services (IaaS) service, a Platform as a Services (PaaS) service, and/or a Software as a Services (SaaS) service.

사용자(10)는 임의의 목적을 달성하기 위한 프로세스를 실행하고자 하는 자를 의미할 수 있다. The user 10 may refer to a person who wants to execute a process to achieve a certain purpose.

본 발명에서 언급하는 컴퓨팅 장치는 정보 처리 연산을 처리할 수 있는 장치를 의미할 수 있다.The computing device referred to in the present invention may mean a device capable of processing information processing operations.

일례로, 컴퓨팅 장치는 데스크탑 컴퓨터, 노트북, 스마트폰, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 휴대용 단말기 등이 포함되는 이동 단말기 및/또는 스마트 TV 등이 포함될 수 있다.For example, computing devices may include desktop computers, laptops, smartphones, Personal Digital Assistants (PDAs), Portable Multimedia Players (PMPs), mobile terminals including portable terminals, and/or smart TVs.

이하, 사용자와 사용자 컴퓨팅 장치를 동일한 의미로서 사용할 수 있다. Hereinafter, user and user computing device may be used with the same meaning.

외부서버(20)는 퍼블릭 네트워크를 통해 접근할 수 있는 서버를 의미할 수 있다. The external server 20 may refer to a server accessible through a public network.

일례로, 외부서버(20)는 소스코드를 저장하고 제공할 수 있는 서버를 의미할 수 있다. For example, the external server 20 may refer to a server that can store and provide source code.

본 발명에서 언급하는 서버는 서버의 서버 환경을 수행하기 위한 다른 구성들이 포함될 수도 있다. 서버는 임의의 형태의 장치는 모두 포함할 수 있다. The server referred to in the present invention may include other components for performing the server environment. A server can include any type of device.

일례로, 서버는 디지털 기기로서, 랩탑 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터, 웹 패드, 이동 전화기와 같이 프로세서를 탑재하고 메모리를 구비한 연산 능력을 갖춘 디지털 기기일 수 있다. For example, a server may be a digital device, such as a laptop computer, notebook computer, desktop computer, web pad, or mobile phone, equipped with a processor and equipped with memory and computing power.

일례로, 서버는 웹 서버일 수 있다. 다만, 이에 한정하지 않고, 서버의 종류는 통상의 기술자에게 자명한 수준에서 다양하게 변경 가능하다.In one example, the server may be a web server. However, it is not limited to this, and the type of server can be changed in various ways at a level that is obvious to a person skilled in the art.

사용자는 자신의 업무(프로세스)에 필요한 소스코드를 소스코드 제공 서버(100)에 요청할 수 있으며, 소스코드 제공 서버(100)는 사용자의 프로세스에 적합한 최적의 소스코드 조합을 추천하거나 제공할 수 있다. The user can request the source code needed for his or her work (process) from the source code providing server 100, and the source code providing server 100 can recommend or provide the optimal source code combination suitable for the user's process. .

이하, 소스코드 제공 서버에 대해서 구체적으로 서술하도록 한다. Below, the source code provision server will be described in detail.

도 2는 본 발명의 일 실시예에 따른 소스코드 제공 서버의 구성도이다. Figure 2 is a configuration diagram of a source code providing server according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 소스코드 제공 서버(100)는, 목적을 달성하기 위한 프로세스를 실행하는 소스코드를 추천하는 소스코드 제공 서버(100)에 있어서, 사용자가 이루고자 하는 목적인 대상목적이 반영된 요청정보를 수신하는 수신모듈(110), 소스코드에 대한 정보인 코드정보가 저장되어 있는 저장모듈(120) 및 머신러닝으로 학습된 조합모델을 이용하여, 상기 코드정보와 상기 요청정보를 기초로 사용자의 컴퓨팅 장치에서 구동되어 상기 대상목적을 달성하기 위한 소스코드의 종류와 소스코드의 조합인 추천코드를 결정하는 추천모듈(130)을 포함할 수 있다.The source code providing server 100 according to an embodiment of the present invention recommends source code for executing a process to achieve a goal, and reflects the target purpose, which is the goal the user wants to achieve. Using a receiving module 110 that receives request information, a storage module 120 that stores code information, which is information about source code, and a combination model learned through machine learning, based on the code information and the request information It may include a recommendation module 130 that runs on the user's computing device and determines a recommendation code that is a combination of the source code and the type of source code to achieve the target purpose.

또한, 상기 소스코드 제공 서버(100)는, 상기 추천코드에 따라 프로세스를 실행할 경우 오류가 발생되는지 여부를 점검하는 점검모듈(140) 및 상기 점검모듈(140)이 상기 추천코드로서 동작될 때 오류가 발생된다고 판단하는 경우, 설명 가능한 인공지능을 이용하여 오류의 원인을 식별하는 설명모듈(150)을 더 포함할 수 있다. In addition, the source code providing server 100 has an inspection module 140 that checks whether an error occurs when executing a process according to the recommendation code, and an error error occurs when the inspection module 140 is operated as the recommendation code. If it is determined that occurs, an explanation module 150 that identifies the cause of the error using explainable artificial intelligence may be further included.

또한, 상기 소스코드 제공 서버(100)는, 상기 추천코드 또는 오류에 대한 정보를 사용자에게 표시하는 인터페이스를 산출하는 인터페이스모듈(160) 및 상기 조합모델을 학습하기 위해서, 소스코드에 대한 라벨링을 수행하는 라벨링모듈(170)을 더 포함할 수 있다. In addition, the source code providing server 100 performs labeling on the source code in order to learn the combination model and the interface module 160 that calculates an interface that displays information about the recommendation code or error to the user. It may further include a labeling module 170.

수신모듈(110), 추천모듈(130), 설명모듈(150), 수집모듈, 저장모듈(120), 점검모듈(140), 인터페이스모듈(160) 및/또는 라벨링모듈(170)은 유/무선으로 서로 연결되어 서로 정보통신 가능할 수 있다. The reception module 110, recommendation module 130, explanation module 150, collection module, storage module 120, inspection module 140, interface module 160, and/or labeling module 170 are wired/wireless. They can be connected to each other and communicate information with each other.

수신모듈(110)은 사용자가 이루고자 하는 목적인 대상목적이 반영된 요청정보를 수신할 수 있다. The receiving module 110 can receive request information reflecting the target purpose that the user wants to achieve.

일례로, 대상목적은 사용자가 프로그램을 통해 이루고자 하는 바를 의미할 수 있다. For example, the target purpose may mean what the user wants to achieve through the program.

일례로, 대상목적은 오류데이터의 분류 업무를 수행하는 목적, 이미지 편집 업무를 수행하는 목적 또는 분류 프로세스, 자동 인프라 구축 업무를 수행하는 목적 등일 수 있다. For example, the target purpose may be the purpose of performing a classification task of error data, a purpose of performing an image editing task, a classification process, or an automatic infrastructure construction task, etc.

다만, 이에 한정하지 않고, 상기 대상목적은 통상의 기술자에게 자명한 수준에서 다양하게 변형 가능하다.However, it is not limited to this, and the above object can be modified in various ways at a level that is obvious to those skilled in the art.

요청정보는 대상목적에 대한 정보인 목적정보 및 사용자의 컴퓨팅 장치의 사양에 대한 정보인 사양정보 및 사용자의 컴퓨팅 장치의 구동에 대한 정보인 사용환경 정보로 이루어질 수 있다. Request information may consist of purpose information, which is information about the target purpose, specification information, which is information about the specifications of the user's computing device, and usage environment information, which is information about the operation of the user's computing device.

이는, 사용자의 컴퓨팅 장치에 추천코드가 실행되는 것이기 때문일 수 있다. This may be because the recommendation code is executed on the user's computing device.

일례로, 사양정보는 사용자 컴퓨팅 장치의 CPU, 램(RAM), 스토리지(Storage), Network, GPU 등의 하드웨어에 대한 정보 및 설치되고 실행되는 운영/응용 소프트웨어에 대한 정보를 포함할 수 있다.For example, specification information may include information about hardware such as CPU, RAM, storage, network, GPU, etc. of the user's computing device, and information about operating/application software that is installed and executed.

또한, 사양정보는 사용자의 컴퓨팅 장치가 동작되면서 발생되는 부하에 대한 정보, 메트릭/로그 정보들(사용환경 정보)을 더 포함할 수 있다. Additionally, the specification information may further include information about the load generated while the user's computing device operates, and metric/log information (usage environment information).

다만, 이에 한정하지 않고, 사양정보의 구체적인 종류는 통상의 기술자에게 자명한 수준에서 다양하게 변형 가능하다.However, it is not limited to this, and the specific types of specification information can be modified in various ways at a level that is obvious to a person skilled in the art.

수신모듈(110)은 사양 환경 중에서 사용환경에 대한 정보를 사용자 컴퓨팅 장치로부터 수집할 수 있다. The receiving module 110 may collect information about the usage environment from the user computing device among the specification environments.

저장모듈(120)은 소스코드 제공 방법이 구현되면서 필요한 모든 정보들이 저장되어 있을 수 있다.The storage module 120 may store all information necessary while implementing the source code provision method.

저장모듈(120)에는 코드정보가 저장되어 있을 수 있다. Code information may be stored in the storage module 120.

일례로, 코드정보는 소스코드, 그 소스코드에 의해 실행되는 프로세스의 기능, 소스코드의 안정성에 대한 정보, 소스코드의 효율성에 대한 정보, 소스코드에 의한 프로세스가 오류 없이 실행되는데 적합한 컴퓨팅 장치의 환경에 대한 정보를 포함할 수 있다. For example, code information includes source code, the function of the process executed by the source code, information about the stability of the source code, information about the efficiency of the source code, and information about the computing device suitable for the process by the source code to run without error. May contain information about the environment.

저장모듈(120)에는 코드정보가 데이터베이스화 되어 저장되어 있을 수 있다. Code information may be stored in a database in the storage module 120.

데이터베이스화에 대한 기술은 공지된 기술이므로, 이에 대한 자세한 설명은 공지 기술과 중복되는 한도에서 생략될 수 있다. Since the database technology is a known technology, detailed description thereof may be omitted to the extent that it overlaps with the known technology.

저장모듈(120)은 코드정보를 수집하기 위해서 외부 서버에 접근하여 다운받을 수 있다. The storage module 120 can access and download external servers to collect code information.

추천모듈(130)은 머신러닝으로 학습된 조합모델을 이용하여, 상기 코드정보와 상기 요청정보를 기초로 사용자의 컴퓨팅 장치에서 구동되어 상기 대상목적을 달성하기 위한 소스코드의 종류와 소스코드의 조합인 추천코드를 결정할 수 있다. The recommendation module 130 uses a combination model learned through machine learning and runs on the user's computing device based on the code information and the request information to combine the type of source code and source code to achieve the target purpose. You can decide on the referral code.

추천모듈(130)은 머신러닝을 이용하여 조합모델을 학습할 수 있다. The recommendation module 130 can learn a combination model using machine learning.

구체적인 일례로, 추천모듈(130)은 과거의 사용자의 요청정보와 그 요청정보에 따라 제공되었던 과거의 추천코드에 대한 정보인 과거 학습데이터와 후술하는 생성 학습데이터를 기초로 머신러닝/딥러닝하여 조합모델을 학습할 수 있다. As a specific example, the recommendation module 130 performs machine learning/deep learning based on past learning data, which is information about past user request information and past recommendation codes provided according to the request information, and generated learning data described later. You can learn a combination model.

여기서, 머신러닝/딥러닝에 대한 구현 알고리즘은 공지된 기술을 활용하는 것으로서, 이에 대한 자세한 설명은 생략될 수 있다. Here, the implementation algorithm for machine learning/deep learning utilizes known technologies, and detailed description thereof may be omitted.

조합모델은 사용자 컴퓨팅 장치의 사양정보과 사용환경 정보를 고려하여 사용자 컴퓨팅 장치에서 오류 없이 구동되는 추천코드를 결정하여 추천할 수 있다.The combination model can determine and recommend a recommendation code that runs without error on the user's computing device by considering the specifications and usage environment information of the user's computing device.

추천모듈(130)은 상기 사용환경 정보를 고려하여 상기 추천코드를 결정할 수 있다. The recommendation module 130 may determine the recommendation code by considering the usage environment information.

추천코드는 대상목적이 달성되면서 사용자 컴퓨팅 장치에 오류 없이 동작될 수 있는 소스코드의 조합을 의미하는 예비 추천코드, 사용자 컴퓨팅 장치의 사용환경이 고려되어 예비 추천코드 중에서 선별된 최종 추천코드 및 지정된 시간에 따라 최종 추천코드가 변경되어 실행되도록 구성된 적어도 하나 이상의 최종 추천코드의 조합인 조합 추천코드로 이루어질 수 있다. The recommendation code is a preliminary recommendation code that means a combination of source code that can operate without error on the user's computing device while achieving the target purpose, a final recommendation code selected from among the preliminary recommendation codes in consideration of the usage environment of the user's computing device, and a designated time Accordingly, the final recommendation code may be changed and consist of a combination recommendation code that is a combination of at least one final recommendation code configured to be executed.

일례로, 추천모듈(130)은 조합모델을 이용하여 사용자의 컴퓨팅 장치 사양이 고려되어 대상목적이 달성될 수 있는 소스코드의 종류와 소스코드의 조합인 예비 추천코드를 산출할 수 있다. For example, the recommendation module 130 may use a combination model to calculate a preliminary recommendation code that is a combination of the source code and the type of source code that can achieve the target purpose by considering the specifications of the user's computing device.

또한, 추천모듈(130)은 사용자의 컴퓨팅 장치의 사용환경을 고려하여 예비 추천코드 중에서 최종 추천코드를 선별할 수 있다. Additionally, the recommendation module 130 may select the final recommendation code from among the preliminary recommendation codes in consideration of the usage environment of the user's computing device.

또한, 추천모듈(130)은 사용자의 컴퓨팅 장치의 사용환경에 따라 시계열적으로 최종 추천코드가 변경되어 실행되는 조합 추천코드를 산출할 수 있다. Additionally, the recommendation module 130 may calculate a combination recommendation code that is executed by changing the final recommendation code in time series according to the usage environment of the user's computing device.

추천모듈(130)은 추천코드를 안정성이 중시되는 추천코드와 효율성이 중시되는 추천코드로 분류할 수 있다. The recommendation module 130 can classify recommendation codes into recommendation codes that emphasize stability and recommendation codes that emphasize efficiency.

이를 위해, 추천모듈(130)은 과거의 추천코드의 안정성/효율성 분류 정보를 기초로 추천코드를 안정성 중시 코드 혹은 효율성 중시 코드로 분류하는 모델인 분류모델을 머신러닝할 수 있다. To this end, the recommendation module 130 can machine learn a classification model, which is a model that classifies the recommendation code into a stability-oriented code or an efficiency-oriented code based on the stability/efficiency classification information of past recommendation codes.

여기서, 머신러닝/딥러닝에 대한 구현 알고리즘은 공지된 기술을 활용하는 것으로서, 이에 대한 자세한 설명은 생략될 수 있다. Here, the implementation algorithm for machine learning/deep learning utilizes known technologies, and detailed description thereof may be omitted.

일례로, 사용자 컴퓨팅 장치의 부하가 소정 기준 이상일 경우, 효율성이 중시되는 예비 추천코드가 최종 추천코드로 선별될 수 있다. For example, when the load of the user's computing device is greater than a predetermined standard, a preliminary recommendation code that emphasizes efficiency may be selected as the final recommendation code.

일례로, 사용자 컴퓨팅 장치의 부하가 소정 기준 미만일 경우, 안정성이 중시되는 예비 추천코드가 최종 추천코드로 선별될 수 있다. For example, if the load of the user's computing device is less than a predetermined standard, a preliminary recommendation code that emphasizes stability may be selected as the final recommendation code.

여기서, 사용자 컴퓨팅 장치의 부하는 실행되고 있는 프로그램의 수, CPU 가동률, RAM 가동률 등으로 산출될 수 있다. Here, the load of the user's computing device can be calculated by the number of programs being executed, CPU operation rate, RAM operation rate, etc.

상술한 것과 다르게, 분류모델은 추천코드를 직접 실행하여, 발생되는 부하의 정도와 속도 등을 고려하여 추천코드가 안정성을 중시하는지 효율성을 중시하는지 여부를 분류할 수 있다. Different from the above, the classification model can directly execute the recommendation code and classify whether the recommendation code emphasizes stability or efficiency by considering the degree and speed of the generated load.

추천모듈(130)은 예비 추천코드를 사용자에게 추천할 수 있다. The recommendation module 130 can recommend a preliminary recommendation code to the user.

이와 다르게, 추천모듈(130)은 사용자가 소스코드의 제공을 요청하는 시점을 기준으로 사용자 컴퓨팅 장치의 사용환경을 고려하여 예비 추천코드 중에서 최종 추천코드를 선별하여 추천할 수 있다. Differently, the recommendation module 130 may select and recommend a final recommendation code from among the preliminary recommendation codes in consideration of the usage environment of the user's computing device based on the time the user requests provision of the source code.

이와 다르게, 추천모듈(130)은 사용자의 컴퓨팅 장치에서 발생되는 부하를 고려하여, 시계열적으로 상이한 소스코드가 실행되는 상기 조합 추천코드를 추천할 수 있다. Alternatively, the recommendation module 130 may recommend the combination recommendation code in which different source codes are executed in time series, taking into account the load generated in the user's computing device.

일례로, 사용자의 컴퓨팅 장치의 부하가 시간에 따라 상이할 수 있으며, 사용자 컴퓨팅 장치의 부하가 소정 기준의 이상인지 혹은 미만인지도 시간에 따라 변화될 수 있다. For example, the load of the user's computing device may vary over time, and whether the load of the user's computing device is above or below a predetermined standard may also change over time.

추천모듈(130)은 시간에 따라 자동적으로 안정성이 중시되는 최종 추천코드 또는 효율성이 중시되는 추천코드가 구동되도록 구현된 조합 추천코드를 추천할 수 있다. The recommendation module 130 can recommend a combination recommendation code implemented to automatically run a final recommendation code that emphasizes stability or a recommendation code that emphasizes efficiency over time.

일례로, 사용자 컴퓨팅 장치의 부하가 소정 기준의 이상인 시간대에는 추천모듈(130)은 효율성이 중시되는 최종 추천코드가 실행되고, 사용자 컴퓨팅 장치의 부하가 소정 기준의 미만인 시간대에는 추천모듈(130)은 안정성 중시되는 최종 추천코드가 실행되도록 조합 추천코드가 구성될 수 있다. For example, during times when the load of the user's computing device is more than a predetermined standard, the recommendation module 130 executes the final recommendation code that emphasizes efficiency, and during times when the load of the user's computing device is less than a predetermined standard, the recommendation module 130 executes the final recommendation code. A combination recommendation code can be configured so that the final recommendation code that emphasizes stability is executed.

일례로, 소정 기준은 사용자 컴퓨팅 장치의 가용 부하량의 50%일 수 있다. In one example, the predetermined standard may be 50% of the available load of the user's computing device.

다만, 이에 한정하지 않고, 소정 기준의 구체적인 수치는 통상의 기술자에게 자명한 수준에서 다양하게 변형 가능하다.However, it is not limited to this, and the specific values of the predetermined standard can be modified in various ways at a level that is obvious to those skilled in the art.

추천코드는 소스코드의 종류와 소스코드들 간의 순서에 대한 정보를 이루어질 수 있다. The recommendation code may include information about the type of source code and the order between source codes.

여기서, 소스코드는 컴퓨터 프로그램을 사람이 읽을 수 있는 프로그래밍 언어로 기술한 텍스트를 의미하며, 임의의 기능 단위로 구분되어 식별될 수 있다. Here, source code refers to text that describes a computer program in a human-readable programming language, and can be identified by being divided into arbitrary functional units.

점검모듈(140)은 추천모듈(130)에 의해 추천되는 추천코드(예비 추천코드, 최종 추천코드 또는 조합 추천코드)로 실행될 경우에 오류가 발생되는지 여부를 점검할 수 있다. The inspection module 140 can check whether an error occurs when executed with a recommendation code (preliminary recommendation code, final recommendation code, or combination recommendation code) recommended by the recommendation module 130.

점검모듈(140)은 추천코드를 실행하고, 발생되는 메트릭 또는 로그데이터를 기초로 오류가 발생되는지 여부를 판단할 수 있다. The inspection module 140 can execute the recommendation code and determine whether an error occurs based on the generated metrics or log data.

이를 위해, 점검모듈(140)은 과거의 추천코드, 그 과거 추천코드에서 발생된 메트릭/로그데이터 및 그 과거 추천코드에서 발생된 오류 정보를 기초로 딥러닝/머신러닝하여 오류판단모델을 생성할 수 있다. To this end, the inspection module 140 generates an error judgment model by deep learning/machine learning based on past recommendation codes, metrics/log data generated from the past recommendation codes, and error information generated from the past recommendation codes. You can.

여기서, 머신러닝/딥러닝에 대한 구현 알고리즘은 공지된 기술을 활용하는 것으로서, 이에 대한 자세한 설명은 생략될 수 있다. Here, the implementation algorithm for machine learning/deep learning utilizes known technologies, and detailed description thereof may be omitted.

즉, 점검모듈(140)은 오류판단모델을 이용하여 사용자에게 추천될 추천코드의 오류를 판단할 수 있다. That is, the inspection module 140 can determine errors in the recommendation code to be recommended to the user using the error determination model.

설명모듈(150)은 상기 점검모듈(140)이 상기 추천코드로서 동작될 때 오류가 발생된다고 판단하는 경우, 설명 가능한 인공지능(XAI)을 이용하여 오류의 원인을 식별할 수 있다. If the explanation module 150 determines that an error occurs when the inspection module 140 operates as the recommendation code, the explanation module 150 can identify the cause of the error using explainable artificial intelligence (XAI).

이를 위해서, 설명모듈(150)은 과거의 추천코드, 과거의 추천코드에서 발생된 오류의 원인 및 오류판단모델을 이용하여 오류의 원인을 분석하는 설명모델을 머신러닝/딥러닝할 수 있다. To this end, the explanation module 150 can perform machine learning/deep learning on an explanation model that analyzes the cause of the error using the past recommendation code, the cause of the error occurring in the past recommendation code, and an error judgment model.

여기서, 머신러닝/딥러닝에 대한 구현 알고리즘은 공지된 기술을 활용하는 것으로서, 이에 대한 자세한 설명은 생략될 수 있다. Here, the implementation algorithm for machine learning/deep learning utilizes known technologies, and detailed description thereof may be omitted.

인터페이스모듈(160)은 추천코드 또는 그 추천코드의 오류에 대한 정보를 사용자에게 표시하는 인터페이스를 산출하여 사용자 컴퓨팅 장치로 제공할 수 있다. The interface module 160 may calculate an interface that displays information about the recommendation code or errors in the recommendation code to the user and provide the interface to the user's computing device.

인터페이스모듈(160)이 제공하는 인터페이스에는 추천코드 식별 이미지, 추천코드에 접근할 수 있는 링크, 추천코드 및/또는 추천코드에서 발생될 것으로 예상되는 오류정보가 표시될 수 있다. The interface provided by the interface module 160 may display a recommendation code identification image, a link to access the recommendation code, and error information expected to occur in the recommendation code and/or the recommendation code.

다만, 이에 한정하지 않고, 상기 인터페이스가 표시하는 정보들의 종류는 통상의 기술자에게 자명한 수준에서 다양하게 변형 가능하다.However, it is not limited to this, and the types of information displayed by the interface can be modified in various ways at a level that is obvious to those skilled in the art.

라벨링모듈은 조합모델을 학습하기 위해서, 소스코드에 대한 라벨링을 수행할 수 있으며, 이에 대한 자세한 설명은 후술한다. The labeling module can perform labeling on source code in order to learn a combination model, and a detailed explanation of this will be provided later.

이하, 소스코드 제공 서버에 의해 제공되는 소스코드 제공 방법에 대해서 자세하게 서술하도록 한다. Hereinafter, the method of providing source code provided by the source code providing server will be described in detail.

도 3은 본 발명의 일 실시예에 따른 소스코드 제공 방법의 순서도이다. Figure 3 is a flowchart of a method for providing source code according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 소스코드 제공 방법은, 소스코드 제공 서버에 의해 구현되며, 목적을 달성하기 위한 프로세스를 추천하는 방법인, 소스코드 제공 방법에 있어서, 수신모듈에 의해, 사용자가 이루고자 하는 목적인 대상목적이 반영된 요청정보가 수신되는 단계 및 추천모듈에 의해, 머신러닝으로 학습된 조합모델이 이용되어, 저장모듈에 저장되어 있는 코드정보와 상기 요청정보를 기초로 사용자의 컴퓨팅 장치에 구동되어 상기 대상목적을 달성하기 위한 소스코드의 종류와 소스코드의 조합인 추천코드가 결정되는 단계를 포함할 수 있다. Referring to Figure 3, the source code provision method according to an embodiment of the present invention is implemented by a source code provision server, and is a method of recommending a process to achieve the purpose. In the source code provision method, a receiving module By the step of receiving request information that reflects the target purpose, which is the goal that the user wants to achieve, and by the recommendation module, a combination model learned through machine learning is used, based on the code information stored in the storage module and the request information. It may include a step of determining a type of source code and a recommendation code that is a combination of the source code to achieve the target purpose by running on the user's computing device.

구체적으로 설명하자면, 사용자는 대상목적을 구현하기 위한 프로세스를 진행하기 위해서 소스코드 제공 서버에 추천코드를 요청할 수 있다. To be more specific, the user can request a recommendation code from the source code providing server in order to proceed with the process to implement the target purpose.

요청정보가 수신되는 단계에서, 인터페이스모듈은 사용자 컴퓨팅 장치에 요청정보가 기재될 수 있는 인터페이스를 제공할 수 있다. In the step where the request information is received, the interface module may provide the user computing device with an interface through which the request information can be written.

추천코드가 결정되는 단계에서, 저장모듈에 저장된 코드정보와 요청정보를 기초로 조합모델에 의해 추천코드가 결정될 수 있다. In the step where the recommendation code is determined, the recommendation code may be determined by a combination model based on the code information and request information stored in the storage module.

점검모듈에 의해, 결정된 추천코드에 대해서 오류가 점검되고, 오류가 예측 혹은 확인되는 경우 설명모듈에 의해 오류의 원인이 산출될 수 있다. Errors are checked for the determined recommendation code by the inspection module, and if the error is predicted or confirmed, the cause of the error can be calculated by the explanation module.

인터페이스모듈에 의해, 추천코드 또는 오류에 대한 정보가 표시되는 인터페이스가 사용자에게 제공될 수 있다. Through the interface module, an interface in which information about a recommendation code or error is displayed may be provided to the user.

도 4 및 도 5는 본 발명의 일 실시예에 따른 소스코드 제공 서버에 의해 제공되는 사용자 인터페이스의 예시를 도시한 도면이다. Figures 4 and 5 are diagrams showing examples of user interfaces provided by a source code providing server according to an embodiment of the present invention.

도 4및 도 5는 추천모듈은 조합 추천코드를 추천할 때의 사용자 인터페이스에 표시되는 시계열 이미지를 도시할 수 있다. Figures 4 and 5 show time series images displayed on the user interface when the recommendation module recommends a combination recommendation code.

일례로, 추천모듈에 의해 제시되는 추천코드의 특성별로 구분된 시간 구간은 A11 내지 A15일 수 있으며, 0시부터 8:30 구간(A11)까지는 사용자 컴퓨팅 장치의 부하가 소정 기준의 미만으로 가동되는 경우이고, 8:30부터 12:30 구간(A12)까지는 사용자 컴퓨팅 장치의 부하가 소정 기준 이상으로 가동되는 경우이고, 12:30 부터 13:30 구간(A13)까지는 사용자 컴퓨팅 장치의 부하가 소정 기준 미만으로 가동되는 경우이고, 13:30 부터 19:00 구간(A14)까지는 사용자 컴퓨팅 장치의 부하가 소정 기준 이상으로 가동되는 경우이고, 19:00 부터 24:00 구간(A14) 까지는 사용자 컴퓨팅 장치의 부하가 소정 기준 미만으로 가동되는 경우라고 가정할 수 있다. For example, the time section divided by the characteristics of the recommendation code presented by the recommendation module may be A11 to A15, and from 0:00 to 8:30 section (A11), the load of the user's computing device operates below a predetermined standard. In this case, from 8:30 to 12:30 section (A12), the load of the user computing device operates above a certain standard, and from 12:30 to 13:30 section (A13), the load of the user computing device operates above a certain standard. This is the case where the load of the user computing device is operated above a certain standard from 13:30 to 19:00 section (A14), and from 19:00 to 24:00 section (A14), the load of the user computing device is operated above a certain standard. It can be assumed that the load is operated below a certain standard.

따라서, 추천모듈은 A11, A13, A15 구간에는 안정성이 중시되는 최종 추천코드가 동작되고 A12, A14 구간에는 효율성이 중시되는 최종 추천코드가 동작되는 조합 추천코드를 추천할 수 있다. Therefore, the recommendation module can recommend a combination recommendation code in which the final recommendation code that emphasizes stability is operated in sections A11, A13, and A15, and the final recommendation code that emphasizes efficiency is operated in sections A12 and A14.

사용자 인터페이스에는 동일한 특성(안정성/효율성)의 최종 추천코드를 나타내는 이미지가 동일한 색상/문양을 가지도록 시계열적 이미지가 표시될 수 있다. In the user interface, time-series images may be displayed so that images representing the final recommendation code with the same characteristics (stability/efficiency) have the same color/pattern.

시계열적 이미지에는 소정의 구분선(L11)으로 다른 성격의 최종 추천코드를 분별할 수 있다. In time-series images, final recommendation codes of different characteristics can be distinguished using a predetermined dividing line (L11).

도 5를 참조하면, 사용자는 시계열적인 이미지(A10)에서 구분선(L11)을 이동시켜, 추천모듈에 의해 제시된 최초로 시간 구간 마다 안정성을 중시하는 최종 추천코드와 효율성을 중시하는 최종 추천코드의 비중을 변경할 수 있다. Referring to Figure 5, the user moves the dividing line (L11) in the time-series image (A10) to change the proportion of the final recommendation code that emphasizes stability and the final recommendation code that emphasizes efficiency for each time interval presented by the recommendation module. You can change it.

이를 위해서, 사용자는 자신의 컴퓨팅 장치에 표시되는 시계열적 이미지의 구분선을 이동시킬 수 있다.To this end, the user can move the dividing line of the time-series image displayed on his or her computing device.

또한, 미리 정해진 조건이 만족되는 경우, 인터페이스모듈은 사용자의 컴퓨팅 장치에서 추천코드 이외의 프로그램의 적어도 일부가 동작을 종료하라는 경고 표시를 사용자 컴퓨팅 장치로 제공할 수 있다. Additionally, when a predetermined condition is satisfied, the interface module may provide a warning indication to the user's computing device to terminate the operation of at least part of the program other than the recommendation code.

여기서, 미리 정해진 조건은, 효율성이 중시되는 추천코드가 추천된 시간 구간 동안, 효율성이 중시되는 추천코드에서 안정성이 중시되는 추천코드 변경된 비율이 미리 정해진 비율 이상일 조건일 수 있다. Here, the predetermined condition may be a condition in which the rate of change from the recommendation code that emphasizes efficiency to the recommendation code that emphasizes stability may be more than a predetermined rate during the time interval in which the recommendation code that emphasizes efficiency is recommended.

일례로, 도 5를 참조하면, 사용자는 시계열적인 이미지(A10)에 표시된 A12구간을 구분하는 구분선(L11)를 이동시켜, A12의 영역을 축소시킬 수 있다. For example, referring to FIG. 5, the user can move the dividing line (L11) dividing the section A12 displayed in the time-series image (A10) to reduce the area of A12.

이로 인해, 효율성이 중시되는 추천코드가 추천된 시간(A12) 구간 동안 효율성이 중시되는 추천코드에서 안정성이 중시되는 추천코드 변경된 비율이 소정 비율 이상일 경우, 인터페이스모듈은 사용자 컴퓨팅 장치로, 소정의 경고를 표시할 수 있다. Due to this, if the rate of change from the recommendation code that emphasizes efficiency to the recommendation code that emphasizes stability is more than a certain percentage during the period of time (A12) during which the recommendation code that emphasizes efficiency is recommended, the interface module is a user computing device and sends a predetermined warning. can be displayed.

이는, 사용자의 잘못된 판단으로 컴퓨팅 장치에 과 부하로 인한 문제를 해결하기 위함일 수 있다. This may be to solve problems caused by overload on the computing device due to the user's incorrect judgment.

일례로, 미리 정해진 비율은 50%일 수 있다. In one example, the predetermined ratio may be 50%.

다만, 이에 한정하지 않고, 미리 정해진 비율의 구체적인 수치는 통상의 기술자에게 자명한 수준에서 다양하게 변형 가능하다.However, it is not limited to this, and the specific value of the predetermined ratio can be modified in various ways at a level that is obvious to those skilled in the art.

또한, 소스코드 제공 방법은, 라벨링모듈에 의해, 외부서버 혹은 저장모듈로부터 수집되는 로데이터에 대해서 라벨링이 진행되어, 조합모델에서 학습되는 학습데이터가 생성되는 단계를 더 포함할 수 있다. In addition, the method of providing source code may further include a step of labeling raw data collected from an external server or storage module by a labeling module to generate learning data to be learned in a combination model.

이하, 라벨링 과정에 대해서 자세하게 서술하도록 한다. Below, the labeling process will be described in detail.

도 6은 본 발명의 일 실시예에 따른 소스코드 제공 서버가 구비하는 라벨링모듈(170)에 의해 라벨링되는 과정을 설명하기 위한 도면이다. Figure 6 is a diagram for explaining the labeling process by the labeling module 170 provided by the source code providing server according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일 실시예에 따른 라벨링모듈(170)은, 수집되는 로데이터를 전처리하는 전처리부(110), 상기 로데이터에 대해서 가상 라벨링을 진행하여 가상 라벨데이터를 산출하는 자동라벨링부(120), 미리 등록된 점검인력(P10)에게 상기 가상 라벨데이터의 유효성 점검을 요청하는 검수부(130)를 구비할 수 있다. Referring to FIG. 6, the labeling module 170 according to an embodiment of the present invention includes a pre-processing unit 110 that pre-processes the collected raw data, and a pre-processing unit 110 that performs virtual labeling on the raw data to calculate virtual label data. It may be provided with an automatic labeling unit 120 and an inspection unit 130 that requests a pre-registered inspection personnel (P10) to check the validity of the virtual label data.

또한, 상기 라벨링부는 상기 미리 등록된 점검인력(P10)의 평가결과를 기초로 미리 정해진 개시조건이 만족되는 경우, 복수의 업무인력을 통해 수동으로 라벨링하는 업무를 진행하고 관리하는 스케줄부(140), 업무인력의 업무 역량에 대해서 평가하는 인력부(170) 및 라벨링의 난이도를 평가하는 난이도산정부(150)를 더 구비할 수 있다.In addition, the labeling unit is a schedule unit 140 that performs and manages the manual labeling task through a plurality of workers when a predetermined start condition is satisfied based on the evaluation results of the pre-registered inspection personnel (P10). , a human resources department 170 that evaluates the work capabilities of the workforce and a difficulty calculation department 150 that evaluates the difficulty of labeling may be further provided.

또한, 상기 라벨링부는, 상기 전처리부(110), 상기 자동라벨링부(120), 상기 검수부(130), 상기 스케줄부(140), 상기 인력부(170) 및 상기 난이도산정부(150)를 관라하고, 라벨링된 생성학습데이터를 추천모듈에 전달하는 라벨관리부(160)를 더 구비할 수 있다. In addition, the labeling unit includes the preprocessing unit 110, the automatic labeling unit 120, the inspection unit 130, the schedule unit 140, the human resources unit 170, and the difficulty calculation unit 150. Additionally, a label management unit 160 may be provided to transmit the labeled generated learning data to the recommendation module.

전처리부(110)는 로데이터로부터 라벨링하는데 불필요한 부분을 제거하거나 변환하는 데이터 전처리 프로세스를 진행할 수 있다. The pre-processing unit 110 may perform a data pre-processing process to remove or convert parts unnecessary for labeling from raw data.

로데이터는 소스코드들로 이루어져 있으며, 전처리부(110)는 라벨링하는데 불필요한 부분을 제거하거나 라벨링을 위해 로데이터를 목적 단위로 구분하여 저장할 수 있다. Raw data consists of source codes, and the preprocessor 110 can remove unnecessary parts for labeling or divide raw data into purpose units and store them for labeling.

자동라벨링부(120)는 라벨링모델을 이용하여 자동으로 소스코드에 대한 라벨링을 수행할 수 있다. The automatic labeling unit 120 can automatically label source code using a labeling model.

자동라벨링부(120)는 머신러닝에 의해 학습된 라벨링모델을 이용하여 상기 가상 라벨데이터를 산출할 수 있다. The automatic labeling unit 120 can calculate the virtual label data using a labeling model learned through machine learning.

라벨링모델에 전처리된 로데이터가 입력되면, 로데이터에 가상의 라벨이 부착될 수 있다. When preprocessed raw data is input into the labeling model, a virtual label can be attached to the raw data.

전처리된 로데이터와 전처리된 로데이터와 대응되는 가상라벨의 묶음을 가상 라벨데이터라고 정의할 수 있다. A bundle of preprocessed raw data and virtual labels corresponding to the preprocessed raw data can be defined as virtual label data.

여기서, 라벨은 소스코드의 목적 및 사용될 컴퓨팅 장치의 사양에 대한 정보로 이루어질 수 있다. Here, the label may consist of information about the purpose of the source code and the specifications of the computing device to be used.

일례로, 라벨링모델은 비지도 학습 기법 중 하나인 Pseudo-Labeling을 통해 가상 라벨링을 구현할 수 있으나, 이에 본 발명이 한정되는 것은 아니다. For example, the labeling model can implement virtual labeling through Pseudo-Labeling, one of the unsupervised learning techniques, but the present invention is not limited to this.

자동라벨링부(120)는 상기 미리 등록된 점검인력의 평가결과를 기초로 상기 라벨링모델을 재 학습할 수 있다. The automatic labeling unit 120 may re-learn the labeling model based on the evaluation results of the pre-registered inspection personnel.

검수부(130)는 미리 등록된 점검인력에게 상기 자동라벨링부(120)에 의해 수행된 라벨링의 유효성 점검을 요청할 수 있다. The inspection unit 130 may request a pre-registered inspection personnel to check the validity of labeling performed by the automatic labeling unit 120.

검수부(130)는 미리 등록된 점검인력(P10)에게 상기 가상 라벨데이터의 유효성 점검을 요청할 수 있다. The inspection unit 130 may request a pre-registered inspection personnel (P10) to check the validity of the virtual label data.

일례로, 미리 등록된 점검 인력은 소스코드 제공 서버를 운영하는 회사의 직원일 수 있다. For example, pre-registered inspection personnel may be employees of a company that operates a source code provision server.

다만, 이에 한정하지 않고, 상기 미리 등록된 점검 인력의 신원은 통상의 기술자에게 자명한 수준에서 다양하게 변형 가능하다.However, without being limited to this, the identity of the pre-registered inspection personnel can be modified in various ways at a level that is obvious to an ordinary technician.

검수부(130)는 유효성 점검을 요청을 위한 인터페이스를 산출하여 미리 등록된 점검 인력의 컴퓨팅 장치로 전송하여, 유효성 점검을 요청할 수 있다. The inspection unit 130 may request a validity check by calculating an interface for requesting a validity check and transmitting it to the computing device of a pre-registered inspection personnel.

검수부(130)는 라벨링이 정상적이라는 의미의 제1 응답, 라벨링 과정이 의심간다는 의미의 제2 응답 및 라벨링이 점검될 필요성이 있다는 의미의 제3 응답 중 하나의 응답이 수신되도록 상기 미리 등록된 점검인력(P10)에게 유효성 점검을 요청할 수 있다. The inspection unit 130 receives one of a first response indicating that the labeling is normal, a second response indicating that the labeling process is suspicious, and a third response indicating that the labeling needs to be checked. You can request a validity check from inspection personnel (P10).

검수부(130)는 미리 등록된 점검인력으로부터 수신한 평가결과를 자동라벨링부(120)에 전달할 수 있다. The inspection unit 130 may transmit the evaluation results received from pre-registered inspection personnel to the automatic labeling unit 120.

자동라벨링부(120)는 상기 평가결과를 기초로 기본라벨모델의 가중치 값을 변경하는 등 재 학습하여, 기본라벨모델의 정확도를 상승시킬 수 있다. The automatic labeling unit 120 can increase the accuracy of the basic label model by re-learning it by changing the weight value of the basic label model based on the evaluation results.

인력부(170)는 점검 업무인력(P20, 이하 업무인력으로 칭함)의 업무 역량에 대해서 평가하여 구분할 수 있다. The human resources department 170 can evaluate and classify the work capabilities of the inspection work force (P20, hereinafter referred to as work force).

인력부(170)에는 업무인력에(P20) 대한 리스트들이 저장되어 있을 수 있다. The human resources department 170 may store lists of work personnel (P20).

인력부(170)는 업무인력(P20)의 업무역량의 평가를 기초로 업무인력을 등급으로 구분하여 관리할 수 있다. The human resources department 170 can manage the workforce by dividing it into grades based on the evaluation of the work capabilities of the workforce (P20).

일례로, 인력부(170)는 업무인력을 제1 등급, 제2 등급 및 제3 등급으로 구분할 수 있으며, 제1 등급이 업무 역량이 가장 좋은 등급이며, 제3 등급이 업무 역량이 가장 나쁜 등급일 수 있다. For example, the Ministry of Human Resources 170 may divide the workforce into first, second, and third grades, with the first grade being the grade with the best work capability, and the third grade being the grade with the worst work competency. It can be.

다만, 이에 한정하지 않고, 상기 인력부(170)의 등급은 통상의 기술자에게 자명한 수준에서 다양하게 변형 가능하다.However, it is not limited to this, and the grade of the manpower unit 170 can be modified in various ways at a level that is obvious to a person skilled in the art.

인력부(170)는 가상 라벨데이터를 대체하는 수동라벨결과로 평가하였는지 여부로 업무인력에 대한 평가를 실시간으로 진행할 수 있다. The human resources department 170 can evaluate the work force in real time based on whether or not it was evaluated with manual label results that replace virtual label data.

만일, 가상 라벨데이터를 대체하는 수동라벨결과로 평가한 업무인력에 대해서는 업무능력에 대해서 가점이 부여될 수 있다. If the work force is evaluated using manual labeling results that replace virtual label data, additional points may be given for work ability.

반대로, 가상 라벨데이터를 대체하는 수동라벨결과로 평가하지 않은 업무인력에 대해서는 업무 능력에 대해서 감점이 부여될 수 있다. Conversely, work personnel who are not evaluated using manual labeling results that replace virtual label data may be given reduced points for their work ability.

난이도산정부(150)는 가상 라벨링에 대한 난이도를 산출하는 난이도평가모델이 저장되어 있을 수 있다. The difficulty calculation unit 150 may store a difficulty evaluation model that calculates the difficulty level for virtual labeling.

난이도산정부(150)는 전처리된 로데이터를 라벨링한 것에 대한 정보 및 이에 대응되는 난이도에 대한 정보를 기초로 머신러닝/딥 러닝하여 난이도평가모델을 산출할 수 있다. The difficulty calculation unit 150 may calculate a difficulty evaluation model by performing machine learning/deep learning based on information about labeling the preprocessed raw data and information about the corresponding difficulty level.

머신 러닝은 공지된 기술을 활용하는 것이므로, 이에 대한 자세한 설명은 생략될 수 있다. Since machine learning utilizes known technologies, detailed descriptions thereof may be omitted.

일례로, 난이도산정부(150)는 라벨링을 총 4가의 난이도로 구분할 수 있다. For example, the difficulty calculation unit 150 can classify labeling into a total of four levels of difficulty.

일례로, 난이도산정부(150)는 라벨링의 난이도를 특급, 상급, 중급, 하급의 난이도로 구분하 수 있다. For example, the difficulty calculation unit 150 can classify the difficulty of labeling into special, high, intermediate, and low difficulty levels.

여기서, 난이도평가모델에 의해 라벨링 난이도는 상급, 중급 하급의 난이도로 구분되며, 특급은 후술하는 조건이 만족되는 경우에 특별하게 지정될 수 있다. Here, according to the difficulty evaluation model, the labeling difficulty is divided into high, intermediate, and low levels of difficulty, and special level can be specially designated when the conditions described later are satisfied.

스케줄부(140)는 미리 정해진 개시조건이 만족되는 경우 수동 라벨링 프로세스를 진행할 수 있다. The schedule unit 140 may proceed with the manual labeling process when predetermined start conditions are satisfied.

스케줄부(140)는 라벨링의 난이도와 업무인력의 업무 역량에 기초하여 상기 업무인력에게 라벨링 업무를 할당할 수 있다. The schedule unit 140 may assign labeling tasks to the workers based on the difficulty of labeling and the work capabilities of the workers.

미리 정해진 개시조건은 상기 평가결과가 라벨링 과정이 의심간다는 평가 또는 라벨링 과정이 점검될 필요하다는 평가일 경우인 조건일 수 있다. The predetermined start condition may be a condition in which the evaluation result is an evaluation that the labeling process is suspicious or an evaluation that the labeling process needs to be checked.

구체적으로 설명하자면, 유효성 검토 결과 제3 응답일 경우, 미리 정해진 개시조건이 만족될 수 있다. To explain specifically, if the third response is the result of the effectiveness review, the predetermined start condition may be satisfied.

또한, 유효성 검토 결과 제2 응답이고, 이미 유효성을 점검한 미리 등록된 점검인력 이외의 다른 점검인력에게 유효성 점검 결과 제2 응답 또는 제3 응답일 경우, 미리 정해진 개시조건이 만족될 수 있다. In addition, if the effectiveness review result is a second response, and the effectiveness check result is a second response or a third response from an inspection personnel other than the pre-registered inspection personnel who have already checked the validity, the predetermined start condition may be satisfied.

최초의 유효성 검토 결과 제2 응답일 경우, 검수부(130)는 이미 유효성을 점검한 미리 등록된 점검인력 이외의 다른 점검인력에게 유효성 점검을 재 요청할 수 있다. If the result of the initial validity review is a second response, the inspection department 130 may re-request the validity check from an inspection personnel other than the pre-registered inspection personnel who have already checked the validity.

재 요청한 평가결과가 제2 응답 또는 제3 응답일 경우, 가상 라벨링의 결과가 의심스러운 상황이므로, 수동 라벨링 프로세스를 통해, 가상 라벨 결과를 대체할 수 있다. If the re-requested evaluation result is the second or third response, the virtual labeling result is questionable, so the virtual labeling result can be replaced through a manual labeling process.

이는, 학습데이터 오염으로 인해 학습모델의 정확도가 떨어지는 것을 예방하기 위함 일수 있다. This may be to prevent the accuracy of the learning model from decreasing due to contamination of the learning data.

스케줄부(140)는 라벨링의 난이도와 점검 업무인력의 업무 역량에 기초하여 상기 업무인력에게 라벨링 업무를 할당할 수 있다. The schedule unit 140 may assign labeling tasks to the inspection staff based on the difficulty of labeling and the work capabilities of the inspection staff.

일례로, 스케줄부(140)는 제1 등급의 업무인력에게, 전체 업무량을 기준으로 특급 라벨링 업무 20%, 상급 라벨링업무 30%, 중급 라벨링업무 30%, 하급 라벨링업무 20%의 비율로 라벨링 업무를 분배할 수 있다. For example, the schedule department 140 provides labeling work to the first-class workforce at a rate of 20% for express labeling work, 30% for high-level labeling work, 30% for intermediate labeling work, and 20% for low-level labeling work, based on the total workload. can be distributed.

일례로, 스케줄부(140)는 제2 등급의 업무인력에게, 전체 업무량을 기준으로 상급 라벨링업무 30%, 중급 라벨링업무 50%, 하급 라벨링업무 20%의 비율로 라벨링 업무를 분배할 수 있다.For example, the schedule department 140 may distribute labeling work to the second-class workforce at a ratio of 30% for high-level labeling work, 50% for middle-level labeling work, and 20% for low-level labeling work, based on the total workload.

일례로, 스케줄부(140)는 제3 등급의 업무인력에게, 상급 라벨링업무 20%, 중급 라벨링업무 30%, 하급 라벨링업무 50%의 비율로 라벨링 업무를 분배할 수 있다.For example, the schedule department 140 may distribute labeling work to third-class workers at a ratio of 20% to high-level labeling work, 30% to middle-level labeling work, and 50% to low-level labeling work.

스케줄부(140)는 복수의 업무인력에게 미리 정해진 개시조건이 만족되는 전처리된 로데이터에 대한 수동 라벨링을 요청할 수 있다. The schedule unit 140 may request manual labeling of preprocessed raw data that satisfies predetermined start conditions from a plurality of employees.

일례로, 스케줄부(140)는 5명 내지 10사이의 업무인력에게 수동 라벨링을 요청할 수 있으나, 이에 본 발명이 한정되는 것은 아니고, 구체적인 숫자는 통상의 기술자에게 자명한 수준에서 다양하게 변형 가능하다.For example, the schedule unit 140 may request manual labeling from 5 to 10 workers, but the present invention is not limited thereto, and the specific number can be modified in various ways at a level that is obvious to those skilled in the art. .

스케줄부(140)는 업무인력이 수동으로 라벨링한 결과인 수동라벨결과를 라벨 관리부로 전달하며, 상기 라벨관리부(160)는 업무인력이 수동으로 라벨링한 결과인 수동라벨결과를 기초로 라벨링된 학습데이터인 수동 라벨데이터를 산출할 수 있다. The schedule unit 140 transmits the manual labeling result, which is the result of manual labeling by business personnel, to the label management unit, and the label management unit 160 provides labeled learning based on the manual labeling result, which is the result of manual labeling by business personnel. Manual label data can be calculated.

라벨관리부(160)는 자동 라벨데이터와 수동 라벨데이터로 이루어진 생성 학습데이터를 추천모듈로 전달할 수 있다. The label management unit 160 can transmit generated learning data consisting of automatic label data and manual label data to the recommendation module.

도 7은 본 발명의 일 실시예에 따른 소스코드 제공 서버가 구비하는 라벨링모듈에 의해 실행되는 수동 라벨링 과정을 설명하기 위한 도면이다. Figure 7 is a diagram illustrating a manual labeling process executed by a labeling module provided by a source code providing server according to an embodiment of the present invention.

도 6 및 도 7을 참조하면, 라벨관리부는 기준비율 이상으로 일치되는 수동라벨결과를 기초로 수동 라벨데이터를 산출할 수 있다. (S310)Referring to Figures 6 and 7, the label management unit can calculate manual label data based on manual labeling results that match a standard ratio or higher. (S310)

라벨관리부는 기준비율 이상으로 일치되는 수동라벨결과가 존재한 상태에서 미리 정해진 변경조건이 만족되지 않은 경우, 기준비율 이상으로 일치되는 수동라벨결과를 선택하여, 수동 라벨데이터를 산출할 수 있다. (S313)If the predetermined change conditions are not satisfied while there are manual label results that match more than the standard ratio, the label management unit can select the manual label results that match more than the standard ratio and calculate manual label data. (S313)

또한, 라벨관리부는 기준비율 이상으로 일치되는 수동라벨결과가 존재한 상태에서 미리 정해진 변경조건이 만족되는 경우, 상기 미리 정해진 변경 조건이 만족되는 수동라벨결과를 선택하여, 수동 라벨데이터를 산출할 수 있다. (S312)In addition, if a predetermined change condition is satisfied while there are manual label results that match more than the standard ratio, the label management unit can select the manual label result that satisfies the preset change condition and calculate manual label data. there is. (S312)

일례로, 기준비율은 70%일 수 있다. For example, the standard ratio may be 70%.

다만, 이에 한정하지 않고, 기준비율의 구체적인 수치는 통상의 기술자에게 자명한 수준에서 다양하게 변형 가능하다.However, it is not limited to this, and the specific value of the standard ratio can be modified in various ways at a level that is obvious to those skilled in the art.

미리 정해진 변경조건은, 기준비율 이상으로 일치되는 수동라벨결과를 도출한 업무인력들의 제1 등급 비율이 제1 비율 미만이고, 기준비율 미만으로 일치되는 수동라벨결과를 도출한 업무인력들의 제1 등급 비율이 제2 비율 이상일 조건일 수 있다. (S311)The predetermined change condition is that the first grade ratio of workers who have derived manual labeling results that match more than the standard ratio is less than the first ratio, and the first grade of workers who have derived manual labeling results that match less than the standard ratio are The condition may be that the ratio is greater than or equal to the second ratio. (S311)

여기서, 제1 비율은 30%일 수 있고, 제2 비율은 60%일 수 있다. Here, the first ratio may be 30% and the second ratio may be 60%.

예를 들어 설명하면, 총 10명의 업무인력이 라벨링 업무를 수행한 상황을 가정할 수 있다. 여기서, 9명의 업무인력(제1 등급 6명, 제2 등급 2명, 제3 등급 1명)이 로데이터에 대해서 A 라벨을 대응시켰고, 1명의 업무인력(제2 등급)이 로데이터에 대해서 B 라벨을 대응시켰다고 가정할 수 있다. For example, we can assume a situation where a total of 10 workers performed labeling work. Here, 9 workers (6 people in the 1st level, 2 people in the 2nd level, 1 person in the 3rd level) matched the A label to the raw data, and 1 worker (2nd level) matched the raw data with the A label. It can be assumed that the B labels are matched.

여기서, 기준비율인 70% 이상으로 일치되는 수동라벨결과(A 라벨, 90%)가 존재한 상태에서, A 라벨로 지정한 업무인력 중에서 제1 등급은 66.67%로서 제1 비율 이상이므로, 미리 정해진 변경 조건이 만족되지 않을 수 있다.Here, in the presence of manual labeling results (A label, 90%) that match the standard ratio of 70% or more, the first grade among the workers designated as A is 66.67%, which is higher than the first ratio, so a predetermined change is made. Conditions may not be satisfied.

따라서, 라벨관리부는 기준비율 이상으로 일치되는 수동라벨결과인 A 라벨을 선택하여, 수동 라벨데이터를 산출할 수 있다. Therefore, the label management unit can select A label, which is a manual label result that matches more than the standard ratio, and calculate manual label data.

이와 달리, 총 10명의 업무인력이 라벨링 업무를 수행한 상황을 가정할 수 있다. 여기서, 7명의 업무인력(제1 등급 2명, 제2 등급 3명, 제3 등급 2명)이 로데이터에 대해서 A 라벨을 대응시켰고, 3명의 업무인력(모두 제1 등급)이 로데이터에 대해서 B 라벨을 대응시켰다고 가정할 수 있다.In contrast, we can assume a situation where a total of 10 workers performed the labeling task. Here, 7 workers (2 1st grade, 3 2nd grade, 2 3rd grade) matched the A label to the raw data, and 3 workers (all 1st grade) matched the raw data to the A label. It can be assumed that label B has been matched.

여기서, 기준비율인 70% 이상으로 일치되는 수동라벨결과(A 라벨, 70%)가 존재한 상태에서, A 라벨로 지정한 업무인력 중에서 제1 등급은 28.57%로서 제1 비율 미만이고, B 라벨로 지정한 업무인력 중에서 제1 등급은 100%로서 제2 비율 이상으로, 미리 정해진 변경 조건이 만족될 수 있다. Here, in the presence of manual labeling results (A label, 70%) that match the standard ratio of 70% or more, the first grade among the workers designated as A label is 28.57%, which is below the first ratio and is labeled B. Among the designated work force, the first level is 100%, which is higher than the second rate, and the predetermined change conditions can be satisfied.

따라서, 라벨관리부는 상기 미리 정해진 변경 조건이 만족되는, 기준비율 미만으로 일치되는 수동라벨결과를 도출한 업무인력들의 제1 등급 비율이 제2 비율 이상인 업무인력이 도출한 수동라벨결과인 B 라벨을 선택하여, 수동 라벨데이터를 산출할 수 있다. Therefore, the label management department determines the B label, which is the manual labeling result derived by workers whose first grade ratio is greater than or equal to the second ratio of workers who have derived manual labeling results that match less than the standard ratio and that satisfies the predetermined change conditions. By selecting, you can calculate manual label data.

즉, 라벨관리부는 기준비율 이상으로 일치되는 수동라벨결과가 존재하더라도, 미리 정해진 변경조건이 만족되는 경우, 기준비율 미만으로 수동라벨결과가 일치되며 제2 비율 이상으로 제1 등급의 비율을 가지는 집단이 도출한 수동라벨결과를 수동 라벨데이터로 산출할 수 있다. In other words, the label management department matches the manual labeling results below the standard ratio when the predetermined change conditions are met, even if there are manual labeling results that match more than the standard ratio, and the group has the first grade ratio higher than the second ratio. The derived manual labeling results can be calculated as manual label data.

라벨관리부는 기준비율 이상으로 일치되는 수동라벨결과가 존재하지 않을 경우, 가상 라벨데이터의 가상 라벨과 일치하는 수동라벨결과가 존재하는지 여부를 판단할 수 있다. (S321)If there are no manual label results that match more than the standard ratio, the label management unit can determine whether there are manual label results that match the virtual label of the virtual label data. (S321)

라벨관리부는 기준비율 이상으로 일치되는 수동라벨결과가 존재하지 않을 때, 가상 라벨데이터의 가상 라벨과 일치하는 수동라벨결과가 존재할 경우, 제1 검증방법으로 전처리된 로데이터에 대해서 라벨링 프로세스를 추가적으로 진행할 수 있다. (S322)The label management department may additionally proceed with the labeling process on the raw data preprocessed using the first verification method when there are no manual label results that match the standard ratio or when there are manual label results that match the virtual label of the virtual label data. You can. (S322)

여기서, 제1 검증방법은, 현재 문제가 되는 전처리된 로데이터의 라벨링 난이도를 특급으로 설정하여, 추후 스케줄모듈에 의해 수동 라벨링을 다시 진행하는 방법일 수 있다. Here, the first verification method may be a method of setting the labeling difficulty of the currently problematic preprocessed raw data to express and performing manual labeling again later using the schedule module.

이는, 기본라벨모델의 결과와 업무인력의 수동라벨결과 중에서 답이 존재할 가능성이 높은 상황으로서, 제1 등급의 업무인력에게 우선적으로 배정하여, 정확한 수동 라벨데이터를 산출하기 위함일 수 있다. This is a situation in which there is a high possibility that an answer exists among the results of the basic label model and the manual labeling results of the work force, and this may be to calculate accurate manual label data by preferentially assigning it to the first class work force.

라벨관리부는 기준비율 이상으로 일치되는 수동라벨결과가 존재하지 않을 때, 가상 라벨데이터의 가상 라벨과 일치하는 수동라벨결과가 존재하지 않을 경우, 제2 검증방법으로 전처리된 로데이터에 대해서 라벨링 프로세스를 추가적으로 진행할 수 있다. (S323)The label management department performs a labeling process on the raw data preprocessed using the second verification method when there are no manual label results matching the standard ratio or when there are no manual label results matching the virtual label of the virtual label data. You can proceed further. (S323)

여기서, 제2 검증방법은, 현재 문제가 되는 로데이터의 라벨링을 중단하고, 별도로 라벨관리부가 저장한 후, 미리 정해진 시간이 경과된 후에, 기본라벨모델이 가상 라벨링하는 과정부터 다시 시작하는 방법일 수 있다. Here, the second verification method is to stop labeling the raw data that is currently problematic, save it separately by the label management department, and then restart the process of virtual labeling by the basic label model after a predetermined time has elapsed. You can.

이는, 현재 정확한 라벨링 결과값을 도출할 수 없는 상황으로서, 기본라벨모델의 성능과 업무인력들의 업무 역량이 성장한 후에 재 판단하여, 정확한 라벨데이터를 도출하기 위함일 수 있다. This is a situation in which accurate labeling results cannot be derived at present, and may be re-evaluated after the performance of the basic label model and the work capabilities of the workforce grow to derive accurate label data.

추천모듈은 산출된 수동 라벨데이터를 가상 라벨데이터 대신에 기본라벨모델의 학습에 활용할 수 있다. The recommendation module can use the calculated manual label data to learn the basic label model instead of virtual label data.

스케줄부는 라벨링 난이도에 따라 다른 비용으로 라벨링 업무에 대한 비용을 정산하여 업무인력에게 제공할 수 있다. The schedule department can settle the cost of labeling work at different costs depending on the level of labeling difficulty and provide it to the workforce.

일례로, 특급, 상급, 중급 및 하급의 라벨링 업무 난이도 순으로 라벨링 업무에 대한 비용이 낮아질 수 있다. 즉, 특급의 라벨링 업무의 비용이 가장 높으며, 하급의 라벨링 업무의 비용이 가장 낮을 수 있다. For example, the cost of the labeling task may be lowered in the order of difficulty of the labeling task: special, high, intermediate, and low. In other words, the cost of the express labeling task may be the highest, and the cost of the low-grade labeling task may be the lowest.

스케줄부는 업무인력의 지역, 나이, 성별 등을 고려하여, 제1 등급의 업무인력과 제3 등급의 업무인력의 멘토 스케줄을 설정할 수 있다. The schedule department can set mentor schedules for the first-grade and third-grade workers, taking into account the region, age, gender, etc. of the workers.

일례로, 스케줄부는 제1 등급의 업무인력의 거주 지역으로부터 소정 거리 내에 거주하는 제3 등급의 업무인력에 대해서, 멘토 업무를 매칭할 수 있다. For example, the schedule department may match mentor work to third-class workers who reside within a predetermined distance from the residence area of the first-class workers.

일례로, 스케줄부는 동일한 성별과, 나이의 차가 소정 나이 미만인 제1 등급의 업무인력과 제3 등급의 업무인력의 멘토 스케줄을 설정할 수 있다. For example, the schedule department may set a mentor schedule for first-grade and third-grade workers of the same gender and whose age difference is less than a predetermined age.

스케줄부는 제1 등급의 업무인력의 멘토링 일정에 따라 수동 라벨링 업무 할당 비율을 감소시킬 수 있다. The scheduling department can reduce the manual labeling task allocation ratio according to the mentoring schedule of first-level workers.

스케줄부는 멘토링 참여에 지급되어야 하는 금액을 반영하여, 멘토링에 참여하는 제1 등급의 업무인력의 특급, 상급, 중급 및 하급의 라벨링 업무 비율을 변경할 수 있다. The schedule department can change the labeling work ratio of special, upper, middle, and lower levels of first-level workers participating in mentoring by reflecting the amount that must be paid for participation in mentoring.

이를 위해, 소정 기간동안 제1 등급의 업무인력에게 배정되는 수동 라벨링 평균 개수를 기초로, 제1 등급의 업무인력에게 할당된 특급, 상급, 중급 및 하급의 라벨링 업무 비율을 변경할 수 있다. To this end, based on the average number of manual labeling assigned to the first class of work personnel over a predetermined period, the ratio of labeling tasks of special, upper, middle, and lower levels assigned to the first class of work force can be changed.

스케줄부는 소정 기간동안 제1 등급의 업무인력에게 배정되는 수동 라벨링 평균 개수와 제1 등급의 업무인력에게 할당된 특급, 상급, 중급 및 하급의 라벨링 업무 비율을 기초로 수동 라벨링에 대한 지급 비용을 산출할 수 있다. The schedule department calculates the cost to pay for manual labeling based on the average number of manual labeling assigned to the first class of workers and the ratio of special, high, intermediate, and low level labeling tasks assigned to the first class of workers during a given period. can do.

일례로, 스케줄부는 멘토링이 진행되기 전, 제1 등급의 업무인력에게 지급해야 할 지급 비용과 멘토링의 진행된 후에 조정된 제1 등급의 업무인력에게 지급해야 할 지급 비용의 차액이 멘토링에 대한 지급비용이 되도록, 멘토링에 참여하는 제1 등급의 업무 인력의 업무 비율을 조절할 수 있다. For example, the schedule department calculates the payment cost for mentoring as the difference between the payment cost to be paid to the first-grade workforce before mentoring progresses and the payment fee to be paid to the first-grade workforce adjusted after the mentoring progresses. To achieve this, the work ratio of the first level workforce participating in mentoring can be adjusted.

이를 통해, 수동 라벨링 전체 업무에 큰 지장 없으면서, 제1 등급의 업무인력이 제3 등급의 업무인력을 교육시킴으로써, 전체적인 수동 라벨링 업무 역량을 증가시킬 수 있다. Through this, the overall manual labeling work capacity can be increased by having the first-grade workers train the third-grade workers without causing significant disruption to the overall manual labeling work.

이는, 학습데이터의 품질을 향상시키는 것으로서, 추천모듈에 의해 학습되는 모델들의 정확도를 개선시키는 순 기능을 할 수 있다. This improves the quality of learning data and can have the net function of improving the accuracy of models learned by the recommendation module.

첨부된 도면은 본 발명의 기술적 사상을 보다 명확하게 표현하기 위해, 본 발명의 기술적 사상과 관련성이 없거나 떨어지는 구성에 대해서는 간략하게 표현하거나 생략하였다.In the attached drawings, in order to more clearly express the technical idea of the present invention, components that are unrelated or less relevant to the technical idea of the present invention are briefly expressed or omitted.

상기에서는 본 발명에 따른 실시예를 기준으로 본 발명의 구성과 특징을 설명하였으나 본 발명은 이에 한정되지 않으며, 본 발명의 사상과 범위 내에서 다양하게 변경 또는 변형할 수 있음은 본 발명이 속하는 기술분야의 당업자에게 명백한 것이며, 따라서 이와 같은 변경 또는 변형은 첨부된 특허청구범위에 속함을 밝혀둔다.In the above, the configuration and features of the present invention have been described based on the embodiments according to the present invention, but the present invention is not limited thereto, and various changes or modifications may be made within the spirit and scope of the present invention. It is obvious to those skilled in the art, and therefore, it is stated that such changes or modifications fall within the scope of the appended patent claims.

110 : 수신모듈 120 : 저장모듈
130 : 추천모듈 140 : 점검모듈
110: Receiving module 120: Storage module
130: Recommended module 140: Inspection module

Claims (10)

목적을 달성하기 위한 프로세스를 실행하는 소스코드를 추천하는 소스코드 제공 서버에 있어서,
사용자가 이루고자 하는 목적인 대상목적이 반영된 요청정보를 수신하는 수신모듈;
소스코드에 대한 정보인 코드정보가 저장되어 있는 저장모듈; 및
머신러닝으로 학습된 조합모델을 이용하여, 상기 코드정보와 상기 요청정보를 기초로 사용자의 컴퓨팅 장치에서 구동되어 상기 대상목적을 달성하기 위한 소스코드의 종류와 소스코드의 조합인 추천코드를 결정하는 추천모듈;를 포함하고,
상기 요청정보는,
대상목적에 대한 정보인 목적정보, 사용자의 컴퓨팅 장치의 사양에 대한 정보인 사양정보 및 사용자의 컴퓨팅 장치의 구동에 대한 정보인 사용환경 정보로 이루어지며,
상기 추천코드는,
대상목적이 달성되면서 사용자의 컴퓨팅 장치에 오류없이 동작될 수 있는 소스코드의 조합을 의미하는 예비 추천코드 및 사용자 컴퓨팅 장치의 사용환경이 고려되어 예비 추천코드 중에서 선별된 최종 추천코드를 구비하며,
상기 추천모듈은,
사용자의 컴퓨팅 장치의 부하가 소정 기준 이상일 경우, 효율성이 중시되는 상기 예비 추천코드를 상기 최종 추천코드로 선별하고, 사용자의 컴퓨팅 장치의 부하가 소정 기준 미만일 경우, 안정성이 중시되는 상기 예비 추천코드를 상기 최종 추천코드로 선별하는,
소스코드 제공 서버.
In the source code provision server that recommends source code for executing a process to achieve the purpose,
A receiving module that receives request information reflecting the target purpose that the user wants to achieve;
A storage module in which code information, which is information about source code, is stored; and
Using a combination model learned through machine learning, it is run on the user's computing device based on the code information and the request information to determine the type of source code and a recommendation code that is a combination of the source code to achieve the target purpose. Includes a recommended module;
The requested information is,
It consists of purpose information, which is information about the target purpose, specification information, which is information about the specifications of the user's computing device, and usage environment information, which is information about the operation of the user's computing device.
The recommendation code is,
It is equipped with a preliminary recommendation code, which represents a combination of source code that can operate without error on the user's computing device while achieving the target purpose, and a final recommendation code selected from among the preliminary recommendation codes in consideration of the usage environment of the user's computing device.
The recommended module is,
If the load of the user's computing device is greater than a predetermined standard, the preliminary recommendation code that emphasizes efficiency is selected as the final recommendation code, and if the load of the user's computing device is less than a predetermined standard, the preliminary recommendation code that emphasizes stability is selected as the final recommendation code. Selected by the final recommendation code,
Source code provision server.
제1항에 있어서,
상기 추천코드에 따라 프로세스를 실행할 경우 오류가 발생되는지 여부를 점검하는 점검모듈; 및
상기 점검모듈이 상기 추천코드로서 동작될 때 오류가 발생된다고 판단하는 경우, 설명 가능한 인공지능을 이용하여 오류의 원인을 식별하는 설명모듈;을 더 포함하는,
소스코드 제공 서버.
According to paragraph 1,
An inspection module that checks whether an error occurs when executing the process according to the recommendation code; and
When the inspection module determines that an error occurs when operating as the recommendation code, an explanation module that identifies the cause of the error using explainable artificial intelligence; further comprising,
Source code provision server.
제2항에 있어서,
상기 추천코드 또는 오류에 대한 정보를 사용자에게 표시하는 인터페이스를 산출하는 인터페이스모듈;을 더 포함하는,
소스코드 제공 서버.
According to paragraph 2,
It further includes an interface module that calculates an interface that displays information about the recommendation code or error to the user.
Source code provision server.
제1항에 있어서,
상기 추천코드는,
지정된 시간에 따라 상기 최종 추천코드가 변경되어 실행되도록 구성된 적어도 하나 이상의 상기 최종 추천코드의 조합인 조합 추천코드를 더 구비하는,
소스코드 제공 서버.
According to paragraph 1,
The recommendation code is,
Further comprising a combination recommendation code that is a combination of at least one final recommendation code configured to change and execute the final recommendation code according to a specified time,
Source code provision server.
제4항에 있어서,
상기 추천모듈은,
사용자의 컴퓨팅 장치에서 발생되는 부하를 고려하여, 시계열적으로 상이한 상기 최종 추천코드가 실행되는 상기 조합 추천코드를 추천하는,
소스코드 제공 서버.
According to clause 4,
The recommended module is,
Considering the load generated on the user's computing device, recommending the combination recommendation code in which the final recommendation code that is different in time series is executed,
Source code provision server.
제1항에 있어서,
상기 조합모델을 학습하기 위해서, 소스코드에 대한 라벨링을 수행하는 라벨링모듈;을 더 포함하며,
상기 라벨링모듈은,
라벨링모델을 이용하여 자동으로 소스코드에 대한 라벨링을 수행하는 자동라벨링부를 구비하는,
소스코드 제공 서버.
According to paragraph 1,
In order to learn the combination model, it further includes a labeling module that performs labeling on the source code,
The labeling module is,
Equipped with an automatic labeling unit that automatically labels source code using a labeling model,
Source code provision server.
제6항에 있어서,
상기 라벨링모듈은,
미리 등록된 점검인력에게 상기 자동라벨링부에 의해 수행된 라벨링의 유효성 점검을 요청하는 검수부를 더 구비하고,
상기 자동라벨링부는,
상기 미리 등록된 점검인력의 평가결과를 기초로 상기 라벨링모델을 재 학습하는,
소스코드 제공 서버.
According to clause 6,
The labeling module is,
Further comprising an inspection unit that requests pre-registered inspection personnel to check the validity of the labeling performed by the automatic labeling unit,
The automatic labeling unit,
Re-learning the labeling model based on the evaluation results of the pre-registered inspection personnel,
Source code provision server.
제7항에 있어서,
상기 라벨링모듈은,
상기 미리 등록된 점검인력의 평가결과를 기초로 미리 정해진 개시조건이 만족되는 경우, 복수의 업무인력이 수동으로 라벨링하는 업무를 관리하는 스케줄부를 더 구비하는,
소스코드 제공 서버.
In clause 7,
The labeling module is,
When predetermined start conditions are satisfied based on the evaluation results of the pre-registered inspection personnel, it further includes a schedule unit that manages the manual labeling work by a plurality of workers,
Source code provision server.
제8항에 있어서,
상기 라벨링모듈은,
업무인력의 업무 역량에 대해서 평가하는 인력부 및 라벨링의 난이도를 평가하는 난이도산정부를 더 구비하고,
상기 스케줄부는,
라벨링의 난이도와 업무인력의 업무 역량에 기초하여 상기 업무인력에게 라벨링 업무를 할당하는,
소스코드 제공 서버.
According to clause 8,
The labeling module is,
It is further equipped with a human resources department that evaluates the work capabilities of the workforce and a difficulty calculation department that evaluates the difficulty of labeling,
The schedule department,
Assigning labeling tasks to the workers based on the difficulty of labeling and the work capabilities of the workers.
Source code provision server.
소스코드 제공 서버에 의해 구현되며, 목적을 달성하기 위한 프로세스를 추천하는 방법인, 소스코드 제공 방법에 있어서,
수신모듈에 의해, 사용자가 이루고자 하는 목적인 대상목적이 반영된 요청정보가 수신되는 단계; 및
추천모듈에 의해, 머신러닝으로 학습된 조합모델이 이용되어, 저장모듈에 저장되어 있는 코드정보와 상기 요청정보를 기초로 사용자의 컴퓨팅 장치에 구동되어 상기 대상목적을 달성하기 위한 소스코드의 종류와 소스코드의 조합인 추천코드가 결정되는 단계;를 포함하고,
상기 요청정보는,
대상목적에 대한 정보인 목적정보, 사용자의 컴퓨팅 장치의 사양에 대한 정보인 사양정보 및 사용자의 컴퓨팅 장치의 구동에 대한 정보인 사용환경 정보로 이루어지며,
상기 추천코드는,
대상목적이 달성되면서 사용자의 컴퓨팅 장치에 오류없이 동작될 수 있는 소스코드의 조합을 의미하는 예비 추천코드 및 사용자 컴퓨팅 장치의 사용환경이 고려되어 예비 추천코드 중에서 선별된 최종 추천코드를 구비하며,
상기 추천코드가 결정되는 단계는,
사용자의 컴퓨팅 장치의 부하가 소정 기준 이상일 경우 효율성이 중시되는 상기 예비 추천코드가 상기 최종 추천코드로 선별되고, 사용자의 컴퓨팅 장치의 부하가 소정 기준 미만일 경우 안정성이 중시되는 상기 예비 추천코드가 상기 최종 추천코드로 선별되는,
소스코드 제공 방법.
In the source code provision method, which is implemented by a source code provision server and is a method of recommending a process to achieve the purpose,
Receiving, by a receiving module, request information reflecting the target purpose that the user wants to achieve; and
By the recommendation module, a combination model learned through machine learning is used and driven on the user's computing device based on the code information stored in the storage module and the request information to determine the type of source code to achieve the target purpose. Including a step of determining a recommendation code that is a combination of source codes,
The requested information is,
It consists of purpose information, which is information about the target purpose, specification information, which is information about the specifications of the user's computing device, and usage environment information, which is information about the operation of the user's computing device.
The recommendation code is,
It is equipped with a preliminary recommendation code, which represents a combination of source code that can operate without error on the user's computing device while achieving the target purpose, and a final recommendation code selected from among the preliminary recommendation codes in consideration of the usage environment of the user's computing device.
The step in which the recommendation code is determined is,
If the load of the user's computing device is greater than a predetermined standard, the preliminary recommendation code that emphasizes efficiency is selected as the final recommendation code, and if the load of the user's computing device is less than a predetermined standard, the preliminary recommendation code that emphasizes stability is selected as the final recommendation code. Selected by recommendation code,
How to provide source code.
KR1020230113601A 2023-08-29 2023-08-29 A sever for providing optimal source code based cloud service and a method for providing source code KR102660320B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230113601A KR102660320B1 (en) 2023-08-29 2023-08-29 A sever for providing optimal source code based cloud service and a method for providing source code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230113601A KR102660320B1 (en) 2023-08-29 2023-08-29 A sever for providing optimal source code based cloud service and a method for providing source code

Publications (1)

Publication Number Publication Date
KR102660320B1 true KR102660320B1 (en) 2024-04-25

Family

ID=90884978

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230113601A KR102660320B1 (en) 2023-08-29 2023-08-29 A sever for providing optimal source code based cloud service and a method for providing source code

Country Status (1)

Country Link
KR (1) KR102660320B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150111134A (en) * 2014-03-25 2015-10-05 한국전자통신연구원 Code recommendation and share system and method
US20220138068A1 (en) * 2019-07-02 2022-05-05 Hewlett-Packard Development Company, L.P. Computer readable program code change impact estimations
KR20230039487A (en) * 2021-09-13 2023-03-21 주식회사 디에스랩글로벌 Method for automatically generating deep learning artificial intelligence using data set for integrated learning and apparatus teherefor
KR102531299B1 (en) * 2022-12-27 2023-05-11 오케스트로 주식회사 A learning model recommendation device based on similarity and a cloud integrated operating system comprising the same
KR102537536B1 (en) * 2022-12-05 2023-05-26 주식회사 데이터메이커 Method, apparatus and computer-readable storage medium for calculating salary of crowd worker

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150111134A (en) * 2014-03-25 2015-10-05 한국전자통신연구원 Code recommendation and share system and method
US20220138068A1 (en) * 2019-07-02 2022-05-05 Hewlett-Packard Development Company, L.P. Computer readable program code change impact estimations
KR20230039487A (en) * 2021-09-13 2023-03-21 주식회사 디에스랩글로벌 Method for automatically generating deep learning artificial intelligence using data set for integrated learning and apparatus teherefor
KR102537536B1 (en) * 2022-12-05 2023-05-26 주식회사 데이터메이커 Method, apparatus and computer-readable storage medium for calculating salary of crowd worker
KR102531299B1 (en) * 2022-12-27 2023-05-11 오케스트로 주식회사 A learning model recommendation device based on similarity and a cloud integrated operating system comprising the same

Similar Documents

Publication Publication Date Title
US10841236B1 (en) Distributed computer task management of interrelated network computing tasks
US10938678B2 (en) Automation plan generation and ticket classification for automated ticket resolution
US8489441B1 (en) Quality of records containing service data
WO2022252363A1 (en) Data processing method, computer device and readable storage medium
US20130218814A1 (en) Method and system for the dynamic allocation of resources based on fairness, throughput, and user behavior measurement
CN112579273B (en) Task scheduling method and device and computer readable storage medium
US20180260746A1 (en) Job allocation
CN108920948A (en) A kind of anti-fraud streaming computing device and method
CN115543577B (en) Covariate-based Kubernetes resource scheduling optimization method, storage medium and device
EP4024203A1 (en) System performance optimization
CN113900921A (en) Court information system running state evaluation method, device, equipment and storage medium
Jeong et al. Stable and efficient resource management using deep neural network on cloud computing
CN114221908A (en) Dynamic current-limiting fusing processing method and device, computer equipment and storage medium
KR102660320B1 (en) A sever for providing optimal source code based cloud service and a method for providing source code
KR102205811B1 (en) Method for setting minimum work time using work time of each functional elements of crowdsourcing based project for artificial intelligence training data generation
CN108509259A (en) Obtain the method and air control system in multiparty data source
CN117311973A (en) Computing device scheduling method and device, nonvolatile storage medium and electronic device
CN115471215B (en) Business process processing method and device
CN108052378B (en) Profit-sensitive task scheduling method oriented to complex simulation workflow application
US20200074340A1 (en) Systems and methods for accelerating model training in machine learning
CN113138847A (en) Computer resource allocation scheduling method and device based on federal learning
CN113205391B (en) Historical order matching degree based order dispatching method, electronic equipment and computer readable medium
CN113987351A (en) Artificial intelligence based intelligent recommendation method and device, electronic equipment and medium
Moon et al. FedOps: A Platform of Federated Learning Operations with Heterogeneity Management
Wang et al. GPARS: Graph predictive algorithm for efficient resource scheduling in heterogeneous GPU clusters

Legal Events

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