KR102292119B1 - 소프트웨어 개발 시스템 - Google Patents
소프트웨어 개발 시스템 Download PDFInfo
- Publication number
- KR102292119B1 KR102292119B1 KR1020210063681A KR20210063681A KR102292119B1 KR 102292119 B1 KR102292119 B1 KR 102292119B1 KR 1020210063681 A KR1020210063681 A KR 1020210063681A KR 20210063681 A KR20210063681 A KR 20210063681A KR 102292119 B1 KR102292119 B1 KR 102292119B1
- Authority
- KR
- South Korea
- Prior art keywords
- unit
- inspection data
- software
- software development
- development
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
- G06F8/355—Round-trip engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Stored Programmes (AREA)
Abstract
본 발명의 일 실시예에 따른 소프트웨어 개발 시스템은 웹 기반 업무시스템에 기반하여 소프트웨어 개발 서비스를 제공하며, 소프트웨어 개발에 대한 개발표준을 설정하는 공통기술 설정부; 및 상기 공통기술부에 의해 설정된 개발표준에 기초하여 소프트웨어 구현에 요구되는 세부 요구사항을 처리하는 응용업무 처리부;를 포함한다.
Description
본 발명은 소프트웨어 개발 시스템에 관한 것으로, 더욱 상세하게는 웹 기반 업무시스템에 기반하여 소프트웨어 개발 서비스를 제공하는 소프트웨어 개발 시스템에 관한 것이다.
최근, 공공기관을 포함한 프로젝트 발주처에서는 분할 발주 방식이나 원격지 개발 제도를 이용해 소프트웨어 개발하거나 발주한 후, 개발된 소프트웨어를 검증 및 평가하고 있다.
분할 발주 방식은 종래에 토목, 건축물 설계 및 시공시 주로 이용되는 방식이었는데, 이는 설계 사업자와 시공사업자를 분할 발주하여 설계 사업자와 시공 사업자를 달리 확정하여 진행하는 방식이다. 최근에는 조달청의 추진으로 소프트웨어 발주시 소프트웨어 설계자와 소프트웨어 개발 및 운영자를 달리 설정하여 개발 및 구현하는 방식으로 이용하기도 한다. 이러한 분할 발주 방식은 설계 사업자가 명확히 요구 검증 사항 끝내줘야 개발 사업자가 개발할 수 있는 방식이다.
원격지 개발 방식은 소프트웨어 설계 지역과 소프트웨어 개발 및 운영 지역을 달리하여 진행하는 제도이다. 즉, 원격지에서는 소프트웨어를 상세히 설계하되, 타 지역인 개발지에서는 원격지의 분석 설계 산출물을 토대로 소프트웨어를 개발 및 구현하는 방식이다. 이러한 원격지 개발 방식은 원격지와 개발지 간에 다양한 커뮤니케이션이 형성되어야 한다.
하지만, 종래의 분할 발주 및 원격지 개발 방식을 통한 프로그램 설계시에는 설계된 프로그램이나 소프트웨어를 개발자나 발주처 그리고 고객이 검증한 후, 검증 결과에 따라 수정하는 과정이 반복되므로 검증 및 수정 시간이 지연되는 문제가 있었다. 즉, 소프트웨어 개발 후 발주처나 고객의 검증 결과 및 요구 사항에 따라 수정하고 재차 검증받는 일련의 순환 과정에서 걸리는 시간이 지연될 수밖에 없었기 때문에 종래의 분할 발주 및 원격지 개발 방식을 통한 프로그램 설계 효율이 저하될 수밖에 없었다.
또한, 개발자들이 분석/설계 후 구현 시 개발표준에 대한 내재화가 이루어지지 않은 상태로 구현단계에 투입됨으로써 구현결과물의 일관성과 품질이 떨어지게 된다는 문제점이 있다.
한편, 전술한 배경 기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명의 일측면은 웹 기반 업무시스템에 기반하여 소프트웨어 개발 서비스를 제공하는 소프트웨어 개발 시스템을 제공한다.
본 발명의 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 소프트웨어 개발 시스템은 웹 기반 업무시스템에 기반하여 소프트웨어 개발 서비스를 제공하며, 소프트웨어 개발에 대한 개발표준을 설정하는 공통기술 설정부; 및 상기 공통기술부에 의해 설정된 개발표준에 기초하여 소프트웨어 구현에 요구되는 세부 요구사항을 처리하는 응용업무 처리부;를 포함한다.
상기 공통기술 설정부는,
다이얼로그(dialog), 권한, 메뉴, 파일업로드, 파일다운로드, 입력에디터, 입력 폼, 목록형식, 통신규격 및 구현체를 포함하는 공통기능 컴포넌트를 설정하는 공통기능 컴포넌트부;
시스템 요구사항 및 적용기술에 대한 프로토타입을 구현하는 시스템 프로토타입부;
구현된 프로토타입을 테스트서버를 통해 제공하는 테스트서버부; 및
시스템 구현 과정에서 발생되는 기술이슈 및 소스코딩을 관리하는 고도화부를 포함하고,
상기 응용업무 처리부는,
상기 공통기술 설정부에 의해 설정된 복수의 공통기능 컴포넌트를 조합하여 프로토타입 소프트웨어를 생성한다.
상기 공통기술 설정부는,
상기 고도화부로부터 수신되는 기술이슈 및 소스코딩을 포함하는 점검 데이터를 암호화하여 관리하는 암호화부; 및
암호화된 상기 점검 데이터를 블록체인 네트워크로 우회 전송하는 보안부를 더 포함하고,
상기 암호화부는,
상기 점검 데이터가 생성된 시간, 분 및 초를 이진수로 변환하여 연속적으로 나열하고, 나열된 이진수의 가장 중앙에 있는 숫자를 기준위치로 설정하고, 기준위치를 기준으로 전단부에 대응되는 숫자와 가장 가까운 제1 소수와, 기준위치를 기준으로 후단부에 대응되는 숫자와 가장 가까운 제2 소수를 이용하여 개인 키/공개 키 방식으로 상기 점검 데이터를 암호화하고,
상기 보안부는,
암호화된 상기 점검 데이터를 해시 함수를 이용하여 해시값으로 변환하고, 해시값으로 변환된 점검 데이터를 블록체인 네트워크를 구성하는 모든 노드들에 분산 저장하고, 분산 저장된 복수의 해시값을 상호 비교하여 상기 점검 데이터의 유효성을 검증하고, 유효성이 검증된 점검 데이터가 포함된 블록을 생성하며, 생성된 새로운 블록을 기 생성된 블록체인에 결합한다.
상술한 본 발명의 일측면에 따르면, 공통기술팀은 프로젝트 수행의 중심 역할로 시스템의 구성하는 핵심기술로 공통기능을 prototyping하여 기술이슈를 사전에 해결하고, 개발표준을 구체적으로 정립함으로써 응용개발팀이 공통기능의 조립만으로 대부분의 기능을 일관되고 안정성 있게 구현할 수 있도록 하여 구현기간을 단축시켜 테스트/검수/보완 기간을 확보할 수 있으며, 프로젝트 결과물의 품질을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 개략적인 구성이 도시된 도면이다.
도 2는 도 1에 도시된 소프트웨어 개발 시스템을 이용한 웹기반 업무시스템 개발 프로세스가 도시된 도면이다.
도 3은 도 1에 도시된 공통기술 설정부의 구체적인 구성이 도시된 도면이다.
도 4 및 도 5는 소프트웨어 개발 프로세스를 설명하기 위한 도면이다.
도 2는 도 1에 도시된 소프트웨어 개발 시스템을 이용한 웹기반 업무시스템 개발 프로세스가 도시된 도면이다.
도 3은 도 1에 도시된 공통기술 설정부의 구체적인 구성이 도시된 도면이다.
도 4 및 도 5는 소프트웨어 개발 프로세스를 설명하기 위한 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 개략적인 구성이 도시된 블록도이고, 도 2는 도 1에 도시된 소프트웨어 개발 시스템을 이용한 웹기반 업무시스템 개발 프로세스가 도시된 개념도이다.
본 발명에 따른 소프트웨어 개발 시스템은 웹 기반 업무시스템에 기반하여 소프트웨어 개발 서비스를 제공하기 위한 것으로, 공통기술 설정부(100) 및 응용업무 처리부(200)를 포함한다.
공통기술 설정부(100)는 소프트웨어 개발에 대한 개발표준을 설정한다.
이러한 공통기술 설정부(100)는 소프트웨어 개발 프로젝트를 총괄하는 책임자 또는 공통기술에 대한 업무만을 별도로 취급하는 공통기술팀이 소지하는 제1 사용자 단말에 구현될 수 있다.
응용업무 처리부(200)는 공통기술부 설정부(100)에 의해 설정된 개발표준에 기초하여 소프트웨어 구현에 요구되는 세부 요구사항을 처리한다.
응용업무 처리부(200)는 소프트웨어를 실제 개발하는 실무자가 소지하는 제2 사용자 단말에 구현될 수 있다.
응용업무 처리부(200)는 상기 공통기술 설정부(100)에 의해 설정된 복수의 공통기능 컴포넌트를 조합하여 프로토타입 소프트웨어를 생성한다.
즉, 본 발명에 따른 따른 소프트웨어 개발 시스템을 이용하면 공통기술팀에서 개발 가이드라인을 설정하면, 응용업무팀은 공통기술팀의 개발 가이드라인을 따라 업무를 처리한다.
또한, 응용업무팀은 공통기능으로 처리해야될 기능들에 대해 공통기술팀에 요청하면, 공통기술팀은 이를 반영하여 개발 가이드라인을 수정할 수 있다.
이에 따라, 공통기술팀은 프로젝트 수행의 중심 역할로 시스템의 구성하는 핵심기술로 공통기능을 prototyping하여 기술이슈를 사전에 해결하고, 개발표준을 구체적으로 정립함으로써 응용개발팀이 공통기능의 조립만으로 대부분의 기능을 일관되고 안정성 있게 구현할 수 있도록 하여 구현기간을 단축시켜 테스트/검수/보완 기간을 확보할 수 있으며, 프로젝트 결과물의 품질을 향상시킬 수 있다.
도 3은 공통기술 설정부(100)의 구체적인 구성이 도시된 도면이다.
도시된 바와 같이, 공통기술 설정부(100)는, 공통기능 컴포넌트부(110), 시스템 프로토타입부(120), 테스트부(130) 및 고도화부(140)를 포함한다.
공통기능 컴포넌트부(110)는 시스템 적용기술 검토하여 개발언어, 프레임워크, 인프라 아키텍쳐 등을 구성하고, 소스코드 버전관리 시스템을 구성하며, 개발표준을 정립한다.
여기서, 개발표준은 상술한 공통기능 컴포넌트로, 공통기능 컴포넌트부(110)는 다이얼로그(dialog), 권한, 메뉴, 파일업로드, 파일다운로드, 입력에디터, 입력 폼, 목록형식, 통신규격 및 구현체를 포함하는 공통기능 컴포넌트를 설정한다.
다이얼로그는 개인 또는 기업체의 요구 정보를 컴퓨터를 통해 전달하는 데이터 베이스 검색 서비스이다. 컴퓨터 시스템 중에서 사용되고 있는 코드나 신호 등에 익숙치 않은 이용자에게는 그 의미를 이해할 수 없기 때문에 흔히 조작상, 운용상의 오류를 일으키는 경우가 많다. 그래서 어떤 시스템을 구축할 때, 시스템과 이용자와의 사용자 인터페이스(user interface)를 개선하기 위하여 시스템과 이용자와의 관계를 대화식으로 하는 방식이 고안되었다. 이것은 이용자가 마치 대화와 같이 표시(제시)되는 순서에 따라서 조작(운용)해 감으로써 일정한 작업과 공정을 종료시킬 수 있는 방법이다. 이러한 대화식에서 발생되는 시스템의 표시(제시)와 이용자측의 그것에 대한 응답 작업을 다이얼로그라 한다. 다이얼로그는 마치 어떤 질문에 대하여 대답이 존재하도록 일대일로 대응하는 작업이며, 솔직히 그 질문을 따라가면 대화식으로 어떤 프로세스를 종료할 수 있는 특징을 갖는다. 학습 시스템이나 시스템의 도입시에 흔히 이용되는 방법이다.
구현체는 인터페이스를 구현한 클래스라는 뜻이며, 구현 클래스 혹은 실체 클래스로도 불리운다. 인터페이스란 상수(static final)와 추상 메서드(abstract method)의 집합으로, 생성자를 가질 수 없으며 따라서 객체화가 불가능하다. 인터페이스는 다중상속을 지원하며, 구현체에 여러개의 인터페이스를 구현할 수 있다.
시스템 프로토타입부(120)는 시스템 요구사항 및 적용기술에 대한 프로토타입을 구현한다. 즉, 시스템 프로토타입부(120)는 응용개발팀이 공통기능을 조합하면 조합된 공통기능을 이용하여 프로토타입을 생성한다.
테스트부(130)는 구현된 프로토타입을 테스트서버를 통해 응용개발팀이 소지한 단말기(제2 단말기)로 제공할 수 있도록 한다.
고도화부(140)는 시스템 구현 과정에서 발생되는 기술이슈 및 소스코딩을 관리하여 프로토타입을 고도화며, 기능 통합 점검, 통합 보안 점검 및 인수(설치)시 필요한 기술검토 및 인도를 준비한다.
응용업무 처리부(200)는 애자일(Agile) 프로세스 모델에 따라 소프트웨어를 개발한다.
도 4는 소프트웨어 개발 모델 중 폭포수 모델에 관한 것으로, 프로젝트팀 전체가 모든 요구사항을 단계별로 진행하여 시스템을 완성하는 방법 기능별 조직은 운영할 수 있으나 전체적으로 같은 진행단계를 밟아나가야 하고, 이전 단계로 돌아갈 방법이 없다는 단점이 있다.
반면, 도 5는 애자일 모델에 관한 것으로, 개별 팀별로 요구사항을 담당하며, 요구사항별 폭포수모델을 iteration하여 전체 시스템을 완성시켜나간다.
애자일 방법론은 소프트웨어 개발 방법에 있어서 아무런 계획이 없는 개발 방법과 계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 하는 방법론이다. 계획이 없는 방법론의 경우, 앞으로의 일을 예측하기 힘들고 효율적이지 못하다는 점에서 취약점을 가지고 있으며, 계획에 너무 의존하는 경우는 그 형식적인 절차를 따르는데 필요한 시간과 비용을 무시할 수 없으며, 전체적인 개발의 흐름 자체를 느리게 하는 단점을 가지고 있다.
따라서 애자일 방법론이 폭포수 모델과 구별되는 가장 큰 차이점은 문서를 통한 개발 방법이 아니라, 실질적인 코딩을 통해 소프트웨어를 개발한다는 데 있다.
즉, 본 발명에 따른 소프트웨어 개발 시스템은 응용업무팀과 공통기술팀의 투트랙 체제로 소프트웨어를 개발하며, 공통기술팀이 공통기술 설정부(100)를 이용하여 개발 가이드를 제시하면 응용업무팀은 응용업무 처리부(200)를 이용하여 프로그램을 설계한다.
몇몇 다른 실시예에서, 본 발명에 따른 상기 공통기술 설정부는, 블록체인 네트워크와 연결되며, 개발 과정에서 발생되는 중요 데이터를 암호화고, 암호화된 내용을 블록체인 네트워크에 등록함으로써 다른 사용자에 의해 데이터가 열람되거나 데이터가 위조 또는 변조되는 것을 방지할 수 있다.
이를 위해, 공통기술 설정부는 암호화부(미도시) 및 보안부(미도시)를 더 포함할 수 있다.
암호화부는 상기 고도화부로부터 수신되는 기술이슈 및 소스코딩을 포함하는 점검 데이터를 암호화하여 관리한다.
이를 위해, 상기 암호화부는 상기 점검 데이터가 생성된 시간, 분 및 초를 이진수로 변환하여 연속적으로 나열하고, 나열된 이진수의 가장 중앙에 있는 숫자를 기준위치로 설정한다.
예를 들어, 도 6에 도시된 바와 같이 점검 데이터가 17시 33분 24초에 생성된 경우, 암호화부는 숫자 173324를 이진수로 변환한 후, 변환된 이진수에서 중앙에 위치한 숫자를 검색한다.
이때, 변환된 이진수의 전체 숫자 개수가 짝수개인 경우 암호화부는 도시된 바와 같이 두 개의 숫자를 기준수(기준위치)로 설정하고, 변환된 이진수의 전체 숫자 개수가 홀수개인 경우 암호화부는 가장 가운데 위치한 하나의 숫자를 기준수(기준위치)로 설정한다.
암호화부는 기준위치를 기준으로 전단부(좌측)에 대응되는 숫자 10110001과 가장 가까운 소수인 제1 소수와, 기준위치를 기준으로 후단부(우측)에 대응되는 숫자 11010011과 가장 가까운 소수인 제2 소수를 이용하여 개인 키/공개 키 방식으로 점검 데이터를 암호화한다.
암호화부는 생성된 두 개의 개인 키를 이용하여 공개 키를 생성할 수 있다. 이러한 개인 키-공개 키 생성 방법은 RSA 암호화 알고리즘을 이용한 것으로, RSA 암호화 알고리즘은 널리 공개된 기술이므로 구체적인 공개 키 생성 과정은 생략하기로 한다.
이러한 경우, 암호화부는 생성된 공개 키를 블록체인 네트워크를 통해 공표하여, 다른 사용자들은 암호화된 이미지를 수신하게 되면 암호화부로부터 수신된 공개 키를 이용하여 복호화할 수 있다.
상기 보안부는, 암호화된 상기 점검 데이터를 해시 함수를 이용하여 해시값으로 변환하고, 해시값으로 변환된 점검 데이터를 블록체인 네트워크를 구성하는 모든 노드들에 분산 저장하고, 분산 저장된 복수의 해시값을 상호 비교하여 상기 점검 데이터의 유효성을 검증하고, 유효성이 검증된 점검 데이터가 포함된 블록을 생성하며, 생성된 새로운 블록을 기 생성된 블록체인에 결합한다.
한편, 종래의 블록체인 기법을 이용하면, 악의적인 목적을 가진 공격자(해커)가 특정 노드를 점령하더라도 소스코드의 변경내용(트랜잭션)을 위조 또는 변조하여 조작하는 것은 실질적으로 불가능하지만, 어떤 개발자가 소스코드의 변경을 발생시켰는지에 대한 정보는 유출될 수 있다.
이와 같은 문제점을 해결하기 위하여, 본 발명에 따른 암호화부는 점검 데이터가 저장되는 블록체인 주소에 대응되는 임시 블록체인 주소를 생성할 수 있다.
즉, 암호화부는 점검 데이터가 저장되는 복수의 분산노드 각각의 블록체인 주소별로 복수의 임시 블록체인 주소를 미리 생성할 수 있다. 그리고, 암호화부는 노드별로 생성된 임시 블록체인 주소의 목록을 암호화부로 전송할 수 있다.
이후, 암호화부는 개발자가 특정 노드에 점검 데이터를 저장하면, 선택된 노드에 대한 복수의 임시 블록체인 주소 중 어느 하나의 임시 블록체인 주소를 사용자에게 할당할 수 있다. 예컨대, 개발자가 특정 노드에 점검 데이터를 전송하는 경우, 암호화부는 선택된 노드에 대한 복수의 임시 블록체인 주소 중 임시 블록체인 주소 1을 제1 개발자에게 할당할 수 있다. 이때, 제2 개발자 또한 제1 개발자가 선택한 노드에 데이터를 저장하는 경우, 암호화부는 선택된 노드에 대한 복수의 임시 블록체인 주소 중 임시 블록체인 주소 1을 제외한 나머지 주소들 중에서 어느 하나의 주소(임시 블록체인 주소2)를 제2 개발자에게 할당할 수 있다.
이에 따라, 개발자는 동일한 노드에 데이터를 저장하더라도 서로 다른 임시 블록체인 주소를 제공받게 되며, 암호화부는 트랜잭션을 생성할 때, 노드의 블록체인 주소를 대신하여 개발자에게 개별적으로 할당된 임시 블록체인 주소를 전송할 수 있다.
이후, 암호화부는 수신된 트랜잭션을 분석하여 개발자의 블록체인 주소 및 임시 블록체인 주소를 추출할 수 있다. 암호화부는 개발자의 블록체인 주소에 존재하는 토큰이 임시 블록체인 주소로 전송되도록 제어할 수 있다. 임시 블록체인 주소로 전달된 토큰은 해당 노드의 블록체인 주소로 자동으로 전달되며, 이에 따라 개발자의 점검 데이터는 최종적으로 노드에게 전달될 수 있다.
즉, 개발자는 논리적으로는 자신이 저장하고자 하는 노드에게 직접 점검 데이터를 저장하게 되나, 실질적인 토큰의 물리적 전송 경로는 개발자 블록체인 주소로부터 임시 블록체인 주소를 우회하여 노드 블록체인 주소에 도달되는 우회 전송과정을 통해 토큰이 전달될 수 있다.
또한, 암호화부는 임시 블록체인 주소를 통해 데이터 패킷(토큰)이 정상적으로 전송된 것으로 확인되면, 우회 전송에 사용된 임시 블록체인 주소가 자동으로 삭제 또는 소멸되도록 제어할 수 있다. 생성된 임시 블록체인 주소는 기 구축된 블록체인 네트워크가 아닌 임시적으로 생성된 주소이므로, 임시 블록체인 주소가 삭제되는 경우 암호화부에 구축된 블록체인 네트워크 상에서는 검색되지 않는다.
예를 들어, 개발자가 점검 데이터를 전달하는 경우, 암호화부는 점검 데이터가 라우터 노드 A-B-C를 우회한 후 공통기술팀에 전달되도록 제어할 수 있다. 이때, 암호화부는 수신된 트랜잭션의 1차 경유지인 라우터 노드 A와 개발자 단말기 간의 독립적인 암호화 통신을 제공할 수 있다. 이 과정에서, 암호화부는 라우터 노드 A로 전송된 점검 데이터를 라우터 노드 A와 라우터 노드 B의 다른 암호화 통신을 통해 전달할 수 있다. 이와 유사한 방법으로, 암호화부는 노드 B-C, 노드 C-서버 간 각각 독립된 암호화 통신 경로를 설정할 수 있다. 이때, 암호화부는 두 노드간의 세션 키를 교환하는 방법으로 암호화 통신을 설정할 수 있다.
이때, 특정 노드, 예컨대 라우터 노드 B가 점령당하더라도, 획득할 수 있는 정보는 점검 데이터 정보는 노드 A에서 전송되었으며, 노드 C로 전달하는 정보에 불과하다. 따라서, 우회 전송 중 특정 라우터 노드가 점령당하더라도, 점검 데이터의 송신자를 추적하는 것을 차단시킬 수 있다.
이와 같은, 소프트웨어 개발 시스템을 제공하는 기술은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1000: 소프트웨어 개발 시스템
100: 공통기술 설정부
200: 응용업무 처리부
100: 공통기술 설정부
200: 응용업무 처리부
Claims (3)
- 웹 기반 업무시스템에 기반하여 소프트웨어 개발 서비스를 제공하는, 소프트웨어 개발 시스템에 있어서,
상기 소프트웨어 개발 시스템은,
소프트웨어 개발에 대한 개발표준을 설정하는 공통기술 설정부; 및
상기 공통기술 설정부에 의해 설정된 개발표준에 기초하여 소프트웨어 구현에 요구되는 세부 요구사항을 처리하는 응용업무 처리부;를 포함하고,
상기 공통기술 설정부는,
다이얼로그(dialog), 권한, 메뉴, 파일업로드, 파일다운로드, 입력에디터, 입력 폼, 목록형식, 통신규격 및 구현체를 포함하는 공통기능 컴포넌트를 설정하는 공통기능 컴포넌트부;
시스템 요구사항 및 적용기술에 대한 프로토타입을 구현하는 시스템 프로토타입부;
구현된 프로토타입을 테스트서버를 통해 제공하는 테스트서버부; 및
시스템 구현 과정에서 발생되는 기술이슈 및 소스코딩을 관리하는 고도화부를 포함하고,
상기 응용업무 처리부는,
상기 공통기술 설정부에 의해 설정된 복수의 공통기능 컴포넌트를 조합하여 프로토타입 소프트웨어를 생성하고,
상기 공통기술 설정부는,
상기 고도화부로부터 수신되는 기술이슈 및 소스코딩을 포함하는 점검 데이터를 암호화하여 관리하는 암호화부; 및
암호화된 상기 점검 데이터를 블록체인 네트워크로 우회 전송하는 보안부를 더 포함하고,
상기 암호화부는,
상기 점검 데이터가 생성된 시간, 분 및 초를 이진수로 변환하여 연속적으로 나열하고, 나열된 이진수의 가장 중앙에 있는 숫자를 기준위치로 설정하고, 기준위치를 기준으로 전단부에 대응되는 숫자와 가장 가까운 제1 소수와, 기준위치를 기준으로 후단부에 대응되는 숫자와 가장 가까운 제2 소수를 이용하여 개인 키/공개 키 방식으로 상기 점검 데이터를 암호화하고,
상기 보안부는,
암호화된 상기 점검 데이터를 해시 함수를 이용하여 해시값으로 변환하고, 해시값으로 변환된 점검 데이터를 블록체인 네트워크를 구성하는 모든 노드들에 분산 저장하고, 분산 저장된 복수의 해시값을 상호 비교하여 상기 점검 데이터의 유효성을 검증하고, 유효성이 검증된 점검 데이터가 포함된 블록을 생성하며, 생성된 새로운 블록을 기 생성된 블록체인에 결합하는, 소프트웨어 개발 시스템.
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210063681A KR102292119B1 (ko) | 2021-05-17 | 2021-05-17 | 소프트웨어 개발 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210063681A KR102292119B1 (ko) | 2021-05-17 | 2021-05-17 | 소프트웨어 개발 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102292119B1 true KR102292119B1 (ko) | 2021-08-24 |
Family
ID=77506816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210063681A KR102292119B1 (ko) | 2021-05-17 | 2021-05-17 | 소프트웨어 개발 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102292119B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240020703A1 (en) * | 2022-07-18 | 2024-01-18 | Lenovo (Singapore) Pte. Ltd | Avoiding irreversible ledger transactions having an incorrect address |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110113160A (ko) * | 2011-09-19 | 2011-10-14 | 방인성 | 원격 프로그램 개발 서버, 원격 프로그램 개발 중개 시스템, 원격 프로그램 개발 서버 구축 방법 및 원격 프로그램 개발 중개 방법 |
KR20130035706A (ko) * | 2011-09-30 | 2013-04-09 | 주식회사 포스코 | 개발환경 관리 시스템 및 이의 개발환경 관리 방법 |
KR20170026855A (ko) * | 2015-08-31 | 2017-03-09 | (주)지산웨어 | 분할발주 및 원격지 개발 설계 진척관리를 위한 프로젝트 관리 시스템 |
KR102095364B1 (ko) | 2018-12-12 | 2020-04-01 | 인천대학교 산학협력단 | 루빅스 큐브 규칙을 적용하는 이미지 데이터 암호화 방법 및 장치 |
-
2021
- 2021-05-17 KR KR1020210063681A patent/KR102292119B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110113160A (ko) * | 2011-09-19 | 2011-10-14 | 방인성 | 원격 프로그램 개발 서버, 원격 프로그램 개발 중개 시스템, 원격 프로그램 개발 서버 구축 방법 및 원격 프로그램 개발 중개 방법 |
KR20130035706A (ko) * | 2011-09-30 | 2013-04-09 | 주식회사 포스코 | 개발환경 관리 시스템 및 이의 개발환경 관리 방법 |
KR20170026855A (ko) * | 2015-08-31 | 2017-03-09 | (주)지산웨어 | 분할발주 및 원격지 개발 설계 진척관리를 위한 프로젝트 관리 시스템 |
KR102095364B1 (ko) | 2018-12-12 | 2020-04-01 | 인천대학교 산학협력단 | 루빅스 큐브 규칙을 적용하는 이미지 데이터 암호화 방법 및 장치 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240020703A1 (en) * | 2022-07-18 | 2024-01-18 | Lenovo (Singapore) Pte. Ltd | Avoiding irreversible ledger transactions having an incorrect address |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10320843B1 (en) | Methods, systems, and devices for encrypted electronic storage and confidential network transfer of private data through a trustless distributed ledger technology system | |
CN106559211B (zh) | 一种区块链中隐私保护智能合约方法 | |
CN101415001B (zh) | 使用安全注解的组合应用 | |
GB2569278A (en) | Methods and apparatus for verifying a user transaction | |
CN109978688A (zh) | 分布式共识***之访问控制方法及其契约产生器与服务器 | |
CN110555029A (zh) | 基于区块链的票务管理方法、装置及存储介质 | |
US20130179955A1 (en) | Identity Management System And Method Including Architecture For The Same | |
Muneeb et al. | Smartcon: A blockchain-based framework for smart contracts and transaction management | |
US20220021518A1 (en) | Data block modification | |
CN112182635B (zh) | 一种联合建模的实现方法、装置、设备和介质 | |
US20190386968A1 (en) | Method to securely broker trusted distributed task contracts | |
CN112307513B (zh) | 基于时域共识的上链文档安全管理方法、装置和电子设备 | |
Pourmajidi et al. | Immutable log storage as a service on private and public blockchains | |
KR102292119B1 (ko) | 소프트웨어 개발 시스템 | |
US11438141B2 (en) | Method and system for managing consent and utilization of information using blockchain | |
CN116249980A (zh) | 通过异构加密的软件访问 | |
US20090055935A1 (en) | Data delivery system, issuance apparatus, terminal apparatus, and intermediate node | |
Papa et al. | Formal analysis of e-commerce protocols | |
JP2002015128A (ja) | 資産管理方法及びそのシステム | |
CN112163917A (zh) | 基于区块链的票据处理方法、装置、介质及电子设备 | |
JP2021081777A (ja) | 組織間の情報連携を制御するシステム | |
CN110457954A (zh) | 合同管理装置与方法 | |
CN116109383B (zh) | 缴费订单服务方法、***、电子设备及存储介质 | |
CN116680746B (zh) | 一种金融数据共享方法及*** | |
US12008363B1 (en) | Delivering portions of source code based on a stacked-layer framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |