KR20200003648A - 개발자 보상이 가능한 블록체인을 이용한 소프트웨어 개발 시스템 및 방법 - Google Patents

개발자 보상이 가능한 블록체인을 이용한 소프트웨어 개발 시스템 및 방법 Download PDF

Info

Publication number
KR20200003648A
KR20200003648A KR1020180076661A KR20180076661A KR20200003648A KR 20200003648 A KR20200003648 A KR 20200003648A KR 1020180076661 A KR1020180076661 A KR 1020180076661A KR 20180076661 A KR20180076661 A KR 20180076661A KR 20200003648 A KR20200003648 A KR 20200003648A
Authority
KR
South Korea
Prior art keywords
development
reward
software
developers
source code
Prior art date
Application number
KR1020180076661A
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 KR1020180076661A priority Critical patent/KR20200003648A/ko
Publication of KR20200003648A publication Critical patent/KR20200003648A/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/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06398Performance of employee with respect to a job function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06393Score-carding, benchmarking or key performance indicator [KPI] 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

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

Abstract

소프트웨어를 공동으로 개발하는 데 있어서 블록체인을 이용하여 개발에 참여하는 개발자들을 공정하게 평가하여 보상할 수 있는 소프트웨어 개발 시스템 및 방법이 개시된다. 일 측면에 따른 블록체인 네트워크를 이용한 소프트웨어 개발 시스템은, 적어도 둘 이상의 개발자들이 접속하여 소프트웨어를 개발할 수 있는 작업 환경을 제공하는 적어도 하나 이상의 서비스 모듈; 상기 적어도 하나 이상의 서비스 모듈에서의 작업에 대한 데이터를 저장하는 저장소; 상기 저장소에 상기 적어도 둘 이상의 개발자들이 작업한 소프트웨어 소스 코드가 저장되기 전에 후킹하여 코드 품질 평가를 수행하고 코드 품질 평가 결과를 상기 블록체인 네트워크에 저장하며, 상기 저장소로부터 개발 중요 정보를 추출하여 상기 블록체인 네트워크에 저장하는 관리 모듈; 및 상기 블록체인 네트워크에 저장된 상기 코드 품질 평가 결과 및 상기 개발 중요 정보에 기초하여 상기 적어도 둘 이상의 개발자들의 보상 가중치를 산출하고 그 보상 가중치에 기초하여 보상을 제공하는 보상 모듈을 포함한다.

Description

개발자 보상이 가능한 블록체인을 이용한 소프트웨어 개발 시스템 및 방법{SOFTWARE DEVELOPMENT SYSTEM THAT CAN REWARD SOFTWARES USING BLOCK CHAIN}
본 발명은 소프트웨어 개발 시스템에 관한 것으로, 보다 구체적으로 개발자 보상이 가능한 블록체인을 이용한 소프트웨어 개발 시스템 및 방법에 관한 것이다.
소프트웨어 개발 과정에서 만들어지는 각종 산출물에 대한 작업의 양과 질에 따른 정확한 보상을 하기가 어렵다. 공동 프로젝트의 경우, 공동 프로젝트에 참여한 개발자의 성과를 측정하기 모호하며 개발자의 증언에 의존하는 상황이다. 최근 소프트웨어 개발 방법론의 하나로 개발(development)과 운영(operation)을 결합한 DevOps의 개념이 두각을 나타내고 있다. 상기 DevOps은 시스템 개발자와 운영을 담당하는 정보기술 전문가 사이의 소통, 협업, 통합 및 자동화를 강조하는 소프트웨어 개발 방법론을 말한다. 소프트웨어 제품이나 서비스를 알맞은 시기에 출시하기 위해서 개발과 운영이 상호의존적으로 대응해야 한다는 의미로 통용된다. DevOps은 기존의 폭포수 모델에서 벗어나 에자일(Agile) 방법론과 함께 등장한 개발에 대한 방법론이다. DevOps 환경에서도 참여 개발자들의 활동 역량 통계화가 어렵다. 성과를 측정할 명확한 기준이 없기 때문에 개발자들의 역량 통계화가 어려우며, 보상 지급 근거가 애매하다.
본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로서, 소프트웨어를 공동으로 개발하는 데 있어서 블록체인을 이용하여 개발에 참여하는 개발자들을 공정하게 평가하여 보상할 수 있는 소프트웨어 개발 시스템 및 방법을 제공하는데 목적이 있다.
일 측면에 따른 블록체인 네트워크를 이용한 소프트웨어 개발 시스템은, 적어도 둘 이상의 개발자들이 접속하여 소프트웨어를 개발할 수 있는 작업 환경을 제공하는 적어도 하나 이상의 서비스 모듈; 상기 적어도 하나 이상의 서비스 모듈에서의 작업에 대한 데이터를 저장하는 저장소; 상기 저장소에 상기 적어도 둘 이상의 개발자들이 작업한 소프트웨어 소스 코드가 저장되기 전에 후킹하여 코드 품질 평가를 수행하고 코드 품질 평가 결과를 상기 블록체인 네트워크에 저장하며, 상기 저장소로부터 개발 중요 정보를 추출하여 상기 블록체인 네트워크에 저장하는 관리 모듈; 및 상기 블록체인 네트워크에 저장된 상기 코드 품질 평가 결과 및 상기 개발 중요 정보에 기초하여 상기 적어도 둘 이상의 개발자들의 보상 가중치를 산출하고 그 보상 가중치에 기초하여 보상을 제공하는 보상 모듈을 포함한다.
상기 보상 모듈은, 상기 블록체인 네트워크에서 실행되는 스마트 컨트랙트로부터 개발 완료 통지를 수신하면서 상기 코드 품질 평가 결과 및 상기 개발 중요 정보를 수신할 수 있다.
상기 보상 모듈은, 각 개발자별로 상기 코드 품질 평가에 상기 개발 중요 정보로부터 산출한 보상 점수를 곱하여 상기 보상 가중치를 산출할 수 있다.
상기 보상 모듈은, 각 서비스별로 보상 코인이 할당되고, 각 서비스마다, 개발에 참여한 개발자들의 보상 가중치들의 상대적 비율에 기초하여 상기 보상 코인을 각 개발자에게 배분할 수 있다.
상기 개발 중요 정보는, 상기 저장소에 기 저장되어 있는 소스 코드의 차용 정보, 소스 코드의 라인 수, 소스 코드 작업 시간, 소스 코드 업로드 횟수 중 적어도 하나를 포함할 수 있다.
다른 측면에 따른 소프트웨어 개발 시스템에서 블록체인 네트워크를 이용하여 소프트웨어를 개발하는 방법은, 적어도 하나 이상의 서비스 모듈을 통해 적어도 둘 이상의 개발자들이 접속하여 소프트웨어를 개발할 수 있는 작업 환경을 제공하는 단계; 상기 적어도 하나 이상의 서비스 모듈에서의 작업에 대한 데이터를 저장소에 저장하는 단계; 상기 저장소에 상기 적어도 둘 이상의 개발자들이 작업한 소프트웨어 소스 코드가 저장되기 전에 후킹하여 코드 품질 평가를 수행하고 코드 품질 평가 결과를 상기 블록체인 네트워크에 저장하는 단계; 상기 저장소로부터 개발 중요 정보를 추출하여 상기 블록체인 네트워크에 저장하는 단계; 및 상기 블록체인 네트워크에 저장된 상기 코드 품질 평가 결과 및 상기 개발 중요 정보에 기초하여 상기 적어도 둘 이상의 개발자들의 보상 가중치를 산출하고 그 보상 가중치에 기초하여 보상을 제공하는 단계를 포함한다.
상기 보상을 제공하는 단계는, 상기 블록체인 네트워크에서 실행되는 스마트 컨트랙트로부터 개발 완료 통지를 수신하면서 상기 코드 품질 평가 결과 및 상기 개발 중요 정보를 수신하는 단계를 포함할 수 있다.
상기 보상을 제공하는 단계는, 각 개발자별로 상기 코드 품질 평가에 상기 개발 중요 정보로부터 산출한 보상 점수를 곱하여 상기 보상 가중치를 산출하는 단계를 포함할 수 있다.
상기 보상을 제공하는 단계는, 각 서비스별로 보상 코인이 할당되고, 각 서비스마다, 개발에 참여한 개발자들의 보상 가중치들의 상대적 비율에 기초하여 상기 보상 코인을 각 개발자에게 배분할 수 있다.
상기 개발 중요 정보는, 상기 저장소에 기 저장되어 있는 소스 코드의 차용 정보, 소스 코드의 라인 수, 소스 코드 작업 시간, 소스 코드 업로드 횟수 중 적어도 하나를 포함할 수 있다.
본 발명에 따르면 소프트웨어 개발에 참여한 각 개발자들의 성과를 블록체인에 분산 저장하고 이를 이용하여 개발자들의 성과를 평가함으로써 공정하고 구체적으로 개발자들의 기여도를 평가할 수 있다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 네트워크(130)에 저장되는 정보를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 개발자별 보상 가중치를 평가하는 예를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 개발자에게 보상을 제공하는 방법을 설명하는 흐름도이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 구성을 나타낸 도면이다.
도 1을 참조하면, 소프트웨어 개발자들은 웹(web), 또는 모바일 클라이언트 또는 별도의 외부 연동 시스템(3rd Party) 등(110)을 통해 본 실시예에 따른 소프트웨어 개발 시스템(120)에 접속하고 소프트웨어 소스 코드 등을 편집하거나 업로드 또는 다운로드할 수 있다. 또한, 도 1을 참조하면, 소프트웨어 개발 시스템(120)은, 블록체인 네트워크(130)와 연결되고, 소프트웨어 개발자들의 작업 데이터를 후킹하여 평가 기준 데이터를 추출하여 블록체인 네트워크(130)에 저장한다.
블록체인이란 거래 내역을 블록으로 연결하여 피투피(P2P) 네트워크 분산 환경에서 중앙 관리 서버가 아닌 참여자(피어, peer)들의 디지털 장비에 정보를 분산시켜 저장함으로써, 보안 정보를 공동으로 관리하는 방식이다. 블록체인의 기본 구조는 블록(block)을 잇따라 연결한(chain) 모음의 형태이며, 피투피(P2P) 방식을 기반으로 한다. 또한, 일정 시간 동안 반수 이상의 참여자들이 거래 내역을 서로 교환해 확인하고 승인하는 과정을 거쳐, 디지털 서명으로 동의한 거래 내역만 하나의 블록으로 만든다. 그리고, 새로 만들어진 블록을 이전 블록체인에 연결하고, 그 사본을 만들어 각 참여자들의 노드에 분산시켜 저장한다. 따라서, 블록체인을 활용하는 경우, 거래 장부용 데이터베이스를 별도로 관리할 필요가 없어 관리 비용이 절감되며, 분산 처리로 해킹이 어려워 안전성도 향상된다. 본 발명에서는, 소프트웨어 개발자들의 평가 기준 데이터가 블록체인 네트워크(130)를 구성하는 복수의 노드 각각에 분산되어 저장된다.
도 1을 참조하면, 소프트웨어 개발 시스템(120)은, API(Application Programming Interface) 게이트웨이(121), 각종 개발 서비스 모듈(112a, 122b, 122c), 관리 모듈(123), 저장소(124) 및 보상 모듈(125)을 포함한다. 소프트웨어 개발 시스템(120)은, 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템, 디스플레이 장치, 입력 장치 및 통신 회로를 포함할 수 있다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선을 통하여 통신한다. 이러한 여러 구성요소는 하나 이상의 신호 처리 및/또는 애플리케이션 전용 집적 회로(application specific integrated circuit)를 포함하여, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어 둘의 조합으로 구현될 수 있다. 프로세서(들)는 프로세싱 유닛으로 지칭될 수도 있고, 예컨대 마이크로프로세서(micro-processor), AP(Application Processor), DSP(Digital Signal Processor), GPU(Graphic Processing Unit)과 같이 임의의 명령어 세트(예컨대, IA-32(Intel Architecture-32), 64 비트 확장 IA-32, x86-64, PowerPC, Sparc, MIPS, ARM, IA-64 등)를 실행할 수 있는 코어를 포함할 수 있다. 운영 체제는, 예를 들어, 다윈(Darwin), RTXC, LINUX, UNIX, OSX, WINDOWS 또는 VxWorks, 안드로이드, iOS 등과 같은 내장 운영체제일 수 있고, 일반적인 시스템 태스크(task)(예를 들어, 메모리 관리, 저장 장치 제어, 전력 관리 등)를 제어 및 관리하는 다양한 소프트웨어 구성요소 및/또는 장치를 포함할 수 있다. 소프트웨어 개발 시스템(120)의, API(Application Programming Interface) 게이트웨이(121), 각종 개발 서비스 모듈(112a, 122b, 122c), 관리 모듈(123) 및 보상 모듈(125)은, 소프트웨어 개발 플랫폼을 구성하고 메모리에 저장되어 프로세서에 의해 실행됨으로써 동작을 수행할 수 있다.
API 게이트웨이(121)는 소프트웨어를 개발하는 개발자 단말(110)과 통신하여 소프트웨어 소스 코드를 수신할 수 있고, 또는 저장소(124)에 저장된 소프트웨어 소스 코드를 개발자 단말(110)로 전송할 수 있으며, 또는 개발자 단말(110)로부터 저장소(124)에 저장된 소프트웨어 소스 코드를 편집하기 위한 편집 입력을 수신할 수 있다.
각종 개발 서비스 모듈(112a, 122b, 122c)는, 개발자가 구현해야 하는 서비스를 개발하는 작업 공간을 제공하는 모듈이다. 본 발명의 실시예에서 개발 서비스로서, 사용자 서비스(User Service), 알림 서비스(Notification Service), 지불 서비스(Payment Service)를 예로 든다. 각 개발자는 복수의 개발 서비스 모듈(112a, 122b, 122c) 중 적어도 하나에 접속하여 소프트웨어 소스 코드를 개발한다. 개발 서비스 모듈(112a, 122b, 122c)은 개별 작업 공간에서 주어진 Model file, Script File, Access Control 등의 단계에서 소스 코드를 작성할 수 있다. 개발 서비스 모듈(112a, 122b, 122c)은 기존 개발자가 등록한 소스 코드를 재사용할 수 있는 아카이브 기능을 제공하고 원하는 기능 및 소스 코드 단위 검색을 가능하게 한다.
관리 모듈(123)은, 소프트웨어 개발 시스템(120)의 전체적인 동작을 관리한다. 관리 모듈(123)은, 개발자 단말(110)로부터 저장소(124)로 소프트웨어 소스 코드가 전송될 때, 이를 후킹한다. 관리 모듈(123)은, 후킹된 소프트웨어 소스 코드에 대해 소스 코드 분석 도구인 PMD(Programming Mistake Detector) 등을 통해 코드 품질 평가 절차를 수행하고 코드 품질 평가 결과를 블록체인 네트워크(130)에 전송하여 저장한다. 또한, 관리 모듈(123)은 소프트웨어 소스 코드를 저장소(124)에 저장하고 개발 서비스 모듈(112a, 122b, 122c)을 통해 저장소(124)에 저장되는 데이터로부터 중요 개발 정보를 추출하여 블록체인 네트워크(130)에 전송하여 저장한다. 여기서 저장소(124)에 저장되는 데이터로부터 추출되는 중요 개발 정보는, 모듈명, 소스 코드 작업 시간, 소스 코드의 라인 수, 중요 소스 코드 부분, 소스 코드 차용 이력, 빌드/배포/릴리즈 결과 등을 포함한다. 관리 모듈(123)은 중요 개발 정보를 수집하여 블록체인 네트워크(130)에 전송하여 저장한다. 블록체인 네트워크(130)에 저장되는 정보는 개발자의 식별정보와 함께 저장된다.
도 2는 본 발명의 일 실시예에 따른 블록체인 네트워크(130)에 저장되는 정보를 나타낸 도면이다. 도 2를 참조하면, 소프트웨어 개발 시스템(120)에서 개발자들이 업로드하는 소스 코드(210)는 후킹(220)되어 소스 코드 분석 도구를 통해 코드 품질 평가 절차가 수행되고 코드 품질 평가 정보가 블록체인 네트워크(130)에 저장된다. 즉 코드 품질 평가 정보가 블록체인의 블록들에 하나의 트랜잭션으로 저장된다. 또한 저장소(124)에 저장되는 데이터에 대한 중요 개발 정보, 예를 들어, 모듈명, 소스 코드 작업 시간, 업로드 횟수, 소스 코드의 라인 수, 중요 소스 코드 부분, 소스 코드 차용 이력(정도), 빌드/배포/릴리즈 결과 등이 블록체인의 블록들에 트랜잭션으로 저장된다. 블록체인 네트워크(130)의 노드들에는 소프트웨어 개발자들에 대한 보상과 관련한 스마트 컨트랙트가 저장되어 실행된다. 스마트 컨트랙트는 블록체인의 블록들에 저장되는 트랜잭션을 분석하여 소프트웨어 개발이 완료된 것으로 판단되면 소프트웨어 개발 시스템(120)의 보상 모듈(125)로 블록체인에 저장된 각 서비스별 개발자들의 소프트웨어 개발에 관한 정보를 전송한다.
다시 도 1을 참조하면, 소프트웨어 개발 시스템(120)의 보상 모듈(125)은, 블록체인 네트워크(130)로부터 수신되는 각 서비스별 개발자들의 소프트웨어 개발에 관한 정보를 분석하여 각 개발자들의 보상 가중치를 평가하고 그 보상 가중치에 따라 각 서비스에 할당된 코인을 각 개발자들에게 지급한다. 코인이 가상화폐이면 각 개발자들의 단말에 가상화폐가 저장된다. 보상 모듈(125)은 보상 내역을 블록체인 네트워크(130)에 저장한다.
도 3은 본 발명의 일 실시예에 따른 개발자별 보상 가중치를 평가하는 예를 나타낸 도면이다. 도 3을 참조하면, 개발자들이 공동으로 개발하는 사용자 서비스(User Service)는 로그인 서비스, 뉴스 서비스, 실시간 검색 서비스 그리고 광고 서비스를 포함할 수 있다. 개발자 1은 뉴스 서비스와 광고 서비스를 개발하고, 개발자 2는 로그인 서비스를 개발하며, 개발자 3은 실시간 검색 서비스를 개발한 것으로 가정한다. 각 개발자들이 업로드하는 소스 코드를 후킹하여 평가한 코드 품질 평가 결과로서, 예를 들어 개발자 1의 뉴스 서비스 코드 품질 결과는 0.5이고 광고 서비스 코드 품질 결과는 1.5로 가정한다. 또한 개발자 2의 로그인 서비스 코드 품질 결과는 1이라고 가정하며, 개발자 3의 실시간 검색 서비스 코드 품질 결과는 0.5라고 가정한다. 한편, 블록체인 네트워크(130)에 저장된 사용자 서비스와 관련된 각 개발자들의 소프트웨어 개발에 관한 정보를 수신하고 수신된 정보를 토대로 보상 점수를 산출한다. 본 실시예에서 로그인 서비스를 개발한 개발자 2의 보상 점수는 150이고 뉴스 서비스를 개발한 개발자 1의 보상 점수는 100이며 실시간 검색 서비스를 개발한 개발자 3의 보상 점수는 160 그리고 광고 서비스를 개발한 개발자 1의 보상 점수는 80이라고 가정한다. 코드 품질 결과와 보상 점수를 곱하면, 최종적인 각 개발자들의 보상 가중치는 150/150/80/120이다. 보상 모듈(125)은, 사용자 서비스(User Service)에 할당된 코인에 대해, 보상 가중치의 상대적 비율에 따라 각 개발자에게 보상을 제공한다. 한편, 보상 모듈(125)은 소프트웨어를 실제 개발한 개발자 이외에, 개발자들이 소프트웨어를 개발할 때 차용한 소스 코드를 최초 등록한 등록자에게도 보상을 제공할 수 있다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 개발자에게 보상을 제공하는 방법을 설명하는 흐름도이다.
도 4를 참조하면, 블록체인 네트워크(130)의 노드들은 소프트웨어 개발 보상에 관한 스마트 컨트랙트를 설정한다(S401). 여기서 스마트 컨트랙트는 개발 완료 조건, 블록에서 데이터를 검색하는 조건, 통지 정보 등을 포함할 수 있다. 소프트웨어 개발 시스템(120)은, 개발자가 로컬 환경에서 개발한 소스 코드를 저장소(124)로 업로드하면, 그 소스 코드를 후킹한다(S402, S403). 또는 소프트웨어 개발 시스템(120)은 적어도 하나 이상의 개발 서비스 모듈(122a, 122b, 122c)을 제공하고, 개발자가 개발 서비스 모듈(122a, 122b, 122c)에서 제공하는 작업 환경에서 소스 코드를 작성하면 역시 해당 소스 코드를 후킹할 수 있다.
소프트웨어 개발 시스템(120)은 상기 후킹한 소프트웨어 소스 코드를 소스 코드 분석 도구인 PMD(Programming Mistake Detector) 등을 통해 코드 품질 평가 절차를 수행하고 코드 품질 평가 결과를 블록체인 네트워크(130)에 전송하여 저장한다(S404, S406). 소프트웨어 개발 시스템(120)은 소프트웨어 소스 코드를 후킹하면서 동시에 저장소(124)에 소스 코드를 저장하고 저장소(124)에 저장되는 데이터로부터 중요 개발 정보를 추출하여 블록체인 네트워크(130)에 전송하여 저장한다(S407, S408, S409). 여기서 저장소(124)에 저장되는 데이터로부터 추출되는 중요 개발 정보는, 모듈명, 소스 코드 작업 시간, 소스 코드의 라인 수, 중요 소스 코드 부분, 소스 코드 차용 이력, 빌드/배포/릴리즈 결과 등을 포함한다.
블록체인 네트워크(130)는, 상기 단계 S406에서 수신되는 코드 품질 정보와 상기 단계 S409에서 수신되는 개발 정보를 블록체인을 구성하는 블록에 트랜잭션 정보로서 저장한다(S410). 이때, 코드 품질 정보와 개발 정보는 함께 수신된 개발자들의 식별정보와 함께 저장된다. 블록체인 네트워크(130)는 주기적으로 블록을 생성한 후 소프트웨어 개발 시스템(120)으로부터 데이터를 수신할 때마다 블록에 기록할 수 있다. 블록체인 네트워크(130)의 노드들에는 소프트웨어 개발자들에 대한 보상과 관련한 스마트 컨트랙트가 저장되어 실행된다. 스마트 컨트랙트는 블록체인의 블록들에 저장되는 트랜잭션을 분석하여 소프트웨어 개발이 완료된 것으로 판단되면 소프트웨어 개발 시스템(120)으로 블록체인에 저장된 각 서비스별 개발자들의 소프트웨어 개발에 관한 정보를 통지한다(S411, S412).
소프트웨어 개발 시스템(120)은, 블록체인 네트워크(130)로부터 수신되는 각 서비스별 개발자들의 소프트웨어 개발에 관한 정보를 분석하여 각 개발자들의 보상 가중치를 평가하고 그 보상 가중치에 따라 각 서비스에 할당된 코인을 각 개발자들에게 지급한다(S413). 코인이 가상화폐이면 각 개발자들의 단말에 가상화폐가 저장된다. 소프트웨어 개발 시스템(120)은 보상 내역을 블록체인 네트워크(130)에 저장한다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
110 : 개발자 단말
120 : 소프트웨어 개발 시스템
130 : 블록체인 네트워크
120 : API 게이트웨이 모듈
122a : 알림 서비스 모듈
122b : 사용자 서비스 모듈
122c : 지불 서비스 모듈
123 : 관리 모듈
124 : 저장소
125 : 보상 모듈

