KR20180061589A - Software build system and software build method using the system - Google Patents

Software build system and software build method using the system Download PDF

Info

Publication number
KR20180061589A
KR20180061589A KR1020160160926A KR20160160926A KR20180061589A KR 20180061589 A KR20180061589 A KR 20180061589A KR 1020160160926 A KR1020160160926 A KR 1020160160926A KR 20160160926 A KR20160160926 A KR 20160160926A KR 20180061589 A KR20180061589 A KR 20180061589A
Authority
KR
South Korea
Prior art keywords
source
user terminal
build
changed
automation server
Prior art date
Application number
KR1020160160926A
Other languages
Korean (ko)
Inventor
김도형
김강호
Original Assignee
주식회사 플루이딕
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 플루이딕 filed Critical 주식회사 플루이딕
Priority to KR1020160160926A priority Critical patent/KR20180061589A/en
Publication of KR20180061589A publication Critical patent/KR20180061589A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

Disclosed are a software build system capable of smoothly performing a source test in a developer terminal with high reliability, and a software build method using the software build system. The software build system includes at least one user terminal, a source storage device, and a build automation server. The user terminal generates a changed source. The source storage device receives the changed source from the user terminal and stores the received source. The build automation server builds and tests the source received from the source storage device. At this time, the user terminal transmits the changed source to the build automation server before transmitting the changed source to the source storage device. The build automation server builds and tests the changed source received from the user terminal, and transmits a test result to the user terminal. Accordingly, the user terminal transmits the changed source to the build automation server before transmitting the changed source to the source storage device to allow the build automation server to test the changed source, so that the source test is smoothly performed in the developer terminal with high reliability.

Description

소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법{SOFTWARE BUILD SYSTEM AND SOFTWARE BUILD METHOD USING THE SYSTEM}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a software building system,

본 발명은 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법에 관한 것으로, 개발자가 작성한 원본 소스를 빌드하여 실행 소스를 생성할 수 있는 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법에 관한 것이다.The present invention relates to a software build system and a software build method using the software build system, and more particularly, to a software build system capable of building an original source created by a developer to generate an execution source and a software build method using the software build system.

소프트웨어 개발자가 특정 프로그램 언어의 문법에 맞춰 작성하여 소프트웨어 원본 소스를 완성하면, 이후 상기 원본 소스를 해당 소프트웨어가 동작되는 실제 구동 환경에서 동작되는 실행 소스로 변경할 필요가 있다. 이와 같이, 상기 원본 소스를 상기 실행 소스로 변경되는 것을 소프트웨어 빌드(software build)라고 한다.When a software developer completes a software original source by writing it in accordance with a grammar of a specific programming language, the original source needs to be changed to an execution source that operates in an actual operating environment in which the software is operated. Thus, changing the original source to the execution source is called software build.

소프트웨어 개발은 개발하고자 하는 소프트웨어가 단순한 기능을 가질 경우, 한 두 사람의 개발자에 의해 이루어질 수 있다. 그러나, 개발하고자 하는 소프트웨어가 방대하고 다양한 기능을 가질 경우에는, 복수의 개발자들이 각 기능별 또는 각 분야별로 소스를 작성할 수밖에 없다. 따라서, 이러한 복수의 개발자들에 의한 소프트웨어의 개발은 각 개발자가 개발한 소스들을 합성한 이후, 소프트웨어 빌드가 이루어질 수 있다.Software development can be done by one or two developers if the software they want to develop has simple functionality. However, if the software to be developed has a wide variety of functions, it is inevitable for a plurality of developers to create a source for each function or each field. Therefore, software development by the plurality of developers can be performed after synthesizing the sources developed by each developer.

또한, 이미 개발한 소프트웨어는 기존 소스의 일부 내용이 변경될 수도 있다. 이와 같이, 기존 소스의 일부 내용이 변경될 경우, 변경된 내용을 포함하는 전체 소스로 다시 소프트웨어 빌드를 수행하여야 한다.In addition, software already developed may change some of the contents of existing sources. In this way, when some contents of an existing source are changed, software building should be performed again with the entire source including the changed contents.

한편, 종래의 소프트웨어 빌드 과정, 특히 기존 소스의 일부 내용을 변경하는 경우에 있어서의 소프트웨어 빌드 과정은 다음과 같은 단계로 이루어진다.Meanwhile, the conventional software building process, in particular, the software building process in the case of changing some contents of the existing source, is as follows.

