KR20240024573A - 코드 정보를 제공하는 방법 및 이를 지원하는 전자 장치 - Google Patents

코드 정보를 제공하는 방법 및 이를 지원하는 전자 장치 Download PDF

Info

Publication number
KR20240024573A
KR20240024573A KR1020220102734A KR20220102734A KR20240024573A KR 20240024573 A KR20240024573 A KR 20240024573A KR 1020220102734 A KR1020220102734 A KR 1020220102734A KR 20220102734 A KR20220102734 A KR 20220102734A KR 20240024573 A KR20240024573 A KR 20240024573A
Authority
KR
South Korea
Prior art keywords
information
code
build
task
providing
Prior art date
Application number
KR1020220102734A
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 KR1020220102734A priority Critical patent/KR20240024573A/ko
Priority to PCT/KR2022/015077 priority patent/WO2024038951A1/ko
Publication of KR20240024573A publication Critical patent/KR20240024573A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • 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/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • G06F8/355Round-trip engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)

Abstract

전자 장치의 코드 관련 정보 제공 방법에 있어서, 서버에서 수행되는 제1코드(code) 정보에 관한 빌드(build) 작업의 개시에 대응하여, 상기 서버로부터 상기 빌드 작업에 대한 정보 및 상기 제1코드 정보에 대응하는 브랜치(branch) 정보를 포함하는 제1정보를 획득하는 단계; 상기 빌드 작업 종료에 대응하여 상기 서버로부터 상기 빌드 작업의 결과에 관한 정보를 적어도 포함하는 제2정보를 획득하는 단계; 및 상기 제1정보 및 상기 제2정보에 기반하여 생성된 제1항목을 포함하는 빌드 작업 정보 목록을 작업자 장치에 제공하는 단계를 포함하는 코드 관련 정보 제공 방법이 개시된다.

Description

코드 정보를 제공하는 방법 및 이를 지원하는 전자 장치{METHOD FOR PROVIDING CODE INFORMATION AND ELECTRONIC APPARATUS SUPPORTING THEREOF}
본 발명은 코드 관련 정보를 제공하는 전자 장치 및 그 방법에 관한 것으로서, 구체적으로는 작업자가 작성하여 빌드(build)하는 코드(code)에 관련된 정보를 제공하는 전자 장치 및 그 방법에 관한 것이다.
정보 통신 기술의 융합으로 이루어지는 차세대 산업 혁명인 4차 산업 혁명이 핵심 화두로 떠오른 이후, 소프트웨어 기술의 중요성이 대두되었다. 소프트웨어 기술은 유비쿼터스 컴퓨팅, 사물 인터넷, 자율 주행 자동차, 인공지능, 로봇, 블록 체인 등 다양한 분야에서 이용될 수 있으며, 시장의 목표 및 사용자의 요구를 반영하여 소프트웨어 제품을 구현하는 추세에 따라 다수의 개발자들이 투입되는 개발 프로젝트가 성행하고 있다.
다수의 개발자들이 투입되는 개발 프로젝트는 개발자 개인별로 할당된 작업에 대한 결과물을 병합하여 하나의 프로젝트를 완성한다. 그러나 개발 프로젝트의 규모가 큰 경우, 각 개발자에 의하여 작업된 소스 코드를 프로젝트에 병합하면서 서로 다른 개발자에 의하여 작업된 소스 코드가 병합 과정에서 충돌을 일으키거나 빌드에 실패하는 등 문제가 발생할 수 있고, 이 경우 어떤 개발자의 소스 코드에서 야기된 문제인지 식별하기 어렵다. 체계적으로 다수 개발자에 의한 프로젝트의 생산성을 향상시키기 위한 다양한 방안들이 제안되고 있다.
관련하여, KR1020210147354A 및 KR1020210090575A 등의 선행문헌들을 참조할 수 있다.
본 개시는 상술한 문제점을 해결하기 위하여, 작업자에게 코드 정보를 제공하기 위한 전자 장치 및 그 방법을 제공하는 것을 목적으로 한다.
구체적으로, 다수의 작업자들에 의하여 수행되는 프로젝트와 관련된 작업 과정에서, 프로젝트와 관련된 코드를 각 작업자가 각자의 브랜치(branch)에서 수정 및 업데이트를 수행하게 되는데, 이에 따라 복수의 작업자가 동일한 프로젝트의 코드를 수정함에 따라 발생하는 변경 사항에 대하여 체계적으로 추적(tracking) 할 수 있는 방법 및 전자 장치를 제공하는 것을 목적으로 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 실시 예들은, 코드 관련 정보를 제공하는 방법 및 이를 지원하는 전자 장치를 제공할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치의 코드 관련 정보 제공 방법은, 서버에서 수행되는 제1코드(code) 정보에 관한 빌드(build) 작업의 개시에 대응하여, 상기 서버로부터 상기 빌드 작업에 대한 정보 및 상기 제1코드 정보에 대응하는 브랜치(branch) 정보를 포함하는 제1정보를 획득하는 단계; 상기 빌드 작업 종료에 대응하여 상기 서버로부터 상기 빌드 작업의 결과에 관한 정보를 적어도 포함하는 제2정보를 획득하는 단계; 및 상기 제1정보 및 상기 제2정보에 기반하여 생성된 제1항목을 포함하는 빌드 작업 정보 목록을 작업자 장치에 제공하는 단계를 포함할 수 있다.
실시예에서, 상기 제1정보는 상기 빌드 작업을 상기 서버에 요청한 작업자 정보, 상기 제1코드 정보에 대응하는 브랜치(branch) 식별 정보, 상기 제1코드 정보에 대응하는 커밋(commit) 정보 및 상기 제1코드 정보에 대응하는 태스크 식별 정보 가운데 적어도 일부를 더 포함할 수 있다.
실시예에서, 상기 브랜치 식별 정보는, 하나 이상의 태스크(task) 식별 정보와 대응하며, 상기 태스크 식별 정보는, 하나 이상의 브랜치 식별 정보와 대응할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 상기 브랜치 식별 정보에 기반하여 확인된, 상기 제1코드 정보에 대응하는 브랜치와 대응하는, 하나 이상의 태스크에 관한 정보를 제공하는 단계를 더 포함할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 상기 태스크 식별 정보에 기반하여 확인된, 상기 제1코드 정보에 대응하는 태스크와 대응하는, 하나 이상의 브랜치에 관한 정보를 제공하는 단계를 더 포함할 수 있다.
실시예에서, 상기 제2정보는, 상기 빌드 작업에 대응하여 서버가 생성한 패키지의 용량 정보, 상기 빌드 작업에 대응하는 패키지의 버전 정보 및 상기 빌드 작업에 대응하는 소요 시간 정보 가운데 적어도 일부를 더 포함할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 상기 제2정보에 기반하여 확인된 상기 소요 시간 정보 및 상기 빌드 작업 정보 목록에 기반하여 확인된 하나 이상의 빌드 작업에 대한 소요 시간에 대한 정보에 기반하여 상기 빌드 작업의 이상 여부를 확인하는 단계; 및 상기 브랜치 정보에 기반하여 확인된 하나 이상의 작업자 정보 및 상기 빌드 이상 여부에 관한 정보에 기반하여, 상기 하나 이상의 작업자에게 상기 이상 여부에 관한 정보를 제공하는 단계를 더 포함할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 복수의 빌드 작업 각각에 대응하는 소요 시간 정보, 상기 복수의 빌드 작업 각각에 대응하는 패키지의 버전 정보에 기반하여, 각 버전 정보에 대응하는 빌드 소요 시간에 관한 정보를 획득하고, 상기 각 버전 정보에 대응하는 빌드 소요 시간에 관한 정보 및 상기 제2정보에 기반하여 확인된 상기 소요 시간 정보에 기반하여 상기 제1코드 정보에 관한 빌드 작업의 이상 여부를 확인하는 단계를 더 포함할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 상기 제2정보에 기반하여 확인된 상기 용량 정보 및 상기 빌드 작업 정보 목록에 기반하여 확인된 하나 이상의 빌드 작업에 대한 패키지의 용량 정보에 기반하여 상기 빌드 작업의 이상 여부를 확인하는 단계; 및 상기 브랜치 정보에 기반하여 확인된 하나 이상의 작업자 정보 및 상기 빌드 이상 여부에 관한 정보에 기반하여, 상기 하나 이상의 작업자에게 상기 이상 여부에 관한 정보를 제공하는 단계를 더 포함할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 복수의 빌드 작업 각각에 대응하는 용량 정보, 상기 복수의 빌드 작업 각각에 대응하는 패키지의 버전 정보에 기반하여, 각 버전 정보에 대응하는 용량에 관한 정보를 획득하고, 상기 각 버전 정보에 대응하는 용량에 관한 정보 및 상기 제2정보에 기반하여 확인된 상기 용량 정보에 기반하여 상기 제1코드 정보에 관한 빌드 작업의 이상 여부를 확인하는 단계를 더 포함할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 상기 브랜치 정보에 기반하여 확인된 하나 이상의 작업자 정보를 제공하는 단계를 더 포함할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 상기 제2정보의 적어도 일부를 포함하되, 상기 빌드 작업의 결과에 관한 정보를 적어도 포함하는, 결과 메시지를, 상기 브랜치 정보에 기반하여 확인된 하나 이상의 작업자 정보에 대응하는 작업자 장치에 제공하는 단계를 더 포함할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 상기 태스크 식별 정보에 기반하여 확인된 상기 제1코드 정보에 대응하는 태스크의 진행 상태에 관한 태스크 상태 정보를 제공하는 단계를 더 포함할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 상기 작업자 장치로부터 수신한 제1항목에 대응하는 코드 정보 요청에 대응하여 작업자 장치로 상기 제1코드 정보를 제공하는 단계를 더 포함할 수 있다.
실시예에서, 상기 제1항목은, 상기 빌드 작업에 대응하여 서버가 생성한, 상기 제1코드 정보를 적어도 포함하는 패키지의 코드 정보에 관한 경로 정보를 포함하고, 상기 코드 관련 정보 제공 방법은, 상기 경로 정보에 기반하여, 상기 패키지의 코드 정보를 상기 작업자 장치에 제공하는 단계를 더 포함할 수 있다.
실시예에서, 상기 코드 관련 정보 제공 방법은, 브랜치 식별 정보 및 하나 이상의 작업자 정보를 획득하는 단계; 및 작업자 장치로부터 수신한 요청에 기반하여 상기 브랜치 식별 정보 및 상기 하나 이상의 작업자 정보를 매핑한 브랜치 정보를 포함하는 브랜치 목록을 생성하는 단계를 더 포함할 수 있다.
실시예에서, 상기 빌드 작업에 대응하여 서버가 생성한, 상기 제1코드 정보를 적어도 포함하는 패키지의 코드 정보는, 상기 생성된 패키지의 코드 정보에 대응하여 A/B 테스트를 수행하기 위한 소스 코드를 포함하고, 상기 코드 관련 정보 제공 방법은, 상기 코드 관련 정보 제공 방법은, 상기 제1정보에 기반하여 확인되는 상기 A/B 테스트의 결과 정보를 제공하는 단계를 더 포함할 수 있다.
본 문서에 개시되는 다양한 실시예들에 따른 전자 장치는, 메모리; 트랜시버; 및 프로세서를 포함하고, 상기 프로세서는, 서버에서 수행되는, 제1코드(code) 정보에 관한 빌드(build) 작업의 개시에 대응하여, 상기 서버로부터 상기 빌드 작업에 대한 정보 및 상기 제1코드 정보에 대응하는 브랜치(branch) 정보를 포함하는 제1정보를 획득하고, 상기 빌드 작업 종료에 대응하여 상기 서버로부터 상기 빌드 작업의 결과에 관한 정보를 적어도 포함하는 제2정보를 획득하고, 상기 제1정보 및 상기 제2정보에 기반하여 생성된 제1항목을 포함하는 빌드 작업 정보 목록을 작업자 장치에 제공하도록 설정될 수 있다.
본 발명의 방법에 따르면, 코드 관련 정보를 제공하는 방법 및 전자 장치는 프로젝트와 관련된 복수의 프로그램 코드들에 대한 빌드 작업에 관련된 정보를 확인하고, 이를 작업자에게 제공함으로써, 빌드 작업에 관한 상황을 통지하여 프로젝트의 생산성을 향상시킬 수 있다.
또한, 본 개시에 따른 코드 정보 제공을 위한 전자 장치 및 그 방법은 프로젝트와 관련된 작업 현황을 작업자에게 제공함으로써, 프로젝트 진행 상황에 대한 정보를 작업자에게 직관적으로 제공할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 다양한 실시 예들에 따른 전자 장치가 코드 관련 정보를 제공하는 방법이 구현될 수 있는 코드 관련 정보 제공 시스템(100)을 설명하기 위한 도면이다.
도 2는 다양한 실시 예들에 따른 전자 장치, 작업자 장치 및 서버의 구성을 도시한 도면이다.
도 3은 다양한 실시 예들에 따른 코드 정보가 제공되는 프로젝트의 자료 구조를 나타내기 위한 도면이다.
도 4는 다양한 실시 예들에 따른 전자 장치가 코드 관련 정보를 제공하는 동작흐름도이다.
도 5는 다양한 실시 예들에 따른 전자 장치가 제공하는 빌드 작업 정보 목록을 예시적으로 도시한 것이다.
도 6은 다양한 실시 예들에 따른 전자 장치가 제공하는 빌드 작업과 관련된 수치 정보의 일 예이다.
도 7은 다양한 실시 예들에 따른 전자 장치가 제공하는 빌드 작업과 관련된 수치 정보의 일 예이다.
이하의 실시 예들은 다양한 실시 예들의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및 특징들을 결합하여 다양한 실시 예들을 구성할 수도 있다. 다양한 실시 예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시 예의 일부 구성이나 특징은 다른 실시 예에 포함될 수 있고, 또는 다른 실시 예의 대응하는 구성 또는 특징과 교체될 수 있다.
도면에 대한 설명에서, 다양한 실시 예들의 요지를 흐릴 수 있는 절차 또는 단계 등은 기술하지 않았으며, 당해 기술분야에서 통상의 지식을 가진 자의 수준에서 이해할 수 있을 정도의 절차 또는 단계는 또한 기술하지 아니하였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 다양한 실시 예들을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
이하, 다양한 실시 예들에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 다양한 실시 예들의 예시적인 실시형태를 설명하고자 하는 것이며, 유일한 실시형태를 나타내고자 하는 것이 아니다.
또한, 다양한 실시 예들에서 사용되는 특정(特定) 용어들은 다양한 실시 예들의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 다양한 실시 예들의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 다양한 실시 예들에 따른 전자 장치가 코드 관련 정보를 제공하는 방법이 구현될 수 있는 코드 정보 제공 시스템(100)을 설명하기 위한 도면이다.
도 1을 참조하면, 다양한 실시 예들에 따른 코드 정보 제공 시스템(100)은 다양한 종류의 장치들에 구현될 수 있다. 예를 들어, 코드 정보 제공 시스템(100)은 전자 장치(101), 작업자 장치(102) 및 서버(103)에 구현될 수 있다. 달리 말해, 전자 장치(101), 작업자 장치(102) 및 서버(103)는 각각의 장치에 구현된 코드 정보 제공 시스템(100)을 기반으로, 본 개시의 다양한 실시 예들에 따른 동작을 수행할 수 있다. 한편, 다양한 실시 예들에 따른 코드 정보 제공 시스템(100)은, 상기 도 1에 도시된 바에 국한되지 않고, 더 다양한 전자 장치와 서버들에 구현될 수도 있을 것이다.
다양한 실시 예들에 따른 전자 장치(101)는, 하나 이상의 작업자 장치(102)(예: 제1작업자 장치(102_1), 제2작업자 장치(102_2), ?? , 제n작업자 장치(102_n)) 및/또는 서버(103)와 무선 및 유선 통신을 수행하며, 대단위의 저장 용량을 갖는 스토리지를 포함하는 장치일 수 있다. 예를 들어, 전자 장치(101)는 하나 이상의 작업자 장치(102) 및/또는 서버(103)와 연결된 클라우드 디바이스(Cloud device)일 수 있다.
다양한 실시 예들에 따른 작업자 장치(102)는, 데스크탑 피시, 태블릿 피시, 모바일 단말 등의 개인 사용자에 의해 이용될 수 있는 장치일 수 있다. 이외에도 유사한 기능을 수행하는 다른 전자 장치들이 작업자 장치(102)로 이용될 수 있다.
다양한 실시 예들에 따른 서버(103)는, 하나 이상의 작업자 장치(102)(예: 제1작업자 장치(102_1), 제2작업자 장치(102_2), ?? , 제n작업자 장치(102_n)) 및/또는 전자 장치(101)와 무선 및 유선 통신을 수행하며, 대단위의 저장 용량을 갖는 스토리지를 포함하는 장치일 수 있다. 예를 들어, 전자 장치(101)는 하나 이상의 작업자 장치(102) 및/또는 전자 장치(101)와 연결된 클라우드 디바이스(Cloud device)일 수 있다.
다양한 실시 예들에 따른 코드 정보 제공 시스템(100)은 동작을 위한 다양한 모듈들을 포함할 수 있다. 코드 정보 제공 시스템(100)에 포함된 모듈들은 코드 정보 제공 시스템(100)이 구현되는(또는, 물리적 장치에 포함되는) 물리적 장치(예: 전자 장치(101))가 지정된 동작을 수행할 수 있도록 구현된 컴퓨터 코드 내지는 하나 이상의 인스트럭션 (instruction) 일 수 있다. 다시 말해, 코드 정보 제공 시스템(100)이 구현되는 물리적 장치는 복수 개의 모듈들을 컴퓨터 코드 형태로 메모리에 저장하고, 메모리에 저장된 복수 개의 모듈들이 실행되는 경우 복수 개의 모듈들은 물리적 장치가 복수 개의 모듈들에 대응하는 지정된 동작들을 수행하도록 할 수 있다.
실시 예에 따라, 코드 정보 제공 시스템(100)은 전자 장치(101), 서버 (103), 하나 이상의 작업자 장치(102) 및 그 외 외부 장치 중 적어도 일부 간의 정보 송수신을 지원하는 네트워크 망을 더 포함할 수 있다.
한편 실시 예 전반에서 전자 장치(101), 하나 이상의 작업자 장치(102), 및 서버(103)는 분리된 장치 및 서버로 언급되나 이는 논리적으로 나누어진 구조일 수 있으며, 하나의 장치 또는 서버에서 분리된 기능에 의해 구현될 수 있다. 예컨대, 작업자 장치(102) 및 서버(103) 중 적어도 일부는 전자 장치(101)에 포함되거나 전자 장치(101)와 결합되어 일체로서 구성될 수 있다. 다만, 이러한 경우에도 전자 장치(101), 작업자 장치(102) 및 서버(103) 간의 데이터 송수신에 의하여 수행되는 일련의 코드 정보 제공 방법은 유사하게 수행될 수 있다. 전자 장치(101)에 포함되거나 전자 장치(101)와 결합되어 일체로서 구성되는 장치의 경우, 전자 장치(101)와의 통신은 장치 내부에서 그 구성 요소들 간에(예컨대, 전자 장치(101)의 프로세서와) 데이터를 주고받는 과정으로 이해될 수 있다.
이하에서는 설명의 편의를 위하여 작업자 장치(102) 및 서버(103)가 전자 장치(101)와 별개의 장치 또는 서버로 존재하는 실시 예들을 설명하되, 이하의 설명은 작업자 장치(102) 및 서버(103) 중 적어도 일부가 전자 장치(101)에 포함되거나 전자 장치(101)와 결합되어 일체로서 구성되는 경우에도 준용될 수 있다.
일실시 예에 따르면, 전자 장치(101), 작업자 장치(102) 및 서버(103)는 네트워크 서버로 구현되는 다수의 컴퓨터 시스템 또는 컴퓨터 소프트웨어를 포함할 수 있다. 예를 들면, 전자 장치(101), 작업자 장치(102) 및 서버(103) 중 적어도 일부는 인트라넷 또는 인터넷과 같은 컴퓨터 네트워크를 통해 다른 네트워크 서버와 통신할 수 있는 하위 장치와 연결되어 작업 수행 요청을 접수하고, 그에 대한 작업을 수행하여 수행 결과를 제공하는 컴퓨터 시스템 및 컴퓨터 소프트웨어를 지칭할 수 있다. 이외에도, 전자 장치(101), 작업자 장치(102) 및 서버(103) 중 적어도 일부는 네트워크 서버 상에서 동작할 수 있는 일련의 응용 프로그램과, 내부에 구축되어 있는 각종 데이터베이스를 포함하는 광의의 개념으로 이해될 수 있다. 예컨대, 전자 장치(101), 작업자 장치(102) 및 서버(103) 중 적어도 일부는 도스(DOS), 윈도우(Windows), 리눅스(Linux), 유닉스(UNIX), 또는 맥OS(MacOS) 등의 운영 체제에 따라 다양하게 제공되는 네트워크 서버 프로그램을 이용하여 구현될 수 있다.
도 2는 다양한 실시 예들에 따른 전자 장치, 작업자 장치 및 서버의 구성을 도시한 도면이다.
도 2를 참조하면, 전자 장치(101), 하나 이상의 작업자 장치(102) 및 서버(103) 는 입/출력부(210), 통신부(220), 스토리지(230) 및 프로세서(240)를 포함할 수 있다.
입/출력부(210)는 사용자 입력을 받거나 또는 사용자에게 정보를 출력하는 각종 인터페이스나 연결 포트 등일 수 있다. 입/출력부(210)는 입력 모듈과 출력 모듈을 포함할 수 있는데, 입력 모듈은 사용자로부터 사용자 입력을 수신한다. 사용자 입력은 키 입력, 터치 입력, 음성 입력을 비롯한 다양한 형태로 이루어질 수 있다. 이러한 사용자 입력을 받을 수 있는 입력 모듈의 예로는 전통적인 형태의 키패드나 키보드, 마우스는 물론, 사용자의 터치를 감지하는 터치 센서, 음성 신호를 입력받는 마이크, 영상 인식을 통해 제스처 등을 인식하는 카메라, 사용자 접근을 감지하는 조도 센서나 적외선 센서 중 적어도 하나를 포함하는 근접 센서, 가속도 센서나 자이로 센서 등을 통해 사용자 동작을 인식하는 모션 센서 및 그 외의 다양한 형태의 사용자 입력을 감지하거나 입력받는 다양한 형태의 입력 수단이 있으며, 본 개시의 실시 예에 따른 입력 모듈은 위에 나열한 장치 중 적어도 하나를 포함할 수 있다. 여기서, 터치 센서는 디스플레이 패널에 부착되는 터치 패널이나 터치 필름을 통해 터치를 감지하는 압전식 또는 정전식 터치 센서, 광학적인 방식에 의해 터치를 감지하는 광학식 터치 센서 등으로 구현될 수 있다. 이외에도 입력 모듈은 자체적으로 사용자 입력을 감지하는 장치 대신 사용자 입력을 입력받는 외부의 입력 장치를 연결시키는 입력 인터페이스(USB 포트, PS/2 포트 등)의 형태로 구현될 수도 있다. 또 출력 모듈은 각종 정보를 출력할 수 있다. 출력 모듈은 영상을 출력하는 디스플레이, 소리를 출력하는 스피커, 진동을 발생시키는 햅틱 장치 및 그 외의 다양한 형태의 출력 수단 중 적어도 하나를 포함할 수 있다. 이외에도 출력 모듈은 상술한 개별 출력 수단을 연결시키는 포트 타입의 출력 인터페이스의 형태로 구현될 수도 있다.
일 예로, 디스플레이 형태의 출력 모듈은 텍스트, 정지 영상, 동영상을 디스플레이 할 수 있다. 디스플레이는 액정 디스플레이(LCD: Liquid Crystal Display), 발광 다이오드(LED: light emitting diode) 디스플레이, 유기 발광 다이오드(OLED: Organic Light Emitting Diode) 디스플레이, 평판 디스플레이(FPD: Flat Panel Display), 투명 디스플레이(transparent display), 곡면 디스플레이(Curved Display), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 홀로그래픽 디스플레이(holographic display), 프로젝터 및 그 외의 영상 출력 기능을 수행할 수 있는 다양한 형태의 장치 중 적어도 하나를 포함할 수 있다. 이러한 디스플레이는 입력 모듈의 터치 센서와 일체로 구성된 터치 디스플레이의 형태일 수도 있다.
통신부(220)는 다른 장치와 통신할 수 있다. 따라서, 전자 장치(101), 작업자 장치(102) 및 서버(103)는 통신부를 통해 다른 장치와 정보를 송수신할 수 있다. 예를 들어, 전자 장치(101), 작업자 장치(102) 및 서버(103)는 통신부를 이용해 상호 간 통신을 수행하거나, 기타 다른 장치와 통신을 수행할 수 있다.
여기서, 통신, 즉 데이터의 송수신은 유선 또는 무선으로 이루어질 수 있다. 이를 위해 통신부는 LAN(Local Area Network)를 통해 인터넷 등에 접속하는 유선 통신 모듈, 이동 통신 기지국을 거쳐 이동 통신 네트워크에 접속하여 데이터를 송수신하는 이동 통신 모듈, 와이파이(Wi-Fi) 같은 WLAN(Wireless Local Area Network) 계열의 통신 방식이나 블루투스(Bluetooth), 직비(Zigbee)와 같은 WPAN(Wireless Personal Area Network) 계열의 통신 방식을 이용하는 근거리 통신 모듈, GPS(Global Positioning System)과 같은 GNSS(Global Navigation Satellite System)을 이용하는 위성 통신 모듈 또는 이들의 조합으로 구성될 수 있다.
스토리지(230)는 각종 정보를 저장할 수 있다. 스토리지는 데이터를 임시적으로 또는 반영구적으로 저장할 수 있다. 예를 들어, 전자 장치(101)의 스토리지에는 전자 장치(101)를 구동하기 위한 운용 프로그램(OS: Operating System), 웹 사이트를 호스팅하기 위한 데이터나 점자 생성을 위한 프로그램 내지는 어플리케이션(예를 들어, 웹 어플리케이션)에 관한 데이터 등이 저장될 수 있다. 또, 스토리지는 상술한 바와 같이 모듈들을 컴퓨터 코드 형태로 저장할 수 있다.
스토리지(230)의 예로는 하드 디스크(HDD: Hard Disk Drive), SSD(Solid State Drive), 플래쉬 메모리(flash memory), 롬(ROM: Read-Only Memory), 램(RAM: Random Access Memory) 등이 있을 수 있다. 이러한 스토리지는 내장 타입 또는 탈부착 가능한 타입으로 제공될 수 있다.
프로세서(240)는 전자 장치(101), 작업자 장치(102) 및 서버(103)의 전반적인 동작을 제어한다. 이를 위해 프로세서(240)는 각종 정보의 연산 및 처리를 수행하고 전자 장치(101)의 구성요소들의 동작을 제어할 수 있다. 예를 들어, 프로세서(240)는 코드 관련 정보 제공을 위한 프로그램 내지 어플리케이션을 실행시킬 수 있을 것이다. 프로세서(240)는 하드웨어, 소프트웨어 또는 이들의 조합에 따라 컴퓨터나 이와 유사한 장치로 구현될 수 있다. 하드웨어적으로 프로세서(240)는 전기적인 신호를 처리하여 제어 기능을 수행하는 전자 회로 형태로 구현될 수 있으며, 소프트웨어적으로는 하드웨어적인 프로세서(240)를 구동시키는 프로그램 형태로 구현될 수 있다. 한편, 이하의 설명에서 특별한 언급이 없는 경우에는 전자 장치(101), 작업자 장치(102) 및 서버(103)의 동작은 프로세서(240)의 제어에 의해 수행되는 것으로 해석될 수 있다. 즉, 상술한 코드 정보 제공 시스템(100)에 구현되는 모듈들이 실행되는 경우, 모듈들은 프로세서(240)가 전자 장치(101), 작업자 장치(102) 및 서버(103)를 이하의 동작들을 수행하도록 제어하는 것으로 해석될 수 있다.
요약하면, 다양한 실시 예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 다양한 실시 예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 다양한 실시 예들에 따른 방법은 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 다양한 실시 예들에 따른 방법은 이하에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 예를 들어, 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 상기 프로세서 내부 또는 외부에 위치할 수 있으며, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고받을 수 있다.
이하에서는, 상기와 같은 기술적 사상에 기반하여 다양한 실시 예들에 대해 보다 상세히 설명한다. 이하에서 설명되는 다양한 실시 예들에 대해서는 앞서 설명한 내용들이 적용될 수 있다. 예를 들어, 이하에서 설명되는 다양한 실시 예들에서 정의되지 않은 동작, 기능, 용어 등은 앞서 설명한 내용들에 기반하여 수행되고 설명될 수 있다.
이하의 설명에서는 전자 장치(101)가 코드 관련 정보를 제공하는 동작을 수행함을 전제로 다양한 실시 예들에 대하여 설명하며, 다양한 실시 예들에 따르면, 전자 장치(101)는 코드 정보를 제공하는 동작과 관련된 정보를 작업자 장치(102) 및/또는 서버(103)와 송수신할 수 있다.
도 3은 다양한 실시 예들에 따른 코드 정보가 제공되는 프로젝트의 자료 구조를 나타내기 위한 도면이다.
도 3는 본 문서에 개시된 다양한 실시 예에 따라 코드 정보가 제공되는 프로젝트(300)의 자료 구조(30)를 나타내기 위한 도면이다. 도 3를 참조하면, 하나의 프로젝트(300)로부터 마스터 브랜치(master branch)(MB), 개발 브랜치(develop branch)(DB), 제1피처 브랜치(feature branch)(FB1) 및 제2피처 브랜치(FB2)가 파생될 수 있다. 다만, 도 3에 도시된 자료 구조(30)는 본 개시의 이해를 돕기 위한 일 예일 뿐, 본 개시의 실시 예에 따라 코드 정보가 제공되는 자료 구조(30)를 제한하는 것은 아니며, 자료 구조(30)는 프로젝트(300)의 목표에 따라 적응적으로 구축될 수 있다.
마스터 브랜치(MB)는 프로젝트(300)와 관련된 배포(release) 이력을 관리하기 위한 브랜치일 수 있으며, 배포 가능한 상태의 파일 세트를 관리할 수 있다. 도 3에는 제1마스터 파일 세트(310) 및 제2마스터 파일 세트(320)를 포함한 마스터 브랜치(MB)가 도시된 바, 제1마스터 파일 세트(310)로부터 구축되는 제1프로그램 또는 제2마스터 파일 세트(320)로부터 구축되는 제2프로그램이 배포될 수 있으며, 제2프로그램은 제1프로그램의 또 다른 버전일 수 있다. 제1마스터 파일 세트(310) 및 제2마스터 파일 세트(320)에 포함되는 복수의 파일들 각각은 제1내지 제n 작업자 장치(102_1, 102_2, …, 102_n)에 의하여 서버(103)로 커밋(commit)된 파일일 수 있다.
개발 브랜치(DB)는 프로젝트(300)와 관련된 다양한 기능 개발을 위한 브랜치들에 대한 병합을 수행하기 위한 브랜치일 수 있다. 디밸롭 브랜치(DB)와 관련된 파일 세트가 배포될 프로그램과 관련된 모든 기능을 포함하고, 버그가 수정되어 배포 가능한 안정적인 상태인 경우, 디밸롭 브랜치(DB)는 마스터 브랜치(MB)에 병합될 수 있다. 도 3의 제1내지 제3개발 파일 세트(311, 312, 313) 각각은 제2마스터 파일 세트(320)와 대응하는 프로그램과 관련된 다양한 기능 개발을 위한 복수의 파일들을 포함할 수 있으며, 실시 예에서, 제2개발 파일 세트(312)는 제1개발 파일 세트(311)로부터, 제3개발 파일 세트(313)는 제2개발 파일 세트(312) 업데이트된 버전의 파일 세트일 수 있거나, 제1내지 제3개발 파일 세트(311, 312, 313) 각각이 제2마스터 파일 세트(320)와 대응하는 프로그램과 관련된 독립된 기능을 구현하기 위한 파일 세트일 수 있다. 제1내지 제3개발 파일 세트(311, 312, 313) 각각에 포함되는 복수의 파일들 각각은 제1내지 제n 작업자 장치(102_1, 102_2, …, 102_n)에 의하여 서버(103)로 커밋된 파일일 수 있다.
제1피처 브랜치(FB1) 및 제2피처 브랜치(FB2)는 프로젝트(300)와 관련된 새로운 기능 개발 및 버그 수정을 위하여 개발 브랜치(DB)로부터 분기된 브랜치일 수 있다. 제1피처 브랜치(FB1) 및 제2피처 브랜치(FB2)와 관련된 작업이 완료되는 경우, 제1피처 브랜치(FB1) 및 제2피처 브랜치(FB2)와 관련된 파일 세트는 개발 브랜치(DB)로 병합될 수 있다. 도 3는 제2피처 브랜치(FB2)와 관련된 작업이 완료되고, 제2-1 피처 파일 세트(312_1) 및 제2-2 피처 파일 세트(312_2) 중 적어도 하나가 개발 브랜치(DB)에 병합되고, 제1피처 브랜치(FB1)와 관련된 작업이 진행 중인 경우의 자료 구조(30)를 도시한다.
이외에도, 본 개시의 실시 예에 따른 프로젝트(300)의 자료 구조(30)는 제품 출시 버전을 준비하기 위하여 개발 브랜치(DB)로부터 분기하는 배포 브랜치(release branch) 및 배포한 제품 버전에 긴급한 수정 사항이 발생하는 경우, 이를 처리하기 위하여 마스터 브랜치(MB)에서 분기하는 핫픽스 브랜치(hotfix branch) 중 적어도 하나를 더 포함할 수 있다. 본 명세서에서 지칭하는 브랜치 정보는 프로젝트(300)와 관련된 마스터 브랜치(MB), 개발 브랜치(DB), 피처 브랜치(FB1, FB2), 배포 브랜치 및 핫픽스 브랜치 중 적어도 하나와 대응하는 정보일 수 있으며, 브랜치 정보는 해당 브랜치와 관련된 파일 세트에 대한 정보를 포함할 수 있다. 또한, 본 명세서에서 지칭하는 파일 정보는 파일 세트에 포함되는 적어도 하나의 파일에 대한 코드 정보를 포함할 수 있으며, 파일 정보는 해당 파일과 관련된 프로그램 코드에 대한 정보를 포함할 수 있다.
한편 실시 예에서, 각 파일 세트는 작업자 장치(102)의 요청에 기반하여 마스터 브랜치(MB)에 머지(merge)될 수 있다. 예컨대, 작업자 장치(102)에 의하여 파일 세트가 서버(103)로 커밋됨에 대응하여 서버(103)는 커밋된 파일 세트를 마스터 브랜치(MB)에 머지하고, 빌드(build)를 진행할 수 있다. 빌드 작업은 하나 이상의 소스 코드에 대한 파일들을 패키징(packaging)하여 배포(distribution)하는 동작을 포함할 수 있다. 패키징은 커밋된 파일 세트를 적어도 포함하여 출력되는 하나의 패키지(package) 데이터를 생성하는 동작을 포함할 수 있다. 작업자 장치(102)는 파일 세트에 대한 작업을 완료하여 커밋하고, 이에 대응하여 빌드 요청을 서버(103)로 전송하고, 서버(103)는 해당 파일 세트에 대응하는 빌드 작업을 수행하여, 패키지를 생성할 수 있다. 서버(103)는 커밋 정보를 기반으로 푸시(push) 작업을 수행할 수 있다. 푸시 작업은 추가된 파일 정보 또는 편집이 이루어진 파일 정보를 원격 저장소(예: 서버(103))에 저장하는 작업을 의미할 수 있다. 서버(103)는 개발 서버 또는 CI(continuous integration) 서버일 수 있다. 예컨대 서버(103)는 하나 이상의 작업자 장치(102) 각각으로부터 푸시된 코드 정보를, 각 푸시가 이루어질 때마다 지속적으로 빌드하여 배포할 수 있다. 서버(103)는 푸시된 파일에 대응하여 빌드 작업을 진행할 수 있다. 예컨대 제1개발 파일 세트(311)에 대하여, 작업자 장치(102)가 커밋하는 경우 서버(103)는 커밋과 동시에 푸시된 파일 세트에 대응하는 빌드 작업을 수행하여, 제1개발 파일 세트(311)에 대응하는 제1패키지(P1)를 생성할 수 있다. 또 다른 예시로, 제2-2개발 파일 세트(311)에 대하여, 작업자 장치(102)가 제2-2 피처 파일 세트(312_2)를 서버(103)로 커밋하는 경우 서버(103)는 커밋과 동시에 빌드 작업을 수행하여, 제2-2 피처 파일 세트(312_2)에 대응하는 제2패키지(P2)를 생성할 수 있다. 실시 예에서, 제1패키지(P1) 및 제2패키지(P2)는 제1마스터 파일 세트(310)로부터 구축되는 제1프로그램과 동일한 버전으로 식별되어, 제1패키지(P1) 및 제2패키지(P2)에 제1프로그램의 버전과 동일한 식별 번호가 부여될 수 있고, 제2마스터 파일 세트(320)로부터 구축되는 제2프로그램과 상이한 버전으로 식별될 수 있다. 서버(103)는 빌드된 패키지를 배포(distribution) 할 수 있다. 버전 갱신 전후에 지속적으로 빌드된 패키지 각각(예: 제1패키지(P1), 제2패키지(P2))은 알파 테스트(alpha-test) 및/또는 베타 테스트(beta-test)의 대상이 될 수 있고, 전자 장치(101), 작업자 장치(102), 서버(103) 및/또는 그 외의 외부 전자 장치는 패키지 각각에 대한 알파 테스트 및 베타 테스트를 수행할 수 있고, 전자 장치(101)는 알파 테스트 및 베타 테스트의 결과 정보를 획득할 수 있다.
실시 예에서, 각 브랜치는 하나 이상의 태스크(task)와 대응될 수 있다. 태스크는, 개념적/기능적 개발 단위로 이해될 수 있다. 프로젝트(300)에 포함되는 하나 이상의 기능적 구성에 대한 개발의 단위로, 각 태스크는 하나 이상의 브랜치와 대응할 수 있다. 예를 들어, 제1태스크(T1)는 장바구니 기능에 관련한 태스크를 포함할 수 있고, 제2태스크(T2)는 결제창 기능에 관련한 태스크를 포함할 수 있다. 제1피쳐 브랜치(FB1) 및 제2피쳐 브랜치(FB2)가 제1태스크(T1)에 대응하는 소스 코드를 포함할 수 있고, 제2피쳐 브랜치(FB2)는 제2태스크(T2)에 대응하는 소스 코드를 포함할 수 있다. 각각의 태스크는 대응하는 식별 정보가 할당될 수 있고, 전자 장치(101)는 태스크의 식별 정보에 기반하여 태스크의 상태에 관한 정보를 확인할 수 있다. 예컨대, 전자 장치(101)는 태스크에 포함된 서브 태스크(sub task) 단위 별로 진행 정보를 확인하거나, 태스크에 대응하는 하나 이상의 브랜치의 상태 정보에 기반하여 태스크의 상태에 관한 정보를 확인할 수 있다. 전자 장치(101)는 태스크 정보에 기반하여 태스크에 대응하는 브랜치에 관한 정보를 확인할 수 있고, 역으로 각 브랜치 정보에 기반하여 브랜치에 대응하는 태스크의 정보를 확인할 수 있다. 실시 예에서, 작업자 장치(102)가 파일 세트를 커밋하는 경우, 커밋 메시지를 적어도 일부에 포함하는 커밋 정보를 서버(103)에 전송할 수 있고, 커밋 정보는 파일 세트와 대응하는 태스크에 관한 정보를 포함할 수 있다. 이러한 개발 및 코드 구조 단위는 작업자에 따라 다른 구조를 가질 수 있다.
도 4는 다양한 실시 예들에 따른 전자 장치가 코드 관련 정보를 제공하는 동작흐름도이다.
다양한 실시 예들에 따르면, 하나 이상의 작업자 장치(102)는 서버(103)로 빌드 요청을 전달할 수 있다(41). 작업자 장치(102)는 서버(103)로 파일 세트를 커밋할 수 있고, 서버(103)는 커밋된 파일 세트를 마스터 브랜치(MB)에 머지하여, 커밋된 파일 세트에 대응하는 패키지를 생성할 수 있다. 실시예에서, 빌드 요청은 작업자 장치(102)가 서버(103)로 전송하는 파일 세트 및 커밋 요청을 포함할 수 있다. 작업자 장치(102)가 커밋하는 파일 세트는 하나 이상의 코드 정보를 포함할 수 있다. 커밋 요청은 파일 세트에 대응하는 커밋 메시지를 포함할 수 있다. 커밋 메시지는 커밋을 요청한 작업자의 작업자 장치(102)가 생성한 것일 수 있다. 실시예에서, 커밋 메시지는 작업자 장치(102)가 작성하여 서버(103)로 전송된 것일 수 있으며, 전자 장치(101)는 서버로부터 커밋 메시지를 획득할 수 있다.
다양한 실시 예들에 따르면, 서버(103)는 커밋된 파일 세트에 대한 빌드 작업을 개시할 수 있다(42). 빌드 작업은 커밋된 파일 세트를 머지하여 하나의 패키지로 생성하는 패키징 작업을 포함할 수 있다.
다양한 실시 예들에 따르면, 전자 장치(101)는 서버(103)의 빌드 작업 개시(42)에 대응하여 서버(103)로부터 제1정보를 획득할 수 있다(S401). 실시 예에서, 제1정보는, 코드 정보(예: 파일 세트)와 관련된 정보를 포함할 수 있다. 제1정보는, 코드 정보가 서버(103)에 푸시된 이후 즉시 획득할 수 있는 정보를 포함할 수 있다. 제1정보는 빌드의 대상이 되는 코드 정보에 관련된 하나 이상의 메타(meta) 정보를 포함할 수 있다. 예컨대, 제1정보는, 빌드가 요청된 일시에 관한 정보, 코드 정보에 대응하는 태스크 정보, 브랜치 정보, 버전 정보 및 커밋 정보 가운데 적어도 일부를 포함할 수 있다.
실시예에서, 태스크 정보는 코드 정보에 대응하는 태스크의 식별 정보 및 태스크의 진행 상황에 관한 정보 가운데 적어도 일부를 포함할 수 있다. 일 실시예에 따르면, 각 태스크는 하나 이상의 브랜치와 대응될 수 있다. 전자 장치(101) 및/또는 서버(103)는 각 태스크에 대응하는 브랜치에 관한 대응 정보를 저장하거나, 외부 전자 장치에 저장된 태스크와 브랜치 간의 대응 정보에 기반하여 태스크 및 브랜치의 대응 관계를 확인할 수 있다. 전자 장치(101)는 태스크의 식별 정보에 기반하여 태스크와 대응하는 브랜치의 정보를 확인할 수 있다.
실시예에서, 브랜치 정보는 코드 정보에 대응하는 브랜치의 식별 정보를 포함할 수 있다. 각 브랜치는 하나 이상의 태스크와 대응될 수 있다. 전자 장치(101) 및/또는 서버(103)는 각 태스크에 대응하는 브랜치에 관한 대응 정보를 저장하거나, 외부 전자 장치에 저장된 태스크와 브랜치 간의 대응 정보에 기반하여 태스크 및 브랜치의 대응 관계를 확인할 수 있다. 전자 장치(101)는 브랜치의 식별 정보에 기반하여 태스크와 대응하는 브랜치의 정보를 확인할 수 있다. 일 실시예에 따르면, 각 브랜치 정보는 브랜치에 대응하는 작업자 정보를 포함할 수 있다. 각각의 브랜치는 하나 이상의 작업자가 할당될 수 있고, 전자 장치(101), 서버(103) 또는 그 밖의 외부 장치에 브랜치 및 작업자 간의 대응 정보가 저장될 수 있다. 전자 장치(101)는 브랜치의 식별 정보에 기반하여 브랜치에 대응하는 하나 이상의 작업자의 정보를 확인할 수 있다. 작업자 정보는 작업자에 대한 식별 정보, 작업자에 대응하는 작업자 장치(102)에 관한 정보, 작업자의 연락처 정보, 작업자에 대응하는 브랜치 정보 및 작업자에 대응하는 태스크 정보 가운데 적어도 일부를 포함할 수 있다. 실시예에서, 전자 장치(101)는 브랜치 정보에 기반하여 브랜치 정보에 대응하는 작업자를 확인할 수 있고, 작업자에 대응하는 태스크 정보를 확인할 수 있다. 실시예에서, 전자 장치(101)는 브랜치 정보에 기반하여 브랜치에 대응하는 하나 이상의 태스크 정보를 확인할 수 있고, 하나 이상의 태스크의 정보에 기반하여 태스크에 대응하는 작업자 정보를 확인할 수 있다. 실시예에서, 전자 장치(101)는 태스크 정보에 기반하여 태스크에 대응하는 하나 이상의 브랜치 정보를 확인하고, 하나 이상의 브랜치 정보에 기반하여 브랜치 정보에 대응하는 작업자 정보를 확인할 수 있다.
실시예에서, 커밋 정보는 커밋 메시지, 커밋 작업에 관한 정보, 커밋된 파일 세트(코드 정보)에 관한 정보 및 커밋된 파일 세트에 관련된 식별 정보 가운데 적어도 일부를 포함할 수 있다. 예컨대, 커밋 정보는 커밋된 코드 정보에 대응하는 태스크 정보를 포함할 수 있다. 실시예에서, 커밋된 파일 세트에 관한 식별 정보는, 파일 세트에서 작업자에 의하여 작성, 수정, 변경 또는 생성된 코드 정보에 관한 정보를 포함할 수 있다. 예컨대 소스 코드에 관한 정보는 작성, 수정, 변경 또는 생성된 코드 정보의 파일 세트에서의 위치 정보 및/또는 주요 작성 내역에 관한 정보를 포함할 수 있다. 실시예에서, 커밋 정보는 커밋 작업에 대응하는 식별 정보를 포함할 수 있다. 예컨대 작업자 장치(102)에서 코드 정보를 커밋할 때 작업자 장치(102) 또는 서버(103)는 커밋 작업에 대한 식별 정보를 생성 및/또는 할당할 수 있다.
실시예에서, 서버(103)는 빌드 작업 개시(42)에 대응하여 제1정보를 전자 장치(101)로 제공하고, 동시 또는 이시에 푸시된 코드 정보에 대응하는 빌드 작업을 진행할 수 있다.
다양한 실시예들에 따르면, 서버(103)는 빌드 작업을 종료할 수 있다(43). 빌드 작업의 종료는, 빌드 실패 또는 빌드 성공을 포함할 수 있다. 서버(103)는 빌드 작업 종료(43)에 대응하여 빌드의 성공 여부를 확인할 수 있다. 서버(103)는 빌드 성공 시 푸시된 코드 정보에 대응하는 패키지를 생성할 수 있다.
다양한 실시예들에 따르면, 전자 장치(101)는 빌드 작업 종료(43)에 대응하여, 서버(103)로부터 제2정보를 획득할 수 있다(S402). 제2정보는 빌드 작업 종료에 대응하여 서버(103)가 생성하거나 전자 장치(101)가 획득할 수 있는 정보를 포함할 수 있다. 실시예에서, 제2정보는 빌드 작업 결과와 관련된 정보를 포함할 수 있다. 예컨대, 제2정보는 빌드 성공 여부에 관한 정보, 빌드가 종료된 일시에 관한 정보, 빌드 소요 시간 및 빌드된 패키지의 용량 정보 가운데 적어도 일부를 포함할 수 있다. 실시예에서, 서버(103)는 빌드 작업 종료(43)에 대응하여 전자 장치(101)로 제2정보를 제공할 수 있다.
다양한 실시예들에 따르면, 전자 장치(101)는 제1항목을 생성할 수 있다. 제1항목은 빌드 작업 정보 목록에 포함된 하나의 항목을 의미할 수 있다. 빌드 작업 정보 목록은 각 빌드 작업에 대응하여, 제1정보 및 제2정보 가운데 적어도 일부 또는 이들의 조합으로 생성된, 빌드 작업에 관련된 하나 이상의 정보를 포함할 수 있다. 일 실시예에 따르면, 빌드 작업 정보 목록에 포함된 제1항목은, 푸시된 코드 정보에 대응하는 브랜치 정보, 작업자 정보, 커밋 정보, 빌드 성공 여부에 관한 정보, 태스크 정보, 버전 정보, 패키지 용량 정보 가운데 적어도 일부를 포함할 수 있다. 전자 장치(101)는 제1정보 및 제2정보에 기반하여 제1항목을 생성할 수 있다.
한편 실시예에서, 제1정보 또는 제2정보는 제1항목 생성에 관한 요청을 포함할 수 있다. 전자 장치(101)는 서버(103)의 빌드 작업의 개시 또는 종료에 대응하여 서버(103)로부터 제1정보 및 제2정보를 획득할 수 있고, 이때 제1정보 또는 제2정보에 제1항목 생성에 관한 요청이 포함될 수 있다. 예컨대, 서버(103)는 빌드 작업을 개시하면서(43), 개시할 빌드 작업에 대응하여 제1항목을 생성하기 위한 요청을 전자 장치(101)로 전달할 수 있다. 이때 전자 장치(101)는 제1정보에 포함된 제1항목 생성에 관한 요청에 기반하여 제1항목을 생성할 수 있다(S403). 이때 전자 장치(101)는, 제2정보를 서버(103)로부터 획득함에 대응하여, 제1정보 및 제2정보에 기반하여 확인되는 데이터를 제1항목에 할당할 수 있다.
다양한 실시예들에 따르면, 전자 장치(101)는 빌드 작업 정보 목록을 작업자 장치(102)에 제공할 수 있다(S405). 전자 장치(101)는 생성된 제1항목을 포함하는 빌드 작업 정보 목록을 작업자 장치(102)로 제공할 수 있다. 빌드 작업 정보 목록은 하나 이상의 빌드 요청에 기반하여 생성된 하나 이상의 항목을 포함할 수 있다. 실시예에서, 빌드 작업 정보 목록은 페이지 형식을 포함할 수 있고, 전자 장치(101)는 빌드 작업 정보 목록 페이지를 통해 제1정보, 제2정보에 기반하여 확인되거나 생성되는 코드 관련 정보를 작업자 장치(102)에 제공할 수 있다.
다양한 실시예들에 따르면, 전자 장치(101)는 작업자 장치(102)로부터 패키지 코드 정보 요청을 수신할 수 있다. 패키지 코드 정보 요청은, 패키지의 소스 코드에 관한 제공 요청을 포함할 수 있다. 일 실시예에 따르면, 제1항목은, 제1항목에 대응하는 코드 정보를 적어도 포함하는 패키지의 코드 정보에 관한 경로 정보를 포함할 수 있다. 경로 정보는, URL 정보를 포함할 수 있다. 외부 전자 장치(102)는 제1항목에 기반하여 경로 정보를 확인할 수 있고, 경로 정보에 기반하여 패키지 코드 정보를 전자 장치(101)로 요청할 수 있다. 전자 장치(101)는 패키지 코드 정보 요청에 기반하여 작업자 장치(102)로 패키지에 관한 코드 정보를 제공할 수 있다.
실시예에서, 서버(103) 및/또는 전자 장치(101)는 작업자 장치(102)에 빌드 작업의 결과에 관한 정보를 제공할 수 있다. 일 실시예에서, 서버(103) 및/또는 전자 장치(101)는 빌드 작업의 결과에 관한 정보를 적어도 포함하는 결과 메시지를 작업자 장치(102)로 제공할 수 있다. 서버(103) 및/또는 전자 장치(101)는, 빌드를 요청한 코드 정보에 대응하는 작업자 정보를 확인할 수 있고, 확인된 작업자 정보에 기반하여 작업자 장치(102)에 결과 메시지를 제공할 수 있다. 전자 장치(101)는 제1정보에 기반하여 브랜치에 대응하는 작업자의 정보를 확인할 수 있고, 작업자 정보에 기반하여 브랜치에 대응하는 작업자 장치(102)에 결과 메시지를 제공할 수 있다. 결과 메시지는 빌드 작업의 성공 또는 실패 여부에 관한 정보를 적어도 포함할 수 있고, 빌드를 요청한 작업자 정보를 포함할 수 있다. 실시예에서, 결과 메시지는 제1항목에 대한 정보를 포함할 수 있다. 예를 들어, 결과 메시지는 제1항목에 대응하는 제1정보 및/또는 제2정보 가운데 적어도 일부를 포함할 수 있다. 결과 메시지는 제1항목에 대한 접근 경로에 대한 정보를 포함할 수 있다. 예를 들어, 접근 경로는, 작업자 장치(102)에서 전자 장치(101)로부터 제1항목을 확인하기 위하여 전자 장치(101)의 자원(예: 스토리지)에 대한 접근 경로를 의미할 수 있다. 접근 경로에 대한 정보는 예컨대 URL(user resource location) 정보를 포함할 수 있다.
한편, 실시예에서, 전자 장치(101)는 새로운 브랜치에 관한 정보를 등록할 수 있다. 예를 들어, 작업자가 새로운 브랜치를 생성하는 경우, 브랜치에 관한 정보를 전자 장치(101)에 등록할 수 있다. 전자 장치(101)는 작업자 장치(102)로부터 새로운 브랜치에 대응하는, 브랜치 식별 정보, 브랜치에 대응하는 태스크 정보 및 브랜치에 대응하는 작업자 정보 가운데 적어도 일부를 수신할 수 있다. 전자 장치(101)는 작업자 장치(102)로부터 수신한, 브랜치 등록을 위한 작업자 요청에 대응하여 브랜치 식별 정보에 브랜치에 대응하는 작업자 정보 및/또는 태스크 정보를 매핑한 매핑 정보를 포함하는 브랜치 목록을 생성할 수 있다.
한편, 실시예에서, 전자 장치(101)는 새로운 태스크에 관한 정보를 등록할 수 있다. 예를 들어, 작업자가 새로운 태스크를 생성하는 경우, 태스크에 관한 정보를 전자 장치(101)에 등록할 수 있다. 전자 장치(101)는 작업자 장치(102)로부터 새로운 태스크에 대응하는, 태스크 식별 정보, 태스크에 대응하는 하나 이상의 브랜치 정보 및 태스크에 대응하는 작업자 정보 가운데 적어도 일부를 수신할 수 있다. 전자 장치(101)는 작업자 장치(102)로부터 수신한, 태스크 등록을 위한 작업자 요청에 대응하여 태스크 식별 정보에 태스크에 대응하는 작업자 정보 및/또는 브랜치 정보를 매핑한 매핑 정보를 포함하는 태스크 목록을 생성할 수 있다.
한편 실시예에서, 전자 장치(101)는 빌드 작업에 기반하여 생성된 패키지에 대한 A/B 테스트(A/B test, alpha/beta test)를 수행할 수 있다. A/B 테스트는 빌드된 패키지에 기반하여 구축되는 프로그램을 배포할 사용자 세트와, 비교 대상이 되는 프로그램(예컨대, 이전 버전의 프로그램)을 배포할 사용자 세트를 달리 하여, 각 사용자 세트의 프로그램 이용에 기반하여 전자 장치(101)가 획득하는 이용 정보를 비교하고, 이용 정보에 기반하여 테스트 결과 정보를 생성하는 일련의 작업을 포함할 수 있다. 일 실시예에 따르면, 빌드된 패키지의 코드 정보는 적어도 일부에 A/B 테스트에 관한 소스 코드를 포함할 수 있다. A/B 테스트에 관한 소스 코드는, 배포된 패키지를 적용 받는 사용자 세트, 아닌 사용자 세트(사용자 세트는 2개 외에 더 나뉠 수도 있음)을 구분하는 동작, 서로 다른 사용자 세트 각각에 대응하는 결과 정보 수집하는 동작, 각 결과 정보를 비교하는 동작에 관한 인스트럭션을 포함할 수 있다. 전자 장치(101)는 특정 빌드 작업에 대응하는 제1정보에 기반하여, 그 빌드 작업의 A/B 테스트 결과 정보를 확인할 수 있고, 작업자 장치(102)에 A/B 테스트의 결과 정보를 제공할 수 있다.
도 5는 다양한 실시 예들에 따른 전자 장치가 제공하는 빌드 작업 정보 목록을 예시적으로 도시한 것이다.
도 5를 참조하면, 전자 장치(101)는 작업자 장치(102)에 빌드 작업 정보 목록(500)을 제공할 수 있다. 빌드 작업 정보 목록(500)은, 하나 이상의 항목, 예컨대 제1항목(510), 제2항목(520), 제3항목(530) 및 제4항목(540)을 포함할 수 있다. 각 항목은, 작업자(102)로부터 요청되어 서버(103)에서 수행되는 빌드 작업에 대응하여 전자 장치(101)가 생성한 항목일 수 있다. 예컨대, 제1항목(510)은 제1코드 정보에 대응하는 빌드 요청에 기반하여 생성된 항목이며, 제2항목(520)은 제2코드 정보에 대응하는 빌드 요청에 기반하여 생성된 항목, 제3항목(530)은 제3코드 정보에 대응하는 빌드 요청에 기반하여 생성된 항목, 제4항목(540)은 제4코드 정보에 대응하는 빌드 요청에 기반하여 생성된 항목일 수 있다. 전자 장치(101)는 제1정보 및 제2정보에 기반하여 빌드 작업 정보 목록(500)에 포함될 각 항목을 생성할 수 있다. 예컨대 전자 장치(101)는 제1코드 정보에 대응하는 제1정보 및 제2정보에 기반하여 제1항목(510)을 생성하고, 제2코드 정보에 대응하는 제1정보 및 제2정보에 기반하여 제2항목(520)을 생성하고, 제3코드 정보에 대응하는 제1정보 및 제2정보에 기반하여 제3항목(530)을 생성하고, 제4코드 정보에 대응하는 제1정보 및 제2정보에 기반하여 제4항목(540)을 생성할 수 있다.
실시예에서, 빌드 작업 정보 목록(500)에 포함된 각 항목은, 제1정보 및 제2정보의 적어도 일부 및/또는 이들의 조합을 포함할 수 있다. 도 5를 참조하면, 각 항목은 빌드 요청된 코드 정보에 대응하는 빌드 작업에 관련하여, 일시 정보(Date) 란(section), 명칭 정보(Name/ID) 란, 작업자 정보(Dev) 란, 브랜치 정보(Branch) 란, 커밋 정보(Last commit) 란, 빌드 성공 여부에 관한 상태 정보(Status) 란, 태스크 정보(BTS) 란, 버전 정보(Version) 란, 패키지 용량 정보(Size) 란 가운데 적어도 일부를 포함할 수 있다.
일시 정보(Date) 란은, 각 코드 정보에 대응하여 빌드 작업이 요청된 일시 또는 빌드 작업이 종료된 일시에 관한 정보를 포함할 수 있다. 전자 장치(101)는 서버(103)로부터 획득한 제1정보 또는 제2정보에 기반하여 일시 정보 란의 데이터를 생성할 수 있다.
명칭 정보(Name/ID) 란은, 프로젝트(200)의 명칭 또는 프로젝트(200)에 기반하여 구축된 프로그램 또는 애플리케이션의, 명칭 정보 또는 식별 정보를 포함할 수 있다.
작업자 정보(Dev) 란은 각 항목에 대응하는, 코드 정보를 커밋한 작업자에 관한 정보를 포함할 수 있다. 작업자 정보(Dev) 란은 작업자에 대한 식별 정보, 작업자에 대응하는 작업자 장치(102)에 관한 정보, 작업자의 연락처 정보, 작업자에 대응하는 브랜치 정보 및 작업자에 대응하는 태스크 정보 가운데 적어도 일부를 포함할 수 있다. 실시예에서, 작업자 정보(Dev) 란은 작업자의 식별 정보를 포함할 수 있다. 예컨대, 전자 장치(101)는 제1항목(510)에서 작업자 정보(Dev)에 기반하여 제1코드 정보에 대응하는 작업자 식별 정보를 확인하고, 작업자 식별 정보에 기반하여 작업자의 연락처 정보, 작업자에 대응하는 브랜치나 태스크의 정보를 확인할 수 있다.
실시예에서, 빌드 작업 정보 목록(500)은 항목 별로 작업자 정보(Dev) 란에 대응하는 사용자 인터페이스(예: 링크)를 포함할 수 있고, 전자 장치(101)는 작업자 정보 란에 대응하는 사용자 인터페이스를 통해 작업자 정보를 제공할 수 있다. 예컨대, 전자 장치(101)는 제1항목(510)의 예에서, 제1코드 정보에 대응하는 작업자 란에서 작업자의 식별 정보(presto)를 표시하고, 작업자의 식별 정보를, 하이퍼링크를 포함하는 사용자 인터페이스로서 제공할 수 있다. 전자 장치(101)는 서버(103)로부터 획득한 제1정보에 기반하여 작업자 정보 란의 데이터를 생성할 수 있다.
브랜치 정보(Branch) 란은, 브랜치에 관한 정보를 포함할 수 있다. 브랜치 정보(Branch) 란은 각 항목에 대응하는, 커밋된 코드 정보에 대응하는 브랜치에 관한 정보를 포함할 수 있다. 브랜치 정보(Branch) 란은 브랜치에 대한 식별 정보, 브랜치에 대응하는 코드에 관한 정보, 브랜치에 대응하는 하나 이상의 작업자에 대한 작업자 정보, 및 브랜치에 대응하는 태스크 정보 가운데 적어도 일부를 포함할 수 있다. 실시예에서, 브랜치 정보(Branch) 란은 브랜치의 식별 정보를 포함할 수 있다. 예컨대, 전자 장치(101)는 제1항목(510)에서 브랜치 정보(Branch)에 기반하여 제1코드 정보에 대응하는 브랜치 식별 정보를 확인하고, 브랜치 식별 정보에 기반하여 브랜치에 대응하는 작업자 정보 및/또는 브랜치에 대응하는 태스크 정보를 확인할 수 있다.
실시예에서, 빌드 작업 정보 목록(500)은 항목 별로 브랜치 정보(Branch) 란에 대응하는 사용자 인터페이스(예: 링크)를 포함할 수 있고, 전자 장치(101)는 브랜치 정보 란에 대응하는 사용자 인터페이스를 통해 브랜치 정보를 제공할 수 있다. 예컨대, 전자 장치(101)는 제1항목(510)의 예에서, 제1코드 정보에 대응하는 브랜치 란에서 브랜치의 식별 정보를 표시하고, 브랜치의 식별 정보를, 하이퍼링크를 포함하는 사용자 인터페이스로서 제공할 수 있다. 전자 장치(101)는 서버(103)로부터 획득한 제1정보에 기반하여 브랜치 정보 란의 데이터를 생성할 수 있다.
커밋 정보(Last commit) 란은, 커밋에 관한 정보를 포함할 수 있다. 커밋 정보(Last commit) 란은 각 항목에 대응하는, 커밋에 관한 정보를 포함할 수 있다. 커밋 정보(Last commit) 란은 커밋에 대한 식별 정보, 커밋 메시지, 커밋 작업에 관한 정보, 커밋된 파일 세트(코드 정보)에 관한 정보 및 커밋된 파일 세트에 관련된 식별 정보 가운데 적어도 일부를 포함할 수 있다. 예컨대, 커밋 정보는 커밋된 코드 정보에 대응하는 태스크 정보를 포함할 수 있다. 실시예에서, 커밋된 파일 세트에 관한 식별 정보는, 파일 세트에서 작업자에 의하여 작성, 수정, 변경 또는 생성된 코드 정보에 관한 정보를 포함할 수 있다. 예컨대 소스 코드에 관한 정보는 작성, 수정, 변경 또는 생성된 코드 정보의 파일 세트에서의 위치 정보 및/또는 주요 작성 내역에 관한 정보를 포함할 수 있다. 실시예에서, 커밋 정보는 커밋 작업에 대응하는 식별 정보를 포함할 수 있다. 예컨대 작업자 장치(102)에서 코드 정보를 커밋할 때 작업자 장치(102) 또는 서버(103)는 커밋 작업에 대한 식별 정보를 생성 및/또는 할당할 수 있다. 실시예에서, 커밋 정보(Last commit) 란은 커밋의 식별 정보 및/또는 커밋 메시지를 포함할 수 있다. 예컨대, 전자 장치(101)는 제1항목(510)에서 커밋 정보(Last commit) 란에 포함된 데이터에 기반하여 제1코드 정보에 대응하는 커밋 식별 정보를 확인하고, 커밋 식별 정보에 기반하여 커밋 정보를 확인할 수 있다. 실시예에서, 커밋 메시지는 적어도 일부에 커밋 식별 정보를 포함할 수 있다. 실시예에서, 커밋 메시지는 적어도 일부에 태스크 정보를 포함할 수 있다.
실시예에서, 빌드 작업 정보 목록(500)은 항목 별로 커밋 정보(Last commit) 란에 대응하는 사용자 인터페이스(예: 링크)를 포함할 수 있고, 전자 장치(101)는 커밋 정보 란에 대응하는 사용자 인터페이스를 통해 커밋 정보를 제공할 수 있다. 예컨대, 전자 장치(101)는 제1항목(510)의 예에서, 제1코드 정보에 대응하는 커밋 란에서 커밋의 식별 정보를 표시하고, 커밋의 식별 정보를, 하이퍼링크를 포함하는 사용자 인터페이스로서 제공할 수 있다. 전자 장치(101)는 서버(103)로부터 획득한 제1정보에 기반하여 커밋 정보 란의 데이터를 생성할 수 있다.
상태 정보(Status) 란은, 항목 별로, 대응하는 빌드 작업의 성공 여부에 관한 정보를 포함할 수 있다. 예컨대, 도 5의 예에서, 전자 장치(101)는 빌드가 성공하여 빌드 작업이 요청된 코드 정보에 대응하는 패키지가 성공적으로 생성된 경우, 상태 정보 란에 "Success"로 표시하고, 빌드 작업이 실패한 경우 "Fail"로 표시할 수 있다. 전자 장치(101)는 서버(103)로부터 획득한 제2정보에 기반하여 상태 정보 란의 데이터를 생성할 수 있다.
태스크 정보(BTS) 란은, 태스크에 관한 정보를 포함할 수 있다. 태스크 정보(BTS) 란은 각 항목에 대응하는, 커밋된 코드 정보에 대응하는 태스크에 관한 정보를 포함할 수 있다. 태스크 정보(BTS) 란은 태스크에 대한 식별 정보, 태스크에 대응하는 하나 이상의 브랜치에 관한 정보, 태스크에 대응하는 하나 이상의 작업자에 대한 작업자 정보, 및 태스크에 대응하는 태스크 진행 상태에 관한 정보 가운데 적어도 일부를 포함할 수 있다. 실시예에서, 태스크 정보(BTS) 란은 태스크의 식별 정보를 포함할 수 있다. 예컨대, 전자 장치(101)는 제1항목(510)에서 태스크 정보(BTS)에 기반하여 제1코드 정보에 대응하는 태스크 식별 정보를 확인하고, 태스크 식별 정보에 기반하여 태스크에 대응하는 작업자 정보 및/또는 태스크에 대응하는 태스크 정보를 확인할 수 있다.
실시예에서, 빌드 작업 정보 목록(500)은 항목 별로 태스크 정보(BTS) 란에 대응하는 사용자 인터페이스(예: 링크)를 포함할 수 있고, 전자 장치(101)는 태스크 정보 란에 대응하는 사용자 인터페이스를 통해 태스크 정보를 제공할 수 있다. 예컨대, 전자 장치(101)는 제4항목(540)의 예에서, 제4코드 정보에 대응하는 태스크 란에서, 제4코드와 대응하는 두 개의 태스크 각각의 식별 정보(MPI-390 및 IOS-6826)를 표시하고, 각각의 태스크의 식별 정보를, 하이퍼링크를 포함하는 사용자 인터페이스로서 제공할 수 있다. 전자 장치(101)는 서버(103)로부터 획득한 제1정보에 기반하여 태스크 정보 란의 데이터를 생성할 수 있다.
버전 정보(Version) 란 및 용량 정보(Size) 란은 순서대로, 각각 빌드 작업에 기반하여 생성된 패키지가 대응하는 버전 정보 및 패키지의 용량에 관한 정보를 포함할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(103)로부터 획득한 제1정보에 기반하여 버전 정보(Version) 란의 데이터를 생성할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제2정보에 기반하여 버전 정보를 확인할 수 있다. 예컨대, 빌드가 실패한 경우 푸시된 코드 정보에 대응하는 버전 식별 정보가 생성되지 않을 수 있다. 전자 장치(101)는 빌드의 성공 여부에 기반하여 버전 정보를 표시하거나 표시하지 않을 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(103)로부터 획득한 제1정보에 기반하여 패키지 용량 정보(Size) 란의 데이터를 생성할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제2정보에 기반하여 패키지 용량 정보를 확인할 수 있다. 예컨대, 빌드가 실패한 경우 푸시된 코드 정보에 대응하는 패키지가 생성되지 않고, 용량 정보 자체가 부존재하게 될 수 있다. 반대로, 빌드가 성공하는 경우 패키지가 생성되어 전자 장치(101)는 패키지의 용량 정보를 확인할 수 있다. 도 5를 참조하면, 제2항목(520)의 예에서, 제2코드 정보의 빌드가 실패함에 대응하여, 상태 정보(Status) 란은 "Fail"로 표시되어 있으며, 버전 정보 란 및 패키지 용량 정보 란의 데이터는 생성되지 않음을 확인할 수 있다.
실시예에서, 빌드 작업 정보 목록(500)은 패키지 코드 정보를 제공하기 위한 사용자 인터페이스(Actions)를 포함할 수 있다. 전자 장치(101)는 빌드 작업 정보 목록(500)에 빌드 작업에 대응하여 서버가 생성한, 코드 정보를 적어도 포함하는 패키지의 코드 정보에 관한 경로 정보를 할당할 수 있다. 예를 들어, 코드 정보를 제공하기 위한 사용자 인터페이스(Actions)는, 각 항목에 대응하는, 패키지 코드에 대한 코드 정보를 획득하기 위한 경로 정보를 제공하기 위한 링크로 구현되는 인터페이스를 포함할 수 있다. 예를 들어, "Download"의 경우 대응하는 항목의 패키지에 대한 코드 정보를 다운로드 하기 위한 링크이며, "Copy"의 경우 코드 정보를 복사 하기 위한 링크, "QRCode"는 링크에 대응하는 QR 코드를 제공하기 위한 링크일 수 있고, 각 링크는 적어도 일부에 패키지 코드에 대한 코드 정보를 획득하기 위한 경로 정보를 포함할 수 있다. 전자 장치(101)는 코드 정보를 제공하기 위한 사용자 인터페이스(Actions)를 통해 수신한 작업자 입력에 기반하여 작업자 장치(102)에, 각 항목에 대응하는 패키지의 코드 정보를 제공할 수 있다. 이때 각 항목 별로 제2정보에 기반하여 코드 정보를 제공하기 위한 사용자 인터페이스(Actions)가 활성화 또는 비활성화될 수 있다. 예컨대 전자 장치(101)는 빌드 작업이 성공한 경우, 대응하는 항목의 코드 정보를 제공하기 위한 사용자 인터페이스(Actions)를 활성화하고, 빌드 작업이 실패한 경우, 대응하는 항목의 코드 정보를 제공하기 위한 사용자 인터페이스(Actions)를 비활성화 할 수 있다.
도 6은 다양한 실시 예들에 따른 전자 장치가 제공하는 빌드 작업과 관련된 수치 정보의 일 예이다.
도 7은 다양한 실시 예들에 따른 전자 장치가 제공하는 빌드 작업과 관련된 수치 정보의 일 예이다.
도 6 및 도 7을 참조하면, 전자 장치(101)는 빌드 작업과 관련된 수치 정보를 제공할 수 있다. 수치 정보는, 제1정보, 제2정보 및/또는 빌드 작업 정보 목록에 기반하여 생성될 수 있다. 수치 정보는 예컨대, 도 6과 같이 빌드 작업의 소요 시간에 관련된 수치 정보 및, 도 7과 같이 빌드 작업 결과 생성된 패키지의 용량에 관련된 용량 정보 가운데 적어도 일부를 포함할 수 있다.
다양한 실시예들에 따르면, 전자 장치(101)는 제1정보, 제2정보 및/또는 빌드 작업 정보 목록에 기반하여 시간과 관련된 수치 정보를 생성할 수 있다. 예컨대, 전자 장치(101)는 제2정보에 기반하여 각각의 빌드 작업에 대응하는 소요 시간 정보를 확인할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제1정보 및 제2정보에 기반하여 버전 별 빌드 소요 시간 정보를 확인할 수 있다. 예컨대, 전자 장치(101)는 버전 식별 정보에 기반하여 확인된 하나 이상의 빌드 작업 각각에 대응하는 빌드 소요 시간 정보를 확인하고, 버전 별로 소요된 빌드 시간을 확인할 수 있다. 버전 별로 소요된 빌드 시간 정보는 지정된 기간에 대응하여 확인될 수 있다. 버전 별로 소요된 빌드 시간 정보는 버전 별로 소요된 전체 빌드 작업을 총 합산하여 확인되거나, 빌드 횟수에 기반한 평균값으로 확인될 수 있다. 실시예에 따르면, 전자 장치(101)는 버전뿐만 아니라, 태스크 정보, 브랜치 정보 및/또는 작업자 정보에 기반하여 확인된 하나 이상의 빌드 작업 각각에 대한 빌드 소요 시간 정보를 확인할 수 있다. 전자 장치(101)는 복수의 빌드 작업 각각에 대응하여 생성된 소요 시간 정보에 기반하여, 빌드 소요 시간에 관련한 히스토리 정보를 생성할 수 있다.
도 6을 참조하면, 전자 장치(101)는 시간 관련 수치 정보(600)를 제공할 수 있다.
실시예에서, 전자 장치(101)는 총 빌드 횟수에 관한 정보(601)를 확인할 수 있다. 예를 들어, 전자 장치(101)는 빌드 작업 정보 목록에 기반하여, 전체 빌드 작업 횟수, 지정된 기간에 대응하는 빌드 작업들 전체의 횟수, 버전 별 빌드 작업 횟수 가운데 적어도 일부를 확인할 수 있다.
실시예에서, 전자 장치(101)는 빌드 소요 시간에 대한 히스토리 정보(602)를 제공할 수 있다. 예를 들어, 전자 장치(101)는 빌드 작업 정보 목록에 기반하여, 전체 빌드 작업의 소요 시간, 지정된 기간에 대응하는 빌드 작업들 전체의 소요 시간, 버전 별 빌드 작업 소요 시간, 전체 빌드 작업에 대응하는 평균 소요 시간 가운데 적어도 일부를 확인할 수 있다.
실시예에서, 전자 장치(101)는 빌드 소요 시간에 대한 추이 정보(603)를 제공할 수 있다. 예를 들어, 전자 장치(101)는 빌드 작업 정보 목록에 기반하여, 전체 빌드 작업의 소요 시간, 하나 이상의 지정된 기간 각각에 대응하는 빌드 작업들 전체의 소요 시간을 확인하고, 비교 결과에 기반하여 빌드 소요 시간에 대한 추이 정보(603)를 생성할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 빌드 작업 정보 목록(500)을 통해 작업자 장치(102)에서 전자 장치(101)로 전송한, 코드 정보의 다운로드 요청 횟수에 관한 정보(604)를 제공할 수 있다.
실시예에서, 전자 장치(101)는 빌드 소요 시간에 관련된 수치 정보를 시각화한 소요 시간 그래프(605)를 제공할 수 있다. 도 6의 예시는 버전 별 빌드 소요 시간에 관한 그래프일 수 있다. 전자 장치(101)는 각 항목에 기반하여 확인된, 버전 식별 정보 및 빌드 소요 시간 정보에 기반하여 버전 별 빌드 소요 시간에 대한 정보를 확인하고, 버전 별로 소요된 빌드 소요 시간에 관한 그래프를 생성할 수 있다. 도 6을 참조하면 소요 시간 그래프(605)의 가로축은 버전 정보, 세로축은 평균 소요 시간일 수 있다. 도 6의 그래프는 소요 시간에 관한 그래프의 일 예이며, 전자 장치(101)는 제1정보 및/또는 제2정보에 기반한 다양한 데이터에 기반하여 수치 정보를 획득하고 수치 정보에 기반한 그래프를 생성할 수 있다.
다양한 실시예들에 따르면, 전자 장치(101)는 제1정보, 제2정보 및/또는 빌드 작업 정보 목록에 기반하여 빌드된 패키지 용량과 관련된 수치 정보를 생성할 수 있다. 예컨대, 전자 장치(101)는 제2정보에 기반하여 각각의 빌드 작업에 대응하는, 빌드된 패키지 용량 정보를 확인할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제1정보 및 제2정보에 기반하여 버전 별로 빌드된 패키지 용량 정보를 확인할 수 있다. 예컨대, 전자 장치(101)는 버전 식별 정보에 기반하여 확인된 하나 이상의 빌드 작업 각각에 대응하는 빌드된 패키지 용량 정보를 확인하고, 버전 별로 빌드된 패키지 용량을 확인할 수 있다. 버전 별로 빌드된 패키지 용량 정보는 지정된 기간에 대응하여 확인될 수 있다. 버전 별로 빌드된 패키지 용량 정보는 버전 별로 수행된 전체 빌드 작업을 총 합산하여 확인되거나, 빌드 횟수에 기반한 평균값으로 확인될 수 있다. 실시예에 따르면, 전자 장치(101)는 버전뿐만 아니라, 태스크 정보, 브랜치 정보 및/또는 작업자 정보에 기반하여 확인된 하나 이상의 빌드 작업 각각에 대응하여, 빌드된 패키지 용량 정보를 확인할 수 있다. 전자 장치(101)는 복수의 빌드 작업 각각에 대응하여 생성된 패키지 용량 정보에 기반하여, 패키지 용량에 관련한 히스토리 정보를 생성할 수 있다.
실시예에서, 전자 장치(101)는 빌드된 패키지의 용량에 관련된 수치 정보를 시각화한 소요 시간 그래프(700)를 제공할 수 있다. 도 7의 예시는 버전 별 빌드된 패키지의 용량에 관한 그래프일 수 있다. 전자 장치(101)는 각 항목에 기반하여 확인된, 버전 식별 정보 및 빌드된 패키지의 용량 정보에 기반하여 버전 별 빌드된 패키지의 용량에 대한 정보를 확인하고, 버전 별로 소요된 빌드된 패키지의 용량에 관한 그래프를 생성할 수 있다. 도 7을 참조하면 소요 시간 그래프(700)의 가로축은 버전 정보, 세로축은 평균 패키지 용량일 수 있다. 도 7의 그래프는 용량 정보에 관한 그래프의 일 예이며, 전자 장치(101)는 제1정보 및/또는 제2정보에 기반한 다양한 데이터에 기반하여 수치 정보를 획득하고 수치 정보에 기반한 그래프를 생성할 수 있다.
실시예에서, 전자 장치(101)는 소요 시간 정보에 기반하여 빌드 작업의 이상 여부를 확인할 수 있다. 전자 장치(101)는 빌드 요청에 기반하여 빌드 작업 시 소요 시간 정보를 확인할 수 있다. 전자 장치(101)는 제2정보에 기반하여 대응하는 빌드 작업의 소요 시간을 확인할 수 있다. 전자 장치(101)는 빌드 작업 정보 목록에 기반하여, 기존의 다른 빌드 작업에 대응하는 소요 시간 정보, 예컨대 소요 시간에 대한 히스토리 정보를 확인할 수 있다. 전자 장치(101)는 제2정보에 기반하여 확인된, 빌드 작업의 소요 시간 및 소요 시간에 대한 히스토리 정보에 기반하여, 빌드 작업의 이상 여부를 확인할 수 있다. 예컨대 전자 장치(101)는 빌드 작업의 소요 시간이, 히스토리 정보에 기반하여 설정되는, 빌드 소요 시간과 관련하여 지정된 임계값을 초과하거나 지정된 임계값에 미치지 못하는 경우에 진행된 빌드 작업의 이상 여부를 확인할 수 있다. 예컨대, 빌드 작업은 성공하여 패키지가 생성되었으나, 이는 패키지의 정상 동작 여부와 무관할 수도 있다. 이때 소요 시간이 지나치게 짧거나 지나치게 긴 경우 빌드 성공 여부와 관계 없이 빌드된 패키지에 이상이 존재할 가능성이 있다. 전자 장치(101)는 확인된 빌드 작업의 이상 여부에 기반하여, 빌드 작업 정보 목록에 기반하여 확인된, 빌드 작업에 대응하는 하나 이상의 작업자를 확인하고, 확인된 작업자에 대응하는 작업자 장치(102)로 이상 여부에 관한 정보를 제공할 수 있다. 이상 여부에 관한 정보는, 빌드 작업에 대응하는 브랜치 정보, 태스크 정보, 커밋 정보, 이상 여부를 표시하는 정보 가운데 적어도 일부를 포함할 수 있다. 일 실시예에 따르면, 수행된 빌드 작업과의 비교 대상이 되는 소요 시간에 관한 히스토리 정보는, 빌드 작업 정보 목록에 기반하여 확인될 수 있다. 소요 시간에 관한 히스토리 정보는, 수행된 빌드 작업과 상이한 다른 빌드 작업에 대응하는 빌드 소요 시간 정보에 기반하여 생성될 수 있다. 예컨대, 버전 별 소요 시간에 관한 정보, 빌드 소요 시간에 관한 추이 정보, 지정된 기간 내에 수행된 빌드 작업들의 소요 시간에 관한 정보 가운데 적어도 일부를 포함할 수 있다.
실시예에서, 전자 장치(101)는 패키지 용량 정보에 기반하여 빌드 작업의 이상 여부를 확인할 수 있다. 전자 장치(101)는 빌드 요청에 기반하여 빌드 작업 시 패키지 용량 정보를 확인할 수 있다. 전자 장치(101)는 제2정보에 기반하여 대응하는 빌드 작업의 패키지 용량을 확인할 수 있다. 전자 장치(101)는 빌드 작업 정보 목록에 기반하여, 기존의 다른 빌드 작업에 대응하는 패키지 용량 정보, 예컨대 패키지 용량에 대한 히스토리 정보를 확인할 수 있다. 전자 장치(101)는 제2정보에 기반하여 확인된, 빌드 작업의 패키지 용량 및 패키지 용량에 대한 히스토리 정보에 기반하여, 빌드 작업의 이상 여부를 확인할 수 있다. 예컨대 전자 장치(101)는 빌드 작업의 패키지 용량이, 히스토리 정보에 기반하여 설정되는, 빌드 패키지 용량과 관련하여 지정된 임계값을 초과하거나 지정된 임계값에 미치지 못하는 경우에 진행된 빌드 작업의 이상 여부를 확인할 수 있다. 예컨대, 빌드 작업은 성공하여 패키지가 생성되었으나, 이는 패키지의 정상 동작 여부와 무관할 수도 있다. 이때 패키지 용량이 지나치게 크거나 지나치게 작은 경우 빌드 성공 여부와 관계 없이 빌드된 패키지에 이상이 존재할 가능성이 있다. 전자 장치(101)는 확인된 빌드 작업의 이상 여부에 기반하여, 빌드 작업 정보 목록에 기반하여 확인된, 빌드 작업에 대응하는 하나 이상의 작업자를 확인하고, 확인된 작업자에 대응하는 작업자 장치(102)로 이상 여부에 관한 정보를 제공할 수 있다. 이상 여부에 관한 정보는, 빌드 작업에 대응하는 브랜치 정보, 태스크 정보, 커밋 정보, 이상 여부를 표시하는 정보 가운데 적어도 일부를 포함할 수 있다. 일 실시예에 따르면, 수행된 빌드 작업과의 비교 대상이 되는 패키지 용량에 관한 히스토리 정보는, 빌드 작업 정보 목록에 기반하여 확인될 수 있다. 패키지 용량에 관한 히스토리 정보는, 수행된 빌드 작업과 상이한 다른 빌드 작업에 대응하는 빌드 패키지 용량 정보에 기반하여 생성될 수 있다. 예컨대, 버전 별 패키지 용량에 관한 정보, 빌드 패키지 용량에 관한 추이 정보, 지정된 기간 내에 수행된 빌드 작업들의 패키지 용량에 관한 정보 가운데 적어도 일부를 포함할 수 있다.

