WO2023249156A1 - Electronic device for providing code information and method thereof - Google Patents

Electronic device for providing code information and method thereof Download PDF

Info

Publication number
WO2023249156A1
WO2023249156A1 PCT/KR2022/010049 KR2022010049W WO2023249156A1 WO 2023249156 A1 WO2023249156 A1 WO 2023249156A1 KR 2022010049 W KR2022010049 W KR 2022010049W WO 2023249156 A1 WO2023249156 A1 WO 2023249156A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
conflict
code
branch
worker
Prior art date
Application number
PCT/KR2022/010049
Other languages
French (fr)
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 쿠팡 주식회사
Publication of WO2023249156A1 publication Critical patent/WO2023249156A1/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
    • 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
    • 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/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • 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/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or 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
    • 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

Definitions

  • This disclosure relates to an electronic device and method for providing code information. More specifically, the present disclosure relates to an electronic device and method for providing conflict information about code written by a plurality of workers for a project.
  • the purpose of the present disclosure is to provide an electronic device and method for providing code information to an operator in order to solve the above-mentioned problems.
  • the present disclosure aims to provide an electronic device and method for providing project-related work status information to workers.
  • the code information providing method when a first worker input corresponding to the first conflict information list is obtained, provides code part information in which a conflict occurred with respect to file information corresponding to the first worker input to the first worker terminal. It further includes steps provided to.
  • the code information providing method further includes obtaining worker identification information from the at least one worker terminal and providing a second conflict information list corresponding to the worker identification information to the at least one worker terminal. do.
  • the code information providing method further includes obtaining branch identification information from the at least one worker terminal and providing a third conflict information list corresponding to the branch identification information to the at least one worker terminal. do.
  • the code conflict information includes a list of worker information that performed work on the same file, and the worker information list includes branch information corresponding to the file, tag information corresponding to the branch information, and information corresponding to the file. Contains at least some of the commit information,
  • the code conflict information includes a list of branch information derived from master branch information.
  • the merge combination may include a merge combination of the at least two branch information, a merge combination of the at least two pieces of file information related to the first branch information, and a merge combination of the program code included in the first file information.
  • the computer program obtains project information from at least one worker terminal, and the at least one Obtaining at least two branch information corresponding to the project information from a worker terminal, confirming a merge combination based on the combination of the at least two branch information for conflict testing, and performing the conflict test on the merge combination. Based on the results, code conflict information is provided to the at least one worker terminal.
  • the electronic device and method for providing code information according to the present disclosure check in advance conflict information generated by individual modification of each code related to the project before the build process for service distribution for a plurality of program codes related to the project. And by providing this to workers, conflict situations can be notified in advance to preemptively resolve conflicts and improve project productivity.
  • the electronic device and method for providing code information according to the present disclosure can intuitively provide information on the project progress to the worker by providing the worker with the status of work related to the project.
  • FIG. 1 is a diagram illustrating a system for providing code information according to an embodiment of the present disclosure.
  • Figure 3 is a flowchart for explaining a method of providing code information according to an embodiment of the present disclosure.
  • 4A to 4C are diagrams showing a page providing code information according to a first function according to an embodiment of the present disclosure.
  • 5A and 5B are diagrams showing a page providing code information according to a second function according to an embodiment of the present disclosure.
  • FIG. 6 is a diagram illustrating a page that provides code information according to a third function according to an embodiment of the present disclosure.
  • FIG. 7 is a diagram illustrating an electronic device for providing code information according to an embodiment of the present disclosure.
  • first and/or second used in this specification may be used to describe various components, but are only used for the purpose of distinguishing one component from other components. It is not intended to be limited to the components referred to by that term.
  • a first component may be named a second component, and the second component may also be named a first component.
  • module refers to a unit that processes at least one function or operation, which may be implemented as hardware or software, or as a combination of hardware and software.
  • embodiments of the present disclosure may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in various numbers of hardware or/and software configurations that execute specific functions.
  • embodiments of the present disclosure include memory, processing, logic, look-up tables, etc. that can execute various functions under the control of one or more microprocessors or other control devices. Direct circuit configurations can be employed.
  • embodiments of the present disclosure include various algorithms implemented as combinations of data structures, processes, routines or other programming constructs, including: It can be implemented in a programming or scripting language such as C, C++, Java, assembler, etc. Functional aspects may be implemented as algorithms running on one or more processors. Additionally, the present embodiment may employ prior art for at least one of electronic environment setting, signal processing, and data processing. Terms such as “mechanism,” “element,” “means,” and “configuration” are broadly used. It can be used and is not limited to mechanical and physical components. The term may include the meaning of a series of software routines in connection with a processor, etc.
  • Each block of the processing flow diagrams attached to this specification and combinations of the flow diagram diagrams may be performed by computer program instructions.
  • These computer program instructions can be mounted on a processor of a general-purpose computer, special-purpose computer, or other programmable data processing equipment, so that the instructions performed through the processor of the computer or other programmable data processing equipment are described in the flow chart block(s). It creates the means to perform functions.
  • These computer program instructions may be stored in computer-usable or computer-readable memory that can be directed to a computer or other programmable data processing equipment to implement a function in a particular manner. It is also possible to produce manufactured items containing instruction means that perform the functions described in the flowchart block(s).
  • the “electronic device” or “terminal” referred to in this specification may be implemented as a computer or portable terminal that can connect to a server or other terminal through a network.
  • the computer includes, for example, a laptop, desktop, laptop, etc. equipped with a web browser
  • the portable terminal is, for example, a wireless communication device that guarantees portability and mobility.
  • all types of communication-based terminals such as IMT (International Mobile Telecommunication), CDMA (Code Division Multiple Access), W-CDMA (W-Code Division Multiple Access), and LTE (Long Term Evolution), smartphones, tablet PCs, etc. It may include a handheld-based wireless communication device.
  • the "electronic device” or “terminal” referred to in this specification includes a processor, memory for storing and executing program data, permanent storage such as a disk drive, a communication port for communicating with an external device, a touch panel, User interface devices such as keys, buttons, etc. may also be included.
  • the electronic device 110 can be understood as a broad concept that includes a series of application programs that can operate on a network server and various databases built therein.
  • the electronic device 110 uses a network server program provided in various ways depending on the operating system, such as DOS, Windows, Linux, Unix, or MacOS. This can be implemented.
  • the code conflict information provided from the electronic device 110 to at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n includes branch information where the code conflict occurred, code Information on the file where the conflict occurred, information on the worker who performed work on the file where the code conflict occurred, information on the code part where the code conflict occurred, code change information on which the modification was performed, tag information corresponding to branch information, and file information. It may include at least some of the commit information corresponding to .
  • a commit operation may refer to the operation of storing added file information or edited file information in a storage, and in an embodiment of the present disclosure, the commit information may include information related to the commit operation.
  • code conflict information provided from the electronic device 110 to at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n may vary depending on the function provided by the electronic device 110. Code conflict information provided according to the function of the electronic device 110 will be described in detail in FIGS. 4A to 6 to be described later.
  • Work status information related to the project can be derived from project-related information and project history information stored in the server, and is provided to at least one of the first to nth worker terminals (120_1, 120_2, ..., 120_n) in response to the worker's request. It can be.
  • conflict information arising from individual modifications of each code is provided to the worker, thereby notifying the conflict situation in advance and preemptively resolving the conflict. This can improve the productivity of the project.
  • by providing work status related to the project to the worker information on the project progress can be intuitively provided to the worker. A detailed description of the method for providing code information according to an embodiment of the present disclosure will be described later with reference to FIGS. 2 to 7.
  • FIG. 2 is a diagram illustrating the data structure 20 of the project 200 in which code information is provided according to an embodiment of the present disclosure.
  • a master branch (MB), a development branch (DB), a first feature branch (FB1), and a second feature branch ( FB2) can be derived from one project 200.
  • MB master branch
  • DB development branch
  • FB1 first feature branch
  • FB2 second feature branch
  • the data structure 20 shown in FIG. 2 is only an example to aid understanding of the present disclosure, and does not limit the data structure 20 in which code information is provided according to an embodiment of the present disclosure, and the data structure ( 20) can be adaptively built according to the goals of the project 200.
  • the master branch (MB) may be a branch for managing release history related to the project 200 and may manage a set of files in a deployable state.
  • 2 shows a master branch (MB) including a first master file set 210 and a second master file set 220, and the first program or second master built from the first master file set 210 A second program built from fileset 220 may be distributed, where the second program may be another version of the first program.
  • Each of the plurality of files included in the first master file set 210 and the second master file set 220 may be a file committed by the first to nth worker terminals (120_1, 120_2, ..., 120_n). .
  • the second set of development files 212 may be from the first set of development files 211
  • the third set of development files 213 may be an updated version of the second set of development files 212
  • the set of files from the first set of development files 211 may be an updated version of the first set of development files 211.
  • Each of the to third development file sets 211, 212, and 213 may be a set of files for implementing independent functions related to the program corresponding to the second master file set 220.
  • Each of the plurality of files included in each of the first to third development file sets 211, 212, and 213 may be a file committed by the first to nth worker terminals 120_1, 120_2, ..., 120_n.
  • the first feature branch (FB1) and the second feature branch (FB2) may be branches branched from the development branch (DB) to develop new functions and fix bugs related to the project 200.
  • DB development branch
  • the sets of files associated with the first feature branch (FB1) and the second feature branch (FB2) are merged into the development branch (DB). It can be. 2 shows that work related to the second feature branch FB2 is completed, and at least one of the 2-1 feature file set 212_1 and the 2-2 feature file set 212_2 is merged into the development branch DB.
  • a branch within a project may have a different structure depending on the worker, and the embodiment of the present specification checks the entire branch list related to the project and merges each combination of branches in the branch list. ) can be checked in advance to determine whether a conflict has occurred.
  • Figure 3 is a flowchart for explaining a method of providing code information according to an embodiment of the present disclosure.
  • the electronic device 110 may obtain project information from at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n.
  • Project information may include a basic file information set related to the project, and the basic file information set may include a plurality of program codes for implementing a program related to the project.
  • a simple merge combination of at least two branch information may be a combination of a first branch and a second branch to implement different functions.
  • a merge combination of at least two pieces of file information related to one branch information may be a combination of first file information and second file information related to first branch information.
  • the merge combination for the program code included in one file information may be the first code line and the second code line included in the program code included in the first file information.
  • the merge combination confirmed from the electronic device 110 may be a combination of entities that have a physical or logical relationship between branches, files, or code lines.
  • the electronic device 110 may perform a conflict test on the confirmed merge combination.
  • Conflict testing can be performed by checking whether a physical or logical conflict occurs for the merge combination.
  • a physical conflict can be a conflict that can occur when multiple workers modify a code line in the same location, and a logical conflict can be a conflict that can occur due to the relationship between at least two code lines in different locations. You can.
  • the electronic device 110 may perform a conflict test on all merge combinations confirmed in step S330.
  • the electronic device 110 may perform a conflict test on some selected merge combinations to reduce the load. Specifically, in step S320, first branch information and second branch information are obtained, the first branch information includes modification information for the first file related to the first branch, and the second branch information is related to the second branch. If the modified second file contains modification information, the electronic device 110 may perform a conflict test by selecting a merge combination related to the first branch and the second branch.
  • step S350 the electronic device 110 according to an embodiment of the present disclosure sends code conflict information to one of the first to nth worker terminals 120_1, 120_2, ..., 120_n based on the result of the conflict test performed in step S340.
  • Code conflict information includes information on the branch where the code conflict occurred, information on the file where the code conflict occurred, information on the worker who performed work on the file where the code conflict occurred, information on the code part where the code conflict occurred, information on the code change on which the modification was performed, and branch information. It may include at least part of tag information corresponding to the information and commit information corresponding to the file information.
  • detailed items of code conflict information provided by the electronic device 110 to at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n are related to the function provided by the electronic device 110. It may vary depending on the condition. Meanwhile, in an embodiment, conflict information may be provided to each worker for the branch combination in which the conflict occurred.
  • Conflict tests according to embodiments of the present disclosure may be performed at regular intervals.
  • the conflict test may be performed in response to a cycle preset by the administrator of the electronic device 110, and the merge combination may be confirmed prior to the conflict test.
  • a conflict test according to another embodiment of the present disclosure can be performed when commit information related to a program is obtained. Commit information can be obtained when a worker completes work on a corresponding file and provides completed work information to the electronic device 110.
  • FIGS. 4A to 4C are diagrams showing a page providing code information according to a first function according to an embodiment of the present disclosure.
  • the first function may be a function for providing code conflict information that occurs regarding a merge combination.
  • the first page 40a for providing code conflict information according to the first function shown in FIG. 4A may be provided in response to an operator's input on the first tab 400 corresponding to the first function.
  • the first page 40a includes a first input unit 410 for obtaining project identification information from an operator, a conflict information list 420 including code conflict information provided in response to the project identification information, It may include a second input unit 430 for obtaining worker identification information from the worker and a third input unit 440 for obtaining branch identification information from the worker.
  • the electronic device 110 may obtain project identification information through the first input unit 410 and provide a conflict information list 420 corresponding to the project identification information on the first page 40a.
  • the conflict information list 420 may include information related to program code in which a conflict occurred, based on the results of a conflict test.
  • the conflict information list 420 includes the first branch information 421 where the conflict occurred, tag information 422 corresponding to the first branch information, file information 423 where the conflict occurred, and the first branch and the conflict occurred. It may include second branch information 424, and the tag information 422 may include version information related to the first branch information 421.
  • the conflict information list 420 may include an icon 425 to provide detailed information about the conflict situation.
  • the electronic device 110 can provide detailed information about the conflict situation to the worker through the worker terminal, a detailed description of which will be described later with reference to FIG. 4B.
  • a list of conflict information corresponding to the operator input can be provided to the operator through the operator terminal, and a detailed description of this is shown in Figure 2. This is described later in 4c.
  • the first subpage 40b shown in FIG. 4B may be provided to the worker terminal in response to an operator input to the icon 425 on the first page 40a for providing code conflict information according to the first function.
  • the first subpage 40b may include code conflict detailed information 450, and the code conflict detailed information 450 may include information on the code portion in which the conflict occurred. Specifically, information on the code portion in which a conflict occurred in the program code related to the first branch may be provided, and the code portion information may be highlighted.
  • the code conflict details 450 may include code line information before the modification operation and code line information after the modification operation.
  • 5A and 5B are diagrams showing a page providing code information according to a second function according to an embodiment of the present disclosure.
  • the second function may be a function for providing information on a worker who performed work on a file related to a conflict that arises for a merge combination.
  • a second page 50a for providing code conflict information according to the second function shown in FIG. 5A may be provided in response to an operator's input on the second tab 500 corresponding to the second function.
  • the second page 50a may include a conflict information list 510 for each file, and the conflict information list 510 for each worker may include file information 511 in which a conflict occurred, and edit information for the file.
  • worker information 512 who performed the work commit information 513 obtained in relation to work on the file, branch information 515 corresponding to the file, and tag information 516 corresponding to the branch information. may include.
  • the conflict information list 510 for each file may include an icon 514 to provide detailed information about the conflict situation.
  • the electronic device 110 can provide detailed information about the conflict situation to the worker through the worker terminal, a detailed description of which will be described later in FIG. 5B.
  • the file-specific conflict information list 510 provided to the worker terminal according to the second function performs work on files in which conflicts occur within a specified period in response to the worker's period information input. Can contain one worker information.
  • the second subpage 50b shown in FIG. 5B may be provided to the worker terminal in response to an operator input to the icon 514 on the second page 50a for providing code conflict information according to the second function.
  • the second subpage 50b may include code conflict details 520 and 530, and the code conflict details 520 and 530 may include information on the code portion in which the conflict occurred. Specifically, information on the code part where the conflict occurred may be provided, and the code part information may be highlighted.
  • code conflict details 520 and 530 may include at least some of change information and comparison information for program code.
  • FIG. 6 is a diagram illustrating a page that provides code information according to a third function according to an embodiment of the present disclosure.
  • the third function may be a function for providing branch information related to a specific branch.
  • a third page 60 for providing code conflict information according to the third function shown in FIG. 6 may be provided in response to an operator's input on the third tab 600 corresponding to the third function.
  • the third page 60 may include a conflict information list 610 including a plurality of branch information related to the first branch.
  • Each of the plurality of branch information included in the conflict information list 610 may include branch path information.
  • the branch path information may indicate which master branch (MB) the corresponding branch is derived from, and in some embodiments, the conflict information list 610 contains at least some of the information about a plurality of branches branched from the corresponding master branch (MB). It can be included.
  • Code conflict information provided according to the third function may be indirect information for the operator to determine the conflict. Specifically, the rule is that when work on a specific branch is completed, the existing branch is deleted, but if deletion is not performed, the worker must determine whether the conflict caused by the undeleted branch is a conflict that can be ignored, or whether it is a conflict that requires attention. Whether there is a conflict can be determined based on code conflict information provided according to the third function. Additionally, based on code conflict information provided according to the third function, workers can set a branch combination to perform conflict testing. Specifically, the operator can set to exclude branches on which a deletion operation has not been performed from the conflict test performance target based on code conflict information provided according to the third function.
  • conflict determination is performed by comparing files in the corresponding branch with each other, so it is necessary to check the conflict of other files that are logically related to a specific file. In this case, by user settings, it is possible to periodically check whether a conflict has occurred in files other than the same file, and conflict information can also be provided to each worker.
  • FIG. 7 is a diagram illustrating an electronic device 110 for providing code information according to an embodiment of the present disclosure.
  • the electronic device 110 may include a transceiver 710, a processor 720, and a memory 730.
  • the processor 720 may include at least one device described above with reference to FIGS. 1 to 6 or may store information for performing at least one method described with reference to FIGS. 1 to 6 . Additionally, the processor 720 can control the electronic device 110 to execute programs and provide code information.
  • the memory 730 may include at least one of volatile memory and non-volatile memory. Additionally, the memory 730 may store the code of a program executed by the processor 720. Meanwhile, although not shown, an interface for providing information from the electronic device 110 to an external terminal may be further included.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • Credit Cards Or The Like (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present disclosure relates to an electronic device for providing code information and a method thereof. The method for providing code information by an electronic device according to an embodiment of the present disclosure comprises the steps of: obtaining project information from at least one worker terminal; obtaining at least two pieces of branch information corresponding to the project information from the at least one worker terminal; verifying, for a conflict test, a merge combination on the basis of a combination of the at least two pieces of branch information; and providing code conflict information to the at least one worker terminal on the basis of a result of performing the conflict test on the merge combination.

Description

코드 정보 제공을 위한 전자 장치 및 그 방법Electronic device and method for providing code information
본 개시는 코드 정보 제공을 위한 전자 장치 및 그 방법에 관한 것이다. 보다 구체적으로, 본 개시는 프로젝트(project)에 대해서 복수의 작업자가 작성한 코드에 대해 컨플릭트(conflict) 정보를 제공하는 전자 장치 및 그 방법에 관한 것이다.This disclosure relates to an electronic device and method for providing code information. More specifically, the present disclosure relates to an electronic device and method for providing conflict information about code written by a plurality of workers for a project.
정보 통신 기술의 융합으로 이루어지는 차세대 산업 혁명인 4차 산업 혁명이 핵심 화두로 떠오른 이후, 소프트웨어 기술의 중요성이 대두되었다. 소프트웨어 기술은 유비쿼터스 컴퓨팅, 사물 인터넷, 자율 주행 자동차, 인공지능, 로봇, 블록 체인 등 다양한 분야에서 이용될 수 있으며, 시장의 목표 및 사용자의 요구를 반영하여 소프트웨어 제품을 구현하는 추세에 따라 다수의 개발자들이 투입되는 개발 프로젝트가 성행하고 있다.Since the Fourth Industrial Revolution, the next-generation industrial revolution achieved through the convergence of information and communication technologies, has emerged as a key topic, the importance of software technology has emerged. Software technology can be used in a variety of fields such as ubiquitous computing, Internet of Things, self-driving cars, artificial intelligence, robots, and blockchain, and the trend of implementing software products by reflecting market goals and user needs has led to a large number of developers. Development projects involving people are flourishing.
다수의 개발자들이 투입되는 개발 프로젝트는 개발자 개인별로 할당된 작업에 대한 결과물을 병합하여 하나의 프로젝트를 완성한다. 그러나, 각 개발자에 의하여 작업된 소스 코드를 병합함에 있어서, 물리적 또는 논리적 컨플릭트 발생 가능성은 현저히 높으며, 다수 개발자에 의한 프로젝트의 생산성을 향상시키기 위한 다양한 방안들이 제안되고 있다. 대표적으로, 소스 코드 간의 컨플릭트가 발생한 구문을 최신 구문으로 대체하는 소스 코드 자동 병합 기능이 제안되었으나, 개발자의 의도가 자동 병합 결과에 정확하게 반영되기 어렵고, 개발 내용의 손실이 발생하는 문제점을 가진다. 이에, 개발자의 의도를 정확하게 반영하고, 개발 내용의 손실이 발생하지 않되, 프로젝트의 생산성을 향상시키기 위한 기술에 대한 필요성이 증대하고 있다.Development projects involving multiple developers merge the results of tasks assigned to each individual developer to complete one project. However, when merging source code worked by each developer, the possibility of physical or logical conflicts occurring is significantly high, and various methods have been proposed to improve the productivity of projects by multiple developers. Typically, a source code automatic merging function has been proposed that replaces syntax in which conflicts between source codes occur with the latest syntax, but it has the problem that it is difficult for the developer's intention to be accurately reflected in the automatic merging results and development content is lost. Accordingly, the need for technology to accurately reflect the developer's intention, prevent loss of development content, and improve project productivity is increasing.
관련하여, KR1020210147354A 및 KR1020210090575A 등의 선행문헌들을 참조할 수 있다.In relation to this, prior documents such as KR1020210147354A and KR1020210090575A may be referred to.
본 개시는 상술한 문제점을 해결하기 위하여, 작업자에게 코드 정보를 제공하기 위한 전자 장치 및 그 방법을 제공하는 것을 목적으로 한다.The purpose of the present disclosure is to provide an electronic device and method for providing code information to an operator in order to solve the above-mentioned problems.
구체적으로, 다수의 작업자들에 의하여 수행되는 프로젝트와 관련된 작업 과정에서, 프로젝트와 관련된 코드를 각 작업자가 각자의 브랜치(branch)에서 수정 및 업데이트를 수행하게 되는데, 이에 따라 복수의 작업자가 동일한 프로젝트의 코드를 수정함에 따라 컨플릭트(conflict)가 발생할 수 있고, 이와 같은 컨플릭트 발생 여부는 서비스 배포를 위한 빌드 과정에서 머지(merge)를 수행함으로써 확인 가능 하였으나, 본 개시는 각 브랜치의 코드에 대한 컨플릭트 여부를 주기적으로 모니터링하고, 감지된 컨플릭트에 대한 정보를 작업자들에게 제공하여 서비스 배포 이전에도 컨플릭트 문제를 해결할 수 있는 전자 장치 및 그 방법을 제공하는 것을 목적으로 한다.Specifically, in the process of work related to a project performed by multiple workers, each worker modifies and updates the code related to the project in his or her own branch. As a result, multiple workers work on the same project. Conflicts may occur as the code is modified, and the occurrence of such a conflict could be confirmed by performing a merge during the build process for service deployment. However, this disclosure determines whether there is a conflict in the code of each branch. The purpose is to provide an electronic device and method that can resolve conflict problems even before service deployment by periodically monitoring and providing information about detected conflicts to workers.
또한, 본 개시는 프로젝트와 관련된 작업 현황 정보를 작업자들에게 제공하기 위한 전자 장치 및 그 방법을 제공하는 것을 목적으로 한다.Additionally, the present disclosure aims to provide an electronic device and method for providing project-related work status information to workers.
본 개시에 의해 이루고자 하는 기술적 과제는 상술한 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.The technical problems to be achieved by the present disclosure are not limited to the technical problems described above, and other technical problems can be inferred from the following embodiments.
본 개시의 실시 예에 따른 전자 장치에 의한 코드 정보 제공 방법에 있어서, 상기 코드 정보 제공 방법은 적어도 하나의 작업자 단말로부터 프로젝트 정보를 획득하는 단계, 상기 적어도 하나의 작업자 단말로부터 상기 프로젝트 정보에 대응하는 적어도 두 개의 브랜치(branch) 정보들을 획득하는 단계, 컨플릭트 테스트(conflict test)를 위하여 상기 적어도 두 개의 브랜치 정보의 조합을 기반으로 병합(merge) 조합을 확인하는 단계 및 상기 병합 조합에 대하여 상기 컨플릭트 테스트를 수행한 결과를 기반으로 코드 컨플릭트 정보를 상기 적어도 하나의 작업자 단말에 제공하는 단계를 포함한다.In a method of providing code information by an electronic device according to an embodiment of the present disclosure, the method of providing code information includes obtaining project information from at least one worker terminal, and receiving project information corresponding to the project information from the at least one worker terminal. Obtaining at least two pieces of branch information, confirming a merge combination based on the combination of the at least two branch information for a conflict test, and testing the conflict for the merge combination. It includes providing code conflict information to the at least one worker terminal based on the result of performing.
예로서, 상기 코드 컨플릭트 정보는 상기 병합 조합에 대하여 발생한 제1 컨플릭트 정보 리스트를 포함하고, 상기 컨플릭트 정보 리스트는 상기 병합 조합에 대하여 컨플릭트가 발생한 브랜치 정보, 상기 컨플릭트와 관련된 파일 정보 및 상기 브랜치 정보와 대응하는 태그 정보 중 적어도 일부를 포함한다.As an example, the code conflict information includes a first conflict information list that occurred for the merge combination, and the conflict information list includes branch information in which a conflict occurred for the merge combination, file information related to the conflict, and the branch information. Contains at least part of the corresponding tag information.
예로서, 상기 코드 정보 제공 방법은 상기 제1 컨플릭트 정보 리스트에 대응하는 제1 작업자 입력이 획득되는 경우, 상기 제1 작업자 입력에 대응하는 파일 정보에 대하여 컨플릭트가 발생한 코드 부분 정보를 제1 작업자 단말에 제공하는 단계를 더 포함한다.As an example, the code information providing method, when a first worker input corresponding to the first conflict information list is obtained, provides code part information in which a conflict occurred with respect to file information corresponding to the first worker input to the first worker terminal. It further includes steps provided to.
예로서, 상기 코드 정보 제공 방법은 상기 적어도 하나의 작업자 단말로부터 작업자 식별 정보를 획득하는 단계 및 상기 작업자 식별 정보에 대응하는 제2 컨플릭트 정보 리스트를 상기 적어도 하나의 작업자 단말에 제공하는 단계를 더 포함한다.As an example, the code information providing method further includes obtaining worker identification information from the at least one worker terminal and providing a second conflict information list corresponding to the worker identification information to the at least one worker terminal. do.
예로서, 상기 코드 정보 제공 방법은 상기 적어도 하나의 작업자 단말로부터 브랜치 식별 정보를 획득하는 단계 및 상기 브랜치 식별 정보에 대응하는 제3 컨플릭트 정보 리스트를 상기 적어도 하나의 작업자 단말에 제공하는 단계를 더 포함한다.As an example, the code information providing method further includes obtaining branch identification information from the at least one worker terminal and providing a third conflict information list corresponding to the branch identification information to the at least one worker terminal. do.
예로서, 상기 코드 컨플릭트 정보는 동일 파일에 대한 작업을 수행한 작업자 정보 리스트를 포함하고, 상기 작업자 정보 리스트는 상기 파일에 대응하는 브랜치 정보, 상기 브랜치 정보와 대응하는 태그 정보 및 상기 파일에 대응하는 커밋 정보 중 적어도 일부를 포함한다,As an example, the code conflict information includes a list of worker information that performed work on the same file, and the worker information list includes branch information corresponding to the file, tag information corresponding to the branch information, and information corresponding to the file. Contains at least some of the commit information,
예로서, 상기 코드 정보 제공 방법은 상기 제1 작업자 정보 리스트에 대응하는 제2 작업자 입력이 획득되는 경우, 상기 제2 작업자 입력에 대응하는 파일 정보에 대한 코드 변경 정보를 제2 작업자 단말에 제공한다.As an example, the code information providing method provides code change information for file information corresponding to the second worker input to the second worker terminal when a second worker input corresponding to the first worker information list is obtained. .
예로서, 상기 코드 컨플릭트 정보는 마스터 브랜치 정보로부터 파생된 브랜치 정보 리스트를 포함한다.As an example, the code conflict information includes a list of branch information derived from master branch information.
예로서, 상기 컨플릭트 테스트를 위하여 상기 프로젝트 정보와 관련된 병합 조합을 확인하는 단계는 상기 적어도 두 개의 브랜치 정보 중 적어도 일부와 관련된 커밋(commit) 정보가 획득되는 경우 수행된다.As an example, the step of checking a merge combination related to the project information for the conflict test is performed when commit information related to at least some of the at least two branch information is obtained.
예로서, 상기 컨플릭트 테스트를 위하여 상기 프로젝트 정보와 관련된 병합 조합을 확인하는 단계는 상기 전자 장치의 관리자에 의하여 설정된 주기에 따라 수행된다.For example, the step of checking a merge combination related to the project information for the conflict test is performed according to a cycle set by an administrator of the electronic device.
예로서, 상기 병합 조합은 상기 적어도 두 개의 브랜치 정보들 상호 간의 병합 조합, 제1 브랜치 정보와 관련된 적어도 두 개의 파일 정보들 상호 간의 병합 조합 및 제1 파일 정보에 포함되는 프로그램 코드에 대한 병합 조합 중 적어도 일부를 포함한다.For example, the merge combination may include a merge combination of the at least two branch information, a merge combination of the at least two pieces of file information related to the first branch information, and a merge combination of the program code included in the first file information. Includes at least some
본 개시의 실시 예에 따라 하드웨어와 결합되어, 코드 정보를 제공하기 위하여 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램은 적어도 하나의 작업자 단말로부터 프로젝트 정보를 획득하고, 상기 적어도 하나의 작업자 단말로부터 상기 프로젝트 정보에 대응하는 적어도 두 개의 브랜치 정보들을 획득하고, 컨플릭트 테스트를 위하여 상기 적어도 두 개의 브랜치 정보의 조합을 기반으로 병합 조합을 확인하고, 상기 병합 조합에 대하여 상기 컨플릭트 테스트를 수행한 결과를 기반으로 코드 컨플릭트 정보를 상기 적어도 하나의 작업자 단말에 제공한다.According to an embodiment of the present disclosure, in a computer program combined with hardware and stored in a computer-readable storage medium to provide code information, the computer program obtains project information from at least one worker terminal, and the at least one Obtaining at least two branch information corresponding to the project information from a worker terminal, confirming a merge combination based on the combination of the at least two branch information for conflict testing, and performing the conflict test on the merge combination. Based on the results, code conflict information is provided to the at least one worker terminal.
본 개시의 실시 예에 따라 코드 정보를 제공하는 전자 장치로서, 상기 전자 장치는 트랜시버, 명령어를 저장하는 메모리 및 프로세서를 포함하고, 상기 트랜시버 및 상기 메모리와 연결되는 상기 프로세서는, 적어도 하나의 작업자 단말로부터 프로젝트 정보를 획득하고, 상기 적어도 하나의 작업자 단말로부터 상기 프로젝트 정보에 대응하는 적어도 두 개의 브랜치 정보들을 획득하고, 컨플릭트 테스트를 위하여 상기 적어도 두 개의 브랜치 정보의 조합을 기반으로 병합 조합을 확인하고, 상기 병합 조합에 대하여 상기 컨플릭트 테스트를 수행한 결과를 기반으로 코드 컨플릭트 정보를 상기 적어도 하나의 작업자 단말에 제공한다.An electronic device that provides code information according to an embodiment of the present disclosure, wherein the electronic device includes a transceiver, a memory for storing instructions, and a processor, and the processor connected to the transceiver and the memory includes at least one worker terminal. Obtain project information from, obtain at least two branch information corresponding to the project information from the at least one worker terminal, and confirm a merge combination based on the combination of the at least two branch information for conflict testing, Code conflict information is provided to the at least one worker terminal based on a result of performing the conflict test for the merge combination.
본 개시에 따른 코드 정보 제공을 위한 전자 장치 및 그 방법은 프로젝트와 관련된 복수의 프로그램 코드들에 대해 서비스 배포를 위한 빌드 과정 이전에 프로젝트와 관련된 각 코드의 개별적인 수정에 의하여 발생하는 컨플릭트 정보를 미리 확인하고, 이를 작업자에게 제공함으로써, 컨플릭트 상황을 미리 통지하여 선제적으로 컨플릭트를 해소하고, 프로젝트의 생산성을 향상시킬 수 있다.The electronic device and method for providing code information according to the present disclosure check in advance conflict information generated by individual modification of each code related to the project before the build process for service distribution for a plurality of program codes related to the project. And by providing this to workers, conflict situations can be notified in advance to preemptively resolve conflicts and improve project productivity.
또한, 본 개시에 따른 코드 정보 제공을 위한 전자 장치 및 그 방법은 프로젝트와 관련된 작업 현황을 작업자에게 제공함으로써, 프로젝트 진행 상황에 대한 정보를 작업자에게 직관적으로 제공할 수 있다.In addition, the electronic device and method for providing code information according to the present disclosure can intuitively provide information on the project progress to the worker by providing the worker with the status of work related to the project.
본 개시의 효과는 상술한 효과에 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present disclosure are not limited to the effects described above, and other effects not mentioned may be clearly understood by those skilled in the art from the description of the claims.
도 1은 본 개시의 실시 예에 따른 코드 정보 제공을 위한 시스템을 나타내기 위한 도면이다.1 is a diagram illustrating a system for providing code information according to an embodiment of the present disclosure.
도 2는 본 개시의 실시 예에 따라 코드 정보가 제공되는 프로젝트의 자료 구조를 나타내기 위한 도면이다.Figure 2 is a diagram showing the data structure of a project in which code information is provided according to an embodiment of the present disclosure.
도 3은 본 개시의 실시 예에 따른 코드 정보 제공 방법을 설명하기 위한 순서도이다.Figure 3 is a flowchart for explaining a method of providing code information according to an embodiment of the present disclosure.
도 4a 내지 도 4c는 본 개시의 실시 예에 따른 제1 기능에 따라 코드 정보를 제공하는 페이지를 나타내기 위한 도면이다.4A to 4C are diagrams showing a page providing code information according to a first function according to an embodiment of the present disclosure.
도 5a 및 도 5b는 본 개시의 실시 예에 따른 제2 기능에 따라 코드 정보를 제공하는 페이지를 나타내기 위한 도면이다.5A and 5B are diagrams showing a page providing code information according to a second function according to an embodiment of the present disclosure.
도 6은 본 개시의 실시 예에 따른 제3 기능에 따라 코드 정보를 제공하는 페이지를 나타내는 페이지를 나타내기 위한 도면이다.FIG. 6 is a diagram illustrating a page that provides code information according to a third function according to an embodiment of the present disclosure.
도 7은 본 개시의 실시 예에 따른 코드 정보 제공을 위한 전자 장치를 나타내기 위한 도면이다.FIG. 7 is a diagram illustrating an electronic device for providing code information according to an embodiment of the present disclosure.
이하에서, 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 개시의 실시 예들은 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present disclosure will be described clearly and in detail so that those skilled in the art can easily practice the present invention.
본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며, 본 개시를 제한하고자 하는 것은 아니다. 다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. The terms used in this specification are for describing embodiments and are not intended to limit the disclosure. Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with a meaning that can be commonly understood by those skilled in the art to which this disclosure pertains. It may vary depending on the intentions or precedents of engineers working in the field, the emergence of new technologies, etc.
또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 특정한 경우 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined. In certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the relevant description section. Therefore, the terms used in this disclosure should be defined based on the meaning of the term and the overall content of this disclosure, rather than simply the name of the term.
본 명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 본 명세서에서 사용된 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서 전체에서 기재된 “a, b, 및 c 중 적어도 하나”의 표현은, ‘a 단독’, ‘b 단독’, ‘c 단독’, ‘a 및 b’, ‘a 및 c’, ‘b 및 c’, 또는 ‘a,b,c 모두’를 포괄할 수 있다.Throughout this specification, when a part “includes” a certain component, this does not mean that other components are excluded, but may further include other components, unless specifically stated to the contrary. Additionally, as used herein, the singular form also includes the plural form unless specifically stated otherwise in the phrase. In addition, the expression “at least one of a, b, and c” described throughout the specification means ‘a alone’, ‘b alone’, ‘c alone’, ‘a and b’, ‘a and c’, ‘b and c', or 'all of a, b, and c'.
한편, 본 명세서에서 사용되는 “제1 및/또는 제2” 등의 용어는 다양한 구성요소들을 설명하기 위하여 사용될 수 있으나, 이는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 목적으로만 사용될 뿐, 해당 용어로 지칭되는 구성요소로 한정하기 위한 것은 아니다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않는 한, 제1 구성요소는 제2 구성요소로 명명될 수 있으며, 제2 구성요소 또한 제1 구성요소로 명명될 수 있다.Meanwhile, terms such as “first and/or second” used in this specification may be used to describe various components, but are only used for the purpose of distinguishing one component from other components. It is not intended to be limited to the components referred to by that term. For example, without departing from the scope of the present invention, a first component may be named a second component, and the second component may also be named a first component.
또한, 본 명세서에 기재된 “…부”, “…모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 본 개시의 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 실시 예는 하나 이상의 마이크로프로세서의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. In addition, “…” described in this specification. wealth", "… Terms such as “module” refer to a unit that processes at least one function or operation, which may be implemented as hardware or software, or as a combination of hardware and software. Additionally, embodiments of the present disclosure may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in various numbers of hardware or/and software configurations that execute specific functions. For example, embodiments of the present disclosure include memory, processing, logic, look-up tables, etc. that can execute various functions under the control of one or more microprocessors or other control devices. Direct circuit configurations can be employed.
본 명세서에 개시된 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 개시의 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및 데이터 처리 중 적어도 하나를 위하여 종래 기술을 채용할 수 있다.“매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.Similar to the fact that the components disclosed herein can be implemented as software programming or software elements, embodiments of the present disclosure include various algorithms implemented as combinations of data structures, processes, routines or other programming constructs, including: It can be implemented in a programming or scripting language such as C, C++, Java, assembler, etc. Functional aspects may be implemented as algorithms running on one or more processors. Additionally, the present embodiment may employ prior art for at least one of electronic environment setting, signal processing, and data processing. Terms such as “mechanism,” “element,” “means,” and “configuration” are broadly used. It can be used and is not limited to mechanical and physical components. The term may include the meaning of a series of software routines in connection with a processor, etc.
본 명세서에 첨부된 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. Each block of the processing flow diagrams attached to this specification and combinations of the flow diagram diagrams may be performed by computer program instructions. These computer program instructions can be mounted on a processor of a general-purpose computer, special-purpose computer, or other programmable data processing equipment, so that the instructions performed through the processor of the computer or other programmable data processing equipment are described in the flow chart block(s). It creates the means to perform functions.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것이 가능하며, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. These computer program instructions may be stored in computer-usable or computer-readable memory that can be directed to a computer or other programmable data processing equipment to implement a function in a particular manner. It is also possible to produce manufactured items containing instruction means that perform the functions described in the flowchart block(s).
컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Computer program instructions can also be mounted on a computer or other programmable data processing equipment, so that a series of operational steps are performed on the computer or other programmable data processing equipment to create a process that is executed by the computer, thereby generating a process that is executed by the computer or other programmable data processing equipment. Instructions that perform processing equipment may also provide steps for executing the functions described in the flow diagram block(s).
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능할 수 있다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Additionally, each block may represent a module, segment, or portion of code that includes one or more executable instructions for executing specified logical function(s). Additionally, in some alternative execution examples, it may be possible for the functions mentioned in the blocks to occur out of order. For example, it is possible for two blocks shown in succession to be performed substantially at the same time, or it is possible for the blocks to be performed in reverse order depending on the corresponding function.
본 명세서에서 언급되는 "전자 장치" 또는 "단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution) 등의 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다. 또한, 본 명세서에서 언급되는 "전자 장치" 또는 "단말"은 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등도 포함할 수 있다. The “electronic device” or “terminal” referred to in this specification may be implemented as a computer or portable terminal that can connect to a server or other terminal through a network. Here, the computer includes, for example, a laptop, desktop, laptop, etc. equipped with a web browser, and the portable terminal is, for example, a wireless communication device that guarantees portability and mobility. , all types of communication-based terminals such as IMT (International Mobile Telecommunication), CDMA (Code Division Multiple Access), W-CDMA (W-Code Division Multiple Access), and LTE (Long Term Evolution), smartphones, tablet PCs, etc. It may include a handheld-based wireless communication device. In addition, the "electronic device" or "terminal" referred to in this specification includes a processor, memory for storing and executing program data, permanent storage such as a disk drive, a communication port for communicating with an external device, a touch panel, User interface devices such as keys, buttons, etc. may also be included.
본 개시에 있어서, 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체는 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-Access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등을 포함할 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어 실행될 수 있다.In the present disclosure, methods implemented as software modules or algorithms may be stored on a computer-readable recording medium as computer-readable codes or program instructions executable on a processor. Here, computer-readable recording media include magnetic storage media (e.g., ROM (read-only memory), RAM (random-access memory), floppy disk, hard disk, etc.) and optical read media (e.g., CD-ROM). ), DVD (Digital Versatile Disc), etc. Computer-readable recording media can be distributed and executed on networked computer systems.
이하, 본 개시의 다양한 실시 예들은 첨부된 도면을 참조하여 상세하게 설명될 것이다. 실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략할 것이다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다. 마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 본 명세서에서, 전문에 걸쳐 동일한 참조 부호는 동일한 또는 대응하는 구성 요소를 지칭할 수 있다.Hereinafter, various embodiments of the present disclosure will be described in detail with reference to the attached drawings. In describing the embodiments, description will be omitted for technical content that is well known in the technical field to which the present invention belongs and that is not directly related to the present invention. This is to convey the gist of the present invention more clearly without obscuring it by omitting unnecessary explanation. For the same reason, some components are exaggerated, omitted, or schematically shown in the accompanying drawings. Additionally, the size of each component does not entirely reflect its actual size. In this specification, the same reference numerals throughout may refer to the same or corresponding elements.
도 1은 본 개시의 실시 예에 따른 코드 정보 제공을 위한 시스템(10)을 나타내기 위한 도면이다. 도 1을 참조하면, 본 개시의 실시 예에 따른 코드 정보 제공을 위한 시스템(10)은 전자 장치(110) 및 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n)을 포함할 수 있다. 전자 장치(110)는 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n)과 상호간 네트워크를 통하여 통신을 수행하고, 정보를 교환할 수 있다.FIG. 1 is a diagram illustrating a system 10 for providing code information according to an embodiment of the present disclosure. Referring to FIG. 1, the system 10 for providing code information according to an embodiment of the present disclosure may include an electronic device 110 and first to nth worker terminals 120_1, 120_2, ..., 120_n. . The electronic device 110 may communicate with the first to nth worker terminals 120_1, 120_2, ..., 120_n through a mutual network and exchange information.
예로서, 네트워크는 PAN(Personal Area Network), LAN(Local Area Network), CAN(Campus Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network), BBN(Broad Band Network), 인터넷 중 적어도 하나의 네트워크를 포함할 수 있다. 또한, 네트워크는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(Hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 적어도 하나를 포함할 수 있다. 본 개시의 실시 예에서, 전자 장치(110) 및 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n)의 상호간 통신 방식은 상술한 네트워크의 종류에 제한되지 않으며, 네트워크가 포함할 수 있는 통신망을 활용하는 통신 방식 뿐 아니라 기기간의 근거리 무선 통신 또한 포함할 수 있다.For example, the network may be at least one of a Personal Area Network (PAN), a Local Area Network (LAN), a Campus Area Network (CAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a Broad Band Network (BBN), and the Internet. Can contain one network. Additionally, the network may include at least one of network topologies including a bus network, star network, ring network, mesh network, star-bus network, tree, or hierarchical network. In an embodiment of the present disclosure, the mutual communication method between the electronic device 110 and the first to nth worker terminals 120_1, 120_2, ..., 120_n is not limited to the type of network described above, and may include any network type. It can include not only communication methods using a communication network, but also short-range wireless communication between devices.
본 개시의 실시 예에서, 전자 장치(110)는 트랜시버, 메모리 및 프로세서를 포함할 수 있다. 또한, 전자 장치(110)는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 실시 예에서, 전자 장치(110)는 네트워크 서버로 구현되는 다수의 컴퓨터 시스템 또는 컴퓨터 소프트웨어를 포함할 수 있다. 예로서, 전자 장치(110) 는 인트라넷 또는 인터넷과 같은 컴퓨터 네트워크를 통하여 다른 네트워크 서버와 통신할 수 있는 하위 장치와 연결되어 작업 수행 요청을 접수하고, 그에 대한 작업을 수행하여 수행 결과를 제공하는 컴퓨터 시스템 및 컴퓨터 소프트웨어를 지칭할 수 있다.In an embodiment of the present disclosure, the electronic device 110 may include a transceiver, memory, and processor. Additionally, the electronic device 110 refers to a unit that processes at least one function or operation, and may be implemented with hardware, software, or a combination of hardware and software. In an embodiment, the electronic device 110 may include multiple computer systems or computer software implemented as a network server. As an example, the electronic device 110 is a computer that is connected to a lower-level device that can communicate with another network server through a computer network such as an intranet or the Internet, receives a request to perform a task, performs the task, and provides a performance result. It can refer to systems and computer software.
이외에도, 전자 장치(110)는 네트워크 서버 상에서 동작할 수 있는 일련의 응용 프로그램 및 내부에 구축되어 있는 각종 데이터베이스를 포함하는 광의의 개념으로 이해될 수 있다. 예로서, 전자 장치(110)는 도스(DOS), 윈도우(Windows), 리눅스(Linux), 유닉스(Unix), 또는 맥OS(MacOS) 등의 운영 체제에 따라 다양하게 제공되는 네트워크 서버 프로그램을 이용하여 구현될 수 있다.In addition, the electronic device 110 can be understood as a broad concept that includes a series of application programs that can operate on a network server and various databases built therein. For example, the electronic device 110 uses a network server program provided in various ways depending on the operating system, such as DOS, Windows, Linux, Unix, or MacOS. This can be implemented.
본 개시의 실시 예에서, 전자 장치(110)는 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나로부터 프로젝트와 관련된 프로그램 코드를 획득할 수 있다. 프로그램 코드는 프로젝트와 관련된 파일 정보에 포함될 수 있으며, 복수의 코드 라인들을 포함할 수 있다. 전자 장치(110)는 프로젝트와 관련된 복수의 프로그램 코드들에 대한 병합(merge) 수행 이전에 프로그램 코드에 대한 컨플릭트(conflict) 테스트를 주기적으로 수행하고, 컨플릭트 테스트의 결과를 기반으로 코드 컨플릭트 정보를 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나에 제공할 수 있다.In an embodiment of the present disclosure, the electronic device 110 may obtain a program code related to a project from at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n. Program code may be included in file information related to the project and may include multiple code lines. The electronic device 110 periodically performs a conflict test on program code before merging a plurality of program codes related to a project, and provides code conflict information based on the results of the conflict test. It can be provided to at least one of the 1st to nth worker terminals (120_1, 120_2, ..., 120_n).
한편, 실시 예에서, 각 작업자는 각 작업자 단말(120_1, 120_2, …, 또는 120_n)에서 작업을 할 수 있으나 이에 제한되지 않으며, 프로젝트와 관련된 서버에서 작업자와 대응되는 브랜치에 작업한 코드를 업데이트 할 수 있다. 이와 같이 프로젝트와 관련된 전체적인 브랜치 목록을 확인하고 이에 대해서 컨플릭트 여부를 미리 확인함으로써 작업자들의 수정에 따라 컨플릭트 발생 여부를 확인할 수 있고, 이를 통해 원하지 않는 컨플릭트를 수정할 수 있다. Meanwhile, in the embodiment, each worker may work on each worker terminal (120_1, 120_2, ..., or 120_n), but is not limited thereto, and may update the code worked on the branch corresponding to the worker on the server related to the project. You can. In this way, by checking the overall list of branches related to the project and checking for conflicts in advance, you can check whether conflicts have occurred according to the modifications made by workers, and through this, unwanted conflicts can be modified.
본 개시의 실시 예에 따라 전자 장치(110)로부터 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나에 제공되는 코드 컨플릭트 정보는 코드 컨플릭트가 발생한 브랜치(branch) 정보, 코드 컨플릭트가 발생한 파일(file) 정보, 코드 컨플릭트가 발생한 파일에 대한 작업을 수행한 작업자 정보, 코드 컨플릭트가 발생한 코드 부분 정보, 수정 작업이 수행된 코드 변경 정보, 브랜치 정보와 대응하는 태그 정보, 파일 정보와 대응하는 커밋(commit) 정보 중 적어도 일부를 포함할 수 있다. 커밋 작업은 추가된 파일 정보 또는 편집이 이루어진 파일 정보를 저장소에 저장하는 작업을 의미할 수 있으며, 본 개시의 실시 예에서, 커밋 정보는 커밋 작업과 관련된 정보를 포함할 수 있다. 전자 장치(110)로부터 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나에 제공되는 코드 컨플릭트 정보에 포함되는 세부 정보는 전자 장치(110)가 제공하는 기능에 따라 상이할 수 있으며, 전자 장치(110)의 기능에 따라 제공되는 코드 컨플릭트 정보는 후술할 도 4a 내지 도 6에서 상세히 설명한다.According to an embodiment of the present disclosure, the code conflict information provided from the electronic device 110 to at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n includes branch information where the code conflict occurred, code Information on the file where the conflict occurred, information on the worker who performed work on the file where the code conflict occurred, information on the code part where the code conflict occurred, code change information on which the modification was performed, tag information corresponding to branch information, and file information. It may include at least some of the commit information corresponding to . A commit operation may refer to the operation of storing added file information or edited file information in a storage, and in an embodiment of the present disclosure, the commit information may include information related to the commit operation. Detailed information included in the code conflict information provided from the electronic device 110 to at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n may vary depending on the function provided by the electronic device 110. Code conflict information provided according to the function of the electronic device 110 will be described in detail in FIGS. 4A to 6 to be described later.
도시되지 않았으나, 본 개시의 실시 예에서 코드 정보 제공을 위한 시스템(10)은 전자 장치(110)로부터 제공된 프로젝트 관련 정보를 저장하기 위한 서버를 더 포함할 수 있다. 서버에 저장되는 프로젝트 관련 정보는 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나로부터 프로젝트와 관련된 프로그램 코드, 각 프로그램 코드와 관련된 작업 정보 및 전자 장치(110)에 의하여 도출된 코드 컨플릭트 정보 중 적어도 일부를 포함할 수 있다. 실시 예에서, 서버는 저장되는 정보에 대한 보안을 위한 구성일 수 있으며, 전자 장치(110)에 포함되는 구성이거나, 전자 장치(110)와 독립된 구성일 수 있다. 한편, 전자 장치(110)는 커밋 정보를 기반으로 푸시 작업을 수행할 수 있다. 푸시 작업은 추가된 파일 정보 또는 편집이 이루어진 파일 정보를 원격 저장소에 저장하는 작업을 의미할 수 있으며, 실시 예에서, 원격 저장소는 상술한 서버일 수 있다.Although not shown, in an embodiment of the present disclosure, the system 10 for providing code information may further include a server for storing project-related information provided from the electronic device 110. Project-related information stored in the server is derived from at least one of the first to nth worker terminals (120_1, 120_2, ..., 120_n) by program codes related to the project, task information related to each program code, and the electronic device 110. It may contain at least some of the code conflict information. In an embodiment, the server may be a component for security of stored information, may be included in the electronic device 110, or may be a component independent of the electronic device 110. Meanwhile, the electronic device 110 may perform a push operation based on commit information. A push operation may mean saving added file information or edited file information to a remote storage, and in an embodiment, the remote storage may be the server described above.
실시 예에서, 서버는 전자 장치(110)로부터 획득한 프로젝트 관련 정보를 기반으로 도출된 프로젝트 히스토리 정보를 더 저장할 수 있다. 또한, 서버는 작업자의 요청에 응답하여 저장된 프로젝트 관련 정보 중 적어도 일부를 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나에 제공할 수 있다. 또한, 본 개시의 실시 예에서, 전자 장치(110)는 프로젝트와 관련된 작업 현황 정보를 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나에 제공할 수 있다. 프로젝트와 관련된 작업 현황 정보는 서버에 저장된 프로젝트 관련 정보 및 프로젝트 히스토리 정보로부터 도출될 수 있으며, 작업자의 요청에 응답하여 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나에 제공될 수 있다.In an embodiment, the server may further store project history information derived based on project-related information obtained from the electronic device 110. Additionally, the server may provide at least some of the stored project-related information to at least one of the first to nth worker terminals (120_1, 120_2, ..., 120_n) in response to the worker's request. Additionally, in an embodiment of the present disclosure, the electronic device 110 may provide project-related work status information to at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n. Work status information related to the project can be derived from project-related information and project history information stored in the server, and is provided to at least one of the first to nth worker terminals (120_1, 120_2, ..., 120_n) in response to the worker's request. It can be.
본 개시의 실시 예에 따르면, 프로젝트와 관련된 복수의 프로그램 코드들에 대한 병합 수행 이전에 각 코드의 개별적인 수정에 의하여 발생하는 컨플릭트 정보를 작업자에게 제공함으로써, 컨플릭트 상황을 미리 통지하여 선제적으로 컨플릭트를 해소하여 프로젝트의 생산성을 향상시킬 수 있다. 또한, 본 개시에 따른면, 프로젝트와 관련된 작업 현황을 작업자에게 제공함으로써, 프로젝트 진행 상황에 대한 정보를 작업자에게 직관적으로 제공할 수 있다. 본 개시의 실시 예에 따른 코드 정보를 제공하기 위한 방법에 대한 상세한 설명은 도 2 내지 도 7에서 후술한다.According to an embodiment of the present disclosure, prior to merging a plurality of program codes related to a project, conflict information arising from individual modifications of each code is provided to the worker, thereby notifying the conflict situation in advance and preemptively resolving the conflict. This can improve the productivity of the project. In addition, according to the present disclosure, by providing work status related to the project to the worker, information on the project progress can be intuitively provided to the worker. A detailed description of the method for providing code information according to an embodiment of the present disclosure will be described later with reference to FIGS. 2 to 7.
도 2는 본 개시의 실시 예에 따라 코드 정보가 제공되는 프로젝트(200)의 자료 구조(20)를 나타내기 위한 도면이다. 도 2를 참조하면, 하나의 프로젝트(200)로부터 마스터 브랜치(master branch)(MB), 개발 브랜치(develop branch)(DB), 제1 피처 브랜치(feature branch)(FB1) 및 제2 피처 브랜치(FB2)가 파생될 수 있다. 다만, 도 2에 도시된 자료 구조(20)는 본 개시의 이해를 돕기 위한 일 예일 뿐, 본 개시의 실시 예에 따라 코드 정보가 제공되는 자료 구조(20)를 제한하는 것은 아니며, 자료 구조(20)는 프로젝트(200)의 목표에 따라 적응적으로 구축될 수 있다.FIG. 2 is a diagram illustrating the data structure 20 of the project 200 in which code information is provided according to an embodiment of the present disclosure. Referring to FIG. 2, from one project 200, a master branch (MB), a development branch (DB), a first feature branch (FB1), and a second feature branch ( FB2) can be derived. However, the data structure 20 shown in FIG. 2 is only an example to aid understanding of the present disclosure, and does not limit the data structure 20 in which code information is provided according to an embodiment of the present disclosure, and the data structure ( 20) can be adaptively built according to the goals of the project 200.
마스터 브랜치(MB)는 프로젝트(200)와 관련된 배포(release) 이력을 관리하기 위한 브랜치일 수 있으며, 배포 가능한 상태의 파일 세트를 관리할 수 있다. 도 2에는 제1 마스터 파일 세트(210) 및 제2 마스터 파일 세트(220)를 포함한 마스터 브랜치(MB)가 도시된 바, 제1 마스터 파일 세트(210)로부터 구축되는 제1 프로그램 또는 제2 마스터 파일 세트(220)로부터 구축되는 제2 프로그램이 배포될 수 있으며, 제2 프로그램은 제1 프로그램의 또 다른 버전일 수 있다. 제1 마스터 파일 세트(210) 및 제2 마스터 파일 세트(220)에 포함되는 복수의 파일들 각각은 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n)에 의하여 커밋된 파일일 수 있다.The master branch (MB) may be a branch for managing release history related to the project 200 and may manage a set of files in a deployable state. 2 shows a master branch (MB) including a first master file set 210 and a second master file set 220, and the first program or second master built from the first master file set 210 A second program built from fileset 220 may be distributed, where the second program may be another version of the first program. Each of the plurality of files included in the first master file set 210 and the second master file set 220 may be a file committed by the first to nth worker terminals (120_1, 120_2, ..., 120_n). .
개발 브랜치(DB)는 프로젝트(200)와 관련된 다양한 기능 개발을 위한 브랜치들에 대한 병합을 수행하기 위한 브랜치일 수 있다. 디밸롭 브랜치(DB)와 관련된 파일 세트가 배포될 프로그램과 관련된 모든 기능을 포함하고, 버그가 수정되어 배포 가능한 안정적인 상태인 경우, 디밸롭 브랜치(DB)는 마스터 브랜치(MB)에 병합될 수 있다. 도 2의 제1 내지 제3 개발 파일 세트(211, 212, 213) 각각은 제2 마스터 파일 세트(220)와 대응하는 프로그램과 관련된 다양한 기능 개발을 위한 복수의 파일들을 포함할 수 있으며, 실시 예에서, 제2 개발 파일 세트(212)는 제1 개발 파일 세트(211)로부터, 제3 개발 파일 세트(213)는 제2 개발 파일 세트(212) 업데이트된 버전의 파일 세트일 수 있거나, 제1 내지 제3 개발 파일 세트(211, 212, 213) 각각이 제2 마스터 파일 세트(220)와 대응하는 프로그램과 관련된 독립된 기능을 구현하기 위한 파일 세트일 수 있다. 제1 내지 제3 개발 파일 세트(211, 212, 213) 각각에 포함되는 복수의 파일들 각각은 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n)에 의하여 커밋된 파일일 수 있다.The development branch (DB) may be a branch for merging branches for developing various functions related to the project 200. If the set of files associated with the development branch (DB) contains all features related to the program to be deployed, bugs have been fixed and it is in a stable state ready for deployment, the development branch (DB) can be merged into the master branch (MB). . Each of the first to third development file sets 211, 212, and 213 of FIG. 2 may include a plurality of files for developing various functions related to the program corresponding to the second master file set 220. In, the second set of development files 212 may be from the first set of development files 211, the third set of development files 213 may be an updated version of the second set of development files 212, or the set of files from the first set of development files 211 may be an updated version of the first set of development files 211. Each of the to third development file sets 211, 212, and 213 may be a set of files for implementing independent functions related to the program corresponding to the second master file set 220. Each of the plurality of files included in each of the first to third development file sets 211, 212, and 213 may be a file committed by the first to nth worker terminals 120_1, 120_2, ..., 120_n.
제1 피처 브랜치(FB1) 및 제2 피처 브랜치(FB2)는 프로젝트(200)와 관련된 새로운 기능 개발 및 버그 수정을 위하여 개발 브랜치(DB)로부터 분기된 브랜치일 수 있다. 제1 피처 브랜치(FB1) 및 제2 피처 브랜치(FB2)와 관련된 작업이 완료되는 경우, 제1 피처 브랜치(FB1) 및 제2 피처 브랜치(FB2)와 관련된 파일 세트는 개발 브랜치(DB)로 병합될 수 있다. 도 2는 제2 피처 브랜치(FB2)와 관련된 작업이 완료되고, 제2-1 피처 파일 세트(212_1) 및 제2-2 피처 파일 세트(212_2) 중 적어도 하나가 개발 브랜치(DB)에 병합되고, 제1 피처 브랜치(FB1)와 관련된 작업이 진행 중인 경우의 자료 구조(20)를 도시한다.The first feature branch (FB1) and the second feature branch (FB2) may be branches branched from the development branch (DB) to develop new functions and fix bugs related to the project 200. When work related to the first feature branch (FB1) and the second feature branch (FB2) is completed, the sets of files associated with the first feature branch (FB1) and the second feature branch (FB2) are merged into the development branch (DB). It can be. 2 shows that work related to the second feature branch FB2 is completed, and at least one of the 2-1 feature file set 212_1 and the 2-2 feature file set 212_2 is merged into the development branch DB. , shows the data structure 20 when work related to the first feature branch FB1 is in progress.
이외에도, 본 개시의 실시 예에 따른 프로젝트(200)의 자료 구조(20)는 제품 출시 버전을 준비하기 위하여 개발 브랜치(DB)로부터 분기하는 배포 브랜치(release branch) 및 배포한 제품 버전에 긴급한 수정 사항이 발생하는 경우, 이를 처리하기 위하여 마스터 브랜치(MB)에서 분기하는 핫픽스 브랜치(hotfix branch) 중 적어도 하나를 더 포함할 수 있다. 본 명세서에서 지칭하는 브랜치 정보는 프로젝트(200)와 관련된 마스터 브랜치(MB), 개발 브랜치(DB), 피처 브랜치(FB1, FB2), 배포 브랜치 및 핫픽스 브랜치 중 적어도 하나와 대응하는 정보일 수 있으며, 브랜치 정보는 해당 브랜치와 관련된 파일 세트에 대한 정보를 포함할 수 있다. 또한, 본 명세서에서 지칭하는 파일 정보는 파일 세트에 포함되는 적어도 하나의 파일에 대한 정보를 포함할 수 있으며, 파일 정보는 해당 파일과 관련된 프로그램 코드에 대한 정보를 포함할 수 있다.In addition, the data structure 20 of the project 200 according to the embodiment of the present disclosure includes a release branch branching from the development branch (DB) and urgent modifications to the distributed product version in order to prepare the product release version. When this occurs, at least one of hotfix branches branching from the master branch (MB) may be further included to handle this. The branch information referred to in this specification may be information corresponding to at least one of a master branch (MB), development branch (DB), feature branch (FB1, FB2), distribution branch, and hotfix branch related to the project 200, Branch information may include information about a set of files related to the branch. Additionally, the file information referred to in this specification may include information about at least one file included in the file set, and the file information may include information about program code related to the file.
한편, 실시 예에서, 프로젝트 내의 브랜치는 작업자에 따라 다른 구조를 가질 수 있으며, 본 명세서의 실시 예는 해당 프로젝트와 관련된 전체 브랜치 목록을 확인하고, 브랜치 목록의 각 브랜치들의 조합에 대해서 각각 머지(merge)를 선제적으로 수행함으로써 컨플릭트 발생 여부를 미리 확인할 수 있다.Meanwhile, in an embodiment, a branch within a project may have a different structure depending on the worker, and the embodiment of the present specification checks the entire branch list related to the project and merges each combination of branches in the branch list. ) can be checked in advance to determine whether a conflict has occurred.
도 3은 본 개시의 실시 예에 따른 코드 정보 제공 방법을 설명하기 위한 순서도이다.Figure 3 is a flowchart for explaining a method of providing code information according to an embodiment of the present disclosure.
S310 단계에서, 본 개시의 실시 예에 따른 전자 장치(110)는 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나로부터 프로젝트 정보를 획득할 수 있다. 프로젝트 정보는 해당 프로젝트와 관련된 기초 파일 정보 세트를 포함할 수 있으며, 기초 파일 정보 세트는 프로젝트와 관련된 프로그램을 구현하기 위한 복수의 프로그램 코드들을 포함할 수 있다.In step S310, the electronic device 110 according to an embodiment of the present disclosure may obtain project information from at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n. Project information may include a basic file information set related to the project, and the basic file information set may include a plurality of program codes for implementing a program related to the project.
S320 단계에서, 본 개시의 실시 예에 따른 전자 장치(110)는 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나로부터 프로젝트와 관련된 적어도 두 개의 브랜치 정보를 획득할 수 있다. 브랜치 정보는 기초 파일 정보 세트에 포함되는 적어도 하나의 파일 정보에 대한 수정이 이루어진 파일에 대응하는 브랜치 정보 및 프로젝트와 관련하여 새로 생성된 파일에 대응하는 브랜치 정보 중 적어도 하나일 수 있으며, 해당 브랜치 정보에 대응하는 파일 정보 세트를 포함할 수 있다. 파일 정보 세트는 복수의 파일 정보들을 포함할 수 있으며, 복수의 파일 정보들 각각은 복수의 코드 라인을 포함하는 프로그램 코드를 포함할 수 있다.In step S320, the electronic device 110 according to an embodiment of the present disclosure may obtain at least two branch information related to the project from at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n. . The branch information may be at least one of branch information corresponding to a file in which at least one file information included in the basic file information set has been modified and branch information corresponding to a newly created file related to the project, and the branch information It may contain a set of file information corresponding to . The file information set may include a plurality of file information, and each of the plurality of file information may include program code including a plurality of code lines.
S330 단계에서, 본 개시의 실시 예에 따른 전자 장치(110)는 컨플릭트 테스트를 위하여 프로젝트와 관련된 병합 조합을 확인할 수 있다. 병합 조합은 배포를 위하여 프로그램 코드에 대한 병합이 예상되는 개체들의 조합일 수 있으며, 실시 예에서, 병합 조합은 적어도 두 개의 브랜치 정보들 상호 간의 병합 조합, 하나의 브랜치 정보와 관련된 적어도 두 개의 파일 정보들 상호 간의 병합 조합 및 하나의 파일 정보에 포함되는 프로그램 코드에 대한 병합 조합 중 적어도 일부를 포함할 수 있다.In step S330, the electronic device 110 according to an embodiment of the present disclosure may check a merge combination related to the project for a conflict test. The merge combination may be a combination of objects expected to be merged into program code for distribution. In an embodiment, the merge combination is a combination of a merge between at least two branch information, and at least two file information related to one branch information. It may include at least some of a merge combination between the files and a merge combination of program codes included in one file information.
구체적으로, 적어도 두 개의 브랜치 정보들 상호 간이 병합 조합은 서로 다른 기능을 구현하기 위한 제1 브랜치 및 제2 브랜치 조합일 수 있다. 하나의 브랜치 정보와 관련된 적어도 두 개의 파일 정보들 상호 간의 병합 조합은 제1 브랜치 정보와 관련된 제1 파일 정보 및 제2 파일 정보 조합일 수 있다. 한편, 하나의 파일 정보에 포함되는 프로그램 코드에 대한 병합 조합은 제1 파일 정보에 포함되는 프로그램 코드에 포함되는 제1 코드 라인 및 제2 코드 라인일 수 있다. 본 개시의 실시 예에 따라 전자 장치(110)로부터 확인되는 병합 조합은 브랜치 상호 간, 파일 상호 간 또는 코드 라인 상호 간 물리적 또는 논리적 연관성이 있는 개체들에 대한 조합일 수 있다. Specifically, a simple merge combination of at least two branch information may be a combination of a first branch and a second branch to implement different functions. A merge combination of at least two pieces of file information related to one branch information may be a combination of first file information and second file information related to first branch information. Meanwhile, the merge combination for the program code included in one file information may be the first code line and the second code line included in the program code included in the first file information. According to an embodiment of the present disclosure, the merge combination confirmed from the electronic device 110 may be a combination of entities that have a physical or logical relationship between branches, files, or code lines.
S340 단계에서, 본 개시의 실시 예에 따른 전자 장치(110)는 확인된 병합 조합에 대한 컨플릭트 테스트를 수행할 수 있다. 컨플릭트 테스트는 병합 조합에 대한 물리적 또는 논리적 컨플릭트 발생 여부를 확인하는 방식으로 수행될 수 있다. 물리적 컨플릭트란, 동일 위치의 코드 라인에 대하여 다수의 작업자들의 수정 작업이 수행된 경우 발생할 수 있는 컨플릭트일 수 있으며, 논리적 컨플릭트란, 상이한 위치의 적어도 두 개의 코드 라인 간의 연관성에 의하여 발생할 수 있는 컨플릭트일 수 있다. 실시 예에서, 전자 장치(110) S330 단계에서 확인된 모든 병합 조합에 대한 컨플릭트 테스트를 수행할 수 있다.In step S340, the electronic device 110 according to an embodiment of the present disclosure may perform a conflict test on the confirmed merge combination. Conflict testing can be performed by checking whether a physical or logical conflict occurs for the merge combination. A physical conflict can be a conflict that can occur when multiple workers modify a code line in the same location, and a logical conflict can be a conflict that can occur due to the relationship between at least two code lines in different locations. You can. In an embodiment, the electronic device 110 may perform a conflict test on all merge combinations confirmed in step S330.
한편, 일부 실시 예에서, 전자 장치(110)는 컨플릭트 테스트를 수행함에 있어서, 부하를 줄이기 위하여 선별된 일부 병합 조합에 대한 컨플릭트 테스트를 수행할 수 있다. 구체적으로, S320 단계에서 제1 브랜치 정보 및 제2 브랜치 정보가 획득되고, 제1 브랜치 정보는 제1 브랜치와 관련된 제1 파일에 대한 수정 정보를 포함하고, 제2 브랜치 정보는 제2 브랜치와 관려된 제2 파일에 대한 수정 정보를 포함하는 경우, 전자 장치(110)는 제1 브랜치 및 제2 브랜치와 관련된 병합 조합을 선별하여 컨플릭트 테스트를 수행할 수 있다.Meanwhile, in some embodiments, when performing a conflict test, the electronic device 110 may perform a conflict test on some selected merge combinations to reduce the load. Specifically, in step S320, first branch information and second branch information are obtained, the first branch information includes modification information for the first file related to the first branch, and the second branch information is related to the second branch. If the modified second file contains modification information, the electronic device 110 may perform a conflict test by selecting a merge combination related to the first branch and the second branch.
S350 단계에서, 본 개시의 실시 예에 따른 전자 장치(110)는 S340 단계에서 수행된 컨플릭트 테스트의 결과를 기반으로 코드 컨플릭트 정보를 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나에 제공할 수 있다. 코드 컨플릭트 정보는 코드 컨플릭트가 발생한 브랜치 정보, 코드 컨플릭트가 발생한 파일 정보, 코드 컨플릭트가 발생한 파일에 대한 작업을 수행한 작업자 정보, 코드 컨플릭트가 발생한 코드 부분 정보, 수정 작업이 수행된 코드 변경 정보, 브랜치 정보와 대응하는 태그 정보, 파일 정보와 대응하는 커밋 정보 중 적어도 일부를 포함할 수 있다. 실시 예에서, 전자 장치(110)에 의하여 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n) 중 적어도 하나에 제공되는 코드 컨플릭트 정보의 세부 항목은 전자 장치(110)가 제공하는 기능에 따라 상이할 수 있다. 한편, 실시 예에서, 컨플릭트 정보는 컨플릭트가 발생한 브랜치 조합에 대한 작업자 각각에게 제공될 수 있다.In step S350, the electronic device 110 according to an embodiment of the present disclosure sends code conflict information to one of the first to nth worker terminals 120_1, 120_2, ..., 120_n based on the result of the conflict test performed in step S340. You can provide at least one. Code conflict information includes information on the branch where the code conflict occurred, information on the file where the code conflict occurred, information on the worker who performed work on the file where the code conflict occurred, information on the code part where the code conflict occurred, information on the code change on which the modification was performed, and branch information. It may include at least part of tag information corresponding to the information and commit information corresponding to the file information. In an embodiment, detailed items of code conflict information provided by the electronic device 110 to at least one of the first to nth worker terminals 120_1, 120_2, ..., 120_n are related to the function provided by the electronic device 110. It may vary depending on the condition. Meanwhile, in an embodiment, conflict information may be provided to each worker for the branch combination in which the conflict occurred.
본 개시의 실시 예에 따른 컨플릭트 테스트는 일정한 주기에 따라 수행될 수 있다. 예로서, 컨플릭트 테스트는 전자 장치(110)의 관리자에 의하여 미리 설정된 주기에 대응하여 수행될 수 있으며, 컨플릭트 테스트에 선행하여 병합 조합을 확인할 수 있다. 한편, 본 개시의 또 다른 실시 예에 따른 컨플릭트 테스트는 프로그램과 관련된 커밋 정보가 획득되는 경우 수행될 수 있다. 커밋 정보는 작업자가 해당 파일에 대한 작업을 완료하고, 전자 장치(110)에 완료된 작업 정보를 제공하는 경우 획득될 수 있다.Conflict tests according to embodiments of the present disclosure may be performed at regular intervals. For example, the conflict test may be performed in response to a cycle preset by the administrator of the electronic device 110, and the merge combination may be confirmed prior to the conflict test. Meanwhile, a conflict test according to another embodiment of the present disclosure can be performed when commit information related to a program is obtained. Commit information can be obtained when a worker completes work on a corresponding file and provides completed work information to the electronic device 110.
도 4a 내지 도 4c는 본 개시의 실시 예에 따른 제1 기능에 따라 코드 정보를 제공하는 페이지를 나타내기 위한 도면이다. 실시 예에서, 제1 기능은 병합 조합에 대하여 발생하는 코드 컨플릭트 정보를 제공하기 위한 기능일 수 있다.4A to 4C are diagrams showing a page providing code information according to a first function according to an embodiment of the present disclosure. In an embodiment, the first function may be a function for providing code conflict information that occurs regarding a merge combination.
도 4a에 도시된 제1 기능에 따라 코드 컨플릭트 정보를 제공하기 위한 제1 페이지(40a)는 제1 기능에 대응하는 제1 탭(400)에 대한 작업자 입력에 대응하여 제공될 수 있다. 도 4a를 참조하면, 제1 페이지(40a)는 작업자로부터 프로젝트 식별 정보를 획득하기 위한 제1 입력부(410), 프로젝트 식별 정보에 대응하여 제공되는 코드 컨플릭트 정보를 포함하는 컨플릭트 정보 리스트(420), 작업자로부터 작업자 식별 정보를 획득하기 위한 위한 제2 입력부(430) 및 작업자로부터 브랜치 식별 정보를 획득하기 위한 제3 입력부(440)를 포함할 수 있다.The first page 40a for providing code conflict information according to the first function shown in FIG. 4A may be provided in response to an operator's input on the first tab 400 corresponding to the first function. Referring to FIG. 4A, the first page 40a includes a first input unit 410 for obtaining project identification information from an operator, a conflict information list 420 including code conflict information provided in response to the project identification information, It may include a second input unit 430 for obtaining worker identification information from the worker and a third input unit 440 for obtaining branch identification information from the worker.
전자 장치(110)는 제1 입력부(410)를 통하여 프로젝트 식별 정보를 획득하고, 프로젝트 식별 정보에 대응하는 컨플릭트 정보 리스트(420)를 제1 페이지(40a) 상에 제공할 수 있다. 컨플릭트 정보 리스트(420)는 컨플릭트 테스트의 수행 결과를 기반으로, 컨플릭트가 발생한 프로그램 코드와 관련된 정보를 포함할 수 있다. 구체적으로, 컨플릭트 정보 리스트(420)는 컨플릭트가 발생한 제1 브랜치 정보(421), 제1 브랜치 정보에 대응하는 태그 정보(422), 컨플릭트가 발생한 파일 정보(423) 및 제1 브랜치와 컨플릭트가 발생한 제2 브랜치 정보(424)를 포함할 수 있으며, 태그 정보(422)는 제1 브랜치 정보(421)와 관련된 버전 정보를 포함할 수 있다. 또한, 컨플릭트 정보 리스트(420)는 컨플릭트 상황에 대한 세부 정보를 제공하기 위한 아이콘(425)을 포함할 수 있다.The electronic device 110 may obtain project identification information through the first input unit 410 and provide a conflict information list 420 corresponding to the project identification information on the first page 40a. The conflict information list 420 may include information related to program code in which a conflict occurred, based on the results of a conflict test. Specifically, the conflict information list 420 includes the first branch information 421 where the conflict occurred, tag information 422 corresponding to the first branch information, file information 423 where the conflict occurred, and the first branch and the conflict occurred. It may include second branch information 424, and the tag information 422 may include version information related to the first branch information 421. Additionally, the conflict information list 420 may include an icon 425 to provide detailed information about the conflict situation.
아이콘(425)에 대한 작업자 입력이 획득되는 경우, 전자 장치(110)는 컨플릭트 상황에 대한 세부 정보를 작업자 단말을 통하여 작업자에게 제공할 수 있으며, 이에 대한 상세한 설명은 도 4b에서 후술한다. 또한, 제2 입력부(430) 또는 제3 입력부(440)에 대한 작업자 입력이 획득되는 경우, 작업자 입력에 대응하는 컨플릭트 정보 리스트를 작업자 단말을 통하여 작업자에게 제공할 수 있으며, 이에 대한 상세한 설명은 도 4c에서 후술한다.When a worker input for the icon 425 is obtained, the electronic device 110 can provide detailed information about the conflict situation to the worker through the worker terminal, a detailed description of which will be described later with reference to FIG. 4B. In addition, when an operator input to the second input unit 430 or the third input unit 440 is obtained, a list of conflict information corresponding to the operator input can be provided to the operator through the operator terminal, and a detailed description of this is shown in Figure 2. This is described later in 4c.
도 4b에 도시된 제1 서브 페이지(40b)는 제1 기능에 따라 코드 컨플릭트 정보를 제공하기 위한 제1 페이지(40a) 상의 아이콘(425)에 대한 작업자 입력에 대응하여 작업자 단말에 제공될 수 있다. 제1 서브 페이지(40b)는 코드 컨플릭트 세부 정보(450)를 포함할 수 있으며, 코드 컨플릭트 세부 정보(450)는 컨플릭트가 발생한 코드 부분 정보를 포함할 수 있다. 구체적으로, 제1 브랜치와 관련된 프로그램 코드에서 컨플릭트가 발생한 코드 부분 정보가 제공될 수 있으며, 코드 부분 정보는 하이라이트 표시될 수 있다. 일부 실시 예에서, 코드 컨플릭트 세부 정보(450)는 수정 작업 전의 코드 라인 정보 및 수정 작업 후의 코드 라인 정보를 포함할 수 있다.The first subpage 40b shown in FIG. 4B may be provided to the worker terminal in response to an operator input to the icon 425 on the first page 40a for providing code conflict information according to the first function. . The first subpage 40b may include code conflict detailed information 450, and the code conflict detailed information 450 may include information on the code portion in which the conflict occurred. Specifically, information on the code portion in which a conflict occurred in the program code related to the first branch may be provided, and the code portion information may be highlighted. In some embodiments, the code conflict details 450 may include code line information before the modification operation and code line information after the modification operation.
도 4c는 제2 입력부(430)를 통하여 작업자 식별 정보(460)가 획득되는 경우, 작업자 단말에 제공되는 작업자 식별 정보(460)에 대응하는 컨플릭트 정보 리스트를 포함하는 제1 페이지(40c)를 도시한다. 작업자 식별 정보(460)에 대응하는 컨플릭트 정보 리스트는 해당 작업자가 참여한 작업과 관련된 코드 컨플릭트 정보를 포함할 수 있다. 구체적으로 작업자 식별 정보(460)에 대응하는 컨플릭트 정보 리스트는 해당 작업자가 작업을 수행하여 컨플릭트가 발생한 브랜치 정보(470), 제1 브랜치 정보에 대응하는 태그 정보(480) 및 해당 컨플릭트가 발생한 파일 정보(490) 중 적어도 일부를 포함할 수 있다. 작업자 식별 정보(460)는 작업자의 이메일 주소 또는 작업자의 고유 ID일 수 있다. 또한, 도시되지 않았으나, 제3 입력부(440)를 통하여 브랜치 식별 정보가 획득되는 경우, 브랜치 식별 정보에 대응하는 컨플릭트 정보 리스트를 포함하는 제1 페이지가 작업자 단말에 제공될 수 있다.Figure 4c shows a first page 40c including a conflict information list corresponding to the worker identification information 460 provided to the worker terminal when the worker identification information 460 is acquired through the second input unit 430. do. The conflict information list corresponding to the worker identification information 460 may include code conflict information related to the work in which the worker participated. Specifically, the conflict information list corresponding to the worker identification information 460 includes branch information 470 in which the conflict occurred as a result of the worker performing the task, tag information 480 corresponding to the first branch information, and file information in which the conflict occurred. It may include at least some of (490). Worker identification information 460 may be the worker's email address or the worker's unique ID. Additionally, although not shown, when branch identification information is obtained through the third input unit 440, a first page including a conflict information list corresponding to the branch identification information may be provided to the worker terminal.
도 5a 및 도 5b는 본 개시의 실시 예에 따른 제2 기능에 따라 코드 정보를 제공하는 페이지를 나타내기 위한 도면이다. 실시 예에서, 제2 기능은 병합 조합에 대하여 발생하는 컨플릭트와 관련된 파일에 대한 작업을 수행한 작업자 정보를 제공하기 위한 기능일 수 있다.5A and 5B are diagrams showing a page providing code information according to a second function according to an embodiment of the present disclosure. In an embodiment, the second function may be a function for providing information on a worker who performed work on a file related to a conflict that arises for a merge combination.
도 5a에 도시된 제2 기능에 따라 코드 컨플릭트 정보를 제공하기 위한 제2 페이지(50a)는 제2 기능에 대응하는 제2 탭(500)에 대한 작업자 입력에 대응하여 제공될 수 있다. 도 5a를 참조하면, 제2 페이지(50a)는 파일 별 컨플릭트 정보 리스트(510)를 포함할 수 있으며, 작업자 별 컨플릭트 정보 리스트(510)는 컨플릭트가 발생한 파일 정보(511), 해당 파일에 대한 편집 작업을 수행한 작업자 정보(512), 해당 파일에 대한 작업과 관련되어 획득된 커밋 정보(513), 해당 파일에 대응하는 브랜치 정보(515) 및 브랜치 정보에 대응하는 태그 정보(516) 중 적어도 일부를 포함할 수 있다.A second page 50a for providing code conflict information according to the second function shown in FIG. 5A may be provided in response to an operator's input on the second tab 500 corresponding to the second function. Referring to FIG. 5A, the second page 50a may include a conflict information list 510 for each file, and the conflict information list 510 for each worker may include file information 511 in which a conflict occurred, and edit information for the file. At least some of the following: worker information 512 who performed the work, commit information 513 obtained in relation to work on the file, branch information 515 corresponding to the file, and tag information 516 corresponding to the branch information. may include.
한편, 실시 예에서, 제2 탭(500)의 경우 컨플릭트가 발생한 파일에 대한 리스트를 보여 주는 것으로 설명하였으나, 이에 제한되지 않으며, 프로젝트 내의 파일들 각각에 대해서 편집한 사용자 정보를 모두 확인할 수도 있다. 일 예로 프로젝트 내의 모든 파일에 대한 정보를 표시하고, 해당 파일에 대한 편집을 수행한 이력이 있는 사용자를 확인할 수 있으며, 이 정보를 기반으로 프로젝트 관리를 용이하게 수행할 수 있다. Meanwhile, in the embodiment, the second tab 500 has been described as showing a list of files in which conflicts have occurred, but this is not limited, and all edited user information for each file in the project can be checked. For example, information about all files in a project can be displayed, users with a history of editing the files can be identified, and project management can be easily performed based on this information.
또한, 파일 별 컨플릭트 정보 리스트(510)는 컨플릭트 상황에 대한 세부 정보를 제공하기 위한 아이콘(514)을 포함할 수 있다. 아이콘(514)에 대한 작업자 입력이 획득되는 경우, 전자 장치(110)는 컨플릭트 상황에 대한 세부 정보를 작업자 단말을 통하여 작업자에게 제공할 수 있으며, 이에 대한 상세한 설명은 도 5b에서 후술한다. 한편, 도시되지 않았으나, 일부 실시 예에서, 제2 기능에 따라 작업자 단말에 제공되는 파일 별 컨플릭트 정보 리스트(510)는 작업자의 기간 정보 입력에 대응하여 정해진 기간 내의 컨플릭트가 발생한 파일에 대한 작업을 수행한 작업자 정보를 포함할 수 있다.Additionally, the conflict information list 510 for each file may include an icon 514 to provide detailed information about the conflict situation. When a worker input for the icon 514 is obtained, the electronic device 110 can provide detailed information about the conflict situation to the worker through the worker terminal, a detailed description of which will be described later in FIG. 5B. Meanwhile, although not shown, in some embodiments, the file-specific conflict information list 510 provided to the worker terminal according to the second function performs work on files in which conflicts occur within a specified period in response to the worker's period information input. Can contain one worker information.
도 5b에 도시된 제2 서브 페이지(50b)는 제2 기능에 따라 코드 컨플릭트 정보를 제공하기 위한 제2 페이지(50a) 상의 아이콘(514)에 대한 작업자 입력에 대응하여 작업자 단말에 제공될 수 있다. 제2 서브 페이지(50b)는 코드 컨플릭트 세부 정보(520 및 530)를 포함할 수 있으며, 코드 컨플릭트 세부 정보(520 및 530)는 컨플릭트가 발생한 코드 부분 정보를 포함할 수 있다. 구체적으로, 컨플릭트가 발생한 코드 부분 정보가 제공될 수 있으며, 코드 부분 정보는 하이라이트 표시될 수 있다. 일부 실시 예에서, 코드 컨플릭트 세부 정보(520 및 530)는 프로그램 코드에 대한 변경 정보 및 비교 정보 중 적어도 일부를 포함할 수 있다.The second subpage 50b shown in FIG. 5B may be provided to the worker terminal in response to an operator input to the icon 514 on the second page 50a for providing code conflict information according to the second function. . The second subpage 50b may include code conflict details 520 and 530, and the code conflict details 520 and 530 may include information on the code portion in which the conflict occurred. Specifically, information on the code part where the conflict occurred may be provided, and the code part information may be highlighted. In some embodiments, code conflict details 520 and 530 may include at least some of change information and comparison information for program code.
도 6은 본 개시의 실시 예에 따른 제3 기능에 따라 코드 정보를 제공하는 페이지를 나타내는 페이지를 나타내기 위한 도면이다. 실시 예에서, 제3 기능은 특정 브랜치와 관련된 브랜치 정보를 제공하기 위한 기능일 수 있다.FIG. 6 is a diagram illustrating a page that provides code information according to a third function according to an embodiment of the present disclosure. In an embodiment, the third function may be a function for providing branch information related to a specific branch.
도 6에 도시된 제3 기능에 따라 코드 컨플릭트 정보를 제공하기 위한 제3 페이지(60)는 제3 기능에 대응하는 제3 탭(600)에 대한 작업자 입력에 대응하여 제공될 수 있다. 도 6을 참조하면, 제3 페이지(60)는 제1 브랜치와 관련된 복수의 브랜치 정보를 포함하는 컨플릭트 정보 리스트(610)를 포함할 수 있다. 컨플릭트 정보 리스트(610)에 포함되는 복수의 브랜치 정보들 각각은 브랜치 경로 정보를 포함할 수 있다. 브랜치 경로 정보는 해당 브랜치가 어떤 마스터 브랜치(MB)로부터 파생되었는지를 나타낼 수 있으며, 일부 실시 예에서, 컨플릭트 정보 리스트(610)는 해당 마스터 브랜치(MB)로부터 분기된 복수의 브랜치 정보 중 적어도 일부를 포함할 수 있다.A third page 60 for providing code conflict information according to the third function shown in FIG. 6 may be provided in response to an operator's input on the third tab 600 corresponding to the third function. Referring to FIG. 6, the third page 60 may include a conflict information list 610 including a plurality of branch information related to the first branch. Each of the plurality of branch information included in the conflict information list 610 may include branch path information. The branch path information may indicate which master branch (MB) the corresponding branch is derived from, and in some embodiments, the conflict information list 610 contains at least some of the information about a plurality of branches branched from the corresponding master branch (MB). It can be included.
제3 기능에 따라 제공되는 코드 컨플릭트 정보는 작업자에 의한 컨플릭트에 대한 판단을 위한 간접적 정보일 수 있다. 구체적으로, 특정 브랜치에 대한 작업이 완료되면 기존의 브랜치를 삭제함이 원칙이나, 이에 대한 삭제가 수행되지 않은 경우, 작업자는 삭제되지 않은 브랜치에 의하여 발생한 컨플릭트가 무시할 수 있는 컨플릭트인지, 또는 주의가 필요한 컨플릭트 인지 여부를 제3 기능에 따라 제공되는 코드 컨플릭트 정보를 기반으로 판단할 수 있다. 또한, 제3 기능에 따라 제공되는 코드 컨플릭트 정보를 기반으로 작업자는 컨플릭트 테스트를 수행하기 위한 브랜치 조합을 설정할 수 있다. 구체적으로, 작업자는 제3 기능에 따라 제공되는 코드 컨플릭트 정보를 기반으로 컨플릭트 테스트 수행 대상에서 삭제 작업이 수행되지 않은 브랜치를 제외하도록 설정할 수 있다.Code conflict information provided according to the third function may be indirect information for the operator to determine the conflict. Specifically, the rule is that when work on a specific branch is completed, the existing branch is deleted, but if deletion is not performed, the worker must determine whether the conflict caused by the undeleted branch is a conflict that can be ignored, or whether it is a conflict that requires attention. Whether there is a conflict can be determined based on code conflict information provided according to the third function. Additionally, based on code conflict information provided according to the third function, workers can set a branch combination to perform conflict testing. Specifically, the operator can set to exclude branches on which a deletion operation has not been performed from the conflict test performance target based on code conflict information provided according to the third function.
한편, 실시 예에서, 컨플릭트가 확인된 브랜치들의 경우, 해당 작업자에게 확인을 요청할 수 있으며, 본 명세서의 실시 예에 따른 페이지에 컨플릭트 정보를 확인할 수 있는 링크를 각 작업자에게 제공할 수 있다. 또한, 실시 예에서, 컨플릭트 판단은 해당 브랜치의 파일을 서로 비교함으로써 수행되므로 특정 파일과 논리적 연관성이 있는 다른 파일의 컨플릭트 확인이 필요하다. 이 경우, 사용자 설정에 의해 동일 파일이 아닌 다른 파일에 대해서도 주기적으로 컨플릭트 발생 여부를 확인할 수 있으며, 이에 대해서도 컨플릭트 정보를 각 작업자에게 제공할 수 있다. 한편, 본 개시의 실시 예에 따라 코드 간 컨플릭트 발생이 감지되는 경우, 프로젝트와 관련된 코딩 작업을 수행하기 위한 클라우드 기반의 작업 프로그램을 통하여 작업자에게 컨플릭트 발생과 관련된 알람 정보가 제공될 수 있으며, 컨플릭트 발생과 관련된 알람 정보는 감지된 코드 컨플릭트 정보를 확인할 것을 지시하는 지시 정보를 포함할 수 있다.Meanwhile, in the embodiment, in the case of branches for which a conflict has been confirmed, confirmation can be requested from the corresponding worker, and a link through which conflict information can be confirmed on the page according to the embodiment of the present specification can be provided to each worker. Additionally, in an embodiment, conflict determination is performed by comparing files in the corresponding branch with each other, so it is necessary to check the conflict of other files that are logically related to a specific file. In this case, by user settings, it is possible to periodically check whether a conflict has occurred in files other than the same file, and conflict information can also be provided to each worker. Meanwhile, according to an embodiment of the present disclosure, when a conflict between codes is detected, alarm information related to the occurrence of a conflict may be provided to the worker through a cloud-based work program for performing coding work related to the project, and the conflict may occur. Alarm information related to may include instruction information instructing to check the detected code conflict information.
도 7은 본 개시의 실시 예에 따른 코드 정보 제공을 위한 전자 장치(110)를 나타내기 위한 도면이다. 도 7을 참조하면, 본 개시의 실시 예에 따른 전자 장치(110)는 트랜시버(710), 프로세서(720) 및 메모리(730)를 포함할 수 있다. FIG. 7 is a diagram illustrating an electronic device 110 for providing code information according to an embodiment of the present disclosure. Referring to FIG. 7 , the electronic device 110 according to an embodiment of the present disclosure may include a transceiver 710, a processor 720, and a memory 730.
전자 장치(110)는 트랜시버(710)를 통하여 외부 단말과 연결되고, 데이터를 교환할 수 있다. 예로서, 전자 장치(110)는 트랜시버(710)를 통하여 제1 내지 제n 작업자 단말(120_1, 120_2, …, 120_n)과 각각 연결될 수 있다.The electronic device 110 can be connected to an external terminal through the transceiver 710 and exchange data. As an example, the electronic device 110 may be connected to the first to nth worker terminals 120_1, 120_2, ..., 120_n, respectively, through the transceiver 710.
프로세서(720)는 상술한 도 1 내지 도 6을 통하여 설명한 적어도 하나의 장치들을 포함하거나, 도 1 내지 도 6을 통하여 설명한 적어도 하나의 방법을 수행하기 위한 정보를 저장할 수 있다. 또한, 프로세서(720)는 프로그램을 실행하고, 코드 정보를 제공하기 위하여 전자 장치(110)를 제어할 수 있다.The processor 720 may include at least one device described above with reference to FIGS. 1 to 6 or may store information for performing at least one method described with reference to FIGS. 1 to 6 . Additionally, the processor 720 can control the electronic device 110 to execute programs and provide code information.
메모리(730)는 휘발성 메모리 밀 비휘발성 메모리 중 적어도 하나를 포함할 수 있다. 또한, 메모리(730)는 프로세서(720)에 의하여 실행되는 프로그램의 코드를 저장할 수 있다. 한편, 도시되지 않았으나, 전자 장치(110)로부터 외부 단말에 정보를 제공하기 위한 인터페이스를 더 포함할 수 있다.The memory 730 may include at least one of volatile memory and non-volatile memory. Additionally, the memory 730 may store the code of a program executed by the processor 720. Meanwhile, although not shown, an interface for providing information from the electronic device 110 to an external terminal may be further included.
상술된 내용은 본 개시를 실시하기 위한 구체적인 실시 예들이다. 본 개시는 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 개시는 상술된 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함할 것이다. 따라서, 본 개시의 범위는 상술된 실시 예들에 국한되어 정해져서는 안 되며 후술하는 특허청구범위뿐만 아니라 본 개시의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The above-described contents are specific embodiments for carrying out the present disclosure. The present disclosure will include not only the above-described embodiments, but also embodiments that are simply designed or can be easily changed. Additionally, the present disclosure will also include technologies that can be easily modified and implemented using the above-described embodiments. Therefore, the scope of the present disclosure should not be limited to the above-described embodiments, but should be determined by the claims and equivalents of the present disclosure as well as the claims described later.