우선, 어느 한 개발자가 자신의 개발 PC를 이용하여 소스를 변경하게 되면, 상기 변경된 소스를 상기 개발 PC에서 소스 저장소로 전송한다. 상기 소스 저장소는 상기 개발 PC에서 전송받은 소스를 이용하여 기 저장된 원본 소스를 변경시킨 후, 다시 CI(Continuos Integration) 서버로 전송한다. 상기 CI 서버는 상기 소스 저장소에서 변경된 원본 소스를 배포 환경에서 동작될 실행 소스로 빌드한 후, 상기 실행 소스를 테스트한다. 상기 실행 소스의 테스트 결과, 문제가 없다고 판단되면, 상기 CI 서버는 상기 실행 소스를 상기 배포 환경, 즉 배포 서버로 전송하여 실행시킬 수 있다.First, when a developer changes a source using his / her development PC, the changed source is transferred from the development PC to the source repository. The source repository changes the pre-stored original source using the source received from the development PC, and then transmits the original source to the CI (Continuos Integration) server. The CI server builds the original source changed in the source repository into an execution source to be operated in the distribution environment, and then tests the execution source. If it is determined that there is no problem in the test result of the execution source, the CI server can transfer the execution source to the distribution environment, that is, the distribution server and execute the execution source.

여기서, 해당 개발자가 상기 변경된 소스를 상기 소스 저장소로 전송되기 전에, 상기 개발 PC에 가상 환경을 세팅한 후 상기 변경된 소스를 테스트하여 동작 여부를 확인할 수 있다. 즉, 해당 개발자가 상기 개발 PC를 통해 소스를 변경하면, 상기 개발 PC에서 상기 배포 환경과 유사한 가상 환경을 세팅한 후, 상기 세팅된 가상 환경에서 상기 변경된 소스를 테스트하고, 테스트 결과 제대로 동작된다고 확인하면, 상기 변경된 소스를 상기 개발 PC에서 소스 저장소로 전송하게 된다.Here, the developer may set the virtual environment in the development PC before the changed source is transmitted to the source repository, and then test the changed source to check whether the changed source is operational. That is, if the developer changes the source through the development PC, the development PC sets a virtual environment similar to the distribution environment, and then tests the changed source in the set virtual environment. Then, The changed source is transmitted from the development PC to the source repository.

그러나, 상기 개발 PC에서 상기 배포 환경과 유사한 가상 환경을 세팅하는 것이 쉽지 않을 수 있다. 그리고, 상기 개발 PC에 세팅된 가상 환경은 상기 배포 환경과 완전히 동일하지 않을 수 있어, 테스트의 신뢰성이 떨어질 수 있다. 또한, 상기 개발 PC에서 세팅하거나 테스트할 경우, 상기 개발 PC의 구동이 느려질 수 있다.However, it may not be easy to set up a virtual environment similar to the distribution environment in the development PC. In addition, the virtual environment set in the development PC may not be completely the same as the distribution environment, and the reliability of the test may be deteriorated. In addition, when the setting or testing is performed in the development PC, the development PC may be slow to operate.

따라서, 본 발명은 이러한 문제점을 해결하기 위한 것으로, 본 발명의 해결하고자 하는 과제는 개발자 단말기에서의 소스 테스트를 신뢰성이 높으면서 원활하게 수행할 수 있는 소프트웨어 빌드 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION Accordingly, the present invention has been made to solve the above problems, and it is an object of the present invention to provide a software build system capable of performing a source test in a developer terminal with high reliability and smoothness.

또한, 본 발명의 해결하고자 하는 다른 과제는 상기 소프트웨어 빌드 시스템을 이용한 소프트웨어 빌드 방법을 제공하는 것이다.It is another object of the present invention to provide a software building method using the software build system.

본 발명의 일 실시예에 의한 소프트웨어 빌드 시스템은 적어도 하나의 사용자 단말기, 소스 저장 장치 및 빌드 자동화 서버를 포함한다.A software build system according to an embodiment of the present invention includes at least one user terminal, a source storage device, and a build automation server.

상기 사용자 단말기는 변경된 소스를 생성한다. 상기 소스 저장 장치는 상기 사용자 단말기로부터 상기 변경된 소스를 전송받아 저장한다. 상기 빌드 자동화 서버는 상기 소스 저장 장치로부터 전송받은 소스를 빌드(bulid) 및 테스트한다. 이때, 상기 사용자 단말기는 상기 변경된 소스를 상기 소스 저장 장치로 전송하기 전에, 상기 빌드 자동화 서버로 전송한다. 상기 빌드 자동화 서버는 상기 사용자 단말기로부터 전송받은 상기 변경된 소스를 빌드 및 테스트하고, 테스트 결과를 상기 사용자 단말기로 전송한다.The user terminal generates a changed source. The source storage device receives and stores the changed source from the user terminal. The build automation server builds and tests the source received from the source storage device. At this time, the user terminal transmits the modified source to the build automation server before transmitting the changed source to the source storage device. The build automation server builds and tests the changed source received from the user terminal, and transmits the test result to the user terminal.