Claims (19)

  1. 전자 장치의 코드 관련 정보 제공 방법에 있어서,
    서버에서 수행되는 제1코드(code) 정보에 관한 빌드(build) 작업의 개시에 대응하여, 상기 서버로부터 상기 빌드 작업에 대한 정보 및 상기 제1코드 정보에 대응하는 브랜치(branch) 정보를 포함하는 제1정보를 획득하는 단계;
    상기 빌드 작업 종료에 대응하여 상기 서버로부터 상기 빌드 작업의 결과에 관한 정보를 적어도 포함하는 제2정보를 획득하는 단계; 및
    상기 제1정보 및 상기 제2정보에 기반하여 생성된 제1항목을 포함하는 빌드 작업 정보 목록을 작업자 장치에 제공하는 단계를 포함하는 코드 관련 정보 제공 방법.
  2. 제1항에 있어서,
    상기 제1정보는 상기 빌드 작업을 상기 서버에 요청한 작업자 정보, 상기 제1코드 정보에 대응하는 브랜치(branch) 식별 정보, 상기 제1코드 정보에 대응하는 커밋(commit) 정보 및 상기 제1코드 정보에 대응하는 태스크 식별 정보 가운데 적어도 일부를 더 포함하는 코드 관련 정보 제공 방법.
  3. 제2항에 있어서,
    상기 브랜치 식별 정보는, 하나 이상의 태스크(task) 식별 정보와 대응하며,
    상기 태스크 식별 정보는, 하나 이상의 브랜치 식별 정보와 대응하는 코드 관련 정보 제공 방법.
  4. 제2항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    상기 브랜치 식별 정보에 기반하여 확인된, 상기 제1코드 정보에 대응하는 브랜치와 대응하는, 하나 이상의 태스크에 관한 정보를 제공하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  5. 제2항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    상기 태스크 식별 정보에 기반하여 확인된, 상기 제1코드 정보에 대응하는 태스크와 대응하는, 하나 이상의 브랜치에 관한 정보를 제공하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  6. 제1항에 있어서,
    상기 제2정보는, 상기 빌드 작업에 대응하여 서버가 생성한 패키지의 용량 정보, 상기 빌드 작업에 대응하는 패키지의 버전 정보 및 상기 빌드 작업에 대응하는 소요 시간 정보 가운데 적어도 일부를 더 포함하는 코드 관련 정보 제공 방법.
  7. 제6항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    상기 제2정보에 기반하여 확인된 상기 소요 시간 정보 및 상기 빌드 작업 정보 목록에 기반하여 확인된 하나 이상의 빌드 작업에 대한 소요 시간에 대한 정보에 기반하여 상기 빌드 작업의 이상 여부를 확인하는 단계; 및
    상기 브랜치 정보에 기반하여 확인된 하나 이상의 작업자 정보 및 상기 빌드 이상 여부에 관한 정보에 기반하여, 상기 하나 이상의 작업자에게 상기 이상 여부에 관한 정보를 제공하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  8. 제6항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    복수의 빌드 작업 각각에 대응하는 소요 시간 정보, 상기 복수의 빌드 작업 각각에 대응하는 패키지의 버전 정보에 기반하여, 각 버전 정보에 대응하는 빌드 소요 시간에 관한 정보를 획득하고,
    상기 각 버전 정보에 대응하는 빌드 소요 시간에 관한 정보 및 상기 제2정보에 기반하여 확인된 상기 소요 시간 정보에 기반하여 상기 제1코드 정보에 관한 빌드 작업의 이상 여부를 확인하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  9. 제6항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    상기 제2정보에 기반하여 확인된 상기 용량 정보 및 상기 빌드 작업 정보 목록에 기반하여 확인된 하나 이상의 빌드 작업에 대한 패키지의 용량 정보에 기반하여 상기 빌드 작업의 이상 여부를 확인하는 단계; 및
    상기 브랜치 정보에 기반하여 확인된 하나 이상의 작업자 정보 및 상기 빌드 이상 여부에 관한 정보에 기반하여, 상기 하나 이상의 작업자에게 상기 이상 여부에 관한 정보를 제공하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  10. 제6항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    복수의 빌드 작업 각각에 대응하는 용량 정보, 상기 복수의 빌드 작업 각각에 대응하는 패키지의 버전 정보에 기반하여, 각 버전 정보에 대응하는 용량에 관한 정보를 획득하고,
    상기 각 버전 정보에 대응하는 용량에 관한 정보 및 상기 제2정보에 기반하여 확인된 상기 용량 정보에 기반하여 상기 제1코드 정보에 관한 빌드 작업의 이상 여부를 확인하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  11. 제1항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    상기 브랜치 정보에 기반하여 확인된 하나 이상의 작업자 정보를 제공하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  12. 제1항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    상기 제2정보의 적어도 일부를 포함하되, 상기 빌드 작업의 결과에 관한 정보를 적어도 포함하는, 결과 메시지를, 상기 브랜치 정보에 기반하여 확인된 하나 이상의 작업자 정보에 대응하는 작업자 장치에 제공하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  13. 제1항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    상기 태스크 식별 정보에 기반하여 확인된 상기 제1코드 정보에 대응하는 태스크의 진행 상태에 관한 태스크 상태 정보를 제공하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  14. 제1항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    상기 작업자 장치로부터 수신한 제1항목에 대응하는 코드 정보 요청에 대응하여 작업자 장치로 상기 제1코드 정보를 제공하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  15. 제14항에 있어서,
    상기 제1항목은, 상기 빌드 작업에 대응하여 서버가 생성한, 상기 제1코드 정보를 적어도 포함하는 패키지의 코드 정보에 관한 경로 정보를 포함하고,
    상기 코드 관련 정보 제공 방법은,
    상기 경로 정보에 기반하여, 상기 패키지의 코드 정보를 상기 작업자 장치에 제공하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  16. 제1항에 있어서,
    상기 코드 관련 정보 제공 방법은,
    브랜치 식별 정보 및 하나 이상의 작업자 정보를 획득하는 단계; 및
    작업자 장치로부터 수신한 요청에 기반하여 상기 브랜치 식별 정보 및 상기 하나 이상의 작업자 정보를 매핑한 브랜치 정보를 포함하는 브랜치 목록을 생성하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  17. 제1항에 있어서,
    상기 빌드 작업에 대응하여 서버가 생성한, 상기 제1코드 정보를 적어도 포함하는 패키지의 코드 정보는, 상기 생성된 패키지의 코드 정보에 대응하여 A/B 테스트를 수행하기 위한 소스 코드를 포함하고,
    상기 코드 관련 정보 제공 방법은,
    상기 코드 관련 정보 제공 방법은, 상기 제1정보에 기반하여 확인되는 상기 A/B 테스트의 결과 정보를 제공하는 단계를 더 포함하는 코드 관련 정보 제공 방법.
  18. 전자 장치에 있어서,
    메모리;
    트랜시버; 및
    프로세서를 포함하고,
    상기 프로세서는,
    서버에서 수행되는, 제1코드(code) 정보에 관한 빌드(build) 작업의 개시에 대응하여, 상기 서버로부터 상기 빌드 작업에 대한 정보 및 상기 제1코드 정보에 대응하는 브랜치(branch) 정보를 포함하는 제1정보를 획득하고,
    상기 빌드 작업 종료에 대응하여 상기 서버로부터 상기 빌드 작업의 결과에 관한 정보를 적어도 포함하는 제2정보를 획득하고,
    상기 제1정보 및 상기 제2정보에 기반하여 생성된 제1항목을 포함하는 빌드 작업 정보 목록을 작업자 장치에 제공하도록 설정된 전자 장치.
  19. 제1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체.
