KR102009405B1 - 모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템 - Google Patents

모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템 Download PDF

Info

Publication number
KR102009405B1
KR102009405B1 KR1020180133839A KR20180133839A KR102009405B1 KR 102009405 B1 KR102009405 B1 KR 102009405B1 KR 1020180133839 A KR1020180133839 A KR 1020180133839A KR 20180133839 A KR20180133839 A KR 20180133839A KR 102009405 B1 KR102009405 B1 KR 102009405B1
Authority
KR
South Korea
Prior art keywords
server
build
mobile
operating system
key information
Prior art date
Application number
KR1020180133839A
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 KR1020180133839A priority Critical patent/KR102009405B1/ko
Application granted granted Critical
Publication of KR102009405B1 publication Critical patent/KR102009405B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

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

Abstract

모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템이 개시된다. 인터넷과 연결되지 않은 오프라인에서 모바일 빌드를 수행하기 위한 관리자서버의 모바일 통합 빌드 방법에 있어서, 관리자서버는 복수의 개발자에서 애플리케이션 개발환경을 제공하는 소스저장소서버로부터 소스 코드를 수신하면, 모바일 운영체제에 따른 키 정보를 파악하고, 소스 코드와 키 정보를 빌드서버로 전송하여 빌드파일을 생성하고, 생성한 빌드파일을 버전정보를 관리하는 형상관리서버를 통해 앱스토어에 등록한다.

Description

모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템{Integrated build method and system for mobile applications}
본 발명은 모바일 애플리케이션을 위한 빌드 파일을 생성하는 방법 및 그 시스템에 관한 것이다.
스마트폰, 태블릿PC 등 다양한 종류의 모바일 디바이스의 운영체제로 '구글'의 안드로이드(Android) 또는 '애플'의 iOS 등이 존재한다. 모바일 디바이스에서 구동되는 각종 애플리케이션은 해당 운영체제에 맞게 생성되어야 한다.
등록특허공보 제10-1599470호 "소스 배포 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록매체"
본 발명이 이루고자 하는 기술적 과제는, 오프라인에서 모바일 디바이스의 운영체제에 맞는 빌드 파일을 생성하는 방법 및 그 시스템을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명의 실시 예에 따른 모바일 통합 빌드시스템의 일 예는, 인터넷과 연결되지 않은 오프라인에서 모바일 애플리케이션을 위한 빌드를 수행하는 모바일 통합 빌드시스템에 있어서, 적어도 하나 이상의 개발자에게 애플리케이션 개발환경을 제공하는 소스저장소서버; 상기 소스저장소서버로부터 소스 코드를 수신하고, 모바일 운영체제에 따른 키 정보를 파악하는 관리자서버; 모바일 운영체제별 빌드시 필요한 정보를 포함하는 라이브러리저장소서버; 및 상기 소스 코드와 상기 키 정보를 상기 관리자서버로부터 수신하고, 상기 라이브러리저장소서버를 이용하여 컴파일하고 상기 키 정보를 이용하여 서명하여 빌드파일을 생성하는 빌드서버;를 포함하고, 상기 관리자서버는 상기 빌드서버에 의해 생성된 빌드파일을 버전정보를 관리하는 형상관리서버를 통해 앱스토어에 등록한다.
상기의 기술적 과제를 달성하기 위한, 본 발명의 실시 예에 따른 모바일 통합 빌드 방법의 일 예는, 인터넷과 연결되지 않은 오프라인에서 모바일 빌드를 수행하기 위한 관리자서버의 모바일 통합 빌드 방법에 있어서, 적어도 하나 이상의 개발자에게 애플리케이션 개발환경을 제공하는 소스저장소서버로부터 소스 코드를 수신하면, 모바일 운영체제에 따른 키 정보를 파악하는 단계; 상기 소스 코드와 상기 키 정보를 빌드서버로 전송하고, 상기 빌드서버에 의해 컴파일되고 상기 키 정보로 서명된 빌드파일을 수신하는 단계; 및 상기 빌드파일을 버전정보를 관리하는 형상관리서버에 등록하는 단계;를 포함한다.
본 발명의 실시 예에 따르면, 인터넷 접속 없이 모바일 애플리케이션을 위한 빌드 파일을 생성할 수 있어 악성 코드 등에 감염되어 소스 코드 등이 위변조되거나 유출되는 것을 원천적으로 방지할 수 있다. 또한, 복수의 개발자가 함께 개발하는 모바일 애플리케이션의 빌드 파일을 모바일 디바이스의 운영체제에 맞게 자동으로 생성할 수 있다.
도 1은 본 발명의 실시 예에 따른 모바일 통합 빌드시스템의 구성의 일 예를 도시한 도면,
도 2는 본 발명의 실시 예에 따른 소스저장소서버에서 소스 코드의 형상을 관리하는 방법의 일 예를 도시한 도면,
도 3은 본 발명의 실시 예에 따른 관리자서버의 키 정보 관리 방법의 일 예를 도시한 도면,
도 4는 본 발명의 실시 예에 따른 관리자서버의 빌드 정보 관리 방법의 일 예를 도시한 도면,
도 5는 본 발명의 실시 예에 따른 빌드서버가 빌드파일을 생성하는 방법의 일 예를 도시한 도면,
도 6은 본 발명의 실시 예에 따른 형상관리서버에 빌드파일을 전송하는 방법의 일 예를 도시한 도면, 그리고,
도 7은 본 발명의 실시 예에 따른 모바일 통합 빌드 방법의 일 예를 도시한 도면이다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예에 따른 모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템에 대해 상세히 살펴본다.
도 1은 본 발명의 실시 예에 따른 모바일 통합 빌드시스템의 구성의 일 예를 도시한 도면이다.
도 1을 참조하면, 모바일 통합 빌드시스템(이하, 빌드시스템)(100)은 소스저장소서버(110), 관리자서버(120), 빌드서버(130), 라이브러리저장소서버(140) 등을 포함한다. 실시 예에 따라, 빌드시스템(100)에 형상관리서버(150) 또는 DMZ 서버(160)가 포함되거나 포함되지 않을 수 있다. 본 실시 예는 형상관리서버(150) 및 DMZ 서버(160)가 빌드시스템(100)과 별개로 구현된 경우를 도시하고 있다. 빌드시스템(100)의 각 서버(110,120,130,140)는 물리적 또는 논리적으로 구분되는 서버일 수 있다.
관리자서버(120)는 빌드시스템(100)이나 개발자에게 개발환경을 제공한다. 개발환경은 모바일 운영체제 회사(예를 들어, 안드로이드 또는 iOS 등)가 제공하는 소프트웨어 개발 킷(SDK, Software Development Kit)을 포함할 수 있다.
소스저장소서버(110)는 다수의 개발자가 협업하여 모바일 애플리케이션을 개발할 수 있도록 SVN(Subversion)이나 GIT 서버로 구현될 수 있다. 소스저장소서버(110)는 각 개발자가 개발한 소스코드의 버전을 관리한다. 소스저장소서버(110)가 소스코드의 버전 등을 포함하는 형상을 관리하는 방법의 일 예가 도 2에 도시되어 있다.
관리자서버(120)는 적어도 하나 이상의 개발자가 개발한 소스코드에 대한 빌드파일의 자동 생성 관리, 빌드파일 생성에 사용되는 키 정보 관리, 라이브러리저장소서버(140)에 저장되는 각종 빌드용 데이터의 관리 등을 수행하며, 관리자로부터 각종 명령을 입력받고 결과를 제공할 수 있는 사용자 인터페이스를 포함할 수 있다.
일 실시 예로, 관리자서버(120)는 소스저장소서버(110)에 저장된 소스코드에 대한 빌드 파일 생성을 빌드서버(130)에 요청할 수 있다. 관리자서버(120)는 소스코드의 버전정보와 함께 빌드를 수행하였는지에 대한 정보를 저장 관리할 수 있다. 이 경우에 관리자서버(120)는 빌드를 수행하지 않은 버전의 소스코드를 소스저장소서버(110)로부터 수신할 수 있다. 본 실시 예에서 각 개발자(102,104)가 직접 소스코드를 컴파일하여 빌드파일을 생성할 필요가 없으며, 관리자서버(120)가 빌드되지 않은 최신 버전의 소스코드에 대한 빌드파일 생성을 자동으로 빌드서버(130)에 요청할 수 있다.
다른 실시 예로, 관리자서버(120)는 빌드시 필요한 키 정보를 모바일 운영체제별로 저장 관리할 수 있다. 키 정보는 모바일 애플리케이션이 정당한 주체에 의해 생성되었음을 검증할 수 있도록 빌드파일 생성시 서명을 위한 키이며, 모바일 운영체제 서버(도 3 참조)가 발급하는 정보(예를 들어, IOS의 프로비저닝 또는 인증서 정보) 또는 모바일 운영체제 서버에 등록하는 정보(예를 들어, 안드로이드의 키스토어)일 수 있다. 관리자서버(120)가 직접 인터넷(190)에 접속하여 모바일 운영체제 서버로부터 키 정보를 수신하는 것이 아니라 오프라인 저장매체를 통해 키 정보를 등록받고 저장한다. 관리자서버(120)가 인터넷(190)에 직접 연결될 경우에 악성코드, 해킹 등으로 인해 소스코드 또는 빌드파일이 위변조되거나 유출될 수 있으므로 이를 원천적으로 차단하기 위하여 관리자서버(120)는 직접 인터넷(190)에 연결되지 않는다. 관리자서버(120)가 키 정보를 등록받는 과정의 일 예가 도 3에 도시되어 있다.
또 다른 실시 예로, 관리자서버(120)는 빌드서버(130)가 인터넷(190) 접속 없이 빌드파일을 생성할 수 있도록 빌드시 필요한 정보를 미리 라이브러리저장소서버(140)에 등록한다. 이에 대해서는 도 4에서 다시 살펴본다.
빌드서버(130)는 소스코드를 컴파일하여 빌드파일을 생성한다. 빌드서버(130)는 관리자서버(120)로부터 소스코드 및 키 정보를 수신하면, 컴파일 및 서명을 수행하여 빌드파일을 생성한다. 일반적으로, '안드로이드' 또는 'iOS' 등의 모바일 운영체제를 위한 빌드파일 생성시에 모바일 운영체제 서버에 접속하여 컴파일에 필요한 정보의 수신이 필요하다. 특히, '안드로이드' 또는 'iOS' 등의 회사가 제공하는 SDK는 인터넷 접속이 되지 않으면 빌드파일을 생성할 수 없다.
그러나 빌드서버(130)가 인터넷(190)에 직접 접속하여 빌드를 수행할 경우에 제3자의 악의적인 공격이나 악성 코드 등에 의해 소스코드 또는 빌드파일이 위변조되거나 유출되는 위험성이 존재한다. 특히, 은행이나 카드사 등의 금융회사의 모바일 애플리케이션이라면, 위변조나 유출 등에 따라 피해의 발생하지 않도록 하여야 한다. 따라서 본 실시 예에서 빌드서버(130)를 포함한 소스저장소서버(110), 관리자서버(120), 라이브러리저장소서버(140) 등은 모두 직접 인터넷(190)에 연결되지 않는다.
인터넷 연결 없이 빌드를 생성하기 위하여, 본 실시 예는 빌드시 필요한 정보를 미리 등록받아 저장하는 라이브러리저장소서버(140)를 포함한다. 빌드서버(130)는 인터넷(190)을 통해 모바일 운영체제 서버로부터 컴파일에 필요한 데이터를 수신하는 것이 아니라 인터넷(190)과 차단된 내부 네트워크를 통해 라이브러리저장소서버(140)에 접속하여 컴파일에 필요한 데이터를 수신하여 빌드파일을 생성한다. 빌드서버(130)가 빌드파일을 생성하는 일 예가 도 5에 도시되어 있다.
형상관리서버(150)는 배포하는 모바일 애플리케이션의 버전 정보 등의 형상을 관리한다. 관리자서버(120)는 빌드서버(130)에 의해 생성된 빌드파일을 형상관리서버(150)로 전송하고, 형상관리서버(150)는 빌드파일의 버전 정보 등을 저장 관리하고, DMZ(Demilitarized Zone) 서버(152) 및 인터넷 연결 PC(154) 등을 통해 빌드파일을 앱스토어(170)에 등록한다.
DMZ서버(160)는 테스트용 모바일 애플리케이션을 관리자서버(120)로터 제공받아 사용자 단말(180)에 제공한다. DMZ서버(152,160)를 구현하는 종래의 다양한 방법이 본 실시 예에 적용될 수 있다.
도 2는 본 발명의 실시 예에 따른 소스저장소서버에서 소스 코드의 형상을 관리하는 방법의 일 예를 도시한 도면이다.
도 2를 참조하면, 소스저장소서버(110)는 적어도 하나 이상의 개발자가 개발한 소스코드(210,220)를 기 지정된 폴더(200)에 버전 정보(212,222)를 태깅하여 저장할 수 있다. 예를 들어, 제1 소스 코드(210)의 버전이 1.0.1이고, 제N 소스 코드(220)의 버전이 2.0.0일 수 있다. 버전 정보(212,222)를 부여하는 방법은 본 실시 예에 한정되는 것은 아니며 다양하게 변형될 수 있다. 소스저장소서버(110)는 기 지정된 폴더(200)에서 버전 정보(212,222)를 기초로 가장 최신의 소스 코드를 파악할 수 있다. 폴더(200)에 저장된 소스코드(210,220)에 대한 빌드파일은 개발자에 의해 생성되는 것이 아니라, 관리자서버(120)에 의해 자동으로 생성된다.
예를 들어, 관리자서버(120)가 버전 1.0.1의 소스코드(210)에 대한 빌드파일 생성을 빌드서버(130)를 통해 수행하였다면, 관리자서버는 그 다음에는 버전 1.0.1 다음의 버전정보를 가진 소스코드를 소스저장소서버(110)로부터 수신하고 빌드 과정을 수행한다. 다른 예로, 버전 1.0.1의 소스코드에 대한 빌드 과정 수행 후 여러 버전의 소스코드가 폴더에 저장된 경우에, 관리자서버는 빌드 되지 않은 여러 버전의 소스코드 중 가장 최신의 소스코드를 수신하여 빌드 과정을 수행할 수 있다.
소스저장소서버(110)는 복수의 모바일 운영체제에 대한 모바일 애플리케이션의 개발환경을 제공할 수 있다. 예를 들어, 소스저장소서버(110)는 '안드로이드' 및 'iOS'를 위한 개발환경을 모두 제공할 수 있다. 일 실시 예로, 소스저장소서버(110)는 모바일 운영체제별로 소스 코드 저장을 위한 폴더(200)를 포함할 수 있다. 또한, 소스저장소서버(110)에서 복수의 모바일 애플리케이션이 개발되는 경우에, 소스저장소서버(110)는 모바일 애플리케이션별로 소스 코드 저장을 위한 폴더(200)를 포함할 수 있다. 즉, 복수의 운영체제에 대해 복수의 애플리케이션 개발이 이루어지는 경우에, 소스저장소서버(110)는 모바일 운영체제 및 모바일 애플리케이션 종류별로 폴더를 포함할 수 있다. 다른 실시 예로, 소스코드와 함께 저장된 태그에 모바일 운영체제에 대한 정보가 함께 포함되어 있을 수 있다.
도 3은 본 발명의 실시 예에 따른 관리자서버의 키 정보 관리 방법의 일 예를 도시한 도면이다.
도 3을 참조하면, 인터넷 접속이 가능한 인터넷 단말(360)은 각 모바일 운영체제 서버(350,352)에 접속하여 키 정보를 수신한다. 예를 들어, 인터넷 단말(360)은 'iOS'의 운영체제 서버로부터 프로비저닝 및 인증서파일을 포함하는 키 정보를 수신할 수 있다. 다른 실시 예로, 인터넷 단말(360)은 '안드로이드'의 운영체제 서버에 키스토어(keystore)를 등록할 수 있다.
키 정보는 여러 모바일 애플리케이션에 공동으로 사용되거나 하나의 모바일 애플리케이션에만 사용될 수 있다. 예를 들어, '안드로이드'의 키스토어와 'iOS'의 인증서파일은 여러 모바일 애플리케이션에 공동으로 사용될 수 있다. 그러나 'iOS'의 프로비저닝은 모바일 애플리케이션별로 사용될 수 있다. 또한, 키 정보는 유효기간이 존재할 수 있다. 예를 들어, 'iOS'의 프로비저닝은 1년마다 갱신되고, 'iOS'의 인증서파일은 3년마다 갱신될 수 있다.
사용자(회사 또는 개인)는 각 모바일 운영체제 서버(350,352)에 가입하고 로그인하여 키 정보를 수신할 수 있다. 키 정보는 모바일 애플리케이션의 테스트 등을 위한 운영용과 모바일 애플리케이션의 배포를 위한 개발용으로 구분될 수 있다. 이 외에도 실시 예에 따라 키 정보는 다양한 용도로 구분될 수 있다. 사용자는 모바일 운영체제 서버에 가입시 운영용 키 정보의 발급을 위한 계정 또는 개발용 키 정보의 발급을 위한 계정을 각각 발급받을 수 있다. 따라서 사용자가 인터넷 단말(360)을 통해 운영용 키 정보의 발급을 위한 계정으로 모바일 운영체제 서버(350,352)에 접속하면, 운영용 키 정보를 제공받을 수 있다.
인터넷 단말(360)이 수신한 키 정보는 오프라인 저장매체(370)(예를 들어, USB 등)에 저장된다. 관리자서버(120)는 외부 인터넷과 연결되어 있지 않으므로, 오프라인 저장매체(370)를 통해 키 정보를 등록받아 저장한다. 즉, 관리자가 저장매체(370)를 직접 관리자서버(120)에 연결하여 키 정보(310,312)를 등록할 수 있다.
관리자서버(120)는 모바일 운영체제(300,302)별로 키 정보(310,312)를 저장하고 관리할 수 있다. 모바일 운영체제별 키 정보(310,312)는 앞서 살핀 바와 같이 운영용과 개발용으로 구분될 수 있다. 모바일 애플리케이션별로 서로 다른 키 정보가 발급되는 경우에, 관리자서버(120)는 모바일 운영체제-모바일 애플리케이션별로 키 정보를 저장하고 관리할 수 있다.
관리자서버(120)는 도 2에서 살핀 소스저장소서버(110)의 기 지정된 폴더로부터 소스코드를 수신하고, 소스코드의 빌드에 사용될 모바일 운영체제의 키 정보(운영용 또는 개발용)를 파악한다. 관리자서버(120)는 모바일 운영체제별로 기 지정된 소스저장소서버(110)의 폴더 또는 소스코드에 태깅된 정보를 통해 어떤 모바일 운영체제의 키 정보가 필요한지 파악할 수 있다. 키 정보가 모바일 애플리케이션별로 존재하는 경우에, 관리자서버(120)는 모바일 애플리케이션별로 기 지정된 소스저장소서버(110)의 폴더 또는 소스코드에 태깅된 모바일 애플리케이션 정보를 통해 어떤 모바일 애플리케이션의 키 정보가 필요한지 파악할 수 있다.
관리자서버(120)는 사용자 인터페이스를 통해 관리자로부터 테스트용 또는 배포용 빌드파일의 생성 여부를 입력받거나, 개발자(102,104)로부터 빌드파일의 용도를 입력받을 수 있다. 관리자서버(120)는 용도에 맞는 키 정보(운영용 또는 개발용)를 파악하여 빌드서버(130)에 제공할 수 있다.
도 4는 본 발명의 실시 예에 따른 관리자서버의 빌드 정보 관리 방법의 일 예를 도시한 도면이다.
도 4를 참조하면, 인터넷 단말(460)은 각 모바일 운영체제 서버(450,452)에 접속하여 빌드에 필요한 정보(이하, 빌드용 데이터)를 수신한다. 인터넷 단말(460)은 필요할 때마다 또는 일정 주기로 모바일 운영체제 서버에 접속하여 빌드용 데이터(예를 들어, 라이브러리)를 패치할 수 있다. 예를 들어, '안드로이드' 또는 'iOS'의 모바일 운영체제를 위한 소스코드를 컴파일할 때 필요한 빌드용 데이터를 각 모바일 운영체제 서버(450,452)로부터 미리 수신할 수 있다.
인터넷 단말(460)은 각 모바일 운영체제 서버(450,452)로부터 수신한 빌드용 데이터를 오프라인 저장매체(470)에 저장한다. 관리자서버(120)는 직접 인터넷에 연결되어 있지 않으며, 오프라인 저장매체(470)를 통해 빌드용 데이터를 수신하고 이를 라이브러리저장소서버(140)에 등록한다. 즉, 관리자는 관리자서버(120)가 제공하는 사용자 인터페이스를 통해 저장매체(470)에 저장된 빌드용 데이터를 라이브러리저장소서버(140)에 등록할 수 있다. 라이브러리저장소서버(140)는 빌드서버(130)에게 컴파일에 필요한 정보를 제공하기 위하여, maven서버 등으로 구현될 수 있다.
다른 실시 예로, 라이브러리 서버는 DMZ 구간에 위치한 중계서버를 통해 외부 인터넷망으로부터 빌드용 데이터(예를 들어, 라이브러리)를 수신하여 저장할 수 있다.
도 5는 본 발명의 실시 예에 따른 빌드서버가 빌드파일을 생성하는 방법의 일 예를 도시한 도면이다.
도 5를 참조하면, 빌드서버(130)는 관리자서버(120)로부터 소스코드(500), 키 정보(510) 등을 수신하면 이를 기초로 빌드파일(520)을 생성한다. 종래 '안드로이드'나 'iOS' 등의 회사가 제공하는 SDK만으로는 인터넷 접속이 없으면 빌드파일 생성이 불가능하므로, 본 실시 예에서 빌드서버(130)는 종래의 SDK를 그대로 이용하지 않고, 라이브러리저장소서버(140) 등에 접속하여 필요한 정보를 가져올 수 있도록 별도의 스크립트 또는 콘솔(console) 명령을 통해 빌드파일(520)을 생성한다.
빌드서버(130)는 인터넷에 연결되어 있지 않아 모바일 운영체제 서버에 직접 접속할 수 없으며, 빌드용 데이터가 저장된 라이브러리저장소서버(140)에 접속하여 빌드파일을 생성한다. 빌드서버(130)는 관리자서버(120)의 요청에 따라 다양한 다양한 종류의 모바일 운영체제에 대한 빌드파일을 생성할 수 있다. 예를 들어, 빌드서버는 '안드로이드'의 키 정보와 소스 코드를 수신하면, '안드로이드'용 빌드파일을 생성하고, 'iOS'의 키 정보와 소스 코드를 수신하면, 'iOS'용 빌드파일을 생성한다.
도 6은 본 발명의 실시 예에 따른 형상관리서버에 빌드파일을 전송하는 방법의 일 예를 도시한 도면이다.
도 6을 참조하면, 관리자서버(120)는 에이전트 데몬(600)을 포함한다. 에이전트 데몬(600)은 형상관리서버(150)로부터 리스트 요청이 있으면 생성된 빌드파일 리스트를 형상관리서버(150)에 제공한다. 형상관리서버(150)가 리스트를 통해 특정 빌드파일을 요청하면, 에이전트 데몬(600)은 해당하는 빌드파일을 형상관리서버(150)에 제공한다.
형상관리서버(150)는 빌드파일의 버전정보 등의 형상 정보를 저장 관리한다. 또한 형상관리서버(150)는 앱스토어(170) 등에 등록된 모바일 애플리케이션의 버전정보를 확인하여 모바일 애플리케이션이 올바르게 등록되었는지 확인할 수 있다.
도 7은 본 발명의 실시 예에 따른 모바일 통합 빌드 방법의 일 예를 도시한 도면이다.
도 1 및 도 7을 함께 참조하면, 소스저장소서버(110)는 적어도 하나 이상의 개발자가 개발한 소스 코드를 기 지정된 폴더에 버전 정보와 함께 저장한다(S700). 관리자서버(120)는 소스저장소서버(110)의 폴더에 저장된 소스코드 중 빌드되지 않은 소스코드를 수신하고(S710), 해당 소스코드를 위한 모바일 운영체제의 키 정보를 파악한다(S720). 그리고 관리자서버(120)는 소스코드와 키 정보를 빌드서버(130)에 제공한다(S730).
빌드서버(130)는 관리자서버(120)로부터 전달받은 소스코드를 컴파일하고, 키정보로 서명하여 빌드파일을 생성한다(S740). 빌드서버(130)는 컴파일에 필요한 빌드용 데이터를 직접 인터넷에 접속하여 다운로드하지 않고, 별도로 구축된 라이브러리저장소서버(140)를 통해 제공받는다.
관리자서버(120)는 빌드서버(130)에 의해 생성된 빌드파일을 형상관리서버(150)에 등록한다(S760). 형상관리서버(150)는 빌드파일을 앱스토어(170) 등에 등록한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (9)

  1. 인터넷과 연결되지 않은 오프라인에서 모바일 애플리케이션을 위한 빌드를 수행하는 모바일 통합 빌드시스템에 있어서,
    적어도 하나 이상의 개발자에게 애플리케이션 개발환경을 제공하는 소스저장소서버;
    상기 소스저장소서버로부터 소스 코드를 수신하고, 모바일 운영체제에 따른 키 정보를 파악하는 관리자서버;
    모바일 운영체제별 빌드시 필요한 라이브러리 정보를 포함하는 라이브러리저장소서버; 및
    상기 소스 코드와 상기 키 정보를 상기 관리자서버로부터 수신하고, 상기 라이브러리저장소서버를 이용하여 컴파일하고 상기 키 정보를 이용하여 서명하여 빌드파일을 생성하는 빌드서버;를 포함하고,
    상기 관리자서버는 상기 빌드서버에 의해 생성된 빌드파일을 버전정보를 관리하는 형상관리서버를 통해 앱스토어에 등록하고,
    상기 관리자서버는 모바일 애플리케이션의 테스트를 위한 운용용 키 정보와 모바일 애플리케이션의 배포를 위한 개발용 키 정보를 모바일 운영체제별로 구분하여 저장하고,
    상기 관리자서버는 관리자 또는 개발자로부터 입력받은 소스 코드의 용도에 따라 운용용 키 정보 또는 개발용 키 정보를 상기 빌드서버로 제공하고,
    상기 관리자서버는 컴파일 과정에서 모바일 운영체제 서버로부터 수신이 필요한 모바일 운영체제별 라이브러리 정보를 오프라인 저장매체를 통해 수신하고, 수신한 라이브러리 정보를 상기 라이브러리저장소서버에 등록하고, 모바일 운영체제 서버로부터 발급받은 키 정보를 오프라인 저장매체를 통해 등록받아 저장하고,
    인터넷에 연결되지 않은 상기 빌드서버는 컴파일할 때 모바일 운영체제 서버로부터 수신이 필요한 라이브러리 정보를 모바일 운영체제 서버가 아닌 상기 라이브러리저장소서버로부터 수신할 수 있는 스크립트 또는 콘솔 명령을 통해 빌드파일을 생성하는 것을 특징으로 하는 모바일 통합 빌드시스템.
  2. 제 1항에 있어서,
    상기 소스저장소서버는, 기 지정된 폴더에 버전 정보가 태깅된 소스 코드를 저장하고,
    상기 관리자서버는, 상기 폴더에서 최신 버전의 소스 코드를 수신하는 것을 특징으로 하는 모바일 통합 빌드시스템.
  3. 삭제
  4. 제 1항에 있어서, 상기 관리자서버는,
    버전정보를 포함하는 빌드파일의 리스트를 상기 형상관리서버로 전송하고, 상기 형상관리서버로부터 상기 리스트 중 어느 하나의 빌드파일 요청을 수신하면 해당하는 빌드파일을 상기 형상관리서버에 전송하는 과정을 에이전트 데몬을 통해 수행하는 것을 특징으로 하는 모바일 통합 빌드시스템.
  5. 인터넷과 연결되지 않은 오프라인에서 모바일 빌드를 수행하기 위한 관리자서버의 모바일 통합 빌드 방법에 있어서,
    소스저장소서버로부터 소스 코드를 수신하면, 모바일 운영체제에 따른 키 정보를 파악하는 단계;
    상기 소스 코드와 상기 키 정보를 빌드서버로 전송하고, 상기 빌드서버에 의해 컴파일되고 상기 키 정보로 서명된 빌드파일을 수신하는 단계; 및
    상기 빌드파일을 버전정보를 관리하는 형상관리서버에 등록하는 단계;를 포함하고,
    상기 관리자서버는 모바일 애플리케이션 테스트를 위한 운용용 키 정보와 모바일 애플리케이션의 배표를 위한 개발용 키 정보를 모바일 운영체제별로 구분하여 저장하고,
    상기 관리자서버는 관리자 또는 개발자로부터 입력받은 소스 코드의 용도에 따라 운용용 키 정보 또는 개발용 키 정보를 상기 빌드서버로 제공하고,
    상기 관리자서버는 컴파일 과정에서 모바일 운영체제 서버로부터 수신이 필요한 모바일 운영체제별 라이브러리 정보를 오프라인 저장매체를 통해 수신하고, 수신한 빌드용 라이브러리 정보를 라이브러리저장소서버에 등록하고, 모바일 운영체제별 서버로부터 발급받은 키 정보를 오프라인 저장매체를 통해 등록받아 저장하고,
    인터넷에 연결되지 않은 상기 빌드서버는 컴파일할 때 모바일 운영체제 서버로부터 수신이 필요한 라이브러리 정보를 모바일 운영체제 서버가 아닌 상기 라이브러리저장소서버로부터 수신할 수 있는 스크립트 또는 콘솔 명령을 통해 빌드파일을 생성하는 것을 특징으로 하는 모바일 통합 빌드 방법.
  6. 제 5항에 있어서, 상기 소스 코드를 수신하는 단계는,
    상기 소스저장소서버의 기 지정된 폴더에 버전 정보와 함께 저장된 소스 코드를 수신하는 단계;를 포함하는 것을 특징으로 하는 모바일 통합 빌드 방법.
  7. 삭제
  8. 제 5항에 있어서, 상기 등록하는 단계는,
    버전정보를 포함하는 빌드파일의 리스트를 상기 형상관리서버로 전송하고, 상기 형상관리서버로부터 상기 리스트 중 어느 하나의 빌드파일 요청을 수신하면 해당하는 빌드파일을 상기 형상관리서버에 전송하는 단계;를 포함하는 것을 특징으로 하는 모바일 통합 빌드 방법.
  9. 제 5항 내지 제 6항, 제 8항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020180133839A 2018-11-02 2018-11-02 모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템 KR102009405B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180133839A KR102009405B1 (ko) 2018-11-02 2018-11-02 모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180133839A KR102009405B1 (ko) 2018-11-02 2018-11-02 모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR102009405B1 true KR102009405B1 (ko) 2019-10-21