상기 빌드 자동화 서버는 상기 소스 저장 장치로부터 전송받은 소스를 빌드 및 테스트하여 실행 소스를 생성한 후, 상기 실행 소스를 적어도 하나의 배포 장치로 전송할 수 있다.The build automation server may build and test a source received from the source storage device to generate an execution source, and then transmit the execution source to at least one distribution device.

이어서, 본 발명의 일 실시예에 의한 소프트웨어 빌드 방법은 임의의 사용자 단말기가 변경된 소스를 생성한 후 빌드 자동화 서버로 전송하는 단계, 상기 빌드 자동화 서버가 상기 변경된 소스를 빌드(bulid) 및 테스트한 후 테스트 결과를 상기 사용자 단말기로 전송하는 단계, 상기 사용자 단말기가 상기 테스트 결과를 전송받은 후 상기 변경된 소스를 소스 저장 장치로 전송하는 단계, 상기 소스 저장 장치가 상기 변경된 소스를 저장한 후 저장된 소스를 상기 빌드 자동화 서버로 전송하는 단계, 및 상기 빌드 자동화 서버가 상기 저장된 소스를 빌드 및 테스트하는 단계를 포함한다.Next, a software building method according to an embodiment of the present invention includes: generating a changed source by a user terminal and transmitting the generated source to a build automation server; after the build automation server bulid and test the changed source Transmitting the test result to the user terminal, transmitting the changed source to the source storage device after the user terminal receives the test result, storing the changed source in the source storage device, To a build automation server, and the build automation server builds and tests the stored source.

상기 사용자 단말기가 상기 변경된 소스를 상기 소스 저장 장치로 전송하는 단계에서는, 상기 테스트 결과가 통과(pass)인 경우, 상기 사용자 단말기가 상기 변경된 소스를 소스 저장 장치로 전송할 수 있다.When the user terminal transmits the changed source to the source storage device, the user terminal may transmit the changed source to the source storage device when the test result is pass.

상기 빌드 자동화 서버가 상기 저장된 소스를 빌드 및 테스트하는 단계에서는, 상기 저장된 소스를 빌드 및 테스트하여 실행 소스를 생성한 후, 상기 실행 소스를 적어도 하나의 배포 장치로 전송할 수 있다.In the step of building and testing the stored source by the build automation server, the stored source may be built and tested to generate an execution source, and then the execution source may be transmitted to at least one distribution apparatus.

이와 같이 본 발명에 의한 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법에 따르면, 사용자 단말기가 변경된 소스를 생성한 후 소스 저장 장치로 전송하기 전에, 빌드 자동화 서버로 전송하면, 상기 빌드 자동화 서버가 상기 변경된 소스를 빌드 및 테스트하여, 테스트 결과를 상기 사용자 단말기로 전송함에 따라, 상기 사용자 단말기는 상기 변경된 소스의 테스트를 높은 신뢰성으로 원활하게 수행할 수 있다. 즉, 상기 변경된 소스가 상기 빌드 자동화 서버에서 테스트됨에 따라 신뢰성이 높아질 수 있고, 상기 사용자 단말기에서 테스트를 위한 세팅이 불필요함에 따라 상기 사용자 단말기의 중앙 처리 장치에서의 부하가 감소될 수 있다.As described above, according to the software build system and the software build method using the software build system according to the present invention, when the user terminal generates the changed source and transmits the changed source to the build automation server before transferring the changed source to the source storage device, And transmits the test result to the user terminal, the user terminal can smoothly perform the test of the changed source with high reliability. That is, reliability can be improved by testing the modified source in the build automation server, and the load on the central processing unit of the user terminal can be reduced as the setting for the test in the user terminal is unnecessary.

도 1은 본 발명의 일 실시예에 의한 소프트웨어 빌드 시스템을 나타낸 블록도이다.
도 2는 도 1의 소프트웨어 빌드 시스템에 의해 수행되는 소프트웨어 빌드 방법 중 사용자 단말기가 소스를 변경한 후 전송하는 과정을 설명하기 위한 블록도이다.
도 3은 도 2의 소프트웨어 빌드 방법 중 빌드 자동화 서버가 빌드 및 테스트하여 테스트 결과를 전송하는 과정을 설명하기 위한 블록도이다.
도 4는 도 2의 소프트웨어 빌드 방법 중 사용자 단말기가 변경된 소스를 소스 저장 장치로 전송하는 과정을 설명하기 위한 블록도이다.
도 5는 도 2의 소프트웨어 빌드 방법 중 소스 저장 장치가 변경된 소스를 저장 및 전송하는 과정을 설명하기 위한 블록도이다.
도 6은 도 2의 소프트웨어 빌드 방법 중 빌드 자동화 서버가 소스를 빌드 및 테스트화여 배포하는 과정을 설명하기 위한 블록도이다.
1 is a block diagram illustrating a software build system according to an embodiment of the present invention.
FIG. 2 is a block diagram for explaining a process of a software building method performed by the software build system of FIG. 1, after a user terminal changes a source and then transmits the software.
3 is a block diagram illustrating a process of building and testing a build automation server among the software build methods of FIG. 2 and transmitting a test result.
FIG. 4 is a block diagram illustrating a process of transmitting a changed source to a source storage device in a software building method of FIG. 2. FIG.
FIG. 5 is a block diagram for explaining a process of storing and transmitting a source in which a source storage device is changed in the software building method of FIG. 2. FIG.
6 is a block diagram illustrating a process of building and testing a source of a build automation server among the software build methods of FIG.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다.The present invention is capable of various modifications and various forms, and specific embodiments are illustrated in the drawings and described in detail in the text.