KR1020220102734A 2022-08-17 2022-08-17 코드 정보를 제공하는 방법 및 이를 지원하는 전자 장치 KR20240024573A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220102734A KR20240024573A (ko) 2022-08-17 2022-08-17 코드 정보를 제공하는 방법 및 이를 지원하는 전자 장치
PCT/KR2022/015077 WO2024038951A1 (ko) 2022-08-17 2022-10-07 코드 정보를 제공하는 방법 및 이를 지원하는 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220102734A KR20240024573A (ko) 2022-08-17 2022-08-17 코드 정보를 제공하는 방법 및 이를 지원하는 전자 장치

Publications (1)

Publication Number Publication Date
KR20240024573A true KR20240024573A (ko) 2024-02-26

Family

ID=89941941

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220102734A KR20240024573A (ko) 2022-08-17 2022-08-17 코드 정보를 제공하는 방법 및 이를 지원하는 전자 장치

Country Status (2)

Country Link
KR (1) KR20240024573A (ko)
WO (1) WO2024038951A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101092373B1 (ko) * 2010-01-07 2011-12-09 한국과학기술연구원 소프트웨어 패키지의 생성 및 설치를 위한 시스템 및 방법
JP6320269B2 (ja) * 2014-10-08 2018-05-09 三菱電機株式会社 ソフトウェア試験支援装置およびソフトウェア試験支援プログラム
JP2017084074A (ja) * 2015-10-27 2017-05-18 株式会社日立ソリューションズ データベース装置、作業者情報検索システム、及び作業者情報検索方法
JP7246301B2 (ja) * 2019-12-26 2023-03-27 株式会社日立製作所 プログラム開発支援システム及びプログラム開発支援方法
JP2022108452A (ja) * 2021-01-13 2022-07-26 株式会社日立製作所 プログラム管理装置及びプログラム管理方法