Claims (10)

  1. 블록체인 네트워크를 이용한 소프트웨어 개발 시스템으로서,
    적어도 둘 이상의 개발자들이 접속하여 소프트웨어를 개발할 수 있는 작업 환경을 제공하는 적어도 하나 이상의 서비스 모듈;
    상기 적어도 하나 이상의 서비스 모듈에서의 작업에 대한 데이터를 저장하는 저장소;
    상기 저장소에 상기 적어도 둘 이상의 개발자들이 작업한 소프트웨어 소스 코드가 저장되기 전에 후킹하여 코드 품질 평가를 수행하고 코드 품질 평가 결과를 상기 블록체인 네트워크에 저장하며, 상기 저장소로부터 개발 중요 정보를 추출하여 상기 블록체인 네트워크에 저장하는 관리 모듈; 및
    상기 블록체인 네트워크에 저장된 상기 코드 품질 평가 결과 및 상기 개발 중요 정보에 기초하여 상기 적어도 둘 이상의 개발자들의 보상 가중치를 산출하고 그 보상 가중치에 기초하여 보상을 제공하는 보상 모듈을 포함하는 소프트웨어 개발 시스템.
  2. 제 1 항에 있어서,
    상기 보상 모듈은,
    상기 블록체인 네트워크에서 실행되는 스마트 컨트랙트로부터 개발 완료 통지를 수신하면서 상기 코드 품질 평가 결과 및 상기 개발 중요 정보를 수신하는 것을 특징으로 하는 소프트웨어 개발 시스템.
  3. 제 1 항에 있어서,
    상기 보상 모듈은,
    각 개발자별로 상기 코드 품질 평가에 상기 개발 중요 정보로부터 산출한 보상 점수를 곱하여 상기 보상 가중치를 산출하는 것을 특징으로 하는 소프트웨어 개발 시스템.
  4. 제 3 항에 있어서,
    상기 보상 모듈은,
    각 서비스별로 보상 코인이 할당되고, 각 서비스마다, 개발에 참여한 개발자들의 보상 가중치들의 상대적 비율에 기초하여 상기 보상 코인을 각 개발자에게 배분하는 것을 특징으로 하는 소프트웨어 개발 시스템.
  5. 제 3 항에 있어서,
    상기 개발 중요 정보는,
    상기 저장소에 기 저장되어 있는 소스 코드의 차용 정보, 소스 코드의 라인 수, 소스 코드 작업 시간, 소스 코드 업로드 횟수 중 적어도 하나를 포함하는 것을 특징으로 하는 소프트웨어 개발 시스템.
  6. 소프트웨어 개발 시스템에서 블록체인 네트워크를 이용하여 소프트웨어를 개발하는 방법으로서,
    적어도 하나 이상의 서비스 모듈을 통해 적어도 둘 이상의 개발자들이 접속하여 소프트웨어를 개발할 수 있는 작업 환경을 제공하는 단계;
    상기 적어도 하나 이상의 서비스 모듈에서의 작업에 대한 데이터를 저장소에 저장하는 단계;
    상기 저장소에 상기 적어도 둘 이상의 개발자들이 작업한 소프트웨어 소스 코드가 저장되기 전에 후킹하여 코드 품질 평가를 수행하고 코드 품질 평가 결과를 상기 블록체인 네트워크에 저장하는 단계;
    상기 저장소로부터 개발 중요 정보를 추출하여 상기 블록체인 네트워크에 저장하는 단계; 및
    상기 블록체인 네트워크에 저장된 상기 코드 품질 평가 결과 및 상기 개발 중요 정보에 기초하여 상기 적어도 둘 이상의 개발자들의 보상 가중치를 산출하고 그 보상 가중치에 기초하여 보상을 제공하는 단계를 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 보상을 제공하는 단계는,
    상기 블록체인 네트워크에서 실행되는 스마트 컨트랙트로부터 개발 완료 통지를 수신하면서 상기 코드 품질 평가 결과 및 상기 개발 중요 정보를 수신하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제 6 항에 있어서,
    상기 보상을 제공하는 단계는,
    각 개발자별로 상기 코드 품질 평가에 상기 개발 중요 정보로부터 산출한 보상 점수를 곱하여 상기 보상 가중치를 산출하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    상기 보상을 제공하는 단계는,
    각 서비스별로 보상 코인이 할당되고, 각 서비스마다, 개발에 참여한 개발자들의 보상 가중치들의 상대적 비율에 기초하여 상기 보상 코인을 각 개발자에게 배분하는 것을 특징으로 하는 방법.
  10. 제 8 항에 있어서,
    상기 개발 중요 정보는,
    상기 저장소에 기 저장되어 있는 소스 코드의 차용 정보, 소스 코드의 라인 수, 소스 코드 작업 시간, 소스 코드 업로드 횟수 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
