KR20180061590A - 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법 - Google Patents

소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법 Download PDF

Info

Publication number
KR20180061590A
KR20180061590A KR1020160160927A KR20160160927A KR20180061590A KR 20180061590 A KR20180061590 A KR 20180061590A KR 1020160160927 A KR1020160160927 A KR 1020160160927A KR 20160160927 A KR20160160927 A KR 20160160927A KR 20180061590 A KR20180061590 A KR 20180061590A
Authority
KR
South Korea
Prior art keywords
source
build
server
user terminal
unit
Prior art date
Application number
KR1020160160927A
Other languages
English (en)
Inventor
김강호
김도형
Original Assignee
주식회사 플루이딕
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 플루이딕 filed Critical 주식회사 플루이딕
Priority to KR1020160160927A priority Critical patent/KR20180061590A/ko
Publication of KR20180061590A publication Critical patent/KR20180061590A/ko

Links

Images

Classifications

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

Abstract

빌드 및 테스트하는데 소요되는 비용 및 시간을 감소시킬 수 있는 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법이 개시된다. 이러한 소프트웨어 빌드 시스템은 적어도 하나의 사용자 단말기, 소스 저장 장치 및 빌드 자동화 서버를 포함한다. 상기 사용자 단말기는 소스 작성 모니터링을 통해 모니터링 정보를 생성하면서, 소프트웨어 개발을 위한 소스를 변경한다. 상기 소스 저장 장치는 상기 사용자 단말기로부터 변경된 소스를 전송받아 저장한다. 상기 빌드 자동화 서버는 상기 사용자 단말기로부터 전송받은 상기 모니터링 정보를 이용하여 소스 빌드부를 생성한 후, 상기 소스 빌드부에서 상기 소스 저장 장치로부터 전송받은 소스를 빌드(bulid) 및 테스트한다. 이와 같이, 소스 작성 모니터링을 통해 상기 서버 제어부가 미리 생성됨에 따라, 상기 소스 빌드부가 불필요하게 생성되어 비용이 증가되는 것을 방지하면서, 상기 소스 빌드부의 생성에 따른 소요 시간을 최소화시킬 수 있다.

Description