그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.It should be understood, however, that the invention is not intended to be limited to the particular forms disclosed, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. The terms first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

본 출원에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprising" or "having ", and the like, are intended to specify the presence of stated features, integers, steps, operations, elements, parts, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, parts, or combinations thereof.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings.

도 1은 본 발명의 일 실시예에 의한 소프트웨어 빌드 시스템을 나타낸 블록도이다.1 is a block diagram illustrating a software build system according to an embodiment of the present invention.

도 1을 참조하면, 본 실시예에 의한 소프트웨어 빌드 시스템은 적어도 하나의 사용자 단말기(100), 소스 저장 장치(200) 및 빌드 자동화 서버(400)를 포함한다.Referring to FIG. 1, a software build system according to the present embodiment includes at least one user terminal 100, a source storage device 200, and a build automation server 400.

상기 사용자 단말기(100)는 임의의 개발자에 의해 소프트웨어 개발하기 위한 장치로써, 예를 들어 데스크탑 컴퓨터, 노트북 컴퓨터, 테블릿 PC 등일 수 있다. 상기 소프트웨어의 개발이 복수의 개발자들에 의해 수행될 경우, 상기 사용자 단말기(100)도 복수개로 존재할 수 있다.The user terminal 100 may be a desktop computer, a notebook computer, a tablet PC, or the like as an apparatus for software development by any developer. When the development of the software is performed by a plurality of developers, a plurality of the user terminals 100 may exist.

상기 소스 저장 장치(200)는 상기 사용자 단말기(100)과 유무선 네트워크, 예를 들어 인터넷을 통해 연결되어 신호를 주고받을 수 있다. 상기 소스 저장 장치(200)는 상기 사용자 단말기(100)로부터 소스를 제공받으면 이를 저장하거나, 기 저장된 소스를 변경하여 저장시킬 수 있다.The source storage device 200 is connected to the user terminal 100 through a wired / wireless network, for example, the Internet, and can exchange signals. When receiving the source from the user terminal 100, the source storage device 200 may store the source or change the stored source.