Family

ID=68460044

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180133839A KR102009405B1 (ko) 2018-11-02 2018-11-02 모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템

Country Status (1)

Country Link
KR (1) KR102009405B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102109461B1 (ko) * 2020-02-17 2020-05-12 주식회사 제이윈파트너스 마이크로 서비스 아키텍처(msa) 기반의 프로젝트 자동화 지원 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150124530A (ko) * 2014-04-28 2015-11-06 주식회사 다빈치소프트웨어연구소 어플리케이션 빌드 시스템 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체
KR101599470B1 (ko) 2014-06-25 2016-03-14 주식회사 포워드벤처스 소스 배포 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150124530A (ko) * 2014-04-28 2015-11-06 주식회사 다빈치소프트웨어연구소 어플리케이션 빌드 시스템 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체
KR101599470B1 (ko) 2014-06-25 2016-03-14 주식회사 포워드벤처스 소스 배포 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hans-Christoph Steiner, "Building a Signing Server"(2017.12.)* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102109461B1 (ko) * 2020-02-17 2020-05-12 주식회사 제이윈파트너스 마이크로 서비스 아키텍처(msa) 기반의 프로젝트 자동화 지원 시스템

Similar Documents

Publication Publication Date Title
CN110297689B (zh) 智能合约执行方法、装置、设备及介质
CN107483221B (zh) 一种跨应用问题排查方法、装置及系统
US20160378989A1 (en) Apparatus and method for monitoring android platform-based application
CN103329093A (zh) 更新软件
US10216510B2 (en) Silent upgrade of software with dependencies
US20190116036A1 (en) System and method for building a blockchain application
CN113256296B (zh) 智能合约执行方法、系统、装置和存储介质
CN110070360B (zh) 一种事务请求处理方法、装置、设备及存储介质
CN105760761A (zh) 软件行为分析方法和装置
US11868465B2 (en) Binary image stack cookie protection
KR102009405B1 (ko) 모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템
Mustafa et al. Understanding the implemented access control policy of Android system services with slicing and extended static checking
US11783049B2 (en) Automated code analysis tool
KR20120078017A (ko) 클라우드 컴퓨팅 기반 악성코드 분석 지원 시스템과 이를 사용하는 분석가 단말
CN113824748B (zh) 一种资产特征主动探测对抗方法、装置、电子设备及介质
Jiang et al. A security sandbox approach of android based on hook mechanism
CN113420288B (zh) 一种容器镜像敏感信息检测系统及方法
CN114070645A (zh) 一种网站页面访问权限管理方法及系统
US9607135B2 (en) Asset protection based on redundantly associated trusted entitlement verification
CN104331827B (zh) 交易配置生成方法及交易匹配器
JP2023542527A (ja) ヘテロジニアス暗号化を通したソフトウェア・アクセス
Bellizzi et al. Using Infrastructure-Based Agents to Enhance Forensic Logging of Third-Party Applications.
CN112596705B (zh) 项目版本控制方法、装置、电子设备及存储介质
US11750660B2 (en) Dynamically updating rules for detecting compromised devices
CN115134143B (zh) 一种全域物联网设备认证方法、装置及存储介质