KR101599471B1 - 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체 - Google Patents

소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR101599471B1
KR101599471B1 KR1020140078387A KR20140078387A KR101599471B1 KR 101599471 B1 KR101599471 B1 KR 101599471B1 KR 1020140078387 A KR1020140078387 A KR 1020140078387A KR 20140078387 A KR20140078387 A KR 20140078387A KR 101599471 B1 KR101599471 B1 KR 101599471B1
Authority
KR
South Korea
Prior art keywords
file
branch
test
build
modification
Prior art date
Application number
KR1020140078387A
Other languages
English (en)
Other versions
KR20160000761A (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 KR1020140078387A priority Critical patent/KR101599471B1/ko
Publication of KR20160000761A publication Critical patent/KR20160000761A/ko
Application granted granted Critical
Publication of KR101599471B1 publication Critical patent/KR101599471B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 일 실시예는 개발자 단말로부터 소정의 프로젝트에 대한 수정 요청 및 수정 파일을 수신하는 수정 요청 수신부; 상기 프로젝트에 포함되는 하나 이상의 소스 파일 및 빌드 파일을 저장하는 제1 브랜치를 관리 하는 제1 브랜치 관리부; 상기 수정 요청에 대응하여, 상기 제1 브랜치에 저장되는 파일들을 복사하여 제2 브랜치를 생성하는 제2 브랜치 생성부; 상기 제2 브랜치에 저장되고 상기 수정 파일과 동일한 파일명을 가지는 소스 파일에 상기 수정 파일에 포함되는 수정 사항을 포함하여 상기 소스 파일을 저장하는 제2 브랜치 관리부; 상기 수정 사항 처리가 완료된 경우, 상기 제2 브랜치에 저장되는 소스 파일을 컴파일하여 빌드 파일을 생성하는 빌드부; 상기 생성한 빌드 파일을 테스트 하는 테스트 수행부; 상기 테스트 결과 오류가 없는 경우 상기 빌드 파일을 상용 서버로 배포하는 배포부; 상기 배포가 완료된 경우, 상기 제2 브랜치를 삭제하는 제2 브랜치 삭제부;를 포함하는 소스 관리 장치이다.

Description

소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체{APPARATUS, SYSTEM, METHOD AND READABLE RECORDING MEDIUM OF MANAGING A PROJECT FILE}
본 발명의 실시예들은 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체에 관한 것이다.
정보 통신 기술의 발달로 예전에는 사람이 했던 일들을 컴퓨터가 대신하고 있다. 이러한 소프트웨어를 개발을 하는데 여러 사람이 참여하는 것은 일반적이다. 여러 명이 동시에 개발을 진행할 때에는 소스 파일 및 빌드 파일의 배포를 통합적으로 관리하는데 어려움이 있었다.
본 발명의 실시예들은 개발자가 협력하여 하나의 프로젝트를 수행하는 것을 용이하게 하는 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체를 제공한다.
본 발명의 일 실시예에 따른 소스 관리 장치는 개발자 단말로부터 소정의 프로젝트에 대한 수정 요청 및 수정 파일을 수신하는 수정 요청 수신부; 상기 프로젝트에 포함되는 하나 이상의 소스 파일 및 빌드 파일을 저장하는 제1 브랜치를 관리 하는 제1 브랜치 관리부; 상기 수정 요청에 대응하여, 상기 제1 브랜치에 저장되는 파일들을 복사하여 제2 브랜치를 생성하는 제2 브랜치 생성부; 상기 제2 브랜치에 저장되고 상기 수정 파일과 동일한 파일명을 가지는 소스 파일에 상기 수정 파일에 포함되는 수정 사항을 포함하여 상기 소스 파일을 저장하는 제2 브랜치 관리부; 상기 수정 사항 처리가 완료된 경우, 상기 제2 브랜치에 저장되는 소스 파일을 컴파일하여 빌드 파일을 생성하는 빌드부; 상기 생성한 빌드 파일을 테스트 하는 테스트 수행부; 상기 테스트 결과 오류가 없는 경우 상기 빌드 파일을 상용 서버로 배포하는 배포부; 상기 배포가 완료된 경우, 상기 제2 브랜치를 삭제하는 제2 브랜치 삭제부;를 포함할 수 있다.
상기 제1 브랜치 관리부는 상기 빌드 파일 배포가 완료된 경우, 상기 제1 브랜치에 저장된 파일을 삭제하고, 상기 제2 브랜치에 저장된 파일로 상기 제1 브랜치를 덮어쓸 수 있다.
상기 제2 브랜치 관리부는 상기 테스트 결과 오류가 있는 경우, 상기 제2 브랜치를 삭제하고, 상기 배포부는 상기 배포가 완료되지 않은 경우, 배포가 완료될 때까지 기 설정된 시간 주기로 상기 빌드 파일을 배포할 수 있다.
상기 테스트 수행부는 상용 서버로 상기 빌드 파일을 배포하고, 기 저장된 테스트 모듈에 의해서 기능 테스트, 비기능 테스트, 구조 테스트, 결함 수정 테스트 중 적어도 하나를 수행할 수 있다.
본 발명의 일 실시예에 따른 소스 관리 방법은 장치가 소정의 프로젝트에 대한 수정 요청 및 수정 파일을 수신하는 단계; 제1 브랜치에 저장되는 파일들을 복사하여 제2 브랜치를 생성하는 단계; 상기 제2 브랜치에 저장되고 상기 수정 파일과 동일한 파일명을 가지는 소스 파일에 상기 수정 파일에 포함되는 수정 사항을 포함하여 저장하는 단계; 상기 제2 브랜치에 저장되는 소스 파일을 컴파일하여 빌드 파일을 생성하는 단계; 기 저장된 테스트 모듈에 의해서 상기 빌드 파일을 테스트 하는 단계; 상기 테스트 결과 오류가 없는 경우, 상기 빌드 파일을 상용 서버로 배포하는 단계; 상기 제2 브랜치에 저장된 파일로 상기 제1 브랜치를 덮어 쓰는 단계;를 포함할 수 있다.
본 발명의 일 실시예에 따른 소스 관리 방법은 상기 제2 브랜치에 저장된 파일을 삭제하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 소스 관리 방법은 상기 테스트를 수행하는 단계 이후, 상기 테스트 결과 오류가 있는 경우, 상기 제2 브랜치를 삭제하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 소스 관리 방법은 상기 빌드 파일을 배포하는 단계 이후, 상기 배포가 완료되지 않은 경우, 기 설정된 시간 주기로 상기 빌드 파일을 재배포하는 단계를 더 포함할 수 있다.
상기 테스트를 수행하는 단계는 기 저장된 테스트 모듈에 의해서 기능 테스트, 비기능 테스트, 구조 테스트, 결함 수정 테스트 중 적어도 하나를 수행할 수 있다.
본 발명의 일 실시예에 따른 컴퓨터 판독 가능한 기록 매체는 본 발명의 일 실시예에 따른 소스 관리 방법을 실행하기 위한 컴퓨터 프로그램을 기록할 수 있다.
본 발명의 일 실시예에 따른 소스 관리 시스템은 소스 관리 장치로부터 소정의 프로젝트에 대한 소스 파일을 수신하는 통신부, 상기 프로젝트에 대한 소스 파일와 동일한 내용으로 제2 브랜치를 생성하는 제2 브랜치 생성부, 상기 제2 브랜치의 소스 파일 중에서 개발자가 상용 서버에 배포하고자 하는 수정 파일과 동일한 파일명을 가지는 소스 파일에 수정 사항을 적용하는 제2 브랜치 관리부, 상기 제2 브랜치의 소스 파일을 컴파일하여 빌드 파일을 생성하는 빌드부, 및 기 저장된 테스트 모듈에 의해서 상기 빌드 파일을 테스트하는 테스트 수행부를 포함하고, 상기 통신부를 통해, 상기 테스트 결과 오류가 없는 경우, 상기 빌드 파일을 상기 소스 관리 장치로 전송하는 개발자 단말; 및 상기 개발자 단말로부터 상기 빌드 파일 및 상기 수정 파일을 수신하는 통신부, 상기 통신부를 통해 수신한 빌드 파일을 상용 서버로 배포하는 배포부, 상기 프로젝트에 대한 소스 파일을 저장하고, 상기 수정 파일을 상기 수정 파일과 파일명이 동일한 소스 파일에 적용하는 제1 브랜치 관리부,를 포함하는 소스 관리 장치;를 포함할 수 있다.
상기 개발자 단말은 상기 테스트 결과 오류가 없는 경우, 상기 제2 브랜치를 삭제하는 제2 브랜치 삭제부를 더 포함할 수 있다.
상기 배포부는 상기 배포가 완료되지 않은 경우, 배포가 완료될 때까지 기 설정된 시간 주기로 상기 빌드 파일을 배포하는 소스 관리 장치;를 포함할 수 있다.
상기 테스트 수행부는 상용 서버로 상기 빌드 파일을 배포하고, 기 저장된 테스트 모듈에 의해서 기능 테스트, 비기능 테스트, 구조 테스트, 결함 수정 테스트 중 하나를 수행하는 소스 관리 장치;를 포함할 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해 질 것이다.
본 발명의 실시예들에 관한 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체는 개발자가 협력하여 하나의 프로젝트를 수행하는 작업을 용이하게 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 소스 관리 시스템을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 소스 관리 장치를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 소스 관리 방법을 나타내는 흐름도이다.
도 4는 본 발명의 또 다른 실시예에 따른 소스 관리 시스템을 나타내는 도면이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다.
이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는한, 복수의 표현을 포함한다.
이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서 상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징을 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
어떤 실시예가 달리 구현 가능한 경우에 특정한 공정 순서는 설명되는 순서와 다르게 수행될 수도 있다. 예를 들어, 연속하여 설명되는 두 공정이 실질적으로 동시에 수행될 수도 있고, 설명되는 순서와 반대의 순서로 진행될 수 있다.
도 1은 본 발명의 일 실시예에 따른 소스 관리 시스템(10)을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 소스 관리 시스템(10)은 소스 관리 장치(100), 개발자 단말(300), 상용 서버(200), 통신망(400)를 포함할 수 있다.
본 발명의 일 실시예에 따라 제공되는 소스 관리 장치(100)는 하나 이상의 개발자 단말이 함께 개발하는 프로젝트를 관리하는 시스템이며, 상용 서버(200)에 배포된 안정적인 버전의 소스 파일을 항상 유지하면서 그와 별개로 개발자 단말로부터의 수정 사항에 대한 안정성을 테스트한 후, 상용 서버로 배포하는 소스 관리 시스템(10)이다.
본 발명의 일 실시예에 따라 제공되는 소스 관리 장치(100)는 개발자 단말이 개발한 내용을 해당 프로젝트에 적용하고, 개발자 단말이 개발한 내용을 포함하는 빌드 파일을 생성하여 상용 서버로 배포하게 된다. 즉, 본 발명의 일 실시예에 따라 제공되는 소스 관리 장치(100)는 소스 레벨의 파일 수정부터 상용 서버로의 배포까지를 수동적인 작업 없이 실행할 수 있다.
본 발명의 일 실시예에 따라 제공되는 소스 관리 장치(100)는 하나 이상의 개발자 단말로부터 각각 개발한 사항을 수신 받아 제1 브랜치와 동일한 제2 브랜치를 생성하여, 제1 브랜치와는 관련되지 않고, 독립적인 제2 브랜치에 상기 사항들을 적용하게 되며, 제2 브랜치에 저장된 소스 파일로부터 빌드 파일을 생성하게 된다. 본 발명의 일 실시예에 따라 제공되는 소스 관리 장치(100)는 상기 빌드 파일에 대해서 유닛 테스트(unit test), 엔드 투 엔드 테스트(end-to-end test), 통합 테스트(integration test), 함수 테스트(function test)를 수행하여 안정성을 평가하고, 상용 서버에 배포하게 된다.
이렇게 제2 브랜치를 통해서 수정 과정을 진행하는 동안, 상용 서버에 배포된 버전은 제1 브랜치에 유지되고, 제2 브랜치에 저장된 버전에 문제가 발견되는 즉시, 제1 브랜치의 내용으로 대체될 수 있다.
또한, 본 발명의 일 실시예에 따라 제공되는 소스 관리 장치(100)는 상용 서버에 배포한 이후에 빌드 파일(build file, 실행 파일)에 대해서 테스트를 진행하여 배포 버전의 안정성을 확인할 수 있다. 로컬 피씨(personal computer)에서는 발생하지 않았던 오류들이 실제 상용 서버에서는 발생할 수 있기 때문에 상용 서버에 배포된 이후에 테스트 수행이 필요할 수 있다.
종래의 소스 관리 장치는 배포 이후 배포 버전에 문제를 발견한 경우, 이전 버전으로 소스 및 빌드 파일을 롤백(rollback)해야 하는 번거로움이 있다. 그에 반해 본 발명의 일 실시예에 따라 제공되는 소스 관리 장치(100)는 롤백 없이 바로 제1 브랜치에 저장된 버전의 빌드 파일로 상용 서버를 덮어 쓸 수 있고, 발생한 문제들을 제거할 수 있다.
개발자는 개발자 단말(300)을 통해서 소스 관리 장치로 접근할 수 있다. 여기서, 개발자 단말(300)은 사용자의 퍼스널 컴퓨터(personal computer) 일 수 도 있고, 또는 사용자의 휴대용 단말일 수 있다. 사용자의 휴대용 단말은 스마트 폰, 태블릿 PC, 스마트 워치 등 일 수 있고, 이외의 웹 브라우징이 가능한 애플리케이션을 탑재한 단말은 제한없이 차용될 수 있다.
개발자 단말(300)은 화면을 표시하는 표시부 및 사용자로부터 데이터를 입력 받는 입력 장치를 구비한다. 입력 장치는 키보드, 마우스, 트랙볼, 마이크 버튼, 터치패널 등을 포함할 수 있으나, 이에 한정하지 않는다.
상용 서버(200)는 포털 사이트, 은행, 회사, 게임 등 인터넷에서 서비스를 제공하는 서버를 말한다.
본 발명의 일 실시예에 따라 제공되는 소스 관리 시스템의 소스 관리 장치(100), 개발자 단말(300), 상용 서버(200)는 인터넷, 인트파넷 등과 같은 유무선 통신 방법을 통해서 연결될 수 있으나, 이에 한정되지 않는다.
한편 통신망(400)은 복수 개의 개발자 단말(300), 상용 서버(200), 및 소스 관리 장치(100)를 연결하는 역할을 수행한다. 즉, 통신망(400)은 개발자 단말들(300), 상용 서버(200)과 소스 관리 장치가 연결한 후 패킷 데이터를 송수신할 수 있도록 접속 경로를 제공하는 통신망을 의미한다.
도 2는 본 발명의 일 실시예에 따른 소스 관리 장치(100)의 구성을 나타내는 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 소스 관리 장치(100)는 수정 요청 수신부(120), 제1 브랜치 관리부(125), 제2 브랜치 생성부(130), 제2 브랜치 관리부(135), 빌드부(140), 배포부(145), 제2 브랜치 삭제부(150), 테스트 수행부(155), 인터페이스부(110)를 포함할 수 있다.
수정 요청 수신부(120)는 개발자 단말로부터 소정의 프로젝트에 대한 수정 요청을 수신할 수 있다. 여기서, 수정 요청은 하나 이상의 수정 사항, 하나 이상의 수정 파일, 수정하는 이유, 수정 일자 및 일시를 포함할 수 있다.
제1 브랜치 관리부(125)는 상기 프로젝트에 포함되는 소스 파일 및 빌드 파일을 저장 관리 할 수 있다. 제1 브랜치 관리부(125)는 상용 서버로 배포된 버전과 동일한 소스 파일 및 빌드 파일을 저장할 수 있다.
제2 브랜치 생성부(130)는 상기 제1 브랜치에 저장된 소스 파일 및 빌드 파일을 카피하여 제2 브랜치를 생성한다.
제2 브랜치 관리부(135)는 상기 수정 요청에 대응하는 수정 사항들을 제2 브랜치에 저장관리 할 수 있다. 제2 브랜치 관리부(135)는 상기 수정 요청에 대응하는 수정 파일과 동일한 파일명을 가지는 제2 브랜치의 소스 파일에 수정 사항을 포함하여 저장할 수 있다. 제2 브랜치 관리부(135)가 수정 사항을 소스 파일에 적용하는 방법은 차이점을 비교하는 툴에 의해 차이점 만을 머지(merge)하거나, 수정 파일로 해당 소스 파일을 덮는(replace) 방식으로 할 수 있다. 제2 브랜치 관리부(135)는 해당 소스 파일에 다른 부분들은 그대로 둔 채, 수정 요청을 한 개발자 단말이 수정한 부분 만을 추가하는 방식으로 상기 해당 소스 파일을 수정할 수 있다. 이러한 구성을 통해, 기 적용된 수정 사항들은 유지되고, 수정 요청을 한 개발자 단말이 적용하고자 하는 수정 사항만이 제2 브랜치 관리부(135)에 의해 제2 브랜치에 적용된다.
제2 브랜치 관리부(135)에 의해 저장된 제2 브랜치의 소스 파일과 빌드 파일은 제1 브랜치에 그대로 복사 될 수 있다. 제1 브랜치로 그대로 복사된 이후에는 제2 브랜치는 삭제될 수 있다. 이러한 구성을 통해, 최종적으로는 특정 프로젝트에 대해서는 하나의 브랜치 만이 생성되어 소스 파일들을 관리 할 수 있다.
본 발명의 일 실시예에 따른 소스 관리 장치(100)는 원본 소스가 저장된 제1 브랜치와 별도로 생성한 제2 브랜치에 수정 사항을 적용하고 최종 빌드 파일을 생성함으로써, 수정 버전의 안정성을 별도로 테스트 할 수 있다. 본 발명의 일 실시에에 따른 소스 관리 장치(100)는 현재 공중에 서비스 되고 있는 버전의 소스 파일 및 빌드 파일을 제1 브랜치에 저장하고 있으면서 수정 요청에 대응하여 제2 브랜치에 수정을 수행하게 되며, 최종적으로 수정 사항을 적용한 제2 브랜치가 테스트 결과 오류가 없는 것을 확인한 다음 수정 사항을 상용 서버로 배포한다.
빌드부(140)는 상기 제2 브랜치에 저장된 소스 파일을 컴파일하여 빌드 파일을 생성한다. 빌드 파일은 제2 브랜치 관리부(135)에 함께 저장될 수 있다. 여기서, 컴파일은 고급언어(CHILL, COBOL, FORTRAN 등으로 인간이 구분하기 쉬운 언어)로 작성된 프로그램을 기계어(컴퓨터 등의 기계가 이해할 수 있는 언어)로 번역하는 것이며 이것을 처리하는 프로그램을 컴파일러라고 한다.
테스트 수행부(155)는 상기 빌드 파일에 대해서 기 저장된 테스트 모듈을 이용하여 테스트를 수행한다. 여기서, 테스트는 비기능 테스트, 기능 테스트, 함수 테스트, 결함 수정을 확인하는 테스트, 통합 테스트, 엔드 투 엔드 테스트(end to end test)일 수 있으며, 일반적으로 소프트웨어를 검증하기 위한 테스트를 말한다.
배포부(145)는 상기 빌드부에 의해 생성된 빌드 파일을 상용 서버로 배포한다. 여기서, 배포는 특정 웹 사이트를 방문하는 방문자들에게 공개하기 위해서 상용 서버에 빌드 파일을 업로드 하는 것을 말한다. 만약 상용 서버로 배포하는 과정에서 오류가 발생하거나, 상용 서버가 비활성화 상태(통신 불가 상태, 서버 점검 상태 등)인 경우, 기 저장된 주기로 빌드 파일을 상용 서버로 배포할 수 있다.
개발자 단말로부터 수신된 수정 요청은 상용 서버로의 배포 의사를 포함할 수도 있고, 상용 서버로의 배포 의사를 포함하지 않을 수 있다. 본 발명의 일 실시예에 따라 제공되는 소스 관리 장치(100)는 배포 의사가 있는 경우에만 해당 수정 사항을 적용한 빌드 파일을 배포할 수 있다.
배포부(145)는 상기 테스트 수행부에 의해 수행된 테스트 결과 오류가 없는 경우, 상기 빌드 파일을 상용 서버로 배포한다. 만약 상용 서버로 배포하는 과정에서 오류가 발생하거나, 상용 서버가 비활성화 상태(통신 불가 상태, 서버 점검 상태 등)인 경우, 기 저장된 주기로 빌드 파일을 상용 서버로 배포할 수 있다.
제2 브랜치 삭제부(150)는 상기 배포가 완료된 경우, 또는 상기 테스트 결과 오류가 없는 경우, 상기 제2 브랜치를 삭제한다.
제1 브랜치 관리부(125)는 제2 브랜치에 저장된 소스 파일 및 빌드 파일과 동일하게 제1 브랜치의 소스 파일 및 빌드 파일을 변경한다.
제2 브랜치에 저장된 소스 파일과 동일한 파일명을 가지는 제1 브랜치의 소스 파일에 수정 사항을 적용하는 것은 차이점을 비교하는 툴에 의해 차이점 만을 머지(merge)하거나, 제2 브랜치에 저장된 소스 파일로 제1 브랜치의 소스 파일을 덮는(replace) 방식으로 할 수 있다.
인터페이스부(110)는 통신망과 연동하여 소스 관리 장치와 사용 단말 간의 송수신 신호를 패킷 데이터 형태로 제공하는데 필요한 통신 인터페이스를 제공한다.
도 3은 본 발명의 일 실시예에 따라 제공되는 소스 관리 방법의 흐름도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따라 제공되는 소스 관리 방법은 수정 요청 수신 단계(S110), 제2 브랜치 생성 단계(S115), 제2 브랜치에 수정 사항 적용 단계(S120), 소스 파일 빌드 단계(S125), 테스트 수행 단계(S130), 빌드 파일 배포 단계(S135), 제2 브랜치 삭제 단계(S140), 제1 브랜치에 수정 사항 적용 단계(S145)를 포함할 수 있다.
소스 관리 장치는 개발자 단말로부터 소정의 프로젝트에 대한 수정 요청을 수신할 수 있다. 여기서, 수정 요청은 하나 이상의 수정 사항, 하나 이상의 수정 파일, 수정하는 이유, 수정 일자 및 일시 등을 포함할 수 있다. (S110)
소스 관리 장치는 제1 브랜치에 저장된 소스 파일 및 빌드 파일을 카피하여 저장하는 제2 브랜치를 생성할 수 있다. (S115)
소스 관리 장치느 상기 제2 브랜치에 저장된 소스 파일에 수정 사항을 적용한다. 소스 관리 장치가 상기 수정 사항에 포함된 수정 파일과 동일한 파일명을 가지는 소스 파일에 수정 사항을 포함하여 저장하도록 한다. 소스 관리 장치가 수신한 수정 사항을 제2 브랜치에 적용할 때, 차이점을 비교하는 툴에 의해 차이점 만을 머지(merge)하거나 수정 사항이 포함된 수정 파일을 해당 소스 파일과 대체(replace)하는 방식으로 할 수 있다. 소스 관리 장치는 해당 소스 파일에 다른 부분들은 그대로 둔 채, 수정 요청을 한 개발자 단말이 수정한 부분 만을 추가할 수 있다. 이러한 구성을 통해, 기 적용된 수정 사항들은 유지되고, 수정 요청을 한 개발자 단말이 적용하고자 하는 수정 사항만이 제2 브랜치에 적용된다. (S120)
소스 관리 장치는 상기 제2 브랜치에 저장된 소스 파일을 컴파일하여 빌드 파일을 생성한다. 생성한 빌드 파일은 제2 브랜치에 저장관리 될 수 있다. 여기서, 컴파일은 고급언어(CHILL, COBOL, FORTRAN 등으로 인간이 구분하기 쉬운 언어)로 작성된 프로그램을 기계어(컴퓨터 등의 기계가 이해할 수 있는 언어)로 번역하는 것이며 이것을 처리하는 프로그램을 컴파일러라고 한다.(S125)
소스 관리 장치는 상기 생성한 빌드 파일에 대해서 테스트를 수행할 수 있다. 소스 관리 장치는 빌드 파일에 대해서 기 저장된 테스트 모듈을 통해서 테스트를 수행할 수 있다. 여기서, 테스트는 요구사항들 및 기능성에 기반한 것으로 구성되며, 애플리케이션 코드의 내부 로직의 지식에 기반할 수 있다. 또한 여기서, 테스트는 비기능 테스트, 기능 테스트, 함수 테스트, 결함 수정을 확인하는 테스트, 통합 테스트, 엔드 투 엔드 테스트(end to end test)일 수 있으며, 일반적으로 소프트웨어를 검증하기 위한 테스트를 말한다. (S130)
소스 관리 장치는 상기 테스트 결과 오류가 없는 경우, 해당 빌드 파일을 상용 서버로 배포한다. (S135)
소스 관리 장치는 상기 테스트 결과 오류가 있는 경우, 상기 제2 브랜치를 삭제한다. 해당 테스트 결과 오류가 있는 경우, 수정 요청으로 인해 적용된 사항들을 모두 삭제 한다. 상기 테스트 결과를 수정 요청을 한 개발자 단말로 송부할 수 있다. 또는 테스트 결과를 수정 요청을 한 개발자의 이메일 주소, 휴대폰으로 전송할 수 있다. (S140)
소스 관리 장치는 상기 빌드 파일을 상용 서버로 배포한 이후, 제1 브랜치에 수정 사항을 적용한다. 소스 관리 장치는 제2 브랜치와 제1 브랜치의 소스 파일들을 비교하여 수정 사항을 제1 브랜치에 저장된 소스 파일에 적용하게 된다. 이때, 소스 파일 사이의 차이점을 보여주는 툴을 이용하여 차이점 만을 적용하거나, 차이가 있는 소스 파일을 그대로 덮어쓰는 방식으로 적용할 수 있다. 본 발명의 일 실시예에 따라 제공되는 소스 관리 장치는 상용 서버에 배포된 버전을 관리하는 제1 브랜치와 수정 사항을 적용하는 제2 브랜치를 포함하고, 수정 사항이 적용된 버전이 상용 서버에 배포된 이후에는 제2 브랜치를 삭제하고, 제1 브랜치에 수정 사항을 적용하는 과정을 수행하게 된다. (S145)
본 발명의 일 실시예에 따라 제공되는 소스 관리 장치 및 방법은 개발자 단말로부터 수신한 수정 요청에 대한 내용을 소스 파일에 대한 수정 이력 정보로서 저장할 수 있다. 또한, 본 발명의 일 실시예에 따라 제공되는 소스 관리 장치 및 방법은 수정 요청을 한 개발자 단말로부터 수신한 수정 사항을 제2 브랜치에 적용할 때까지 다른 개발자 단말로부터의 수정 요청을 거부할 수 있다. 즉, 제1 개발자 단말로부터의 수정 사항을 적용할 때까지 제2 개발자 단말의 제1 브랜치로의 접근을 막을 수 있다. 또한, 본 발명의 일 실시예에 따라 제공되는 소스 관리 장치 및 방법은 수정 요청을 한 개발자 단말로부터 수신한 수정 사항을 상용 서버로 배포할 때까지 다른 개발자 단말로부터의 수정 요청을 거부할 수 있다. 다른 개발자 단말의 접근을 막을 수 있다.
도 4는 본 발명의 또 다른 일 실시예에 따라 제공되는 소스 관리 시스템(20)을 나타내는 도면이다.
도 4를 참조하면, 소스 관리 시스템(20)은 소스 관리 장치(101), 개발자 단말(301), 통신망(401), 상용 서버(201)를 포함할 수 있다.
개발자 단말(301)은 도 4에 도시된 바와 같이, 제2 브랜치 생성부(310), 제2 브랜치 관리부(320), 빌드부(330), 테스트 수행부(340), 제2 브랜치 삭제부(350), 통신부(360)를 포함할 수 있다.
제2 브랜치 생성부(310)는 통신부(360)를 통해 소스 관리 장치로부터 제1 브랜치에 포함된 파일들을 전달받아 생성할 수 있다. 여기서 제2 브랜치는 소정의 프로텍트에 포함된 소스 파일을 포함할 수 있다.
제2 브랜치 관리부(320)는 상기 제2 브랜치에 포함된 소스 파일 중에서 개발자가 수정한 수정 파일과 동일한 파일명을 가지는 소스 파일에 대해서 수정 사항을 적용할 수 있다. 수정 사항을 적용할 때에는 상기 수정 파일과 상기 소스 파일을 비교하는 툴에 의해서 차이점 만을 머지(merge)하는 방식으로 할 수 있고, 수정 파일로 해당 소스 파일을 대체하는 방식으로 할 수도 있다.
빌드부(330)는 상기 제2 브랜치의 소스 파일을 컴파일하여 빌드 파일을 생성한다.
테스트 수행부(340)는 상기 빌드 파일에 대해서 유닛 테스트(unit test), 엔드 투 엔드 테스트(end-to-end test), 함수 테스트(function test), 통합 테스트(integration test)를 수행한다. 기 저장된 테스트 모듈에 의해서 이러한 테스트들은 진행된다. 여기서, 테스트는 소프트웨어를 검증하기 위한 일반적인 테스트를 말한다.
통신부(360)는 상기 테스트 결과 오류가 없는 경우, 해당 빌드 파일 및 수정 파일을 소스 관리 장치(101)로 전송한다.
제2 브랜치 삭제부(350)는 상기 통신부(360)를 통해서 소스 관리 장치(101)로 전송된 이후 상기 제2 브랜치를 삭제한다.
소스 관리 장치(101)는 도 4에 도시된 바와 같이, 배포부(111), 제1 브랜치 관리부(121), 통신부(131)를 포함할 수 있다.
통신부(131)는 개발자 단말(301)로부터 빌드 파일 및 수정 파일을 수신한다.
배포부(111)는 상기 빌드 파일을 상용 서버로 배포한다. 만약 상용 서버로 배포하는 과정에서 오류가 발생하거나, 상용 서버가 비활성화 상태(통신 불가 상태, 서버 점검 상태 등)인 경우, 기 저장된 주기로 빌드 파일을 상용 서버로 배포할 수 있다.
제1 브랜치 관리부(121)는 소정의 프로젝트에 대한 소스 파일 및 빌드 파일을 저장한다. 특히, 제1 브랜치 관리부(121)에 의해 저장된 소스 파일 및 빌드 파일은 상용 서버로 배포된 버전이다. 제1 브랜치 관리부(121)는 통신부(131)를 통해서 수신한 수정 파일을 제1 브랜치에 적용한다.
한편, 본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다.
본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
10, 20: 소스 관리 시스템 100, 101: 소스 관리 장치
200,201:상용 서버 300,301:개발자 단말
400, 401: 통신망 120:수정 요청 수신부
125: 제1 브랜치 관리부 130: 제2 브랜치 생성부
135: 제2 브랜치 관리부 140: 빌드부
145: 배포부 150: 제2 브랜치 삭제부
155: 테스트 수행부

Claims (14)

  1. 개발자 단말로부터 소정의 프로젝트에 대한 수정 요청 및 수정 파일을 수신하는 수정 요청 수신부;
    상기 프로젝트에 포함되는 하나 이상의 소스 파일 및 빌드 파일을 저장하는 제1 브랜치를 관리 하는 제1 브랜치 관리부;
    상기 수정 요청에 대응하여, 상기 제1 브랜치에 저장되는 파일들을 복사하여 제2 브랜치를 생성하는 제2 브랜치 생성부;
    상기 제2 브랜치에 저장되고 상기 수정 파일과 동일한 파일명을 가지는 소스 파일에 상기 수정 파일에 포함되는 수정 사항을 포함하여 상기 소스 파일을 저장하는 제2 브랜치 관리부;
    상기 수정 사항 처리가 완료된 경우, 상기 제2 브랜치에 저장되는 소스 파일을 컴파일하여 빌드 파일을 생성하는 빌드부;
    상기 생성한 빌드 파일을 테스트 하는 테스트 수행부;
    상기 테스트 결과 오류가 없고, 상용 서버가 비활성화 상태가 아닌 경우 상기 빌드 파일을 상기 상용 서버로 배포하는 배포부;
    상기 배포가 완료된 경우, 상기 제2 브랜치를 삭제하는 제2 브랜치 삭제부;를 포함하고,
    상기 테스트 수행부는
    상용 서버로 상기 빌드 파일을 배포하고, 기 저장된 테스트 모듈에 의해서 기능 테스트, 비기능 테스트, 구조 테스트, 결함 수정 테스트 중 적어도 하나를 수행하는 소스 관리 장치.
  2. 제1항에 있어서,
    상기 제1 브랜치 관리부는
    상기 빌드 파일 배포가 완료된 경우, 상기 제1 브랜치에 저장된 파일을 삭제하고, 상기 제2 브랜치에 저장된 파일로 상기 제1 브랜치를 덮어쓰는, 소스 관리 장치.
  3. 제1항에 있어서,
    상기 제2 브랜치 관리부는
    상기 테스트 결과 오류가 있는 경우, 상기 제2 브랜치를 삭제하고,
    상기 배포부는
    상기 배포가 완료되지 않은 경우, 배포가 완료될 때까지 기 설정된 시간 주기로 상기 빌드 파일을 배포 하는, 소스 관리 장치.
  4. 삭제
  5. 장치가 소정의 프로젝트에 대한 수정 요청 및 수정 파일을 수신하는 단계;
    제1 브랜치에 저장되는 파일들을 복사하여 제2 브랜치를 생성하는 단계;
    상기 제2 브랜치에 저장되고 상기 수정 파일과 동일한 파일명을 가지는 소스 파일에 상기 수정 파일에 포함되는 수정 사항을 포함하여 저장하는 단계;
    상기 제2 브랜치에 저장되는 소스 파일을 컴파일하여 빌드 파일을 생성하는 단계;
    기 저장된 테스트 모듈에 의해서 상기 빌드 파일을 테스트 하는 단계;
    상기 테스트 결과 오류가 없고, 상용 서버가 비활성화 상태가 아닌 경우, 상기 빌드 파일을 상기 상용 서버로 배포하는 단계;
    상기 제2 브랜치에 저장된 파일로 상기 제1 브랜치를 덮어 쓰는 단계;를 포함하고,
    상기 테스트를 수행하는 단계는
    기 저장된 테스트 모듈에 의해서 기능 테스트, 비기능 테스트, 구조 테스트, 결함 수정 테스트 중 적어도 하나를 수행하는 소스 관리 방법.
  6. 제5항에 있어서,
    상기 제2 브랜치에 저장된 파일을 삭제하는 단계를 더 포함하는 소스 관리 방법.
  7. 제5항에 있어서,
    상기 테스트를 수행하는 단계 이후,
    상기 테스트 결과 오류가 있는 경우, 상기 제2 브랜치를 삭제하는 단계를 더 포함하는 소스 관리 방법.
  8. 제5항에 있어서,
    상기 빌드 파일을 배포하는 단계 이후,
    상기 배포가 완료되지 않은 경우, 기 설정된 시간 주기로 상기 빌드 파일을 재배포하는 단계를 더 포함하는 소스 관리 방법.
  9. 삭제
  10. 제5항 내지 제8항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
  11. 소스 관리 장치로부터 소정의 프로젝트에 대한 소스 파일을 수신하는 통신부,
    상기 프로젝트에 대한 소스 파일와 동일한 내용으로 제2 브랜치를 생성하는 제2 브랜치 생성부,
    상기 제2 브랜치의 소스 파일 중에서 개발자가 상용 서버에 배포하고자 하는 수정 파일과 동일한 파일명을 가지는 소스 파일에 수정 사항을 적용하는 제2 브랜치 관리부,
    상기 제2 브랜치의 소스 파일을 컴파일하여 빌드 파일을 생성하는 빌드부, 및
    기 저장된 테스트 모듈에 의해서 상기 빌드 파일을 테스트하는 테스트 수행부를 포함하고,
    상기 통신부를 통해, 상기 테스트 결과 오류가 없는 경우, 상기 빌드 파일을 상기 소스 관리 장치로 전송하는 개발자 단말; 및
    상기 개발자 단말로부터 상기 빌드 파일 및 상기 수정 파일을 수신하는 통신부,
    상용 서버가 비활성화 상태가 아닌 경우, 상기 통신부를 통해 수신한 빌드 파일을 상용 서버로 배포하는 배포부,
    상기 프로젝트에 대한 소스 파일을 저장하고, 상기 수정 파일을 상기 수정 파일과 파일명이 동일한 소스 파일에 적용하는 제1 브랜치 관리부,를 포함하고,
    상기 테스트 수행부는
    상용 서버로 상기 빌드 파일을 배포하고, 기 저장된 테스트 모듈에 의해서 기능 테스트, 비기능 테스트, 구조 테스트, 결함 수정 테스트 중 하나를 수행하는 소스 관리 장치;를 포함하는 소스 관리 시스템.
  12. 제11항에 있어서,
    상기 개발자 단말은
    상기 테스트 결과 오류가 없는 경우, 상기 제2 브랜치를 삭제하는 제2 브랜치 삭제부를 더 포함하는, 소스 관리 시스템.
  13. 제11항에 있어서,
    상기 배포부는
    상기 배포가 완료되지 않은 경우, 배포가 완료될 때까지 기 설정된 시간 주기로 상기 빌드 파일을 배포하는 소스 관리 장치;를 포함하는 소스 관리 시스템.
  14. 삭제
KR1020140078387A 2014-06-25 2014-06-25 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체 KR101599471B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140078387A KR101599471B1 (ko) 2014-06-25 2014-06-25 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140078387A KR101599471B1 (ko) 2014-06-25 2014-06-25 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체

Publications (2)

Publication Number Publication Date
KR20160000761A KR20160000761A (ko) 2016-01-05
KR101599471B1 true KR101599471B1 (ko) 2016-03-03

Family

ID=55164690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140078387A KR101599471B1 (ko) 2014-06-25 2014-06-25 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체

Country Status (1)

Country Link
KR (1) KR101599471B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180061589A (ko) * 2016-11-30 2018-06-08 주식회사 플루이딕 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법
KR20240000809A (ko) * 2022-06-24 2024-01-03 쿠팡 주식회사 코드 정보 제공을 위한 전자 장치 및 그 방법
KR20240025825A (ko) * 2022-08-19 2024-02-27 쿠팡 주식회사 소스 코드를 업로드하는 방법 및 장치
KR102663188B1 (ko) * 2024-02-01 2024-05-03 (주)엘이테크 빌드 배포 자동화 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101282024B1 (ko) * 2013-04-11 2013-07-04 주식회사 제이윈파트너스 협업 도구 자동화시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100546742B1 (ko) * 2003-09-04 2006-01-26 한국전자통신연구원 타겟 시스템 기반 소스 프로그램 개발장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101282024B1 (ko) * 2013-04-11 2013-07-04 주식회사 제이윈파트너스 협업 도구 자동화시스템

Also Published As

Publication number Publication date
KR20160000761A (ko) 2016-01-05

Similar Documents

Publication Publication Date Title
US8584079B2 (en) Quality on submit process
CN107608710B (zh) 基于Jenkins工具的软件项目构建任务配置方法及装置
US8548947B2 (en) Systems and methods for file maintenance
CN108845940B (zh) 一种企业级信息系统自动化功能测试方法和系统
US10127218B2 (en) Object templates for data-driven applications
US8863010B2 (en) Linking user interface design environment and application development environment
US9971595B1 (en) Techniques for automated database deployment
CN105144088A (zh) 元数据与源代码的关联以及基于其的应用和服务
US11288176B2 (en) Executing integration scenario regression tests in customer landscapes
CN107038519B (zh) 用于系统之间的双向数据同步的方法和系统
KR101599471B1 (ko) 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체
CN110727575B (zh) 一种信息处理方法、系统、装置、以及存储介质
US20140223168A1 (en) Testing a configuration change
CN107992326B (zh) 基于Struts2框架的Java自动化代码发布方法
CN107608663A (zh) 一种移动应用插件及移动应用的开发方法及装置
JP2017091531A (ja) ソースコード管理(scm)システムから製品ライフサイクル管理(plm)システムへの階層的なデータのエクスポート
US10606730B2 (en) Networked digital data processor log file viewer
US9658845B2 (en) Generating a where-used objects list for updating data
KR101599470B1 (ko) 소스 배포 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체
Stevens Connecting software build with maintaining consistency between models: towards sound, optimal, and flexible building from megamodels
US20170060728A1 (en) Program Lifecycle Testing
CN107015831A (zh) 一种基于服务器端升级的客户端升级管理方法及系统
US9720817B2 (en) Hierarchical system-capability testing
US9946534B1 (en) Techniques for automated database deployment
Kang et al. An analysis of e-Government Standard Framework (eGovFrame) and its effects

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200130

Year of fee payment: 5