WO2016111525A1 - 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체 - Google Patents
소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체 Download PDFInfo
- Publication number
- WO2016111525A1 WO2016111525A1 PCT/KR2016/000057 KR2016000057W WO2016111525A1 WO 2016111525 A1 WO2016111525 A1 WO 2016111525A1 KR 2016000057 W KR2016000057 W KR 2016000057W WO 2016111525 A1 WO2016111525 A1 WO 2016111525A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- source code
- static analyzer
- transfer
- control method
- requested
- 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/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
Definitions
- the present invention relates to a method for controlling source code transfer, a computer program for the same, and a recording medium thereof, and loading the analysis result of the static analyzer frequently performed in the development process of the source code to be managed by the static analyzer server, and requesting a developer transfer.
- a source code migration control method and computer program for recording the source code transfer control which is configured to reduce the time and resources required for source code configuration management by configuring the transfer conformance check to be carried out by using the analysis results loaded on the static analyzer server in the city. It is about the medium.
- Configuration management is all the activities related to the change history of all the components (e.g., software source code, development environment, build structure, etc.) that occur in the development process of computer software until the final stage of maintenance. Says management.
- components e.g., software source code, development environment, build structure, etc.
- configuration management may be understood, in particular, as a concept of change management for source code produced during the implementation and testing of computer software.
- the CM system receives the transfer request from the developer.
- the source code that is the subject of the transfer request is added to the repository (shape management repository), or the source code added to the repository is checked after the change (Check out) for the change. This can be done by checking back into the recorded state.
- the called analysis engine analyzes the check items for the source code that has been transferred.
- the check items are items related to source code stability criteria set by an administrator. For example, whether source code written by an operator worked in accordance with an organization's code convention or other standards, Check items can be checked whether the security of the code is checked and the result.
- the CM system checks the transfer to the return value or identifiable value of the analyzed result.
- a static analyzer is generally used as an analysis engine for the source code requested for migration.
- Static Analysis Tool performs static code analysis on the source code that is subject to configuration management, and detects various kinds of defects or vulnerabilities from the source code and developer (or analyzes the detected defects). The person in charge of the job).
- Static analyzers with automated analysis of source code have been known for a variety of products.
- the present invention has been made in view of the above problems, and loads the analysis results of the static analyzer which is frequently performed in the development process of the source code that is subject to configuration management to the static analyzer server, and loads the static analyzer server upon request of developer transfer.
- the object of the present invention is to provide a source code migration control method, a computer program, and a recording medium configured to reduce the time and resources required for source code configuration management by configuring the transfer conformance check using the analyzed results. do.
- a source code migration control method that is executed in the configuration management system in conjunction with the static analyzer server, 1) receiving a transfer request for the source code; 2) transmitting file identification information regarding the requested source code to the static analyzer server; 3) receiving, from the static analyzer server, a return value generated based on the analysis result loaded on the static analyzer server with respect to the source code requested to be transferred based on the file identification information, wherein the return value is used to transfer control. Is a value generated based on a preset check item; And 4) providing information on whether or not normal transfer is possible to the requested source code based on the return value.
- the file identification information includes at least one of a file name and a file hash value of a source code requested to be transferred.
- the transmission of the file identification information to the static analyzer server calls the Rest (Representational safe transfer) API provided by the static analyzer, at least any of the file name and the file hash value of the source code requested for migration. It is characterized in that it is made by transmitting one to the static analyzer server as file identification information.
- the analysis result loaded into the static analyzer is characterized in that the loading on the static analyzer server as a result of the occasional analysis through the static analyzer during the corresponding source code development process or modification process.
- the predetermined check item is characterized in that the item on the stability of the source code.
- the predetermined check item characterized in that it comprises at least one of compliance with the code format (code convention), whether the standard compliance, security standards compliance of the requested source code.
- the return value is a first return result value indicating that the source code requested to be transferred meets a preset source code stability criterion, and a second value indicating that the source code requested to be transferred falls short of a preset source code stability criterion. And a return result value or a third return result value indicating that there is no analysis result related to the preset check item.
- a URL of a defect list that causes a failure to meet a stability criterion is further received from the static analyzer server, and in step 4), By referring to the URL it is characterized in that to further provide information about the defect that causes the failure to meet the stability criteria.
- a computer program stored in a medium for executing the source code transfer control method in combination with hardware is disclosed.
- a computer-readable recording medium recording a computer program for executing each step of the source code transfer control method is disclosed.
- the present invention utilizes the Rest API provided by the static analyzer server, there is an advantage of reducing the time required to configure and respond to the transfer control environment in source code configuration management.
- FIG. 1 is an interlock configuration diagram of a configuration management system according to an embodiment of the present invention
- FIG. 2 is a flowchart of a source code migration control method according to an embodiment of the present invention.
- first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
- the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
- FIG. 1 is an interlock configuration diagram of a configuration management system according to an embodiment of the present invention.
- 'network interworking' includes not only interworking through a general communication network such as a LAN, but also a case in which a server performing a specific function is mounted in one system so that a module or a server for each function is functionally interoperable. Can be understood.
- the configuration management system 2000 is a system that manages all the activities related to the change history of the software source code, the development environment, the build structure, etc., generated from the development time of the computer software project to the final stage of maintenance.
- it can be understood as a system for executing change management on the source code calculated at the implementation and testing stage of the computer software.
- the configuration management system 2000 interworks with the transfer management module 2010 and the static analyzer server 1000 that manage the transfer control process from the developer client 3000 to the final transfer to the final transfer. It is provided with a static analyzer interworking module (2012) for providing information on whether the normal transfer of the requested source code transfer, and a control module (2014) for performing the overall management and control of each module.
- the source code requested for transfer by the developer client 3000 may be understood as the output of a project that is registered in the configuration management system 2000 in advance and subjected to configuration management, and is preset in the development process in the development process (coding process). It is understood that various types of defects or vulnerabilities are detected through static analyzers installed at the static analyzer server 1000 at one time or from time to time, and that the details of the detected defect list and the URL of the defect list are loaded and managed in the static analyzer server 1000. Can be.
- each module of the configuration management system 2000 may be integrated into one module or distributed in modules of more detailed functions.
- the static analyzer server 1000 of the present embodiment includes a source code input module 1010, a source code analysis module 1012, an analysis result management module 1014, and a control module 1016.
- the source code input module 1010 receives the analysis target source code in the form of a code file so that the source code analysis module 1012 described later can perform an analysis process.
- the input of the code file may be performed by a file input or an open operation through the developer client 3000.
- the source code analysis module 1012 generates defect information from the source code to be analyzed through static program analysis.
- the source code analysis module 1012 includes a parser and a defect detector.
- the parser analyzes and extracts (or parses) and purifies various information required for analysis from the input source code.
- the information required for the analysis may be, for example, an abstract syntax tree, the number of lines of source code, location information, or the like.
- the defect detection unit detects defect information that may be a problem in the source code based on the information necessary for the analysis refined by the syntax analysis unit.
- Defect information detection of the defect detection unit may be performed by, for example, executing a function of a checker that checks for a defect.
- the defect information may include, for example, the file name of the source code where the defect actually occurred, the location information such as a line and the type of the defect, the part causing the actual defect, and the actual defect information such as the flow of the source code where the defect occurred. It is composed.
- detected faults can include undefined values when referencing variables, inconsistent interfaces between modules and components, unused or incorrectly declared variables, uncalled code, missing or faulty logic (e.g. potential Infinite loop), non-code convention, non-compliance with programming standard, non-compliance with security standard.
- undefined values when referencing variables, inconsistent interfaces between modules and components, unused or incorrectly declared variables, uncalled code, missing or faulty logic (e.g. potential Infinite loop), non-code convention, non-compliance with programming standard, non-compliance with security standard.
- the defect detection result regarding whether the source code complies with the code convention, the standard compliance, and the security standard is checked during the source code transfer control of the configuration management.
- This is the main check item related to the determination of the stability of the source code.
- code inspection or source code security analysis can be regarded as an important item in determining the stability of the source code.
- CM repository CM repository
- CM repository CM repository
- CR change request
- build distribution the source code written by the developer is code of the organization. Verify that you have worked in accordance with code conventions or other standards, and manage only those items that meet the validation criteria in the configuration management repository or build distribution.
- the security check of the target configuration items is performed immediately before the deployment of the build. For example, only the items verified by confirming the existence of a security vulnerability such as SQL injection Manage to be deployed on the server.
- the check item may be appropriately changed according to the configuration of the configuration management process, may be set through the administrator client 4000, the developer or source code related to the developer through the developer client 3000 for the transfer request
- the person in charge can also request setting.
- syntax analysis function of the syntax analysis unit and the defect information detection function of the defect detection unit may be implemented through the same or similar configuration as the syntax analysis function and the defect information detection function of various known static analysis tools. Since the static analysis tool has been known a variety of commercial products of the syntactic analysis (Syntactic analysis) or semantic analysis (Semantic analysis method), its detailed description is omitted.
- Defect information detection of the defect detection unit is performed by the function execution of each checker provided to check each defect.
- the analysis result management module 1014 may provide defect information received from the source code analysis module 1012 to the developer client 3000 so that the defect may be corrected, or may be loaded into a server and managed in the form of a defect list.
- the defect list may be managed by a separate URL for each list.
- the control module 1016 performs overall management and control functions of each module.
- each module of the static analyzer server 1000 may be integrated into one module or distributed in modules of more detailed functions.
- FIG. 2 is a flowchart of a source code migration control method according to an embodiment of the present invention.
- the source code transfer control method of the present embodiment is executed in the configuration management system interworking with the static analyzer server.
- step S1 the configuration management system receives a transfer request for the source code from the developer client.
- a developer client may be understood as a client of a developer of source code or a person in charge of source code related work.
- the transfer request may be received by importing the target source code into the configuration management repository of the configuration management system.
- step S2 the configuration management system transmits the file identification information about the source code requested to be transferred to the static analyzer server.
- the file identification information includes at least one of a file name and a file hash value of a source code requested to be transferred.
- the file hash value may be a hash code value generated through a message-digest algorithm 5 (MD5) function.
- MD5 Message-Digest Algorithm 5
- RFC 1321 RFC 1321
- MD5 is used to calculate the file hash value (hash code) for the purpose of utilizing the existing analysis result value of the source code stored in the static analyzer server, configuration management stored in the static analyzer server and the developer's computer Used as identifier code of the source code file to be migrated.
- the transmission of file identification information to the static analyzer server calls the Rest (Representational safe transfer) API provided by the configuration management system from the static analysis system, and among the file names and file hash values of the source code requested for transfer. At least one of the file identification information is transmitted to the static analyzer server.
- Rest Presentational safe transfer
- the static analyzer server receives at least one of the file name and the file hash value of the source code requested to be transferred, and the developer performs the analysis at any time and contrasts with the analysis result information stored as a result.
- the static analyzer server manages at least any one of a file name and a file hash value of a source code file from which a developer performs an analysis at any time along with the analysis result.
- step S3 the configuration management system, based on the file identification information, receives the return value generated based on the analysis result loaded on the static analyzer server for the transfer request source code from the static analyzer server.
- the analysis result loaded into the static analyzer is loaded into the static analyzer server as a result of the occasional analysis through the static analyzer during the corresponding source code development process or modification process.
- the developer becomes a subject who performs source code inspection activities for transfer control through the occasional analysis without changing the existing environment that performs the source code analysis, and the analysis results are loaded on the static analyzer server every time. It can be used as an analysis result for transfer control.
- the return value is a value generated based on a check item preset for transfer control.
- the preset check item is an item regarding the stability of the source code.
- the preset check item may include at least one of compliance with a code convention, compliance with standards, and compliance with security standards of the requested source code.
- the return value for each check item may be generated according to whether a detection result of each check item satisfies a predetermined criterion preset by an administrator based on a defect detection result of the static analyzer.
- the criterion may be set in consideration of, for example, whether there is a defect, a frequency of defects, a number of defects, or the like. For example, if there are no defects, or if the frequency or number of defects is below a predetermined criterion, it may be determined that the stability requirements are met.
- the return value may include a first return result value (eg, return result value '1') indicating that the source code requested to be transferred meets a preset source code stability criterion, and the source code for which the requested source code is preset A second return result value (eg, return result value '0') indicating that the stability criterion is not met, and a third return result value (eg, return result value '-1') indicating that there is no analysis result related to the preset check item ').
- a first return result value eg, return result value '1'
- a second return result value eg, return result value '0'
- a third return result value eg, return result value '-1'
- the URL of the defect list causing the failure to meet the stability criterion is configured to be further transmitted from the static analyzer server.
- the administrator or developer can see the access screen of the configuration management system, and can check the information that can be properly transferred to the source code, problem identification and action.
- the risk information of the source code stability or vice versa may be provided in the form of a level value.
- the risks in the form of level values may be calculated by combining the results of each check item.
- step S4 the configuration management system, based on the return value, provides information on whether or not the normal transfer of the requested source code to the developer client or administrator client.
- the administrator client may be understood as a client of an administrator who manages source code configuration management tasks.
- the configuration management system refers to the URL of the defect list, the administrator client or developer to provide information about the defect that causes the failure to meet the stability criteria. Provide even more to the client.
- the defect list URL the administrator or developer may prepare a solution by specifically identifying the content of the defect that is a cause of difficulty in escalation control.
- the Rest API for checking the escalation conformance may be configured as follows.
- Table 1 below is an example of argument values for information verification.
- Table 2 below is an example of the result return value.
- Table 3 below is an example of creating a Rest client, creating an input map, creating a list map, adding input data, and generating a transfer result.
- Table 4 below is an example of the transmission result display.
- Embodiments of the present invention include a program for performing various computer-implemented operations and a computer readable medium recording the same.
- the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
- Examples of computer readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROM, DVD, USB drives, magnetic-optical media such as floppy disks, and ROM, RAM, Hardware devices specifically configured to store and execute program instructions, such as flash memory, are included.
- the medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or the like.
- program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것이다. 본 발명의 일측면에 따르면, 정적분석기 서버와 연동하는 형상관리시스템에서 실행되는 소스코드 이관제어 방법으로서, 1) 소스코드에 대한 이관요청을 접수받는 단계; 2) 이관요청된 소스코드에 관한 파일 식별 정보를 정적분석기 서버로 전송하는 단계; 3) 상기 파일 식별 정보에 근거하여, 이관요청된 소스코드에 대하여 정적분석기 서버에 적재되어 있는 분석 결과에 근거하여 생성된 리턴값을 상기 정적분석기 서버로부터 전송받는 단계- 상기 리턴값은 이관제어를 위해 미리 설정된 점검항목에 근거하여 생성된 값임-; 및 4) 상기 리턴값에 근거하여, 이관요청된 소스코드에 대한 정상이관 가능 여부에 관한 정보를 제공하는 단계;를 포함하여 구성된 소스코드 이관제어 방법이 개시된다.
Description
본 발명은 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것으로서, 형상관리 대상이 되는 소스코드의 개발과정에서 수시로 이뤄지는 정적분석기의 분석 결과를 정적분석기 서버에 적재하고, 개발자 이관요청 시에 정적분석기 서버에 적재된 분석 결과를 이용하여 이관적합성 체크가 이뤄지도록 구성함으로써, 소스코드 형상관리에 필요한 시간 및 리소스를 저감시킬 수 있도록 구성된 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체에 관한 것이다.
형상관리는, 컴퓨터 소프트웨어의 개발 과정에 있어서 프로젝트의 개발 시점에서 유지보수가 이루어지는 최종단계까지 발생되는 모든 구성 요소(예, 소프트웨어 소스코드, 개발 환경, 빌드 구조 등)의 변경 이력에 관련한 모든 행위들에 대한 관리를 말한다.
다소 좁은 관점에서, 형상관리는, 특히, 컴퓨터 소프트웨어의 구현 및 테스트 단계에서 산출되는 소스코드에 대한 변경 관리의 개념으로 이해되는 경우도 있다.
형상관리를 위한 다양한 공지의 형상관리시스템이 제안된 바 있으며, 일예로, 형상관리시스템을 이용한 종래의 형상관리(이관제어)는 다음과 같이 진행되었다.
1) 형상관리시스템이 개발자로부터 이관요청을 접수한다.
일예로, 이관요청 접수는, 이관요청의 대상이 되는 소스코드가 저장소(형상관리 저장소)에 추가(add)되거나, 저장소에 추가된 소스코드가 변경을 위한 내려받기(Check out) 후 변경 사항이 기록된 상태로 다시 추가(Check in)되는 과정을 통해 이뤄질 수 있다.
2) 형상관리시스템에서 분석엔진을 호출한다.
3) 호출된 분석엔진이 이관요청 들어온 소스코드에 대하여 점검항목을 분석한다.
일예로, 상기 점검항목은 관리자가 설정해 놓은 소스코드 안정성 기준과 관련된 항목들이 되며, 예를 들어, 작업자가 작성한 소스코드가 조직의 코드 형식(code convention)이나 기타 표준을 준수하여 작업했는지 여부, 소스코드의 보안성 체크 여부 및 그 결과 등이 점검항목이 될 수 있다.
4) 형상관리시스템이 분석된 결과에 대한 리턴값 혹은 식별가능한 값으로 이관여부를 체크한다.
상술한 종래의 형상관리에 있어서, 이관요청된 소스코드에 대한 분석엔진으로서 일반적으로 정적분석기가 사용된다. 정적분석기(Static Analysis Tool)는 형상관리의 대상이 되는 소스코드에 대한 정적 프로그램 분석(Static Code Analysis)을 수행하여, 소스코드로부터 다양한 종류의 결함이나 취약점을 검출하고 검출된 결함을 개발자(또는 분석 업무 담당자)에게 알려준다. 소스코드에 대하여 자동화된 분석 기능을 갖는 정적분석기는 다양한 제품들이 공지된 바 있다.
그런데, 상기 예시된 종래의 형상관리시스템의 이관제어 과정은 다음과 같은 문제점 또는 한계점을 갖고 있었다.
우선, 개발자로부터 이관요청을 접수한 후 형상관리시스템에서 분석엔진을 호출하여 분석기능을 구현하므로, 이관제어 환경 구성과 대응에 필요한 시간이 길어진다는 문제점이 있었다.
또한, 소스코드의 매 이관시마다 매번 분석을 수행해야 하므로, 이관제어를 위한 이관시간이 불필요하게 증가된다는 문제점이 있었다.
또한, 소스코드 분석시마다 시스템 자원을 사용하여 분석이 수행되므로, 분석에 필요한 리소스가 과도하게 증가한다는 문제점이 있었다.
본 발명은 상기와 같은 문제점을 감안하여 안출한 것으로서, 형상관리 대상이 되는 소스코드의 개발과정에서 수시로 이뤄지는 정적분석기의 분석 결과를 정적분석기 서버에 적재하고, 개발자 이관요청 시에 정적분석기 서버에 적재된 분석 결과를 이용하여 이관적합성 체크가 이뤄지도록 구성함으로써, 소스코드 형상관리에 필요한 시간 및 리소스를 저감시킬 수 있도록 구성된 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체를 제공함을 그 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 정적분석기 서버와 연동하는 형상관리시스템에서 실행되는 소스코드 이관제어 방법으로서, 1) 소스코드에 대한 이관요청을 접수받는 단계; 2) 이관요청된 소스코드에 관한 파일 식별 정보를 정적분석기 서버로 전송하는 단계; 3) 상기 파일 식별 정보에 근거하여, 이관요청된 소스코드에 대하여 정적분석기 서버에 적재되어 있는 분석 결과에 근거하여 생성된 리턴값을 상기 정적분석기 서버로부터 전송받는 단계- 상기 리턴값은 이관제어를 위해 미리 설정된 점검항목에 근거하여 생성된 값임-; 및 4) 상기 리턴값에 근거하여, 이관요청된 소스코드에 대한 정상이관 가능 여부에 관한 정보를 제공하는 단계;를 포함하여 구성된 소스코드 이관제어 방법이 개시된다.
바람직하게, 상기 파일 식별 정보는, 이관요청된 소스코드의 파일 명칭 및 파일 해쉬값 중 적어도 어느 하나를 포함하는 것을 특징으로 한다.
바람직하게, 상기 정적분석기 서버로 파일 식별 정보의 전송은, 형상관리시스템이 정적분석기에서 제공하는 Rest(Representational safe transfer) API를 호출하고, 이관요청된 소스코드의 파일 명칭 및 파일 해쉬값 중 적어도 어느 하나를 파일 식별 정보로서 상기 정적분석기 서버에 전송하는 방식으로 이뤄지는 것을 특징으로 한다.
바람직하게, 상기 정적분석기에 적재되어 있는 분석 결과는, 해당 소스코드 개발 과정 또는 변경 과정 중에 상기 정적분석기를 통한 수시 분석의 결과로서 정적분석기 서버에 적재된 것임을 특징으로 한다.
바람직하게, 상기 미리 설정된 점검항목은 소스코드의 안정성 여부에 관한 항목인 것을 특징으로 한다.
바람직하게, 상기 미리 설정된 점검항목은, 이관요청된 소스코드의 코드 형식(code convention) 준수 여부, 표준 준수 여부, 보안성 기준 준수 여부 중 적어도 어느 하나를 포함하는 것을 특징으로 한다.
바람직하게, 상기 리턴값은, 이관요청된 소스코드가 미리 설정된 소스코드 안정성 기준에 부합된 것으로 나타내는 제1 리턴 결과값, 이관요청된 소스코드가 미리 설정된 소스코드 안정성 기준에 미달된 것으로 나타내는 제2 리턴 결과값, 상기 미리 설정된 점검항목과 관련된 분석 결과가 없는 것으로 나타내는 제3 리턴 결과값 중 어느 하나인 것을 특징으로 한다.
바람직하게, 상기 3) 단계에서, 상기 리턴값이 상기 제2 리턴 결과값인 경우, 안정성 기준에 미달된 원인이 되는 결함 리스트의 URL을 상기 정적분석기 서버로부터 더욱 전송받으며, 상기 4) 단계에서, 상기 URL을 참조하여 안정성 기준에 미달된 원인이 되는 결함에 관한 정보를 더욱 제공하는 것을 특징으로 한다.
본 발명의 또 다른 일측면에 따르면, 하드웨어와 결합되어 상기 소스코드 이관제어 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램이 개시된다.
본 발명의 또 다른 일측면에 따르면, 상기 소스코드 이관제어 방법 각 단계를 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체가 개시된다.
이와 같은 본 발명은, 이관제어를 위한 소스코드 분석시마다 시스템 자원을 사용할 필요가 없고, 개발 진행 중에 정적분석기 서버에 수시 분석 결과로서 적재된 소스코드의 특정 점검항목의 분석 여부 및 안정성 여부에 대한 체크만 수행하므로, 소스코드 분석에 필요한 리소스를 저감시키고 이관시간을 감소시킬 수 있다는 장점이 있다.
또한, 본 발명은 정적분석기 서버에서 제공하는 Rest API를 활용하므로, 소스코드 형상관리에 있어서 이관제어 환경 구성과 대응에 필요한 시간을 저감시키는 장점이 있다.
도 1은 본 발명의 일실시예에 따른 형상관리시스템의 연동 구성도,
도 2는 본 발명의 일실시예에 따른 소스코드 이관제어 방법의 흐름도이다.
본 발명은 그 기술적 사상 또는 주요한 특징으로부터 벗어남이 없이 다른 여러가지 형태로 실시될 수 있다. 따라서, 본 발명의 실시예들은 모든 점에서 단순한 예시에 지나지 않으며 한정적으로 해석되어서는 안 된다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구비하다", "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 일실시예에 따른 형상관리시스템의 연동 구성도이다.
형상관리시스템(2000) 및 정적분석기 서버(1000)가 네트워크 연동되며, 형상관리 대상이 되는 소스코드의 개발 업무를 담당하는 개발자 클라이언트(3000)와 형상관리 업무를 관리하는 관리자 클라이언트(4000)가 네트워크 연동된다. 본 실시예에서 '네트워크 연동'은 LAN과 같은 통상의 통신 네트워크망을 통한 연동뿐만 아니라, 하나의 시스템 내에 특정 기능을 수행하는 서버가 탑재되어 각 기능별 모듈 또는 서버가 기능적으로 상호 연동되는 경우도 포함하는 것으로 이해될 수 있다.
형상관리시스템(2000)은, 컴퓨터 소프트웨어 프로젝트의 개발 시점에서 유지보수가 이루어지는 최종단계까지 발생되는 소프트웨어 소스코드, 개발 환경, 빌드 구조 등의 변경 이력에 관련한 모든 행위들에 대한 관리를 실행하는 시스템으로서, 특히, 본 실시예에서는 컴퓨터 소프트웨어의 구현 및 테스트 단계에서 산출되는 소스코드에 대한 변경 관리를 실행하는 시스템으로 이해될 수 있다.
본 실시예의 형상관리시스템(2000)은, 개발자 클라이언트(3000)로부터 소스코드의 이관요청을 접수하여 최종 이관까지의 이관제어 프로세스를 관리하는 이관 관리 모듈(2010), 정적분석기 서버(1000)와 연동하여 이관요청된 소스코드의 정상이관 가능 여부에 관한 정보를 제공하는 정적분석기 연동 모듈(2012), 상기 각 모듈의 전반적인 관리 및 제어 기능을 수행하는 제어 모듈(2014)을 구비한다.
개발자 클라이언트(3000)가 이관요청 하는 소스코드는, 형상관리시스템(2000)에 미리 설정 등록되어 형상관리 대상이 되는 프로젝트의 산출물로 이해될 수 있으며, 개발 과정(코딩 과정)에서 개발 프로세스에서 미리 설정한 시점 또는 수시로 정적분석기 서버(1000)에 설치된 정적분석기를 통해 다양한 종류의 결함이나 취약점을 검출하고 검출된 결함 리스트의 내역과 결함 리스트의 URL이 상기 정적분석기 서버(1000)에 적재 관리되는 것으로 이해될 수 있다.
실시예에 따라 형상관리시스템(2000)의 각 모듈은 하나의 모듈로 통합 구현되거나 더 세부 기능의 모듈로 분산 구성될 수도 있다.
본 실시예의 정적분석기 서버(1000)는, 소스코드 입력 모듈(1010, 소스코드 분석 모듈(1012), 분석 결과 관리 모듈(1014) 및 제어 모듈(1016)을 포함한다.
소스코드 입력 모듈(1010)은, 예를 들어, 분석 대상 소스코드를 코드 파일의 형태로 입력받아 후술하는 소스코드 분석 모듈(1012)이 분석 처리를 할 수 있도록 한다. 일예로, 코드 파일의 입력은 개발자 클라이언트(3000)를 통한 파일 입력 또는 오픈 조작에 의해 이뤄질 수 있다.
소스코드 분석 모듈(1012)은, 정적 프로그램 분석을 통해 분석 대상 소스코드로부터 결함 정보를 생성한다. 바람직한 일예로, 소스코드 분석 모듈(1012)은, 구문 분석부, 결함 검출부를 포함한다.
구문 분석부는 입력받은 소스코드로부터 분석에 필요한 각종 정보들을 추출(또는 파싱)하고 정제하는 역할을 수행한다. 분석에 필요한 정보는, 예를 들어, 추상 구문 트리(Abstract Syntax Tree)나 소스코드의 라인 수, 위치 정보 등이 될 수 있다.
결함 검출부는 구문 분석부에서 정제된 분석에 필요한 정보들을 토대로 소스코드에서 문제가 될 수 있는 결함 정보를 검출해 낸다. 상기 결함 검출부의 결함 정보 검출은 일예로, 결함 여부를 체크하는 체커의 기능 실행에 의해 이뤄질 수 있다. 결함 정보는 예를 들어, 결함이 실제 발생한 소스코드의 파일명, 라인과 같은 위치 정보와 결함의 종류, 실제 결함의 원인이 된 부분, 결함이 발생하게 된 소스코드의 흐름과 같은 실제 결함 정보 등으로 구성된다.
일예로, 검출되는 결함은, 변수 참조 시 정의되지 않은 값 사용, 모듈과 컴포넌트 사이의 인터페이스에 일관성 미비, 사용하지 않거나 잘못 선언된 변수, 호출되지 않는 코드, 누락되거나 오류가 있는 로직(예, 잠재적 무한 루프), 코드 형식(code convention) 미준수, 프로그래밍 표준 미준수, 보안성 기준 미준수 등이 될 수 있다.
특히, 본 실시예에서는, 상기와 같은 여러가지 결함 점검항목 중에서 소스코드의 코드 형식(code convention) 준수 여부, 표준 준수 여부, 보안성 기준 준수 여부에 관한 결함 검출 결과를 형상관리의 소스코드 이관제어 시에 소스코드의 안정성 여부 판단에 관련된 주요 점검항목으로서 미리 설정하여 관리할 수 있다.
소스코드의 형상관리, 특히 이관제어에 있어서, 코드 인스펙션(code inspection)이나 소스코드 보안성 분석은 소스코드의 안정성 여부 판단에 중요한 항목으로 볼 수 있다.
일예로, 코드 인스펙션(code inspection)에서는, 개발자가 CR(Change Request)에 의거하여 수정된 소스코드를 형상관리 저장소에 반입할 때 (혹은 빌드배포 요청할 때), 개발자가 작성한 소스코드가 조직의 코드 형식(code convention)이나 기타 표준을 준수하여 작업했는지에 대하여 확인하고, 확인 기준을 충족한 항목들만 형상관리 저장소에 저장하거나, 혹은 빌드배포 되도록 관리한다.
또한, 소스코드 보안성 분석에서는, 빌드배포 직전에 대상 형상항목들(소스 코드)의 보안성 체크를 수행하는데, 예를 들어, SQL 인젝션(injection) 등 보안 취약점 존재여부를 확인하여 검증된 항목들만 서버에 배포되도록 관리한다.
한편, 상기 점검항목은 형상관리 프로세스의 설정에 따라 적절하게 변경될 수 있으며, 관리자 클라이언트(4000)를 통해 입력 설정될 수 있으며, 이관요청을 하는 개발자 클라이언트(3000)를 통해 개발자 또는 소스코드 업무 관련 담당자가 설정 요청할 수도 있다.
상기 구문 분석부의 구문 분석 기능 및 결함 검출부의 결함 정보 검출 기능은, 공지의 다양한 정적 분석 도구(Static Analysis Tool)의 구문 분석 기능 및 결함 정보 검출 기능과 동일 내지 유사한 구성을 통해 구현될 수 있다. 정적 분석 도구는 문법기반(Syntactic) 분석 또는 의미기반(Semantic) 분석 방식의 다양한 상용 제품들이 공지된 바 있으므로, 그 상세한 설명은 생략한다.
상기 결함 검출부의 결함 정보 검출은 각각의 결함 여부를 체크하도록 구비된 각각의 체커의 기능 실행에 의해 이뤄진다.
분석 결과 관리 모듈(1014)은, 소스코드 분석 모듈(1012)로부터 전달받은 결함 정보를 개발자 클라이언트(3000)로 제공하여 결함 수정이 이뤄질 수 있도록 하거나, 서버 내에 적재하여 결함 리스트 형태로 관리한다. 결함 리스트는 각각의 리스트에 대하여 별도의 URL로 관리될 수 있다.
제어 모듈(1016)은 상기 각 모듈의 전반적인 관리 및 제어 기능을 수행한다.
실시예에 따라 정적분석기 서버(1000)의 각 모듈은 하나의 모듈로 통합 구현되거나 더 세부 기능의 모듈로 분산 구성될 수도 있다.
도 2는 본 발명의 일실시예에 따른 소스코드 이관제어 방법의 흐름도이다. 본 실시예의 소스코드 이관제어 방법은 정적분석기 서버와 연동하는 형상관리시스템에서 실행된다.
S1 단계에서 형상관리시스템은, 개발자 클라이언트로부터 소스코드에 대한 이관요청을 접수받는다.
개발자 클라이언트는 소스코드의 개발자 또는 소스코드 관련 업무 담당자의 클라이언트로 이해될 수 있다.
일예로, 이관요청 접수는 이관 대상 소스코드를 형상관리시스템의 형상관리 저장소에 반입하는 방식으로 이뤄질 수 있다.
S2 단계에서 형상관리시스템은, 이관요청된 소스코드에 관한 파일 식별 정보를 정적분석기 서버로 전송한다.
일예로, 상기 파일 식별 정보는, 이관요청된 소스코드의 파일 명칭 및 파일 해쉬값 중 적어도 어느 하나를 포함한다.
일예로, 파일 해쉬값은 MD5(Message-Digest algorithm 5) 함수를 통해 생성된 해쉬코드값이 될 수 있다. MD5(Message-Digest algorithm 5)는 128비트 암호화 해쉬 함수로서, RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다. 본 실시예에서 MD5는 정적분석기 서버 내에 저장되어있는 소스코드의 기존 분석결과값을 활용하려는 목적으로 파일 해쉬값(해쉬코드)을 산출하는데 사용되며, 정적분석기 서버 및 개발자의 컴퓨터에 저장되는 형상관리 이관대상 소스코드 파일의 식별자 코드로 사용된다.
또한, 일예로, 상기 정적분석기 서버로 파일 식별 정보의 전송은, 형상관리시스템이 정적분석기에서 제공하는 Rest(Representational safe transfer) API를 호출하고, 이관요청된 소스코드의 파일 명칭 및 파일 해쉬값 중 적어도 어느 하나를 파일 식별 정보로서 상기 정적분석기 서버에 전송하는 방식으로 이뤄진다.
Rest API를 이용하면, 이미 운용중인 형상관리시스템의 구성을 변경하지 않고, 이관제어에 필요한 최소한의 정보만 정적분석기 서버와 통신하여 이관제어 적합성 여부를 판단할 수 있다는 장점이 있다.
한편, 정적분석기 서버에서는 이관요청된 소스코드의 파일 명칭 및 파일 해쉬값 중 적어도 어느 하나를 전송받아, 기존에 개발자가 수시 분석을 수행하여 그 결과로 저장된 분석 결과 정보와 대조하게 된다. 이를 위해, 정적분석기 서버에는 개발자가 수시 분석을 수행한 소스코드 파일의 파일 명칭 및 파일 해쉬값 중 적어도 어느 하나가 수시 분석 결과와 함께 관리된다.
S3 단계에서 형상관리시스템은, 상기 파일 식별 정보에 근거하여, 이관요청된 소스코드에 대하여 정적분석기 서버에 적재되어 있는 분석 결과에 근거하여 생성된 리턴값을 상기 정적분석기 서버로부터 전송받는다.
일예로, 상기 정적분석기에 적재되어 있는 분석 결과는, 해당 소스코드 개발 과정 또는 변경 과정 중에 상기 정적분석기를 통한 수시 분석의 결과로서 정적분석기 서버에 적재된 것이다. 이러한 구성을 통해, 개발자는 소스코드 분석을 수행하는 기존 환경에 대한 변경 없이도, 수시 분석을 통해 이관제어를 위한 소스코드 점검 활동을 수행하는 주체가 되며, 수시 분석 결과는 정적분석기 서버에 매번 적재되어 이관제어를 위한 분석 결과로서도 사용될 수 있다는 장점이 있다.
한편, 일예로, 상기 리턴값은 이관제어를 위해 미리 설정된 점검항목에 근거하여 생성된 값이다.
바람직하게, 상기 미리 설정된 점검항목은 소스코드의 안정성 여부에 관한 항목이 된다. 일예로, 상기 미리 설정된 점검항목은, 이관요청된 소스코드의 코드 형식(code convention) 준수 여부, 표준 준수 여부, 보안성 기준 준수 여부 중 적어도 어느 하나를 포함한다. 상기 각 점검항목에 대한 리턴값은 정적분석기의 결함 검출 결과에 근거하여 각 점검항목의 검출 결과가 관리자에 의해 미리 설정된 소정의 기준을 충족하는지 여부에 따라 생성될 수 있다. 상기 기준은 예를 들어, 결함 여부, 결함 빈도, 결함 개수 등을 고려하여 설정될 수 있다. 예를 들어, 결함이 없거나, 결함의 빈도나 개수가 소정 기준 이하인 경우 안정성 요건을 충족하는 것으로 판단될 수 있다.
한편, 상기 리턴값은, 이관요청된 소스코드가 미리 설정된 소스코드 안정성 기준에 부합된 것으로 나타내는 제1 리턴 결과값(예, 리턴 결과값 '1'), 이관요청된 소스코드가 미리 설정된 소스코드 안정성 기준에 미달된 것으로 나타내는 제2 리턴 결과값(예, 리턴 결과값 '0'), 상기 미리 설정된 점검항목과 관련된 분석 결과가 없는 것으로 나타내는 제3 리턴 결과값(예, 리턴 결과값 '-1') 중 어느 하나가 된다.
특히, 상기 리턴값이 상기 제2 리턴 결과값(예, 리턴 결과값 '0')인 경우, 안정성 기준에 미달된 원인이 되는 결함 리스트의 URL을 상기 정적분석기 서버로부터 더욱 전송받도록 구성된다. 이를 통해, 관리자 또는 개발자는 형상관리시스템의 접속 화면을 보고, 소스코드에 대한 정상이관 여부, 문제점 식별 및 조치 등을 취할 수 있는 정보를 확인할 수 있다. 상기 리턴값에 근거하여 소스코드의 안정성, 또는 그 반대 개념의 위험도 정보를 레벨값 형태로 제공할 수도 있다. 예를 들어, 각 점검항목별 결과를 조합하여 레벨값 형태의 위험도를 산출할 수도 있다.
S4 단계에서 형상관리시스템은, 상기 리턴값에 근거하여, 이관요청된 소스코드에 대한 정상이관 가능 여부에 관한 정보를 개발자 클라이언트 또는 관리자 클라이언트로 제공한다. 관리자 클라이언트는 소스코드 형상관리 업무를 관리하는 관리자의 클라이언트로 이해될 수 있다.
한편, 상기 S3 단계에서의 상기 리턴값이 상기 제2 리턴 결과값인 경우, 형상관리시스템은, 상기 결함 리스트의 URL을 참조하여 안정성 기준에 미달된 원인이 되는 결함에 관한 정보를 관리자 클라이언트 또는 개발자 클라이언트로 더욱 제공한다. 상기 결함 리스트 URL을 통해 관리자 또는 개발자는 이관제어가 곤란한 경우의 원인이 되는 결함의 내용을 구체적으로 확인하여 해결 방안을 마련할 수도 있다.
한편, 일예로, 이관적합성(정상이관 가능 여부) 체크를 위한 Rest API는 다음과 같이 예시적으로 구성될 수 있다.
아래의 표 1은 정보확인을 위한 인자 값의 예제문이다.
필요한 인자값 | 설명 |
listMap : List<Map<String, String>> | 파일 목록 |
아래의 표 2는 결과 반납 값의 예제문이다.
필요한 인자값 | 설명 |
key : String | 입력한 파일 key 값 |
hash : String | 입력한 파일 해쉬 값 |
file : String | 입력한 파일명 |
url : String | 해당 파일의 결함 화면 주소 |
certifiedCode : String | 결함주의보 설정 값에 따른 안정성 여부 코드 값1 : 분석성공 - 관리자가 설정해 놓은 소스코드 안정성 기준에 부합0 : 관리자 - 관리자가 설정해 놓은 소스코드 안정성 기준에 미달-1 : 일반 사용자 - 소스코드 인스펙션 수행정보 없음 |
아래의 표 3은 Rest 클라이언트 생성, 입력 맵(map) 생성, 목록 맵 생성, 입력 데이터 추가, 전송 결과 생성을 위한 예제문이다.
아래의 표 4는 전송 결과 표시의 예제문이다.
본 발명의 실시예 들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램과 이를 기록한 컴퓨터 판독가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD, USB 드라이브와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
Claims (10)
- 정적분석기 서버와 연동하는 형상관리시스템에서 실행되는 소스코드 이관제어 방법으로서,1) 소스코드에 대한 이관요청을 접수받는 단계;2) 이관요청된 소스코드에 관한 파일 식별 정보를 정적분석기 서버로 전송하는 단계;3) 상기 파일 식별 정보에 근거하여, 이관요청된 소스코드에 대하여 정적분석기 서버에 적재되어 있는 분석 결과에 근거하여 생성된 리턴값을 상기 정적분석기 서버로부터 전송받는 단계- 상기 리턴값은 이관제어를 위해 미리 설정된 점검항목에 근거하여 생성된 값임-; 및4) 상기 리턴값에 근거하여, 이관요청된 소스코드에 대한 정상이관 가능 여부에 관한 정보를 제공하는 단계;를 포함하여 구성된 소스코드 이관제어 방법.
- 제1항에 있어서,상기 파일 식별 정보는,이관요청된 소스코드의 파일 명칭 및 파일 해쉬값 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 소스코드 이관제어 방법.
- 제2항에 있어서,상기 정적분석기 서버로 파일 식별 정보의 전송은,형상관리시스템이 정적분석기에서 제공하는 Rest(Representational safe transfer) API를 호출하고,이관요청된 소스코드의 파일 명칭 및 파일 해쉬값 중 적어도 어느 하나를 파일 식별 정보로서 상기 정적분석기 서버에 전송하는 방식으로 이뤄지는 것을 특징으로 하는 소스코드 이관제어 방법.
- 제1항에 있어서,상기 정적분석기에 적재되어 있는 분석 결과는,해당 소스코드 개발 과정 또는 변경 과정 중에 상기 정적분석기를 통한 수시 분석의 결과로서 정적분석기 서버에 적재된 것임을 특징으로 하는 소스코드 이관제어 방법.
- 제1항에 있어서,상기 미리 설정된 점검항목은 소스코드의 안정성 여부에 관한 항목인 것을 특징으로 하는 소스코드 이관제어 방법.
- 제5항에 있어서,상기 미리 설정된 점검항목은,이관요청된 소스코드의 코드 형식(code convention) 준수 여부, 표준 준수 여부, 보안성 기준 준수 여부 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 소스코드 이관제어 방법.
- 제5항에 있어서,상기 리턴값은,이관요청된 소스코드가 미리 설정된 소스코드 안정성 기준에 부합된 것으로 나타내는 제1 리턴 결과값,이관요청된 소스코드가 미리 설정된 소스코드 안정성 기준에 미달된 것으로 나타내는 제2 리턴 결과값,상기 미리 설정된 점검항목과 관련된 분석 결과가 없는 것으로 나타내는 제3 리턴 결과값 중 어느 하나인 것을 특징으로 하는 소스코드 이관제어 방법.
- 제7항에 있어서,상기 3) 단계에서,상기 리턴값이 상기 제2 리턴 결과값인 경우, 안정성 기준에 미달된 원인이 되는 결함 리스트의 URL을 상기 정적분석기 서버로부터 더욱 전송받으며,상기 4) 단계에서,상기 URL을 참조하여 안정성 기준에 미달된 원인이 되는 결함에 관한 정보를 더욱 제공하는 것을 특징으로 하는 소스코드 이관제어 방법.
- 하드웨어와 결합되어 제1항 내지 제8항 중의 어느 하나의 항에 기재된 소스코드 이관제어 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
- 제1항 내지 제8항 중의 어느 하나의 항에 기재된 소스코드 이관제어 방법 각 단계를 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/541,591 US10331439B2 (en) | 2015-01-08 | 2016-01-05 | Source code transfer control method, computer program therefor, and recording medium therefor |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2015-0002949 | 2015-01-08 | ||
KR1020150002949A KR101579493B1 (ko) | 2015-01-08 | 2015-01-08 | 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016111525A1 true WO2016111525A1 (ko) | 2016-07-14 |
Family
ID=55082594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2016/000057 WO2016111525A1 (ko) | 2015-01-08 | 2016-01-05 | 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10331439B2 (ko) |
KR (1) | KR101579493B1 (ko) |
WO (1) | WO2016111525A1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101579493B1 (ko) * | 2015-01-08 | 2015-12-23 | 주식회사 파수닷컴 | 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체 |
US10459822B1 (en) * | 2017-05-04 | 2019-10-29 | Amazon Technologies, Inc. | Iterative static analysis using stored partial results |
US11475135B2 (en) | 2018-11-30 | 2022-10-18 | Target Brands, Inc. | Orchestration of vulnerability scanning and issue tracking for version control technology |
KR102706150B1 (ko) | 2019-04-16 | 2024-09-13 | 삼성전자주식회사 | 서버 및 그 제어 방법 |
CN110909523B (zh) * | 2019-12-02 | 2023-10-27 | 中国银行股份有限公司 | 一种数据处理方法及装置 |
US11922179B2 (en) * | 2020-03-04 | 2024-03-05 | Red Hat, Inc. | Migrating software and system settings between computing environments |
CN111831718A (zh) * | 2020-07-16 | 2020-10-27 | 北京思特奇信息技术股份有限公司 | 一种数据提取方法、装置及介质 |
CN111949607B (zh) * | 2020-09-03 | 2023-06-27 | 网易(杭州)网络有限公司 | 一种udt文件的监控方法、系统和装置 |
CN113127251B (zh) * | 2021-04-30 | 2023-07-18 | 北京奇艺世纪科技有限公司 | 代码管理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060069576A (ko) * | 2004-12-17 | 2006-06-21 | 엘지전자 주식회사 | 형상 관리 시스템의 소프트웨어 통합 도구 |
KR20090043153A (ko) * | 2007-10-29 | 2009-05-06 | 주식회사 케이티프리텔 | 사용자 인터페이스 화면의 구성요소에 대한 용어를표준화하는 방법 |
KR100939020B1 (ko) * | 2009-06-09 | 2010-01-27 | 주식회사 이븐스타 | 웹 소스 분석 시스템 및 방법 |
KR101077561B1 (ko) * | 2009-12-29 | 2011-10-27 | 유니버셜리얼타임주식회사 | 프로그램 개발 운영 모니터링 시스템 |
US20130152047A1 (en) * | 2011-11-22 | 2013-06-13 | Solano Labs, Inc | System for distributed software quality improvement |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407206B2 (en) * | 2005-05-16 | 2013-03-26 | Microsoft Corporation | Storing results related to requests for software development services |
US7774760B2 (en) * | 2005-12-23 | 2010-08-10 | Microsoft Corporation | Tracing errors in software |
KR101051600B1 (ko) * | 2010-03-29 | 2011-07-22 | 주식회사 소프트 포 소프트 | 아밥 소스코드의 코드 검사를 수행하는 코드검사 수행시스템 |
US8433687B1 (en) * | 2011-04-07 | 2013-04-30 | Google Inc. | Off-line indexing for client-based software development tools |
US8881116B2 (en) * | 2011-06-08 | 2014-11-04 | The Mathworks, Inc. | Identifying and triaging software bugs through backward propagation of under-approximated values and empiric techniques |
US9141378B2 (en) * | 2011-09-15 | 2015-09-22 | Sonatype, Inc. | Method and system for evaluating a software artifact based on issue tracking and source control information |
US20130317889A1 (en) * | 2012-05-11 | 2013-11-28 | Infosys Limited | Methods for assessing transition value and devices thereof |
US9612937B2 (en) * | 2012-09-05 | 2017-04-04 | Microsoft Technology Licensing, Llc | Determining relevant events in source code analysis |
US9262416B2 (en) * | 2012-11-08 | 2016-02-16 | Microsoft Technology Licensing, Llc | Purity analysis using white list/black list analysis |
US9632771B2 (en) * | 2012-12-13 | 2017-04-25 | Microsoft Technology Licensing, Llc | Association of metadata with source code and applications and services premised thereon |
US9201646B2 (en) * | 2013-01-05 | 2015-12-01 | Vmware, Inc. | Automatic code review and code reviewer recommendation |
KR101579493B1 (ko) * | 2015-01-08 | 2015-12-23 | 주식회사 파수닷컴 | 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체 |
-
2015
- 2015-01-08 KR KR1020150002949A patent/KR101579493B1/ko active IP Right Grant
-
2016
- 2016-01-05 WO PCT/KR2016/000057 patent/WO2016111525A1/ko active Application Filing
- 2016-01-05 US US15/541,591 patent/US10331439B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060069576A (ko) * | 2004-12-17 | 2006-06-21 | 엘지전자 주식회사 | 형상 관리 시스템의 소프트웨어 통합 도구 |
KR20090043153A (ko) * | 2007-10-29 | 2009-05-06 | 주식회사 케이티프리텔 | 사용자 인터페이스 화면의 구성요소에 대한 용어를표준화하는 방법 |
KR100939020B1 (ko) * | 2009-06-09 | 2010-01-27 | 주식회사 이븐스타 | 웹 소스 분석 시스템 및 방법 |
KR101077561B1 (ko) * | 2009-12-29 | 2011-10-27 | 유니버셜리얼타임주식회사 | 프로그램 개발 운영 모니터링 시스템 |
US20130152047A1 (en) * | 2011-11-22 | 2013-06-13 | Solano Labs, Inc | System for distributed software quality improvement |
Also Published As
Publication number | Publication date |
---|---|
US20180018165A1 (en) | 2018-01-18 |
KR101579493B1 (ko) | 2015-12-23 |
US10331439B2 (en) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016111525A1 (ko) | 소스코드 이관제어 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체 | |
US20210160249A1 (en) | Systems and methods for role-based computer security configurations | |
WO2019198885A1 (ko) | 블록체인 기반의 다수의 서비스 노드를 사용하는 탈중앙화 서비스 플랫폼 | |
EP1236110B1 (en) | A method for isolating a fault from error messages | |
WO2018182126A1 (ko) | 안전 소프트웨어 인증 시스템 및 방법 | |
WO2013169059A1 (ko) | 웹 서비스 모니터링 시스템 및 방법 | |
WO2021125779A1 (ko) | Api 통합관리를 위한 클라우드 기반의 api 메타데이터 관리방법 및 시스템 | |
US10891357B2 (en) | Managing the display of hidden proprietary software code to authorized licensed users | |
WO2018016671A2 (ko) | 보안 취약점 점검을 위한 위험성 코드 검출 시스템 및 그 방법 | |
WO2018074619A1 (ko) | 컨테이너 터미널의 시뮬레이션 프로세스 자동화 시스템 및 방법 | |
WO2014185627A1 (ko) | 데이터 프로세싱 시스템 보안 장치와 보안방법 | |
WO2009116748A2 (ko) | 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및 장치 | |
WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
JP2014203352A (ja) | ソフトウエア管理装置、及びソフトウエア管理方法 | |
WO2023229062A1 (ko) | Ms-ooxml에서 ole object 무해화를 위한 방법 및 장치 | |
CN106406970B (zh) | 用于保护超级管理程序的应用程序编程接口的方法和设备 | |
JP7131363B2 (ja) | ライセンス管理装置、ライセンス管理システム、ライセンス管理方法、プログラム | |
WO2015183016A1 (ko) | 데이터 처리 장치 및 데이터 처리 장치의 메모리에 기록된 데이터의 확인 방법 | |
WO2011087169A1 (ko) | 운영시스템의 장애 등급 판단방법 | |
WO2024128353A1 (ko) | Autosar 플랫폼 기반의 제어 흐름 그래프 작성 방법 및 이를 이용한 시스템 | |
CN111522560A (zh) | 软件安装方法、装置、存储介质及电子设备 | |
CN112579559A (zh) | 键值对的管理校验方法、装置、设备及存储介质 | |
WO2012077966A1 (en) | Apparatus and method for removing malicious code | |
WO2017030337A1 (ko) | 사물 인터넷에서의 연관된 트랜잭션 처리 방법, 이를 위한 사물 인터넷 통신 노드, 및 이들을 이용한 사물 인터넷 망 | |
WO2023249156A1 (ko) | 코드 정보 제공을 위한 전자 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16735146 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15541591 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16735146 Country of ref document: EP Kind code of ref document: A1 |