Claims (13)

  1. 전자 장치에 의한 코드 정보 제공 방법에 있어서,In a method of providing code information by an electronic device,
    적어도 하나의 작업자 단말로부터 프로젝트 정보를 획득하는 단계;Obtaining project information from at least one worker terminal;
    상기 적어도 하나의 작업자 단말로부터 상기 프로젝트 정보에 대응하는 적어도 두 개의 브랜치(branch) 정보들을 획득하는 단계; Obtaining at least two branch information corresponding to the project information from the at least one worker terminal;
    컨플릭트 테스트(conflict test)를 위하여 상기 적어도 두 개의 브랜치 정보의 조합을 기반으로 병합(merge) 조합을 확인하는 단계; 및Confirming a merge combination based on the combination of the at least two branch information for a conflict test; and
    상기 병합 조합에 대하여 상기 컨플릭트 테스트를 수행한 결과를 기반으로 코드 컨플릭트 정보를 상기 적어도 하나의 작업자 단말에 제공하는 단계를 포함하는 코드 정보 제공 방법.A method of providing code information comprising providing code conflict information to the at least one worker terminal based on a result of performing the conflict test on the merge combination.
  2. 제1 항에 있어서,According to claim 1,
    상기 코드 컨플릭트 정보는 상기 병합 조합에 대하여 발생한 제1 컨플릭트 정보 리스트를 포함하고,The code conflict information includes a first conflict information list that occurred for the merge combination,
    상기 컨플릭트 정보 리스트는 상기 병합 조합에 대하여 컨플릭트가 발생한 브랜치 정보, 상기 컨플릭트와 관련된 파일 정보 및 상기 브랜치 정보와 대응하는 태그 정보 중 적어도 일부를 포함하는 코드 정보 제공 방법.The conflict information list includes at least part of branch information where a conflict has occurred with respect to the merge combination, file information related to the conflict, and tag information corresponding to the branch information.
  3. 제2 항에 있어서,According to clause 2,
    상기 제1 컨플릭트 정보 리스트에 대응하는 제1 작업자 입력이 획득되는 경우, 상기 제1 작업자 입력에 대응하는 파일 정보에 대하여 컨플릭트가 발생한 코드 부분 정보를 제1 작업자 단말에 제공하는 단계를 더 포함하는 코드 정보 제공 방법.When a first worker input corresponding to the first conflict information list is obtained, a code further comprising providing information on a code part in which a conflict occurs with respect to file information corresponding to the first worker input to the first worker terminal. How to provide information.
  4. 제1 항에 있어서,According to claim 1,
    상기 적어도 하나의 작업자 단말로부터 작업자 식별 정보를 획득하는 단계; 및Obtaining worker identification information from the at least one worker terminal; and
    상기 작업자 식별 정보에 대응하는 제2 컨플릭트 정보 리스트를 상기 적어도 하나의 작업자 단말에 제공하는 단계를 더 포함하는 코드 정보 제공 방법.Code information providing method further comprising providing a second conflict information list corresponding to the worker identification information to the at least one worker terminal.
  5. 제1 항에 있어서,According to claim 1,
    상기 적어도 하나의 작업자 단말로부터 브랜치 식별 정보를 획득하는 단계; 및Obtaining branch identification information from the at least one worker terminal; and
    상기 브랜치 식별 정보에 대응하는 제3 컨플릭트 정보 리스트를 상기 적어도 하나의 작업자 단말에 제공하는 단계를 더 포함하는 코드 정보 제공 방법.A method of providing code information further comprising providing a third conflict information list corresponding to the branch identification information to the at least one worker terminal.
  6. 제1 항에 있어서,According to claim 1,
    상기 코드 컨플릭트 정보는 동일 파일에 대한 작업을 수행한 작업자 정보 리스트를 포함하고,The code conflict information includes a list of worker information that performed work on the same file,
    상기 작업자 정보 리스트는 상기 파일에 대응하는 브랜치 정보, 상기 브랜치 정보와 대응하는 태그 정보 및 상기 파일에 대응하는 커밋 정보 중 적어도 일부를 포함하는 코드 정보 제공 방법.The worker information list includes at least part of branch information corresponding to the file, tag information corresponding to the branch information, and commit information corresponding to the file.
  7. 제6 항에 있어서,According to clause 6,
    상기 제1 작업자 정보 리스트에 대응하는 제2 작업자 입력이 획득되는 경우, 상기 제2 작업자 입력에 대응하는 파일 정보에 대한 코드 변경 정보를 제2 작업자 단말에 제공하는 코드 정보 제공 방법.When a second worker input corresponding to the first worker information list is obtained, a code information providing method for providing code change information for file information corresponding to the second worker input to a second worker terminal.
  8. 제1 항에 있어서,According to claim 1,
    상기 코드 컨플릭트 정보는 마스터 브랜치 정보로부터 파생된 브랜치 정보 리스트를 포함하는 코드 정보 제공 방법.A method of providing code information wherein the code conflict information includes a branch information list derived from master branch information.
  9. 제1 항에 있어서,According to claim 1,
    상기 컨플릭트 테스트를 위하여 상기 프로젝트 정보와 관련된 병합 조합을 확인하는 단계는 상기 적어도 두 개의 브랜치 정보 중 적어도 일부와 관련된 커밋(commit) 정보가 획득되는 경우 수행되는 코드 정보 제공 방법.The step of checking a merge combination related to the project information for the conflict test is performed when commit information related to at least some of the at least two branch information is obtained.
  10. 제1 항에 있어서,According to claim 1,
    상기 컨플릭트 테스트를 위하여 상기 프로젝트 정보와 관련된 병합 조합을 확인하는 단계는 상기 전자 장치의 관리자에 의하여 설정된 주기에 따라 수행되는 코드 정보 제공 방법.The step of checking a merge combination related to the project information for the conflict test is performed according to a cycle set by an administrator of the electronic device.
  11. 제1 항에 있어서,According to claim 1,
    상기 병합 조합은 상기 적어도 두 개의 브랜치 정보들 상호 간의 병합 조합, 제1 브랜치 정보와 관련된 적어도 두 개의 파일 정보들 상호 간의 병합 조합 및 제1 파일 정보에 포함되는 프로그램 코드에 대한 병합 조합 중 적어도 일부를 포함하는 코드 정보 제공 방법.The merge combination includes at least some of a merge combination between the at least two branch information, a merge combination between the at least two pieces of file information related to the first branch information, and a merge combination for the program code included in the first file information. How to provide code information, including:
  12. 하드웨어와 결합되어, 아이템 상세 정보 관련 이미지를 관리하기 위하여 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램에 있어서,A computer program coupled with hardware and stored on a computer-readable storage medium for managing images related to item details, comprising:
    적어도 하나의 작업자 단말로부터 프로젝트 정보를 획득하고,Obtain project information from at least one worker terminal,
    상기 적어도 하나의 작업자 단말로부터 상기 프로젝트 정보에 대응하는 적어도 두 개의 브랜치(branch) 정보들을 획득하고,Obtain at least two branch information corresponding to the project information from the at least one worker terminal,
    컨플릭트 테스트(conflict test)를 위하여 상기 적어도 두 개의 브랜치 정보의 조합을 기반으로 병합(merge) 조합을 확인하고,For a conflict test, the merge combination is confirmed based on the combination of the at least two branch information,
    상기 병합 조합에 대하여 상기 컨플릭트 테스트를 수행한 결과를 기반으로 코드 컨플릭트 정보를 상기 적어도 하나의 작업자 단말에 제공하는 컴퓨터 프로그램.A computer program that provides code conflict information to the at least one worker terminal based on a result of performing the conflict test on the merge combination.
  13. 코드 정보를 제공하는 전자 장치로서,An electronic device that provides code information, comprising:
    트랜시버, 명령어를 저장하는 메모리 및 프로세서를 포함하고,Includes a transceiver, memory for storing instructions, and a processor;
    상기 트랜시버 및 상기 메모리와 연결되는 상기 프로세서는, The processor connected to the transceiver and the memory,
    적어도 하나의 작업자 단말로부터 프로젝트 정보를 획득하고,Obtain project information from at least one worker terminal,
    상기 적어도 하나의 작업자 단말로부터 상기 프로젝트 정보에 대응하는 적어도 두 개의 브랜치(branch) 정보들을 획득하고,Obtain at least two branch information corresponding to the project information from the at least one worker terminal,
    컨플릭트 테스트(conflict test)를 위하여 상기 적어도 두 개의 브랜치 정보의 조합을 기반으로 병합(merge) 조합을 확인하고,For a conflict test, the merge combination is confirmed based on the combination of the at least two branch information,
    상기 병합 조합에 대하여 상기 컨플릭트 테스트를 수행한 결과를 기반으로 코드 컨플릭트 정보를 상기 적어도 하나의 작업자 단말에 제공하는 전자 장치.An electronic device that provides code conflict information to the at least one worker terminal based on a result of performing the conflict test on the merge combination.