KR1020180076661A 2018-07-02 2018-07-02 개발자 보상이 가능한 블록체인을 이용한 소프트웨어 개발 시스템 및 방법 KR20200003648A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180076661A KR20200003648A (ko) 2018-07-02 2018-07-02 개발자 보상이 가능한 블록체인을 이용한 소프트웨어 개발 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180076661A KR20200003648A (ko) 2018-07-02 2018-07-02 개발자 보상이 가능한 블록체인을 이용한 소프트웨어 개발 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20200003648A true KR20200003648A (ko) 2020-01-10

Family

ID=69158746

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180076661A KR20200003648A (ko) 2018-07-02 2018-07-02 개발자 보상이 가능한 블록체인을 이용한 소프트웨어 개발 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20200003648A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113139733A (zh) * 2021-04-30 2021-07-20 广州粤建三和软件股份有限公司 混凝土质量追溯系统
KR20210136468A (ko) * 2020-05-07 2021-11-17 한전케이디엔주식회사 블록체인을 활용한 사내 업무 성과 관리 시스템 및 그 방법
KR20220060102A (ko) 2020-11-04 2022-05-11 주식회사 스마트탑 온라인 프로젝트 공동 구매 방식의 아웃 소싱 중개 시스템 및 중개 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210136468A (ko) * 2020-05-07 2021-11-17 한전케이디엔주식회사 블록체인을 활용한 사내 업무 성과 관리 시스템 및 그 방법
KR20220060102A (ko) 2020-11-04 2022-05-11 주식회사 스마트탑 온라인 프로젝트 공동 구매 방식의 아웃 소싱 중개 시스템 및 중개 방법
CN113139733A (zh) * 2021-04-30 2021-07-20 广州粤建三和软件股份有限公司 混凝土质量追溯系统
CN113139733B (zh) * 2021-04-30 2022-02-18 广州粤建三和软件股份有限公司 混凝土质量追溯系统