예를 들어, 상기 소스 저장 장치(200)는 분산 버전 관리 툴인 깃(Git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스인 깃허브(GitHub)를 포함할 수 있다. 즉, 상기 소스 저장 장치(200)는 소프트웨어 개발을 위한 프로젝트를 진행 할 때, 복수의 개발자들이 동시에 소스를 수정하는 경우, 수정된 소스가 각각 다른 버젼일 때 문제가 생긴다거나, 이전에는 잘 돌아가던 소스트웨어가 여러 차례 소스 수정으로 프로그램이 안 돌아갈 경우 이전 버젼으로 돌린다거나, 그런 경우를 대비해서 유용하게 사용할 수 있도록 만들어진 시스템일 수 있다.For example, the source storage device 200 may include GitHub, a web hosting service supporting a project using a distributed version management tool Git. That is, when the project for software development is performed by the source storage device 200, when a plurality of developers simultaneously modify the source, a problem occurs when the modified source is a different version, It may be a system that has been modified so that it can be used in a way that is useful for its use in cases where the source software has been modified by the source several times and the program is not running.

상기 빌드 자동화 서버(300)는 상기 소스 저장 장치(200)와 직접 연결되어 신호를 주고받거나, 유무선 네트워크, 예를 들어 인터넷을 통해 신호를 주고받을 수 있다. 예를 들어, 상기 빌드 자동화 서버(300)는 클라우드(cloud) 기반 서버일 수 있다. 상기 빌드 자동화 서버(300)는 상기 소스 저장 장치(200)로부터 상기 소스 저장 장치(200)에 저장된 소스를 전송받고, 전송받은 소스를 빌드(bulid) 및 테스트한 후, 테스트 결과 문제가 없다고 판단되면 빌드된 소스를 하나 또는 복수의 배포 장치(400)로 구성된 배포 환경으로 전송시킬 수 있다. 이때, 상기 배포 장치(400)는, 서버 컴퓨터 또는 데스크탑 컴퓨터, 노트북 컴퓨터, 테블릿 PC, 스마트폰 등과 같은 개인용 단말기일 수 있다.The build automation server 300 may be directly connected to the source storage device 200 to exchange signals, or may exchange signals through a wire / wireless network, for example, the Internet. For example, the build automation server 300 may be a cloud based server. The build automation server 300 receives the source stored in the source storage device 200 from the source storage device 200, and builds and tests the received source, and if it is determined that there is no problem with the test result It is possible to transmit the built source to a distribution environment composed of one or a plurality of distribution apparatuses 400. At this time, the distribution device 400 may be a personal computer such as a server computer or a desktop computer, a notebook computer, a tablet PC, a smart phone, or the like.

한편, 상기 빌드 자동화 서버(300)는 복수의 운영체제, 예를 들어 윈도우즈(Windows), 리눅스(Linux), 아이오에스(iOS), 안드로이드(Android) 등에서 제대로 동작되는지 테스트할 수 있다.Meanwhile, the build automation server 300 can test whether it operates properly in a plurality of operating systems, for example, Windows, Linux, iOS, and Android.

또한, 상기 빌드 자동화 서버(300)는 CI(Continuos Integration) 서버일 수 있다. 그에 따라, 상기 빌드 자동화 서버(300)는 상기 소스 저장 장치(200)에 저장되어 있는 소스를 지속적으로 통합하고 검증함으로써 최신 소스가 항상 건강한 상태인지 확인할 수 있고, 통합 주기를 짧게 가져감으로써 오류 발생시 원인 파악을 신속하게 할 수 있다.Also, the build automation server 300 may be a Continuos Integration (CI) server. Accordingly, the build automation server 300 can consistently integrate and verify the sources stored in the source storage device 200, thereby checking whether the latest source is always in a healthy state, and by shortening the integration cycle, The cause can be quickly identified.

이하, 위에서 서술된 소프트웨어 빌드 시스템에 수행되는 소프트웨어 빌드 방법에 대하여 상세하게 설명하고자 한다.Hereinafter, a software building method performed in the software build system described above will be described in detail.

도 2는 도 1의 소프트웨어 빌드 시스템에 의해 수행되는 소프트웨어 빌드 방법 중 사용자 단말기가 소스를 변경한 후 전송하는 과정을 설명하기 위한 블록도이다.FIG. 2 is a block diagram for explaining a process of a software building method performed by the software build system of FIG. 1, after a user terminal changes a source and then transmits the software.

도 2를 참조하면, 상기 사용자 단말기(100)는 변경된 소스를 생성시킨다(S10). 즉, 임의의 개발자가 상기 사용자 단말기(100)를 통해 소프트웨어 개발을 위한 코딩을 수행하여, 새로운 소스 전체를 생성하거나, 기존에 생성되어 있는 전체 소스에서 일부 내용을 수정 또는 추가할 수 있다. 한편, 상기 사용자 단말기(100)는 상기 전체 소스를 자체적으로 저장하고 있거나, 상기 소스 저장 장치(200)에 저장되어 있는 최신 버전의 소스를 전송받아 저장할 수도 있다.Referring to FIG. 2, the user terminal 100 generates a changed source (S10). That is, an arbitrary developer can perform coding for software development through the user terminal 100 to generate a whole new source, or modify or add some contents from the entire source that has been created. Meanwhile, the user terminal 100 may store the entire source, or may receive and store the latest version of the source stored in the source storage device 200.

이어서, 상기 사용자 단말기(100)는 상기 변경된 소스를 상기 빌드 자동화 서버(300)로 전송시킨다(S20). 예를 들어, 상기 사용자 단말기(100)는 인터넷을 통해 상기 빌드 자동화 서버(300)로 전송시킬 수 있다.Then, the user terminal 100 transmits the changed source to the build automation server 300 (S20). For example, the user terminal 100 may be transmitted to the build automation server 300 via the Internet.

도 3은 도 2의 소프트웨어 빌드 방법 중 빌드 자동화 서버가 빌드 및 테스트하여 테스트 결과를 전송하는 과정을 설명하기 위한 블록도이다.3 is a block diagram illustrating a process of building and testing a build automation server among the software build methods of FIG. 2 and transmitting a test result.

도 3을 참조하면, 상기 빌드 자동화 서버(300)는 상기 사용자 단말기(100)로부터 전송받은 상기 변경된 소스를 빌드한 후, 상기 배포 환경에서 제대로 동작될 수 있는지 여부를 테스트한다(S30).Referring to FIG. 3, the build automation server 300 builds the changed source received from the user terminal 100, and then tests whether it can operate properly in the distribution environment (S30).

이어서, 상기 빌드 자동화 서버(300)는 상기 변경된 소스의 테스트 결과를 상기 사용자 단말기로 전송한다(S40).Then, the build automation server 300 transmits the test result of the changed source to the user terminal (S40).

도 4는 도 2의 소프트웨어 빌드 방법 중 사용자 단말기가 변경된 소스를 소스 저장 장치로 전송하는 과정을 설명하기 위한 블록도이다.FIG. 4 is a block diagram illustrating a process of transmitting a changed source to a source storage device in a software building method of FIG. 2. FIG.

도 4를 참조하면, 상기 사용자 단말기(100)는 상기 빌드 자동화 서버(300)로부터 전송된 상기 테스트 결과를 확인한다(S50). 이때, 상기 사용자 단말기(100)는 개발자가 확인 가능하도록 상기 테스트 결과를 외부로 표시시킬 수 있다.Referring to FIG. 4, the user terminal 100 checks the test result transmitted from the build automation server 300 (S50). At this time, the user terminal 100 may externally display the test result so that the developer can check it.

이어서, 상기 테스트 결과가 통과(pass)라고 확인되면, 상기 사용자 단말기(100)는 상기 변경된 소스를 상기 소스 저장 장치(200)로 전송한다(S60). 반면, 상기 테스트 결과가 실패(fail)라고 확인되면, 상기 S10 내지 S50 단계들이 수행될 수 있다.Then, if it is determined that the test result is a pass, the user terminal 100 transmits the changed source to the source storage device 200 (S60). On the other hand, if it is determined that the test result is a failure, steps S10 to S50 may be performed.

도 5는 도 2의 소프트웨어 빌드 방법 중 소스 저장 장치가 변경된 소스를 저장 및 전송하는 과정을 설명하기 위한 블록도이다.FIG. 5 is a block diagram for explaining a process of storing and transmitting a source in which a source storage device is changed in the software building method of FIG. 2. FIG.

도 5를 참조하면, 상기 소스 저장 장치(200)는 상기 사용자 단말기(100)로부터 전송된 상기 변경된 소스를 저장한다(S70). 예를 들어, 상기 소스 저장 장치(200)는 상기 변경된 소스를 새롭게 저장하거나, 기 저장된 소스를 변경하여 저장시킬 수 있다.Referring to FIG. 5, the source storage device 200 stores the changed source transmitted from the user terminal 100 (S70). For example, the source storage device 200 may newly store the changed source, or may change and store the previously stored source.

이어서, 상기 소스 저장 장치(200)는 저장된 소스를 상기 빌드 자동화 서버(300)로 전송한다(S80). 예를 들어, 상기 소스 저장 장치(200)는 소스가 변경되어 저장될 때, 상기 저장된 소스를 상기 빌드 자동화 서버(300)로 전송하거나, 상기 저장된 소스를 일정 시점마다 상기 빌드 자동화 서버(300)로 전송할 수 있다.Then, the source storage device 200 transmits the stored source to the build automation server 300 (S80). For example, when the source is changed and stored, the source storage device 200 transmits the stored source to the build automation server 300, or transmits the stored source to the build automation server 300 Lt; / RTI >

도 6은 도 2의 소프트웨어 빌드 방법 중 빌드 자동화 서버가 소스를 빌드 및 테스트화여 배포하는 과정을 설명하기 위한 블록도이다.6 is a block diagram illustrating a process of building and testing a source of a build automation server among the software build methods of FIG.

도 6을 참조하면, 상기 빌드 자동화 서버(300)는 상기 소스 저장 장치(200)로부터 전송된 상기 저장된 소스를 빌드 및 테스트한다(S90). 예를 들어, 상기 빌드 자동화 서버(300)는 복수의 운영체제, 예를 들어 윈도우즈(Windows), 리눅스(Linux), 아이오에스(iOS), 안드로이드(Android) 등에서 제대로 동작되는지 테스트할 수 있다.Referring to FIG. 6, the build automation server 300 builds and tests the stored source transmitted from the source storage device 200 (S90). For example, the build automation server 300 can test whether it operates properly in a plurality of operating systems, for example, Windows, Linux, iOS, and Android.

이어서, 상기 빌드 자동화 서버(300)는 상기 빌드된 소스의 테스트 결과가 통과(pass), 즉 문제가 없다고 판단하면, 상기 빌드된 소스를 상기 배포 장치(400)로 전송한다(S100).When the build automation server 300 determines that the test result of the built source is a pass, that is, there is no problem, the build automation server 300 transmits the built source to the distribution apparatus 400 (S100).

이와 같이 본 실시예에 따르면, 상기 사용자 단말기(100)가 상기 변경된 소스를 생성한 후 상기 소스 저장 장치(200)로 전송하기 전에, 상기 빌드 자동화 서버(300)로 전송하면, 상기 빌드 자동화 서버(300)가 상기 변경된 소스를 빌드 및 테스트하여, 테스트 결과를 상기 사용자 단말기(100)로 전송함에 따라, 상기 사용자 단말기(100)는 상기 변경된 소스의 테스트를 높은 신뢰성으로 원활하게 수행할 수 있다. 즉, 상기 변경된 소스가 상기 빌드 자동화 서버(300)에서 테스트됨에 따라 신뢰성이 높아질 수 있고, 상기 사용자 단말기(100)에서 테스트를 위한 세팅이 불필요함에 따라 상기 사용자 단말기(100)의 중앙 처리 장치에서의 부하가 감소될 수 있다.As described above, according to the present embodiment, when the user terminal 100 generates the changed source and then transmits it to the build automation server 300 before transferring the changed source to the source storage device 200, 300 builds and tests the changed source, and transmits the test result to the user terminal 100, the user terminal 100 can smoothly perform the test of the changed source with high reliability. That is, reliability can be improved as the modified source is tested in the build automation server 300, and as the setting for the test is not required in the user terminal 100, The load can be reduced.

앞서 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시예들을 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술될 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.While the present invention has been described in connection with what is presently considered to be practical and exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.

100 : 사용자 단말기 200 : 소스 저장 장치
300 : 빌드 자동화 서버 400 : 배포 장치
100: user terminal 200: source storage device
300: Build Automation Server 400: Deployment Device

Claims (4)

변경된 소스를 생성하는 적어도 하나의 사용자 단말기;
상기 사용자 단말기로부터 상기 변경된 소스를 전송받아 저장하는 소스 저장 장치; 및
상기 소스 저장 장치로부터 전송받은 소스를 빌드(bulid) 및 테스트하는 빌드 자동화 서버를 포함하고,
상기 사용자 단말기는
상기 변경된 소스를 상기 소스 저장 장치로 전송하기 전에, 상기 빌드 자동화 서버로 전송하고,
상기 빌드 자동화 서버는
상기 사용자 단말기로부터 전송받은 상기 변경된 소스를 빌드 및 테스트하고, 테스트 결과를 상기 사용자 단말기로 전송하는 것을 특징으로 하는 소프트웨어 빌드 시스템.
At least one user terminal for generating a modified source;
A source storage for receiving and storing the changed source from the user terminal; And
And a build automation server that bulid and test a source received from the source storage device,
The user terminal
And transmitting the modified source to the build automation server before transmitting the modified source to the source storage device,
The build automation server
Builds and tests the changed source received from the user terminal, and transmits the test result to the user terminal.
제1항에 있어서, 상기 빌드 자동화 서버는
상기 소스 저장 장치로부터 전송받은 소스를 빌드 및 테스트하여 실행 소스를 생성한 후, 상기 실행 소스를 적어도 하나의 배포 장치로 전송하는 것을 특징으로 하는 소프트웨어 빌드 시스템.
The system of claim 1, wherein the build automation server
Wherein the source is configured to generate and test a source received from the source storage device to generate an execution source, and then transmit the execution source to at least one distribution device.
임의의 사용자 단말기가 변경된 소스를 생성한 후 빌드 자동화 서버로 전송하는 단계;
상기 빌드 자동화 서버가 상기 변경된 소스를 빌드(bulid) 및 테스트한 후, 테스트 결과를 상기 사용자 단말기로 전송하는 단계;
상기 사용자 단말기가 상기 테스트 결과를 전송받은 후, 상기 변경된 소스를 소스 저장 장치로 전송하는 단계;
상기 소스 저장 장치가 상기 변경된 소스를 저장한 후, 저장된 소스를 상기 빌드 자동화 서버로 전송하는 단계; 및
상기 빌드 자동화 서버가 상기 저장된 소스를 빌드 및 테스트하는 단계를 포함하는 소프트웨어 빌드 방법.
Generating a changed source by the arbitrary user terminal and transmitting the changed source to the build automation server;
Transmitting the test result to the user terminal after the build automation server bulid and test the changed source;
Transmitting the changed source to the source storage device after the user terminal receives the test result;
Transmitting the stored source to the build automation server after the source storage device stores the modified source; And
And the build automation server building and testing the stored source.
제3항에 있어서, 상기 빌드 자동화 서버가 상기 저장된 소스를 빌드 및 테스트하는 단계에서는,
상기 저장된 소스를 빌드 및 테스트하여 실행 소스를 생성한 후, 상기 실행 소스를 적어도 하나의 배포 장치로 전송하는 것을 특징으로 하는 소프트웨어 빌드 방법.
4. The method of claim 3, wherein the build automation server builds and tests the stored source,
Build and test the stored source to generate an execution source, and then send the execution source to at least one distribution device.
KR1020160160926A 2016-11-30 2016-11-30 Software build system and software build method using the system KR20180061589A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160160926A KR20180061589A (en) 2016-11-30 2016-11-30 Software build system and software build method using the system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160160926A KR20180061589A (en) 2016-11-30 2016-11-30 Software build system and software build method using the system

Publications (1)

Publication Number Publication Date
KR20180061589A true KR20180061589A (en) 2018-06-08

Family

ID=62600461

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160160926A KR20180061589A (en) 2016-11-30 2016-11-30 Software build system and software build method using the system

Country Status (1)

Country Link
KR (1) KR20180061589A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102109461B1 (en) * 2020-02-17 2020-05-12 주식회사 제이윈파트너스 Project Automation Assistance System with Micro Service Architecture
KR102138108B1 (en) 2020-01-17 2020-07-27 김경준 Fruit collection device
WO2021195363A1 (en) * 2020-03-25 2021-09-30 Schlumberger Technology Corporation System and method for automated image reviewing
KR102375838B1 (en) 2021-05-20 2022-03-16 김경준 Fruit collection device
KR20220067384A (en) * 2020-11-17 2022-05-24 전북대학교산학협력단 Operating Method of Execution Environment for reuse of software and computing device supporting the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150124530A (en) * 2014-04-28 2015-11-06 주식회사 다빈치소프트웨어연구소 Application build system, control method thereof, and recording medium for recording program for executing the control method
JP2015197902A (en) * 2014-04-03 2015-11-09 日本電信電話株式会社 Online build system, online build method, and online build program
KR20160000760A (en) * 2014-06-25 2016-01-05 주식회사 포워드벤처스 Apparatus, system, method and readable recording medium of releasing a build file
KR20160000761A (en) * 2014-06-25 2016-01-05 주식회사 포워드벤처스 Apparatus, system, method and readable recording medium of managing a project file

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015197902A (en) * 2014-04-03 2015-11-09 日本電信電話株式会社 Online build system, online build method, and online build program
KR20150124530A (en) * 2014-04-28 2015-11-06 주식회사 다빈치소프트웨어연구소 Application build system, control method thereof, and recording medium for recording program for executing the control method
KR20160000760A (en) * 2014-06-25 2016-01-05 주식회사 포워드벤처스 Apparatus, system, method and readable recording medium of releasing a build file
KR20160000761A (en) * 2014-06-25 2016-01-05 주식회사 포워드벤처스 Apparatus, system, method and readable recording medium of managing a project file

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Pawel Zubkiewicz, "TeamCity : pre-tested commit"(2009.06.01.) *
Pawel Zubkiewicz, "TeamCity : pre-tested commit"(2009.06.01.) 1부. *
Saurabh, "What is Jenkins"(2016.11.07.) *
Saurabh, "What is Jenkins"(2016.11.07.) 1부. *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102138108B1 (en) 2020-01-17 2020-07-27 김경준 Fruit collection device
KR102109461B1 (en) * 2020-02-17 2020-05-12 주식회사 제이윈파트너스 Project Automation Assistance System with Micro Service Architecture
WO2021195363A1 (en) * 2020-03-25 2021-09-30 Schlumberger Technology Corporation System and method for automated image reviewing
KR20220067384A (en) * 2020-11-17 2022-05-24 전북대학교산학협력단 Operating Method of Execution Environment for reuse of software and computing device supporting the same
KR102375838B1 (en) 2021-05-20 2022-03-16 김경준 Fruit collection device

Similar Documents

Publication Publication Date Title
CN105302710B (en) The method and apparatus that a kind of determination needs the test case of regression test
CN109656538B (en) Application program generation method, device, system, equipment and medium
KR20180061589A (en) Software build system and software build method using the system
CN108345531B (en) Test method, device and system
US10430172B2 (en) Re-configuration in cloud computing environments
CN108563579B (en) White box testing method, device and system and storage medium
US10169203B2 (en) Test simulation for software defined networking environments
US10754869B2 (en) Managing data format of data received from devices in an internet of things network
CN110647332A (en) Software deployment method and device based on container cloud
WO2020211360A1 (en) Mock test method and system, electronic device, and computer non-volatile readable storage medium
CN109901985B (en) Distributed test apparatus and method, storage medium, and electronic device
KR101977401B1 (en) Commucation device providing dynamic modbus protocol mapping
CN110674047A (en) Software testing method and device and electronic equipment
CN113986270B (en) Distributed application deployment method and device, storage medium and electronic equipment
US20150082287A1 (en) Scenario based test design
CN113778897A (en) Automatic test method, device, equipment and storage medium of interface
WO2021044502A1 (en) Test design device, test design method, test design program, and test design system
US20060080636A1 (en) Method of building intelligent platform management interface firmware architecture
CN108289114B (en) Cloud service system and method for processing cloud service exception
US9298428B2 (en) Graphical user interface editor that displays live data during editing
US7519719B2 (en) Automatic creation of protocol dependent control path for instrument application
CN108614704A (en) Code compiling method and device
CN114741294A (en) Page debugging method, device, equipment and storage medium
CN109995711B (en) Application development method and device of intelligent robot, terminal equipment and medium
CN113535544A (en) Running method of sub-application to be debugged, computer equipment and device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application