소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법{SOFTWARE BUILD SYSTEM AND SOFTWARE BUILD METHOD USING THE SYSTEM}
본 발명은 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법에 관한 것으로, 개발자가 작성한 원본 소스를 빌드하여 실행 소스를 생성할 수 있는 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법에 관한 것이다.
소프트웨어 개발자가 특정 프로그램 언어의 문법에 맞춰 작성하여 소프트웨어 원본 소스를 완성하면, 이후 상기 원본 소스를 실제 구동 환경에서 동작되는 실행 소스로 변경할 필요가 있다. 이와 같이, 상기 원본 소스를 상기 실행 소스로 변경되는 것을 소프트웨어 빌드(software build)라고 한다.
소프트웨어 개발은 개발하고자 하는 소프트웨어가 단순한 기능을 가질 경우, 한 두 사람의 개발자에 의해 이루어질 수 있다. 그러나, 개발하고자 하는 소프트웨어가 방대하고 다양한 기능을 가질 경우에는, 복수의 개발자들이 각 기능별 또는 각 분야별로 나눠어서 소스를 작성할 수밖에 없다. 따라서, 이러한 복수의 개발자들에 의한 소프트웨어의 개발은 각 개발자가 개발한 소스들을 합성한 이후, 소프트웨어 빌드가 이루어질 수 있다.
또한, 이미 개발한 소프트웨어는 기존 소스의 일부 내용이 변경될 수도 있다. 이와 같이, 기존 소스의 일부 내용이 변경될 경우, 변경된 내용을 포함하는 전체 소스로 다시 소프트웨어 빌드를 수행하여야 한다.
한편, 종래의 소프트웨어 빌드 과정, 특히 기존 소스의 일부 내용을 변경하는 경우에 있어서의 소프트웨어 빌드 과정은 다음과 같은 단계로 이루어진다.
우선, 어느 한 개발자가 자신의 개발 PC를 이용하여 소스를 변경하게 되면, 상기 변경된 소스를 상기 개발 PC에서 소스 저장소로 전송한다. 상기 소스 저장소는 상기 개발 PC에서 전송받은 소스를 이용하여 기 저장된 원본 소스를 변경시킨 후, 다시 CI(Continuos Integration) 서버로 전송한다. 상기 CI 서버는 상기 소스 저장소에서 변경된 원본 소스를 배포 환경에서 동작될 실행 소스로 빌드한 후, 상기 실행 소스를 테스트한다. 상기 실행 소스의 테스트 결과, 문제가 없다고 판단되면, 상기 CI 서버는 상기 실행 소스를 상기 배포 환경, 즉 배포 서버로 전송하여 실행시킬 수 있다.
여기서, 상기 CI 서버는 상기 소스 저장소로부터 제공받은 소스를 빌드 및 테스트하기 위해 항상 존재하고 있는 것이 바람직하다. 그러나, 상기 CI 서버가 클라우드 기반의 서버인 경우, 상기 CI 서버가 존재하고 있는 시간만큼 비용이 증가될 수 있다.
따라서, 상기 CI 서버가 필요한 시점, 즉 상기 소스 저장소에 저장된 소스가 변경된 시점에만 존재하다면, 그만큼 비용이 감소될 수 있다. 그러나, 상기 CI 서버가 생성되는 시간 즉, 로딩 시간이 필요하기 때문에, 그만큼의 소요 시간이 발생될 수 있다.
따라서, 본 발명은 이러한 문제점을 해결하기 위한 것으로, 본 발명의 해결하고자 하는 과제는 빌드 및 테스트하는데 소요되는 비용 및 시간을 감소시킬 수 있는 소프트웨어 빌드 시스템을 제공하는 것이다.
또한, 본 발명의 해결하고자 하는 다른 과제는 상기 소프트웨어 빌드 시스템을 이용한 소프트웨어 빌드 방법을 제공하는 것이다.
본 발명의 제1 실시예에 의한 소프트웨어 빌드 시스템은 적어도 하나의 사용자 단말기, 소스 저장 장치 및 빌드 자동화 서버를 포함한다.
상기 사용자 단말기는 소스 작성 모니터링을 통해 모니터링 정보를 생성하면서, 소프트웨어 개발을 위한 소스를 변경한다. 상기 소스 저장 장치는 상기 사용자 단말기로부터 변경된 소스를 전송받아 저장한다. 상기 빌드 자동화 서버는 상기 사용자 단말기로부터 전송받은 상기 모니터링 정보를 이용하여 소스 빌드부를 생성한 후, 상기 소스 빌드부에서 상기 소스 저장 장치로부터 전송받은 소스를 빌드(bulid) 및 테스트한다.
상기 빌드 자동화 서버는 상기 사용자 단말기로부터 상기 모니터링 정보를 전송받고, 상기 모니터링 정보를 분석하여 상기 소스 빌드부의 생성 여부를 결정하는 서버 제어부를 포함할 수 있다.
이어서, 본 발명의 제2 실시예에 의한 소프트웨어 빌드 시스템은 적어도 하나의 사용자 단말기, 소스 저장 장치 및 빌드 자동화 서버를 포함한다.
상기 사용자 단말기는 소스 작성 모니터링을 통해 모니터링 정보를 생성하면서 소프트웨어 개발을 위한 소스를 변경하고, 상기 모니터링 정보를 이용하여 서버 생성 요청 신호를 생성한다. 상기 소스 저장 장치는 상기 사용자 단말기로부터 변경된 소스를 전송받아 저장한다. 상기 빌드 자동화 서버는 상기 사용자 단말기로부터 전송받은 상기 서버 생성 요청 신호를 이용하여 소스 빌드부를 생성한 후, 상기 소스 빌드부에서 상기 소스 저장 장치로부터 전송받은 소스를 빌드(bulid) 및 테스트한다.
상기 사용자 단말기는 상기 모니터링 정보를 분석하여 상기 소스 빌드부의 생성이 필요하다고 판단하면, 상기 서버 생성 요청 신호를 생성할 수 있다. 이때, 상기 빌드 자동화 서버는 상기 사용자 단말기로부터 전송받은 상기 서버 생성 요청 신호에 응답하여 상기 소스 빌드부를 생성하는 서버 제어부를 포함할 수 있다.
한편, 본 발명의 제1 실시예에 의한 소프트웨어 빌드 방법은 적어도 하나의 사용자 단말기가 소스 작성 모니터링을 통해 모니터링 정보를 생성하여 빌드 자동화 서버의 서버 제어부로 전송하는 단계; 상기 서버 제어부가 상기 모니터링 정보를 이용하여 소스 빌드부를 생성하는 단계; 상기 사용자 단말기가 상기 변경된 소스를 생성하여 소스 저장 장치로 전송하는 단계; 상기 소스 저장 장치가 상기 변경된 소스를 저장한 후, 저장된 소스를 상기 소스 빌드부로 전송하는 단계; 및 상기 소스 빌드부가 상기 저장된 소스를 빌드 및 테스트하는 단계를 포함한다.
상기 서버 제어부가 상기 소스 빌드부를 생성하는 단계는 상기 소스 빌드부의 생성 여부를 결정하기 위해 상기 모니터링 정보를 분석하는 단계; 및 분석 결과에 따라 상기 서버 제어부를 생성하는 단계를 포함할 수 있다.
이어서, 본 발명의 제2 실시예에 의한 소프트웨어 빌드 방법은 적어도 하나의 사용자 단말기가 소스 작성 모니터링을 통해 생성된 모니터링 정보를 이용하여 서버 생성 요청 신호를 생성한 후, 상기 서버 생성 요청 신호를 빌드 자동화 서버의 서버 제어부로 전송하는 단계; 상기 서버 제어부가 상기 서버 생성 요청 신호에 응답하여 소스 빌드부를 생성하는 단계; 상기 사용자 단말기가 상기 변경된 소스를 생성하여 소스 저장 장치로 전송하는 단계; 상기 소스 저장 장치가 상기 변경된 소스를 저장한 후, 저장된 소스를 상기 소스 빌드부로 전송하는 단계; 및 상기 소스 빌드부가 상기 저장된 소스를 빌드 및 테스트하는 단계를 포함한다.
상기 사용자 단말기가 상기 서버 생성 요청 신호를 상기 서버 제어부로 전송하는 단계는 소스를 변경하면서 소스 작성 모니터링을 통해 모니터링 정보를 생성하는 단계; 상기 소스 빌드부의 생성 여부를 결정하기 위해, 상기 모니터링 정보를 분석하는 단계; 및 분석 결과 상기 소스 빌드부의 생성이 필요하다고 판단하면, 상기 서버 생성 요청 신호를 생성한 후 상기 서버 생성 요청 신호를 상기 서버 제어부를 전송하는 단계를 포함할 수 있다.
이와 같이 본 발명에 의한 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법에 따르면, 사용자 단말기가 소스 작성 모니터링을 통해 모니터링 정보를 생성하여 빌드 자동화 서버의 서버 제어부로 전송하고, 서버 제어부가 모니터링 정보를 이용하여 소스 빌드부를 생성함에 따라, 소스 빌드부가 소스 저장 장치로부터 제공된 소스를 빌드 및 테스트할 수 있다.
또한, 사용자 단말기가 소스 작성 모니터링을 통해 생성된 모니터링 정보를 이용하여 서버 생성 요청 신호를 생성하여 빌드 자동화 서버의 서버 제어부로 전송하고, 서버 제어부가 상기 서버 생성 요청 신호에 응답하여 소스 빌드부를 생성함에 따라, 소스 빌드부가 소스 저장 장치로부터 제공된 소스를 빌드 및 테스트할 수 있다.
이와 같이, 소스 작성 모니터링을 통해 생성된 모니터링 정보를 분석하여 소스 작성의 완료 시점을 예측하고, 예측된 시점에 대응하여 빌드 및 테스트를 위한 소스 빌드부를 미리 생성함에 따라, 상기 소스 빌드부가 불필요하게 생성되어 비용이 증가되는 것을 방지하면서, 상기 소스 빌드부의 생성에 따른 소요 시간을 최소화시킬 수 있다.
도 1은 본 발명의 제1 실시예에 의한 소프트웨어 빌드 시스템을 나타낸 블록도이다.
도 2는 도 1의 소프트웨어 빌드 시스템에 의해 수행되는 소프트웨어 빌드 방법 중 사용자 단말기가 모니터링 정보를 생성하여 전송하는 과정을 설명하기 위한 블록도이다.
도 3은 도 2의 소프트웨어 빌드 방법 중 빌드 자동화 서버의 서버 제어부가 모니터링 정보를 이용하여 소스 빌드부를 생성하는 과정을 설명하기 위한 블록도이다.
도 4는 도 2의 소프트웨어 빌드 방법 중 사용자 단말기가 변경된 소스를 전송하는 과정을 설명하기 위한 블록도이다.
도 5는 도 2의 소프트웨어 빌드 방법 중 소스 저장 장치가 변경된 소스를 저장 및 전송하는 과정을 설명하기 위한 블록도이다.
도 6은 도 2의 소프트웨어 빌드 방법 중 소스 빌드부가 소스를 빌드 및 테스트화여 배포하는 과정을 설명하기 위한 블록도이다.
도 7은 본 발명의 제2 실시예에 의한 소프트웨어 빌드 시스템에 의해 수행되는 소프트웨어 빌드 방법 중 사용자 단말기가 모니터링 정보를 분석하여 서버 생성 요청 신호를 전송하는 과정을 설명하기 위한 블록도이다.
도 8은 도 7의 소프트웨어 빌드 방법 중 빌드 자동화 서버의 서버 제어부가 서버 생성 요청 신호에 응답하여 소스 빌드부를 생성하는 과정을 설명하기 위한 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명한다.
<실시예 1>
도 1은 본 발명의 제1 실시예에 의한 소프트웨어 빌드 시스템을 나타낸 블록도이다.
도 1을 참조하면, 본 실시예에 의한 소프트웨어 빌드 시스템은 적어도 하나의 사용자 단말기(100), 소스 저장 장치(200) 및 빌드 자동화 서버(400)를 포함한다.
상기 사용자 단말기(100)는 임의의 개발자에 의해 소프트웨어 개발하기 위한 장치로써, 예를 들어 데스크탑 컴퓨터, 노트북 컴퓨터, 테블릿 PC 등일 수 있다. 상기 소프트웨어의 개발이 복수의 개발자들에 의해 수행될 경우, 상기 사용자 단말기(100)도 복수개로 존재할 수 있다.
상기 소스 저장 장치(200)는 상기 사용자 단말기(100)과 유무선 네트워크, 예를 들어 인터넷을 통해 연결되어 신호를 주고받을 수 있다. 상기 소스 저장 장치(200)는 상기 사용자 단말기(100)로부터 소스를 제공받으면 이를 저장하거나, 기 저장된 소스를 변경하여 저장시킬 수 있다.
예를 들어, 상기 소스 저장 장치(200)는 분산 버전 관리 툴인 깃(Git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스인 깃허브(GitHub)를 포함할 수 있다. 즉, 상기 소스 저장 장치(200)는 소프트웨어 개발을 위한 프로젝트를 진행 할 때, 복수의 개발자들이 동시에 소스를 수정하는 경우, 수정된 소스가 각각 다른 버젼일 때 문제가 생긴다거나, 이전에는 잘 돌아가던 소스트웨어가 여러 차례 소스 수정으로 프로그램이 안 돌아갈 경우 이전 버젼으로 돌린다거나, 그런 경우를 대비해서 유용하게 사용할 수 있도록 만들어진 시스템일 수 있다.
상기 빌드 자동화 서버(300)는 상기 소스 저장 장치(200)와 직접 연결되어 신호를 주고받거나, 유무선 네트워크, 예를 들어 인터넷을 통해 신호를 주고받을 수 있다. 예를 들어, 상기 빌드 자동화 서버(300)는 클라우드(cloud) 기반 서버일 수 있다. 상기 빌드 자동화 서버(300)는 상기 소스 저장 장치(200)로부터 상기 소스 저장 장치(200)에 저장된 소스를 전송받고, 전송받은 소스를 빌드(bulid) 및 테스트한 후, 테스트 결과 문제가 없다고 판단되면 빌드된 소스를 하나 또는 복수의 배포 장치(400)로 구성된 배포 환경으로 전송시킬 수 있다. 이때, 상기 배포 장치(400)는, 서버 컴퓨터 또는 데스크탑 컴퓨터, 노트북 컴퓨터, 테블릿 PC, 스마트폰 등과 같은 개인용 단말기일 수 있다.
한편, 상기 빌드 자동화 서버(300)는 복수의 운영체제, 예를 들어 윈도우즈(Windows), 리눅스(Linux), 아이오에스(iOS), 안드로이드(Android) 등에서 제대로 동작되는지 테스트할 수 있다.
또한, 상기 빌드 자동화 서버(300)는 CI(Continuos Integration) 서버일 수 있다. 그에 따라, 상기 빌드 자동화 서버(300)는 상기 소스 저장 장치(200)에 저장되어 있는 소스를 지속적으로 통합하고 검증함으로써 최신 소스가 항상 건강한 상태인지 확인할 수 있고, 통합 주기를 짧게 가져감으로써 오류 발생시 원인 파악을 신속하게 할 수 있다.
이하, 위에서 서술된 소프트웨어 빌드 시스템에 수행되는 소프트웨어 빌드 방법에 대하여 상세하게 설명하고자 한다.
도 2는 도 1의 소프트웨어 빌드 시스템에 의해 수행되는 소프트웨어 빌드 방법 중 사용자 단말기가 모니터링 정보를 생성하여 전송하는 과정을 설명하기 위한 블록도이다.
도 2를 참조하면, 우선 상기 사용자 단말기(100)가 소스 작성 모니터링을 통해 모니터링 정보를 생성한다(S10). 즉, 상기 사용자 단말기(100)가 임의의 개발자에 의해 소프트웨어 개발을 위한 코딩을 수행하는 동시에, 소스 작성 모니터링을 통해 모니터링 정보를 생성할 수 있다. 한편, 상기 사용자 단말기(100)는 새로운 전체 소스를 작성하거나, 자체 저장되어 있는 소스 중 일부를 수정 또는 추가할 수 있다. 여기서, 상기 사용자 단말기(100)에 저장된 소스는 상기 소스 저장 장치(200)로부터 전송받은 최신 버전의 소스일 수 있다.
이어서, 상기 사용자 단말기(100)는 상기 모니터링 정보를 유무선 네트워크, 예를 들어 인터넷을 통해 상기 빌드 자동화 서버(300)의 서버 제어부(310)로 전송시킨다(S20). 상기 사용자 단말기(100)는 상기 모니터링 정보를 실시간으로 전송할 수도 있지만, 일정 시점마다 또는 일정 이벤트, 예를 들어 소스 작성의 완료 예측을 알리는 사용자의 행위 등에 의해 전송할 수도 있다.
도 3은 도 2의 소프트웨어 빌드 방법 중 빌드 자동화 서버의 서버 제어부가 모니터링 정보를 이용하여 소스 빌드부를 생성하는 과정을 설명하기 위한 블록도이다.
도 3을 참조하면, 상기 서버 제어부(310)는 상기 사용자 단말기(100)로부터 전송된 상기 모니터링 정보를 분석하여, 소스 빌드부(320)의 생성 여부를 결정한다(S30).
이어서, 상기 서버 제어부(310)가 상기 모니터링 정보를 분석한 결과, 상기 소스 빌드부(320)가 생성될 필요가 있다고 판단되면, 상기 소스 빌드부(320)를 생성시킨다(S40). 여기서, 상기 소스 빌드부(320)가 생성된다는 것은 상기 소스 빌드부(320)가 상기 소스 저장 장치(200)와 접속되어 빌드 및 테스트 작업을 수행할 수 있도록 기능적으로 활성화된다는 것, 즉 로딩되는 것을 의미할 수 있다. 한편, 상기 소스 빌드부(320)는 예를 들어 상기 서버 베어부(310)에 의해 제어되는 적어도 하나의 서버일 수 있다.
이어서, 상기 서버 제어부(310)가 상기 소스 빌드부(320)를 생성한 경우, 서버 생성 알림 신호를 생성하여 상기 사용자 단말기(100)로 전송한다(S50).
도 4는 도 2의 소프트웨어 빌드 방법 중 사용자 단말기가 변경된 소스를 전송하는 과정을 설명하기 위한 블록도이다.
도 4를 참조하면, 상기 사용자 단말기(100)는 소스의 변경을 완료하여 변경된 소스를 생성시킨다(S60). 즉, 임의의 개발자가 상기 사용자 단말기(100)를 통해 소프트웨어 개발을 위한 코딩을 수행하여, 새로운 소스 전체를 생성하거나, 기존에 생성되어 있는 전체 소스에서 일부 내용을 수정 또는 추가할 수 있다. 이때, 상기 사용자 단말기(100)는 소스의 변경을 완료하기 전에, 상기 서버 제어부(310)에서 전송된 서버 생성 알림 신호를 이용하여 상기 빌드 서버부(320)가 생성되었음을 사용자에게 표시시킬 수 있다.
이어서, 상기 서버 생성 알림 신호가 수신된 이후, 상기 사용자 단말기(100)는 상기 변경된 소스를 상기 소스 저장 장치(200)로 전송한다(S70).
도 5는 도 2의 소프트웨어 빌드 방법 중 소스 저장 장치가 변경된 소스를 저장 및 전송하는 과정을 설명하기 위한 블록도이다.
도 5를 참조하면, 상기 소스 저장 장치(200)는 상기 사용자 단말기(100)로부터 전송된 상기 변경된 소스를 저장한다(S80). 예를 들어, 상기 소스 저장 장치(200)는 상기 변경된 소스를 새롭게 저장하거나, 기 저장된 소스를 변경하여 저장시킬 수 있다.
이어서, 상기 소스 저장 장치(200)는 저장된 소스를 상기 빌드 자동화 서버(300)에서 생성된 상기 소스 빌드부(320)로 전송한다(S90). 예를 들어, 상기 소스 저장 장치(200)는 소스가 변경되어 저장될 때, 상기 저장된 소스를 상기 소스 빌드부(320)로 전송하거나, 상기 저장된 소스를 일정 시점마다 상상기 소스 빌드부(320)로 전송할 수 있다.
도 6은 도 2의 소프트웨어 빌드 방법 중 소스 빌드부가 소스를 빌드 및 테스트화여 배포하는 과정을 설명하기 위한 블록도이다.
도 6을 참조하면, 상기 소스 빌드부(320)는 상기 소스 저장 장치(200)로부터 전송된 상기 저장된 소스를 빌드 및 테스트한다(S100). 예를 들어, 상기 소스 빌드부(320)는 복수의 운영체제, 예를 들어 윈도우즈(Windows), 리눅스(Linux), 아이오에스(iOS), 안드로이드(Android) 등에서 제대로 동작되는지 테스트할 수 있다.
이어서, 상기 소스 빌드부(320)는 상기 빌드된 소스의 테스트 결과가 통과(pass), 즉 문제가 없다고 판단하면, 상기 빌드된 소스를 상기 배포 장치(400)로 전송한다(S110).
이와 같이 본 실시예에 따르면, 상기 사용자 단말기(100)가 소스 작성 모니터링을 통해 상기 모니터링 정보를 생성하여 상기 서버 제어부(310)로 전송하고, 상기 서버 제어부(310)가 상기 모니터링 정보를 이용하여 상기 소스 빌드부(320)를 생성하며, 상기 소스 빌드부(320)가 상기 소스 저장 장치(200)로부터 전송된 소스를 빌드 및 테스트를 수행함에 따라, 빌드 및 테스트에 소용되는 비용 및 시간을 최소화시킬 수 있다.
즉, 상기 서버 제어부(310)가 소스 작성 모니터링을 통해 생성된 상기 모니터링 정보를 분석하여 소스 작성의 완료 시점을 예측하고, 예측된 시점에 대응하여 빌드 및 테스트를 위한 상기 소스 빌드부(320)를 미리 생성함에 따라, 상기 소스 빌드부(320)가 불필요하게 생성되어 비용이 증가되는 것을 방지하면서, 상기 소스 빌드부(320)의 생성에 따른 소요 시간을 최소화시킬 수 있다.
<실시예 2>
도 7은 본 발명의 제2 실시예에 의한 소프트웨어 빌드 시스템에 의해 수행되는 소프트웨어 빌드 방법 중 사용자 단말기가 모니터링 정보를 분석하여 서버 생성 요청 신호를 전송하는 과정을 설명하기 위한 블록도이고, 도 8은 도 7의 소프트웨어 빌드 방법 중 빌드 자동화 서버의 서버 제어부가 서버 생성 요청 신호에 응답하여 소스 빌드부를 생성하는 과정을 설명하기 위한 블록도이다.
본 실시예에 의한 소프트웨어 빌드 시스템 및 방법은 모니터링 정보의 분석 및 빌드 서버부의 생성 과정을 제외하면, 제1 실시예에 의한 소프트웨어 빌드 시스템 및 방법과 실질적으로 동일하므로, 제1 실시예와 동일한 구성요소에 대해서는 동일한 참조부호를 부여하고 이에 대한 자세한 설명은 생략하기로 한다.
도 7 및 도 8을 참조하면, 우선 상기 사용자 단말기(100)가 소스 작성 모니터링을 통해 모니터링 정보를 실시간으로 또는 일정 시점마다 생성한다(S12). 즉, 상기 사용자 단말기(100)가 임의의 개발자에 의해 소프트웨어 개발을 위한 코딩을 수행하는 동시에, 소스 작성 모니터링을 통해 모니터링 정보를 생성할 수 있다. 한편, 상기 사용자 단말기(100)는 새로운 전체 소스를 작성하거나, 자체 저장되어 있는 소스 중 일부를 수정 또는 추가할 수 있다. 여기서, 상기 사용자 단말기(100)에 저장된 소스는 상기 소스 저장 장치(200)로부터 전송받은 최신 버전의 소스일 수 있다.
이어서, 상기 사용자 단말기(100)는 상기 모니터링 정보를 분석하여, 상기 빌드 자동화 서버(300)에서의 소스 빌드부(320)의 생성 여부를 결정한다(S22).
이어서, 상기 사용자 단말기(100)가 상기 모니터링 정보를 분석한 결과, 상기 소스 빌드부(320)가 생성될 필요가 있다고 판단되면, 서버 생성 요청 신호를 생성한 후, 상기 서버 생성 요청 신호를 상기 빌드 자동화 서버(300)의 서버 제어부(310)를 전송한다(S32). 이때, 상기 사용자 단말기(100)는 상기 서버 생성 요청 신호를 유무선 네트워크, 예를 들어 인터넷을 통해 상기 서버 제어부(310)로 전송할 수 있다.
이어서, 상기 서버 제어부(310)는 상기 사용자 단말기(100)로부터 전송된 상기 서버 생성 요청 신호에 응답하여 상기 소스 빌드부(320)를 생성시킨다(S42). 여기서, 상기 소스 빌드부(320)가 생성된다는 것은 상기 소스 빌드부(320)가 상기 소스 저장 장치(200)와 접속되어 빌드 및 테스트 작업을 수행할 수 있도록 기능적으로 활성화된다는 것, 즉 로딩되는 것을 의미할 수 있다. 한편, 상기 소스 빌드부(320)는 예를 들어 상기 서버 베어부(310)에 의해 제어되는 적어도 하나의 서버일 수 있다.
이어서, 상기 서버 제어부(310)가 상기 소스 빌드부(320)를 생성한 경우, 서버 생성 알림 신호를 생성하여 상기 사용자 단말기(100)로 전송한다(S50).
한편, 이후 과정은 도 4, 도 5 및 도 6을 통해 설명한 제1 실시예의 S60 내지 S110 단계들과 실질적으로 동일하므로, 이에 대한 자세한 설명은 생략하기로 한다.
이와 같이 본 실시예에 따르면, 상기 사용자 단말기(100)가 소스 작성 모니터링을 통해 생성된 상기 모니터링 정보를 이용하여 상기 서버 생성 요청 신호를 생성하여 상기 서버 제어부(310)로 전송하고, 상기 서버 제어부(310)가 상기 서버 생성 요청 신호에 응답하여 상기 소스 빌드부(320)를 생성하며, 상기 소스 빌드부(320)가 상기 소스 저장 장치로부터 전송된 소스를 빌드 및 테스트함에 따라, 빌드 및 테스트에 소용되는 비용 및 시간을 최소화시킬 수 있다.
즉, 상기 사용자 단말기(100)가 소스 작성 모니터링을 통해 생성된 상기 모니터링 정보를 분석하여 소스 작성의 완료 시점을 예측하고, 예측된 시점에 대응하여 상기 서버 제어부(310)가 빌드 및 테스트를 위한 상기 소스 빌드부(320)를 미리 생성시킴에 따라, 상기 소스 빌드부(320)가 불필요하게 생성되어 비용이 증가되는 것을 방지하면서, 상기 소스 빌드부(320)의 생성에 따른 소요 시간을 최소화시킬 수 있다.
앞서 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시예들을 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술될 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 사용자 단말기 200 : 소스 저장 장치
300 : 빌드 자동화 서버 400 : 배포 장치

Claims (8)

  1. 소스 작성 모니터링을 통해 모니터링 정보를 생성하면서, 소프트웨어 개발을 위한 소스를 변경하는 적어도 하나의 사용자 단말기;
    상기 사용자 단말기로부터 변경된 소스를 전송받아 저장하는 소스 저장 장치; 및
    상기 사용자 단말기로부터 전송받은 상기 모니터링 정보를 이용하여 소스 빌드부를 생성한 후, 상기 소스 빌드부에서 상기 소스 저장 장치로부터 전송받은 소스를 빌드(bulid) 및 테스트하는 빌드 자동화 서버를 포함하는 소프트웨어 빌드 시스템.
  2. 제1항에 있어서, 상기 빌드 자동화 서버는
    상기 사용자 단말기로부터 상기 모니터링 정보를 전송받고, 상기 모니터링 정보를 분석하여 상기 소스 빌드부의 생성 여부를 결정하는 서버 제어부를 포함하는 것을 특징으로 하는 소프트웨어 빌드 시스템.
  3. 소스 작성 모니터링을 통해 모니터링 정보를 생성하면서 소프트웨어 개발을 위한 소스를 변경하고, 상기 모니터링 정보를 이용하여 서버 생성 요청 신호를 생성하는 적어도 하나의 사용자 단말기;
    상기 사용자 단말기로부터 변경된 소스를 전송받아 저장하는 소스 저장 장치; 및
    상기 사용자 단말기로부터 전송받은 상기 서버 생성 요청 신호를 이용하여 소스 빌드부를 생성한 후, 상기 소스 빌드부에서 상기 소스 저장 장치로부터 전송받은 소스를 빌드(bulid) 및 테스트하는 빌드 자동화 서버를 포함하는 소프트웨어 빌드 시스템.
  4. 제3항에 있어서, 상기 사용자 단말기는
    상기 모니터링 정보를 분석하여 상기 소스 빌드부의 생성이 필요하다고 판단하면, 상기 서버 생성 요청 신호를 생성하고,
    상기 빌드 자동화 서버는
    상기 사용자 단말기로부터 전송받은 상기 서버 생성 요청 신호에 응답하여 상기 소스 빌드부를 생성하는 서버 제어부를 포함하는 것을 특징으로 하는 소프트웨어 빌드 시스템.
  5. 적어도 하나의 사용자 단말기가 소스 작성 모니터링을 통해 모니터링 정보를 생성하여 빌드 자동화 서버의 서버 제어부로 전송하는 단계;
    상기 서버 제어부가 상기 모니터링 정보를 이용하여 소스 빌드부를 생성하는 단계;
    상기 사용자 단말기가 상기 변경된 소스를 생성하여 소스 저장 장치로 전송하는 단계;
    상기 소스 저장 장치가 상기 변경된 소스를 저장한 후, 저장된 소스를 상기 소스 빌드부로 전송하는 단계; 및
    상기 소스 빌드부가 상기 저장된 소스를 빌드 및 테스트하는 단계를 포함하는 소프트웨어 빌드 방법.
  6. 제5항에 있어서, 상기 서버 제어부가 상기 소스 빌드부를 생성하는 단계는
    상기 소스 빌드부의 생성 여부를 결정하기 위해, 상기 모니터링 정보를 분석하는 단계; 및
    분석 결과에 따라 상기 서버 제어부를 생성하는 단계를 포함하는 것을 특징으로 하는 소프트웨어 빌드 방법.
  7. 적어도 하나의 사용자 단말기가 소스 작성 모니터링을 통해 생성된 모니터링 정보를 이용하여 서버 생성 요청 신호를 생성한 후, 상기 서버 생성 요청 신호를 빌드 자동화 서버의 서버 제어부로 전송하는 단계;
    상기 서버 제어부가 상기 서버 생성 요청 신호에 응답하여 소스 빌드부를 생성하는 단계;
    상기 사용자 단말기가 상기 변경된 소스를 생성하여 소스 저장 장치로 전송하는 단계;
    상기 소스 저장 장치가 상기 변경된 소스를 저장한 후, 저장된 소스를 상기 소스 빌드부로 전송하는 단계; 및
    상기 소스 빌드부가 상기 저장된 소스를 빌드 및 테스트하는 단계를 포함하는 소프트웨어 빌드 방법.
  8. 제7항에 있어서, 상기 사용자 단말기가 상기 서버 생성 요청 신호를 상기 서버 제어부로 전송하는 단계는
    소스를 변경하면서, 소스 작성 모니터링을 통해 모니터링 정보를 생성하는 단계;
    상기 소스 빌드부의 생성 여부를 결정하기 위해, 상기 모니터링 정보를 분석하는 단계; 및
    분석 결과 상기 소스 빌드부의 생성이 필요하다고 판단하면, 상기 서버 생성 요청 신호를 생성한 후, 상기 서버 생성 요청 신호를 상기 서버 제어부를 전송하는 단계를 포함하는 것을 특징으로 하는 소프트웨어 빌드 방법.
KR1020160160927A 2016-11-30 2016-11-30 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법 KR20180061590A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160160927A KR20180061590A (ko) 2016-11-30 2016-11-30 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160160927A KR20180061590A (ko) 2016-11-30 2016-11-30 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법

Publications (1)

Publication Number Publication Date
KR20180061590A true KR20180061590A (ko) 2018-06-08

Family

ID=62600223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160160927A KR20180061590A (ko) 2016-11-30 2016-11-30 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법

Country Status (1)

Country Link
KR (1) KR20180061590A (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110077591A (ko) * 2009-12-30 2011-07-07 링크젠 주식회사 위피 기반 어플리케이션을 위한 멀티 플랫폼 변환 장치 및 방법
KR101282024B1 (ko) * 2013-04-11 2013-07-04 주식회사 제이윈파트너스 협업 도구 자동화시스템
KR20140018329A (ko) * 2011-04-06 2014-02-12 미디어 다이렉트, 인크. 모바일 어플리케이션 개발 및 배포 플랫폼을 위한 시스템 및 방법
KR20150124530A (ko) * 2014-04-28 2015-11-06 주식회사 다빈치소프트웨어연구소 어플리케이션 빌드 시스템 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체
JP2016143146A (ja) * 2015-01-30 2016-08-08 日本電信電話株式会社 オートリソースロギングシステム、オートリソースロギング方法及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110077591A (ko) * 2009-12-30 2011-07-07 링크젠 주식회사 위피 기반 어플리케이션을 위한 멀티 플랫폼 변환 장치 및 방법
KR20140018329A (ko) * 2011-04-06 2014-02-12 미디어 다이렉트, 인크. 모바일 어플리케이션 개발 및 배포 플랫폼을 위한 시스템 및 방법
KR101282024B1 (ko) * 2013-04-11 2013-07-04 주식회사 제이윈파트너스 협업 도구 자동화시스템
KR20150124530A (ko) * 2014-04-28 2015-11-06 주식회사 다빈치소프트웨어연구소 어플리케이션 빌드 시스템 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체
JP2016143146A (ja) * 2015-01-30 2016-08-08 日本電信電話株式会社 オートリソースロギングシステム、オートリソースロギング方法及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
John Ousterhout et al, "A Scalable Software Build Accelerator"(2009.) 1부. *
Saurabh, "What is Jenkins"(2016.11.07.) 1부. *

Similar Documents

Publication Publication Date Title
CN111651366B (zh) Sdk测试方法、装置、设备及存储介质
US10430172B2 (en) Re-configuration in cloud computing environments
KR20180061589A (ko) 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법
CN108563579B (zh) 白盒测试方法、装置、系统及存储介质
CN113885870B (zh) 应用程序更新方法、电子设备、终端设备及系统
CN110674047B (zh) 软件测试方法、装置及电子设备
CN110647332A (zh) 基于容器云的软件部署方法和装置
WO2020211360A1 (zh) Mock测试方法、系统、电子设备及计算机非易失性可读存储介质
CN109901985B (zh) 分布式测试装置及方法、存储介质和电子设备
US20220188214A1 (en) Dynamic distributed tracing instrumentation in a microservice architecture
CN113704110A (zh) 用户界面的自动化测试方法及装置
CN113986270B (zh) 分布式应用部署方法、装置、存储介质及电子设备
EP3321808B1 (en) Verification system and verification method
CN114168471A (zh) 测试方法、装置、电子设备及存储介质
WO2019222941A1 (zh) 用于评估应用部署的方法、设备、计算机程序产品和可读介质
CN116627850A (zh) 函数调试方法、装置、存储介质以及电子设备
CN115098105B (zh) 容器云性能测试评估实现方法、装置、设备及介质
KR20180061590A (ko) 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법
CN108614704B (zh) 代码编译方法及装置
CN112231231A (zh) 云端服务的调试方法、系统及装置
KR20220049334A (ko) 어플리케이션 테스트 방법 및 테스트 시스템
US20180013814A1 (en) Application recording
JPWO2016135821A1 (ja) 検査装置、検査方法、及び、プログラム
KR102600294B1 (ko) 차량용 플랫폼을 위한 arinc 기반 운영체제 헬스 모니터링 설정 코드 자동 생성 장치 및 방법
EP4105863A1 (en) Method for replicating project server for trouble-shooting, and cloud development platform system using same

Legal Events

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