Similar Documents

Publication Publication Date Title
US11687899B2 (en) Systems and methods for sharing user inventory information to initiate a peer-to-peer exchange of a non-fungible digital asset
US11819765B2 (en) Systems and methods for transfer of rights pertaining to game assets between users of an online gaming platform
US11138580B1 (en) Systems and methods for peer-to-peer exchanges of non-fungible digital assets
US20220266148A1 (en) Systems and methods for a seller-initiated peer-to-peer exchange of a non-fungible digital asset
KR20200003648A (ko) 개발자 보상이 가능한 블록체인을 이용한 소프트웨어 개발 시스템 및 방법
WO2021100949A1 (ko) 가상부동산 거래 및 가치 결정 방법 및 시스템
US11663652B2 (en) Systems and methods for selling virtual items on multiple online sales platforms simultaneously, the virtual items being useable within an online game
US11379833B2 (en) Systems and methods of generating, validating, approving, recording, and utilizing digital data assets in a blockchain platform using a transactional proof of work
CN110517020A (zh) 基于区块链网络的项目开发方法及区块链网络的节点
JP2021152946A (ja) 取引管理プログラム、取引管理システム、及び取引管理方法
WO2021156321A1 (en) Method and system for planning and monitoring the progress of construction projects
CN114070883A (zh) 测试资源访问方法、装置、电子设备及存储介质
CN111080342A (zh) 资源的分配方法和装置、存储介质、电子装置
EP3696766A1 (en) Program, system and method for determining credit worthiness of a user
Lonshakov et al. Robonomics: platform for integration of cyber physical systems into human economy
CN114331435A (zh) 一种基于区块链的任务众包方法及装置
KR102529138B1 (ko) 프로세스 별 라이브러리 기반 프로젝트 관리 방법, 장치 및 시스템
US20220347578A1 (en) Systems and methods for facilitating distribution of in-game instructions pertaining to an online gaming platform
CN111047248A (zh) 资源转移方法、装置、服务器及存储介质
EP3614319A1 (en) Tracking execution of an industrial workflow of a petri net
KR20070116359A (ko) 인터넷을 이용한 부동산 건설 종합시스템 및 그 제어방법
Sasano et al. {SRE} Engagement Model Transition in Building and Expanding {SRE} Team
CN116227777B (zh) 行程信息处理方法及电子设备
KR20020020428A (ko) 인터넷을 통한 건축 설계 및 엔지니어링 시스템 및 그운영방법
KR100975213B1 (ko) 온라인망을 기반으로 하는 토건정보 패키지 운영 시스템