PCT/KR2022/010049 2022-06-24 2022-07-11 Electronic device for providing code information and method thereof WO2023249156A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220077471A KR20240000809A (en) 2022-06-24 2022-06-24 Electronic apparatus and method for providing code information
KR10-2022-0077471 2022-06-24

Publications (1)

Publication Number Publication Date
WO2023249156A1 true WO2023249156A1 (en) 2023-12-28

Family

ID=89380168

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/010049 WO2023249156A1 (en) 2022-06-24 2022-07-11 Electronic device for providing code information and method thereof

Country Status (2)

Country Link
KR (1) KR20240000809A (en)
WO (1) WO2023249156A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130036400A1 (en) * 2011-08-02 2013-02-07 International Business Machines Corporation Pre-merge conflict avoidance
KR20130020135A (en) * 2011-08-19 2013-02-27 인크로스 주식회사 System and method of providing the developer list of developing code simultaneously in an integrated development environment
KR20160000761A (en) * 2014-06-25 2016-01-05 주식회사 포워드벤처스 Apparatus, system, method and readable recording medium of managing a project file
KR102305845B1 (en) * 2020-12-21 2021-09-29 쿠팡 주식회사 Electronic apparatus for verifying code and method thereof
KR20210147354A (en) * 2020-05-28 2021-12-07 삼성에스디에스 주식회사 Method and apparatus for automatic merging between source codes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130036400A1 (en) * 2011-08-02 2013-02-07 International Business Machines Corporation Pre-merge conflict avoidance
KR20130020135A (en) * 2011-08-19 2013-02-27 인크로스 주식회사 System and method of providing the developer list of developing code simultaneously in an integrated development environment
KR20160000761A (en) * 2014-06-25 2016-01-05 주식회사 포워드벤처스 Apparatus, system, method and readable recording medium of managing a project file
KR20210147354A (en) * 2020-05-28 2021-12-07 삼성에스디에스 주식회사 Method and apparatus for automatic merging between source codes
KR102305845B1 (en) * 2020-12-21 2021-09-29 쿠팡 주식회사 Electronic apparatus for verifying code and method thereof