Also Published As

Publication number Publication date
WO2024038951A1 (ko) 2024-02-22

Similar Documents

Publication Publication Date Title
JP7009456B2 (ja) 分散イベント処理システムのためのグラフ生成
US11425059B2 (en) Chatbot support platform
US11814077B2 (en) Method and apparatus for storing autonomous driving test data and electronic device
US9678740B2 (en) Migration mechanism
US10860299B2 (en) Extensible data transformation authoring and validation system
US11019156B1 (en) Automatic discovery and registration of service applications for files introduced to a user interface
US20160248698A1 (en) Modular cloud computing system
CA3055607A1 (en) Decision tables and enterprise rules for object linking within an application platform as a service environment
US10990595B2 (en) Fast distributed graph query engine
CN109906439B (zh) 通过存储控制器向对象存储云的时间点备份
US20150356474A1 (en) Real-time correlation of data model data
CN117296038B (zh) 将软件库交叉发布到模块存储库
CN111414234A (zh) 镜像容器创建方法及装置、计算机装置及存储介质
US11580073B2 (en) Multidirectional synchronization of cloud application data
KR20180008872A (ko) 애플리케이션 활성화 프레임워크
KR102616183B1 (ko) 테스트 정보 관리 방법 및 이를 지원하는 전자 장치
KR20140091125A (ko) 스케줄을 관리하기 위한 방법 및 그 전자 장치
KR20240024573A (ko) 코드 정보를 제공하는 방법 및 이를 지원하는 전자 장치
US20140359463A1 (en) Data templates for default data in data binding
US10956512B2 (en) Document link migration
KR102653375B1 (ko) 테스트를 관리하는 방법 및 이를 지원하는 전자 장치
KR102618518B1 (ko) 정보를 제공하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
US12003591B2 (en) Automatic discovery and registration of service applications for files introduced to a user interface
KR20240080177A (ko) 테스트 정보 관리 방법 및 이를 지원하는 전자 장치
US11321073B1 (en) Utilizing models for replacing existing enterprise software with new enterprise software

Legal Events

Date Code Title Description
E902 Notification of reason for refusal