Also Published As

Publication number Publication date
KR20240000809A (en) 2024-01-03

Similar Documents

Publication Publication Date Title
US8140905B2 (en) Incremental problem determination and resolution in cloud environments
FI106752B (en) A system for changing software while using your computer
US5717950A (en) Input/output device information management system for multi-computer system
US10346161B2 (en) Automatic detection of potential merge errors
WO2020134633A1 (en) Development method and device for application program, and integrated development tool
US20130007709A1 (en) Software configuration management
WO2016111525A1 (en) Source code transfer control method, computer program therefor, and recording medium therefor
CN113434158B (en) Custom management method, device, equipment and medium for big data component
US20230259358A1 (en) Documentation enforcement during compilation
WO2022181958A1 (en) Cloud migration data analysis method using system process information, and system therefor
WO2024090932A1 (en) Data loading profiling apparatus and method for automatically processing collected data
WO2014185627A1 (en) Data processing system security device and security method
WO2023249156A1 (en) Electronic device for providing code information and method thereof
WO2009116748A2 (en) Reserved component container-based software development method and apparatus
WO2019074155A1 (en) Inter-database real time integrated replication system
WO2022145572A1 (en) Method for providing information based on predicted result value, and computing device using same
WO2024038944A1 (en) Method and device for uploading source code
WO2023219194A1 (en) Service platform system for generating workflow and method for generating workflow
WO2023085738A1 (en) Ai model serving system and method
WO2023234449A1 (en) Electronic device for providing delivery-work-related information, and method therefor
WO2024038939A1 (en) Method and apparatus for managing artificial intelligence model related to service
EP4102357A1 (en) Development environment organizer with enhanced state switching and sharing
WO2024005246A1 (en) Electronic device for providing code verification information, and method therefor
WO2023200059A1 (en) ‌method for providing design recommendation and final proposal for product to be marketed and apparatus for therefor
WO2022169007A1 (en) User interface management system for automotive open system architecture configuration tool, and method therefor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22948090

Country of ref document: EP

Kind code of ref document: A1