WO2022139050A1 - 코드의 검증을 위한 전자 장치 및 그 방법 - Google Patents

코드의 검증을 위한 전자 장치 및 그 방법 Download PDF

Info

Publication number
WO2022139050A1
WO2022139050A1 PCT/KR2020/019326 KR2020019326W WO2022139050A1 WO 2022139050 A1 WO2022139050 A1 WO 2022139050A1 KR 2020019326 W KR2020019326 W KR 2020019326W WO 2022139050 A1 WO2022139050 A1 WO 2022139050A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
server
response
electronic device
subset
Prior art date
Application number
PCT/KR2020/019326
Other languages
English (en)
French (fr)
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 쿠팡 주식회사
Publication of WO2022139050A1 publication Critical patent/WO2022139050A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics

Definitions

  • the present disclosure relates to an electronic device and a method for verifying a code. More specifically, the present disclosure relates to an electronic device capable of verifying a code by sampling and transmitting a user input to a server running different versions of a code, and providing information comparing the result values therefor, and a method therefor.
  • the server providing the service to the user may need to change the code for its operation (a program described by machine language, interpreted and executed by the CPU) for reasons such as improving problems or providing additional functions.
  • the problem to be solved by this embodiment is an electronic device that prevents a problem from occurring when providing a service to a user using the code by preemptively determining whether there is a problem in the code by verifying the code in a test environment, and to provide that method.
  • An information providing method in an electronic device includes: acquiring a requested information set; transmitting a request information subset corresponding to at least a part of the request information set to a reference server; sending the request information subset to a development server; receiving, from the reference server, a first response set including a response corresponding to the subset of request information; receiving a second response set including a response corresponding to the subset of request information from the development server; and providing comparison information of the first response set and the second response set.
  • the request information set may be obtained based on user information input to a service server corresponding to the reference server.
  • the development server has a structure corresponding to that of the reference server, and the code of the development server for generating a response corresponding to the subset of request information and the code of the reference server are associated with each other, and the user According to an input, the code of the development server may be changed.
  • the providing of the comparison information provides information for comparing the first response set and the second response set for each one or more application programming interfaces (APIs) related to processing of the subset of request information.
  • APIs application programming interfaces
  • the providing of the comparison information includes outputting time information about a result of comparing the first response set and the second response set can do.
  • the information providing method may further include outputting statistical information related to the reference server and the development server.
  • the statistical information may include performance information related to at least one of the reference server and the development server generating a response corresponding to the request information subset.
  • the performance information includes performance information of an application installed in at least one of the reference server and the development server, and the performance information of the application includes at least one of a delay time and memory usage related to the response generation.
  • the statistical information may be output for each one or more APIs related to processing of the subset of request information.
  • the information providing method may further include determining whether there is a problem in the code of the development server based on a result of comparing the first response set and the second response set.
  • the information providing method may further include distributing the code of the development server to a service server corresponding to the reference server.
  • the electronic device includes at least one sub-device, and the step of providing the comparison information by the at least one sub-device may be performed.
  • An electronic device for providing information includes a transceiver, a memory for storing instructions, and a processor, wherein the processor is connected to the memory to obtain a requested information set, and to at least a part of the requested information set send a corresponding subset of request information to a reference server, send the subset of request information to a development server, receive from the reference server a first response set including a response corresponding to the subset of request information, said Receive a second response set including a response corresponding to the subset of request information from the development server, and provide comparison information between the first response set and the second response set.
  • an electronic device for verifying a code and a method thereof verify the code in a test environment to preemptively determine whether there is a problem in the code, so that a problem does not occur when providing a service to a user using the code can be prevented from happening.
  • FIG. 1 is a schematic configuration diagram illustrating an information providing system according to an embodiment.
  • FIG. 2 is an operation flowchart of an information providing method in an information providing system according to an exemplary embodiment.
  • 3A is a diagram to exemplarily describe statistical information provided by an electronic device according to an exemplary embodiment.
  • 3B is a diagram for exemplarily explaining statistical information provided by an electronic device according to an embodiment.
  • FIG. 4 is a diagram to exemplarily describe comparison information provided by an electronic device according to an exemplary embodiment.
  • FIG. 5 is an operation flowchart of a method of providing information by an electronic device according to an exemplary embodiment.
  • FIG. 6 is an exemplary diagram of a configuration of an electronic device for verifying a code according to an embodiment.
  • the "terminal” referred to below may be implemented as a computer or a portable terminal capable of accessing a server or other terminal through a network.
  • the computer includes, for example, a laptop, a desktop, and a laptop equipped with a web browser
  • the portable terminal is, for example, a wireless communication device that ensures portability and mobility.
  • IMT International Mobile Telecommunication
  • CDMA Code Division Multiple Access
  • W-CDMA Wide-Code Division Multiple Access
  • LTE Long Term Evolution
  • It may include a handheld-based wireless communication device.
  • each block of the flowchart diagrams and combinations of the flowchart diagrams may be performed by computer program instructions.
  • These computer program instructions may be embodied in a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, such that the instructions performed by the processor of the computer or other programmable data processing equipment are not described in the flowchart block(s). It creates a means to perform functions.
  • These computer program instructions may also be stored in a computer-usable or computer-readable memory that may direct a computer or other programmable data processing equipment to implement a function in a particular manner, and thus the computer-usable or computer-readable memory.
  • the instructions stored in the flow chart block(s) produce an article of manufacture containing instruction means for performing the function described in the flowchart block(s).
  • the computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operational steps are performed on the computer or other programmable data processing equipment to create a computer-executed process to create a computer or other programmable data processing equipment. It is also possible that instructions for performing the processing equipment provide steps for performing the functions described in the flowchart block(s).
  • each block may represent a module, segment, or portion of code that includes one or more executable instructions for executing specified logical function(s). It should also be noted that in some alternative implementations it is also possible for the functions recited in blocks to occur out of order. For example, two blocks shown one after another may be performed substantially simultaneously, or the blocks may sometimes be performed in the reverse order according to a corresponding function.
  • FIG. 1 is a schematic configuration diagram illustrating an information providing system according to an embodiment.
  • the information providing system may include an electronic device 110 , a reference server 120 , and a development server 130 .
  • the information providing system may further include a network supporting information transmission/reception between the electronic device 110 , the reference server 120 , and the development server 130 (not shown).
  • Each of the electronic device 110 , the reference server 120 , and the development server 130 may include a memory and a processor.
  • each of the electronic device 110 , the reference server 120 , and the development server 130 means a unit that processes at least one function or operation, which may be implemented by hardware or software, or a combination of hardware and software.
  • the electronic device 110 , the reference server 120 , and the development server 130 may include a plurality of computer systems or computer software implemented as a network server, and configure various information into web pages.
  • a subordinate device capable of communicating with another network server through a computer network such as an intranet or the Internet to request a task execution It may refer to a computer system and computer software that receives and provides a result of performing an operation thereon.
  • at least some of the electronic device 110 , the reference server 120 , and the development server 130 have a broad concept including a series of application programs that can operate on a network server, and various databases built therein.
  • the electronic device 110 may include DOS, Windows, Linux, UNIX, or MacOS. It can be implemented using variously provided network server programs depending on the operating system of the software.
  • the electronic device 110 obtains a request information set, transmits a request information subset corresponding to at least a part of the request information set to the reference server 120, and transmits the request information subset to the development server ( 130), receiving a first response set including a response corresponding to the requested information subset from the reference server 120, and a second including a response corresponding to the requested information subset from the development server 130 Receive a set of responses.
  • a network may be used for communication between the electronic device 110 and the reference server 120 and for communication between the electronic device 110 and the development server 130 .
  • the electronic device 110 may generate comparison information based on information received from the reference server 120 and information received from the development server 130 , and in response to a subset of requested information, the development server ( 130) may receive and provide information related to the driving state in the development server 130 for a response based on the information received.
  • the electronic device 110 may include a stateful server. Specifically, the electronic device 110 may track a communication state with another connected device in real time and use the tracked communication state to provide its own information. For example, the electronic device 110 may acquire performance information including a latency associated with data transmission and reception. Meanwhile, the delay time may include at least one of a time required for each server to generate a response and a time for transmitting the corresponding information on the network. Also, in an embodiment, the performance information may include resource-related information required for another device to generate a response to the request information. For example, information such as memory usage and CPU occupancy may also be included in the performance information, and based on such performance information, it is possible to effectively monitor a code operation situation in the server. Also, in an embodiment, the performance information may include application performance information installed in the other electronic device. For example, an application generates response information based on request information, and performance-related criteria required for an application to generate response information as described above may be included in the performance information.
  • the reference server 120 receives the request information subset from the electronic device 110 , generates a response (hereinafter, referred to as a first response set) to the request information subset, and transmits the generated first response set to the electronic device 110 . ) is sent to
  • the reference server 120 is a server corresponding to a service server that actually provides a service to a user, and may be a server having a structure corresponding to the service server.
  • a code used by the reference server 120 to generate a response to the subset of request information may correspond to a code used by the service server to generate a response to the subset of request information.
  • the development server 130 receives the request information subset from the electronic device 110 , generates a response (hereinafter, referred to as a second response set) to the request information subset, and transmits the generated second response set to the electronic device 110 . ) is sent to
  • the development server 130 is a server corresponding to a service server that actually provides a service to a user, and may be a server having a structure corresponding to the service server. That is, the development server 130 may have a structure corresponding to the reference server 120 and each other.
  • the code used by the development server 130 to generate a response to the subset of request information may be a code related to the code used by the service server to generate a response to the subset of request information.
  • the code of the development server 130 may be changeable according to a user input.
  • the reference server 120 uses the code used in the service server and the development server 130 uses the changed code, so that the second response set corresponds to the response when using the changed code, and the first response set is the existing It can correspond to the response when using the code of . In this case, it is possible to determine whether the changed code is a problem by comparing the first response set and the second response set.
  • the reference server 120 may be implemented as at least some servers among at least one server used in an actual service.
  • the description is limited to the case where the development server 130 uses the changed code, but the content of the present invention is not limited to the embodiment in which the development server 130 uses the changed code. Accordingly, the development server 130 may use the same code as the reference server 120 . For example, since the reference server 120 and the development server 130 use the same code, it can be verified whether the structures of the reference server 120 and the development server 130 correspond to each other.
  • the network network connects the electronic device 110 and the reference server 120, the electronic device 110 and the development server 130, or the electronic device 110 and an external device (eg, a query receiving server, a service server, etc.) can play a role
  • the network network may provide an access path so that the reference server 120 , the development server 130 , or an external device is connected to the electronic device 110 to transmit/receive packet data to and from the electronic device 110 . have.
  • Operations related to a series of information providing methods may be implemented by a single physical device, or may be implemented in a manner in which a plurality of physical devices are organically coupled.
  • some of the components included in the information providing system may be implemented by one physical device, and the remaining part may be implemented by another physical device.
  • any one physical device may be implemented as a part of the electronic device 110
  • the other physical device may be implemented as a part of the reference server 120 , a part of the development server 130 , or a part of an external device.
  • each component included in the information providing system is dispersedly arranged in different physical devices, and the dispersed and arranged components are organically combined to perform a function and operation of the information providing system.
  • the electronic device 110 of the present specification includes at least one sub-device, some operations described as being performed by the electronic device 110 are performed by the first sub-device, and some operations are performed by the second sub-device. It may also be performed by the device. For example, an operation of providing comparison information between the first response set and the second response set may be performed by a sub-device included in the electronic device 110 .
  • FIG. 2 is an operation flowchart of a method of providing information of an electronic device according to an exemplary embodiment.
  • the query receiving server 220 may obtain a request information set ( 201 ), and transmit the obtained request information set to the electronic device 110 ( 202 ).
  • the query receiving server 220 may include a server that transmits the received information to another device.
  • the query receiving server 220 may transmit received information to another node by utilizing a distributed messaging system, and Apache Kafka may be used as an example of the distributed messaging system.
  • the query receiving server 220 may obtain the request information set from a service server that actually provides a service to a user.
  • the request information set may be information obtained based on user information input to the service server.
  • the request information set may be a set of various types of information input by a user receiving a service, and may include, for example, request information transmitted to a back-end server based on a user input input to the front-end server.
  • the electronic device 110 may directly receive the request information set from the service server without going through the query receiving server 220 , or the query receiving server 220 may be implemented as a part of the electronic device 110 .
  • the electronic device 110 may acquire the requested information subset based on the received request information set.
  • the requested information subset may correspond to at least a part of the requested information set.
  • the request information subset may be generated by sampling a specific ratio among a plurality of user information included in the request information set.
  • the sampling rate may vary according to the setting of the electronic device 110
  • the number of requested information subsets obtained per unit time may also vary according to the setting of the electronic device 110 .
  • the load test of the development server 130 can be easily performed by adjusting the sampling rate of the requested information subset or the number of samples per unit time.
  • the electronic device 110 may transmit the request information subset to the reference server 120 ( 203 ). Also, the electronic device 110 may transmit the request information subset to the development server 130 ( 204 ).
  • the reference server 120 may generate a first response set including a response corresponding to the received request information subset ( 205 ), and transmit the generated first response set to the electronic device 110 ( 207 ).
  • the development server 130 may generate a second response set including a response corresponding to the received request information subset ( 206 ), and transmit the generated second response set to the electronic device 110 ( 208 ).
  • the electronic device 110 may compare the received first response set and the second response set ( 209 ), and provide the compared information ( 210 ). Specifically, the electronic device 110 compares the plurality of responses included in the first response set and the plurality of responses included in the second response set, respectively, and compares a specific part of the responses of the corresponding codes to obtain the same response You can check whether this has been received or another response has been received.
  • a part to be compared among responses to a specific code may be set through a setting for the electronic device 110 .
  • a UI can be provided to compare the two responses and check which part has changed.
  • the electronic device 110 may also provide information on a ratio of responses having different outputs among all responses, and an example of a detailed comparison result is shown in FIG. 4 .
  • the electronic device 110 may compare the first response set and the second response set for each of one or more application programming interfaces (APIs) related to processing of a subset of request information.
  • the electronic device 110 may provide information for comparing the first response set and the second response set to be classified by one or more APIs.
  • APIs application programming interfaces
  • the manager may determine whether there is a problem in the changed code used by the development server 130 based on the comparison information provided by the electronic device 110 . Specifically, the manager may determine to what extent a plurality of responses included in the first response set and a plurality of responses included in the second response set match. If an unexpected inconsistency response is found (that is, if the inconsistency was not the intended inconsistency at the time of the code change), the administrator can determine that there is a problem with the changed code and can correct the changed code.
  • the electronic device 110 provides information comparing the first response set and the second response set to be distinguished by one or more APIs, the administrator can quickly identify the API from which the inconsistent response occurs, so that You can easily see if there is a problem.
  • the administrator may distribute the code used by the development server 130 to a service server corresponding to the reference server 120 .
  • the electronic device 110 may provide time information on a result of comparing the first response set and the second response set. For example, the electronic device 110 may provide a result of comparing the first response set and the second response set with a time series as an axis in a graph form.
  • the electronic device 110 may further provide statistical information related to the reference server 120 and the development server 130 . At least some of the statistical information provided by the electronic device 110 may correspond to information obtained by comparing the first response set and the second response set.
  • the statistical information provided by the electronic device 110 may include the number of user inputs included in the request information subset.
  • the statistical information provided by the electronic device 110 may include performance information of the electronic device 110 .
  • the statistical information may include a latency associated with at least a portion of obtaining the requested information, transmitting a subset of the requested information, and receiving the first set of responses and the second set of responses.
  • the electronic device 110 may provide statistical information for each of one or more APIs related to processing of a subset of request information. For example, the electronic device 110 may provide both the number of user inputs included in the request information subset and the total number of user inputs included in the request information subset for each one or more APIs.
  • the electronic device 110 may provide time information together with statistical information.
  • the electronic device 110 may provide the number of user inputs or performance information (eg, delay time) included in the request information subset in a graph form with a time series as an axis.
  • the electronic device 110 may determine whether there is a problem with the code of the development server 130 based on a result of comparing the first response set and the second response set. In this case, the electronic device 110 may determine whether there is a problem with the code according to a preset condition. For example, when the electronic device 110 compares the first response set and the second response set and the rate of occurrence of inconsistent responses exceeds a specific threshold rate, it is determined that the code of the development server 130 has a problem. can In this case, inconsistency responses corresponding to the results intended at the time of the change of the code used in the development server 130 may be regarded as not inconsistent responses in determining whether there is a problem in the code of the development server 130 . For example, when the code used in the development server 130 is a code changed to output a changed result for a specific API, the rate of occurrence of inconsistent responses may be determined excluding the corresponding API.
  • the electronic device 110 may distribute the code used by the development server 130 to a service server corresponding to the reference server 120 .
  • the electronic device 110 may determine whether the code is a problem by itself, or the administrator may determine whether the code is a problem and input the determination result to the electronic device 110 .
  • 3A and 3B are diagrams for explaining statistical information provided by an electronic device according to an exemplary embodiment.
  • the electronic device 110 may provide statistical information related to the reference server 120 and the development server 130 .
  • the statistical information provided by the electronic device 110 may include the number of user inputs 310 and performance information 320 to 370 included in the request information subset. At least some of the performance information 320 to 370 may be related to the operation of the electronic device 110 , and at least some of the performance information may be a response from at least one of the reference server 120 and the development server 130 corresponding to the subset of requested information.
  • the performance information 320 to 370 included in the statistical information may include the electronic device 110 in relation to at least a part of obtaining the requested information, transmitting the requested information subset, and receiving the first response set and the second response set; It may include at least one piece of information indicating the performance of at least one of the reference server 120 and the development server 130 .
  • the performance information 320 to 370 may include performance information of an application installed in at least one of the reference server 120 and the development server 130 .
  • the performance information of the application may include at least one of a delay time and memory usage related to generating at least some of the plurality of responses included in the first response set and the plurality of responses included in the second response set.
  • the performance information of the application includes information 330 related to CPU performance, information 340 related to memory performance, system load information 350 of the electronic device 110, and available disk capacity.
  • the information 360 and information 370 related to the information processing amount per unit time of the network may be included.
  • the information 330 related to the performance of the CPU includes "CPU: user”, which is CPU time used in the user area, "CPU: iowait”, which is CPU time spent temporarily waiting for a task of the CPU due to other communication, and the system It may include “CPU: system”, which is the amount of time the CPU is used in the region, and “CPU: idle”, which is the percentage of idle state in which the CPU is not used.
  • information related to performance of memory includes information related to memory usage “Memory: used” and “Memory: used percent”, memory related cache information "Memory: cache” and memory related buffer (buffer). It may contain information "Memory: buffer”.
  • Statistical information may be displayed in graph form with a time series as a horizontal axis. At least some of the statistical information may be displayed separately for each of one or more APIs.
  • the administrator can determine whether there was a problem in relation to the input/output of information at a specific point in time. For example, when the user input is too small or the delay time generated at a specific point in time is too large, the manager may determine that the reliability of information transmitted and received at that point in time is low. Alternatively, if the user input is too small or the delay time generated is too large at a point in time close to the current point in time, the administrator may try to solve the problem by searching for the cause of the problem.
  • the statistical information may be displayed in a form of comparing information related to the reference server 120 and information related to the development server 130 .
  • the information 330 related to the performance of the CPU may be displayed in the form of comparing the CPU performance of the reference server 120 and the CPU performance of the development server 130 is compared, which is the performance of the memory and The same may be the case with the related information 340 , the system load information 350 , the available disk capacity information 360 , and the information 370 related to the information processing amount per unit time of the network.
  • the delay time 320 shown in the figure corresponds to delay time information for each API of the electronic device 110 , but in some cases, the delay time 320 is response generation of the reference server 120 and the development server 130 . It may correspond to information displayed by comparing the delay time related to the .
  • the administrator can determine whether there is a problem in the changed code used by the development server 130 . For example, if the overall performance of the development server 130 falls by a certain percentage or more compared to the overall performance of the reference server 120 as a result of checking the performance information (320 to 370), the administrator can change the development server 130 used. It can be determined that there is a problem with the code. In this case, the administrator can try to solve the performance degradation by searching for the cause of the performance degradation.
  • FIG. 4 is a diagram to exemplarily describe comparison information provided by an electronic device according to an exemplary embodiment.
  • the electronic device 110 may provide comparison information 410 of a first response set and a second response set.
  • the comparison information 410 may be displayed in a graph form with a time series as a horizontal axis, and the comparison information 410 may be displayed separately for each of one or more APIs. By displaying the comparison information 410 according to the time series, the administrator can check how many inconsistent responses were received at any point in time.
  • the comparison information 410 provided by the electronic device 110 includes the number of successfully collected responses 411 in relation to the plurality of responses included in the first response set and the plurality of responses included in the second response set.
  • the number of successfully collected responses ( 411) can be counted as one.
  • the first response set includes 300 responses
  • the second response set includes 300 responses
  • all responses included in the first response set and responses included in the second response set correspond to each other.
  • the number 411 of successfully collected responses may be 300.
  • the comparison information 410 provided by the electronic device 110 includes the number of matching responses with respect to the plurality of responses included in the first response set and the plurality of responses included in the second response set ( 412 ). and the number of responses that do not match (413). If an unexpected inconsistency response is found, the administrator can determine that there is a problem with the changed code and correct the changed code.
  • the comparison information 410 provided by the electronic device 110 includes the number of responses that have failed to be collected (416) or the number of times (414) the number of failures in information transmission and reception with the reference server 120 due to communication instability or the like. , may further include the number of times 415 of failures occurred in information transmission and reception with the development server 130 .
  • the electronic device 110 may provide log information 420 .
  • the log information 420 may be information recorded when an event satisfying a specific condition occurs.
  • the log information 420 may include an info log collected every predetermined time and an error log collected when an error occurs.
  • the log information 420 may be information generated by the electronic device 110 or information received from the reference server 120 or the development server 130 .
  • the error log may be related to an operation error of the electronic device 110 or may be related to an operation error of the reference server 120 or the development server 130 .
  • the electronic device 110 has a rate of occurrence of mismatch responses 431 , the number of sub-devices being driven among sub-devices included in the electronic device 110 , 432 , and a sub-device included in the electronic device 110 .
  • Information such as the number of sub-devices activated among the devices 433 and the number of times of information transmission/reception 434 may be further provided.
  • the sub-device is a device included in the electronic device 110 and may be a device that performs an operation of providing comparison information between the first response set and the second response set.
  • a sub-device in operation may correspond to a device providing comparison information in real time
  • an activated sub-device may correspond to a device capable of providing comparison information (ie, a concept including a sub-device in operation) can).
  • the number of times of information transmission/reception 434 may correspond to how many times per unit time the acquisition of the requested information set, the transmission of the requested information subset, or the reception of the first response set and the second response set are performed.
  • the number of sub-devices driven based on the information about the electronic device 110 may be adjusted.
  • the electronic device 110 may provide information on the number of mismatch responses for each one or more APIs related to processing of a subset of request information. Also, when a mismatch response occurs, the electronic device 110 according to an embodiment may provide path information corresponding to the mismatch response.
  • the electronic device 110 operates based on a heap area usage in a memory, a non-heap area usage in a memory, and memory management. It is possible to provide various information including the operating time of a background thread, the number of requests according to the http response, the number of threads, the average value of the delay time, and the like.
  • the amount of heap area used in the memory may be related to whether or not a memory leak occurs. Specifically, it can be expected that a memory leak has occurred when the usage of the heap area is not maintained and moves upward over time.
  • a background thread running for memory management may include a garbage collector.
  • FIG. 5 is an operation flowchart of a method of providing information by an electronic device according to an exemplary embodiment.
  • the electronic device 110 obtains a request information set ( 510 ), and sets a request information subset corresponding to at least a part of the request information set to the reference server 120 and the development server ( 510 ). 130) and transmits (520). Thereafter, the electronic device 110 receives a first response set including a response corresponding to the requested information subset from the reference server 120 , and includes a response corresponding to the requested information subset from the development server 130 . A second set of responses is received ( 530 ).
  • the electronic device 110 After receiving the first response set and the second response set, the electronic device 110 compares the first response set and the second response set and provides the comparison information ( S540 ).
  • FIG. 6 is an exemplary diagram of a configuration of an electronic device for verifying a code according to an embodiment.
  • the electronic device 110 includes a transceiver 610 , a processor 620 , and a memory 630 .
  • the electronic device 110 may be connected to the reference server 120 , the development server 130 , and an external device (eg, a personal computer) through the transceiver 610 , and may exchange data.
  • an external device eg, a personal computer
  • the processor 620 may include at least one of the devices described above with reference to FIGS. 1 to 5 , or perform at least one method described above with reference to FIGS. 1 to 5 .
  • the memory 630 stores information for performing at least one method described above with reference to FIGS. 1 to 5 (the aforementioned request information set, request information subset, first response set, second response set, statistical information, and comparison information) included) can be saved.
  • the memory 630 may be a volatile memory or a non-volatile memory.
  • the processor 620 may control the electronic device 110 for executing a program and providing information.
  • the code of the program executed by the processor 620 may be stored in the memory 630 .
  • the electronic device 110 may further include an interface capable of providing information to the manager.
  • the electronic device or terminal includes a processor, a memory for storing and executing program data, a permanent storage such as a disk drive, a communication port for communicating with an external device, a touch panel, and a key (key) ), user interface devices such as buttons, and the like.
  • Methods implemented as software modules or algorithms may be stored on a computer-readable recording medium as computer-readable codes or program instructions executable on the processor.
  • the computer-readable recording medium includes a magnetic storage medium (eg, read-only memory (ROM), random-access memory (RAM), floppy disk, hard disk, etc.) and an optically readable medium (eg, CD-ROM). ), and DVD (Digital Versatile Disc)).
  • the computer-readable recording medium may be distributed among network-connected computer systems, so that the computer-readable code may be stored and executed in a distributed manner.
  • the medium may be readable by a computer, stored in a memory, and executed on a processor.
  • This embodiment may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in any number of hardware and/or software configurations that perform specific functions.
  • an embodiment may be an integrated circuit configuration, such as memory, processing, logic, look-up table, etc., capable of executing various functions by the control of one or more microprocessors or other control devices. can be hired Similar to how components may be implemented as software programming or software components, this embodiment includes various algorithms implemented in a combination of data structures, processes, routines or other programming constructs, including C, C++, Java ( Java), assembler, Python, etc. may be implemented in a programming or scripting language. Functional aspects may be implemented in an algorithm running on one or more processors.
  • the present embodiment may employ the prior art for electronic environment setting, signal processing, and/or data processing.
  • Terms such as “mechanism”, “element”, “means” and “configuration” may be used broadly and are not limited to mechanical and physical configurations. The term may include the meaning of a series of routines of software in connection with a processor or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 개시에 따르면, 전자 장치에서 요청 정보 세트를 획득하는 단계; 상기 요청 정보 세트 중 적어도 일부에 대응하는 요청 정보 서브 세트를 기준 서버로 전송하는 단계; 상기 요청 정보 서브 세트를 개발 서버로 전송하는 단계; 상기 기준 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제1 응답 세트를 수신하는 단계; 상기 개발 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제2 응답 세트를 수신하는 단계; 및 상기 제1 응답 세트 및 상기 제2 응답 세트의 비교 정보를 제공하는 단계를 포함하는 정보 제공 방법이 개시된다.

Description

코드의 검증을 위한 전자 장치 및 그 방법
본 개시는 코드의 검증을 위한 전자 장치 및 그 방법에 관한 것이다. 보다 구체적으로 본 개시는 사용자 입력을 서로 다른 버전의 코드가 구동되는 서버에 샘플링하여 전송하고, 이에 대한 결과 값을 비교한 정보를 제공함으로써 코드를 검증할 수 있는 전자 장치 및 그 방법에 관한 것이다.
전자 기술의 발달에 따라 생활 전반에는 전자 기술을 이용한 서비스가 자리잡게 되었다. 사용자에게 서비스를 제공하는 서버는 문제를 개선하거나 추가 기능을 제공하는 등의 이유로 그 동작을 위한 코드(기계어에 의해서 기술되고, CPU에 의해서 해석되어 실행되는 프로그램)의 변경이 필요할 수 있다.
종래부터, 서버, 퍼스널 컴퓨터 또는 이동 통신 단말 등의 정보 처리 장치에서는, 검증된 코드가 장치 상에서 실행되는 것이 요구되고 있다. 즉, 제3자에 의하여 의도치 않은 변경이 발생한 코드, 또는 예측하지 못한 문제가 발생할 수 있는 코드가 메모리에 저장되어 장치 상에서 실행되는 일이 없도록 할 필요가 있다.
그리고, 이러한 필요성에 대한 종래 기술로서, 정보 처리 장치에 검증용 소프트웨어를 추가하고, 코드에 미리 부여되어 있는 검증 정보를 이용하여 코드 실행 전에 코드를 검증하는 방법이나, 정보 처리 장치에 복호용 소프트웨어를 추가하고, 미리 암호화된 코드를 실행 전에 복호함으로써 코드를 검증하는 방법이 종래부터 일반적으로 행해지고 있다.
그러나, 상기 종래 기술은 소프트웨어에 의해서 코드를 검증하는 것으로, 소프트웨어의 구동 오류의 가능성 등을 배제할 수 없고, 별도의 소프트웨어가 정보처리 장치에 미리 추가되어 있어야 한다는 한계가 존재하였다.
이러한 점을 고려할 때 정보 처리 장치의 프로세서나 메모리의 구조 변경이나 별도 소프트웨어 설치 없이 코드를 검증할 수 있는 방법 및 장치가 필요한 실정이다.
본 실시 예가 해결하고자 하는 과제는, 테스트 환경에서 코드를 검증하여 코드에 문제가 있는지 여부를 선제적으로 판단함으로써 해당 코드를 이용하여 사용자에게 서비스를 제공할 때 문제가 발생하지 않도록 예방하는 전자 장치 및 그 방법을 제공하는데 있다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일실시예에 따른 전자 장치에서의 정보 제공 방법은 요청 정보 세트를 획득하는 단계; 상기 요청 정보 세트 중 적어도 일부에 대응하는 요청 정보 서브 세트를 기준 서버로 전송하는 단계; 상기 요청 정보 서브 세트를 개발 서버로 전송하는 단계; 상기 기준 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제1 응답 세트를 수신하는 단계; 상기 개발 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제2 응답 세트를 수신하는 단계; 및 상기 제1 응답 세트 및 상기 제2 응답 세트의 비교 정보를 제공하는 단계를 포함한다.
일실시예에 따르면, 상기 요청 정보 세트는 상기 기준 서버에 대응하는 서비스 서버에 입력되는 사용자 정보를 기반으로 획득될 수 있다.
일실시예에 따르면, 상기 개발 서버는 상기 기준 서버와 서로 대응되는 구조를 가지고, 상기 요청 정보 서브 세트에 대응한 응답을 생성하는 상기 개발 서버의 코드와 상기 기준 서버의 코드는 서로 연관되며, 사용자 입력에 따라 상기 개발 서버의 코드가 변경 가능할 수 있다.
일실시예에 따르면, 상기 비교 정보를 제공하는 단계는 상기 요청 정보 서브 세트의 처리와 연관되는 하나 이상의 API(Application Programming Interface)별로 상기 제1 응답 세트 및 상기 제2 응답 세트를 비교하는 정보를 제공하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 요청 정보 세트가 시간별로 획득되는 경우, 상기 비교 정보를 제공하는 단계는 상기 제1 응답 세트 및 상기 제2 응답 세트를 비교한 결과에 대한 시간 정보를 출력하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 정보 제공 방법은 상기 기준 서버 및 상기 개발 서버와 관련된 통계 정보를 출력하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 통계 정보는 상기 기준 서버 및 상기 개발 서버 중 적어도 하나가 상기 요청 정보 서브 세트에 대응한 응답을 생성하는 것과 관련된 성능 정보를 포함할 수 있다.
일실시예에 따르면, 상기 성능 정보는 상기 기준 서버 및 상기 개발 서버 중 적어도 하나에 설치된 애플리케이션의 성능 정보를 포함하며, 상기 애플리케이션의 성능 정보는 상기 응답 생성과 관련된 지연 시간 및 메모리 사용량 중 적어도 하나를 포함할 수 있다.
일실시예에 따르면, 상기 요청 정보 서브 세트의 처리와 연관되는 하나 이상의 API별로 상기 통계 정보가 출력될 수 있다.
일실시예에 따르면, 상기 정보 제공 방법은 상기 제1 응답 세트 및 상기 제2 응답 세트를 비교한 결과에 기초하여 상기 개발 서버의 코드의 문제 여부를 판단하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 개발 서버의 코드가 문제가 없다고 판단하는 경우, 상기 정보 제공 방법은 상기 개발 서버의 코드를 상기 기준 서버에 대응하는 서비스 서버에 배포하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 전자 장치는 적어도 하나의 서브 장치를 포함하며, 상기 적어도 하나의 서브 장치에 의하여 상기 비교 정보를 제공하는 단계가 수행될 수 있다.
일실시예에 따른 정보를 제공하는 전자 장치는 트랜시버, 명령어를 저장하는 메모리 및 프로세서를 포함하고, 상기 프로세서는, 상기 메모리와 연결되어, 요청 정보 세트를 획득하고, 상기 요청 정보 세트 중 적어도 일부에 대응하는 요청 정보 서브 세트를 기준 서버로 전송하고, 상기 요청 정보 서브 세트를 개발 서버로 전송하고, 상기 기준 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제1 응답 세트를 수신하고, 상기 개발 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제2 응답 세트를 수신하고, 상기 제1 응답 세트 및 상기 제2 응답 세트의 비교 정보를 제공한다.
기타 실시 예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 개시에 따르면, 코드를 검증하는 전자 장치 및 그 방법은 테스트 환경에서 코드를 검증하여 코드에 문제가 있는지 여부를 선제적으로 판단함으로써 해당 코드를 이용하여 사용자에게 서비스를 제공할 때 문제가 발생하지 않도록 예방할 수 있다.
발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일실시예에 따른 정보 제공 시스템을 나타내는 개략적인 구성도이다.
도 2는 일실시예에 따른 정보 제공 시스템에서의 정보 제공 방법의 동작 흐름도이다.
도 3a는 일실시예에 따른 전자 장치가 제공하는 통계 정보를 예시적으로 설명하기 위한 도면이다.
도 3b는 일실시예에 따른 전자 장치가 제공하는 통계 정보를 예시적으로 설명하기 위한 도면이다.
도 4는 일실시예에 따른 전자 장치가 제공하는 비교 정보를 예시적으로 설명하기 위한 도면이다.
도 5는 일실시예에 따른 전자 장치의 정보 제공 방법의 동작 흐름도이다.
도 6은 일실시예에 따른 코드를 검증하는 전자 장치의 구성의 예시도이다.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “...부”, “...모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 기재된 “a, b, 및 c 중 적어도 하나”의 표현은, ‘a 단독’, ‘b 단독’, ‘c 단독’, ‘a 및 b’, ‘a 및 c’, ‘b 및 c’, 또는 ‘a,b,c 모두’를 포괄할 수 있다.
이하에서 언급되는 "단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution) 등의 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 일실시예에 따른 정보 제공 시스템을 나타내는 개략적인 구성도이다.
다양한 실시예에 따르면 정보 제공 시스템은, 전자 장치(110), 기준 서버(120) 및 개발 서버(130)를 포함할 수 있다. 또한, 실시예에 따라 정보 제공 시스템은 전자 장치(110), 기준 서버(120) 및 개발 서버(130) 사이의 정보 송수신을 지원하는 네트워크 망을 더 포함할 수 있다(도면 미 도시).
전자 장치(110), 기준 서버(120) 및 개발 서버(130) 각각은 메모리 및 프로세서를 포함할 수 있다. 또한, 전자 장치(110), 기준 서버(120) 및 개발 서버(130) 각각은 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
일실시예에 따르면, 전자 장치(110), 기준 서버(120) 및 개발 서버(130)는 네트워크 서버로 구현되는 다수의 컴퓨터 시스템 또는 컴퓨터 소프트웨어를 포함할 수 있으며, 다양한 정보를 웹 페이지로 구성하여 제공할 수 있다. 예를 들면, 전자 장치(110), 기준 서버(120) 및 개발 서버(130) 중 적어도 일부는 인트라넷 또는 인터넷과 같은 컴퓨터 네트워크를 통해 다른 네트워크 서버와 통신할 수 있는 하위 장치와 연결되어 작업 수행 요청을 접수하고, 그에 대한 작업을 수행하여 수행 결과를 제공하는 컴퓨터 시스템 및 컴퓨터 소프트웨어를 지칭할 수 있다. 이외에도, 전자 장치(110), 기준 서버(120) 및 개발 서버(130) 중 적어도 일부는 네트워크 서버 상에서 동작할 수 있는 일련의 응용 프로그램과, 내부에 구축되어 있는 각종 데이터베이스를 포함하는 광의의 개념으로 이해될 수 있다. 예컨대, 전자 장치(110), 기준 서버(120) 및 개발 서버(130) 중 적어도 일부는 도스(DOS), 윈도우(Windows), 리눅스(Linux), 유닉스(UNIX), 또는 맥OS(MacOS) 등의 운영 체제에 따라 다양하게 제공되는 네트워크 서버 프로그램을 이용하여 구현될 수 있다.
전자 장치(110)는 정보를 제공하기 위하여, 요청 정보 세트를 획득하고, 요청 정보 세트 중 적어도 일부에 대응하는 요청 정보 서브 세트를 기준 서버(120)로 전송하고, 요청 정보 서브 세트를 개발 서버(130)로 전송하고, 기준 서버(120)로부터 요청 정보 서브 세트에 대응한 응답을 포함하는 제1 응답 세트를 수신하고, 개발 서버(130)로부터 요청 정보 서브 세트에 대응한 응답을 포함하는 제2 응답 세트를 수신한다. 전자 장치(110)와 기준 서버(120) 간의 통신 및 전자 장치(110)와 개발 서버(130) 간의 통신을 위하여 네트워크 망이 이용될 수 있다. 또한 실시 예에서 전자 장치(110)는 기준 서버(120)로부터 수신한 정보 및 개발 서버(130)로부터 수신한 정보를 기반으로 비교 정보를 생성할 수 있으며, 요청 정보 서브 세트에 대응하여 개발 서버(130)에서 수신한 정보를 기반으로 응답을 위한 개발 서버(130)에서의 구동 상태와 관련된 정보를 수신하여 제공할 수 있다.
일실시예에 따르면, 전자 장치(110)는 스테이트풀(stateful) 서버를 포함할 수 있다. 구체적으로, 전자 장치(110)는 연결된 다른 장치와의 통신 상태를 실시간으로 추적하고 추적된 통신 상태를 자신의 정보 제공에 이용할 수 있다. 예를 들어, 전자 장치(110)는 데이터 송수신과 관련된 지연 시간(latency) 등을 포함하는 성능(performance) 정보를 획득할 수 있다. 한편 지연 시간은 각 서버에서 응답을 생성하는데 소요되는 시간 및 네트워크 상에서 해당 정보를 전송하는 시간 중 적어도 하나를 포함할 수 있다. 또한 실시 예에서 성능 정보는 다른 장치가 요청 정보에 대한 응답을 생성하기 위해 소요되는 리소스 관련 정보를 포함할 수 있다. 일 예로 메모리 사용량, CPU 점유율 등의 정보 역시 성능 정보에 포함될 수 있으며, 이와 같은 성능 정보를 기반으로 해당 서버에서 코드가 동작하는 상황을 효과적으로 모니터링 할 수 있다. 또한 실시 예에서 성능 정보는 상기 다른 전자 장치에 설치된 애플리케이션 성능 정보를 포함할 수 있다. 일 예로 요청 정보를 기반으로 애플리케이션이 응답 정보를 생성하며, 이와 같이 애플리케이션이 응답 정보를 생성하는데 소요되는 성능 관련 기준들이 상기 성능 정보에 포함될 수 있다.
전자 장치(110)가 정보를 제공하는 방법과 관련된 보다 상세한 사항은 도 2 내지 도 5를 통하여 후술한다.
기준 서버(120)는 요청 정보 서브 세트를 전자 장치(110)로부터 수신하고, 요청 정보 서브 세트에 대한 응답(이하, 제1 응답 세트)을 생성하고, 생성된 제1 응답 세트를 전자 장치(110)로 전송한다. 기준 서버(120)는 실제로 사용자에게 서비스를 제공하는 서비스 서버에 대응하는 서버로서, 서비스 서버와 대응되는 구조를 가지는 서버일 수 있다. 기준 서버(120)에서 요청 정보 서브 세트에 대한 응답을 생성하기 위하여 사용하는 코드는 서비스 서버에서 요청 정보 서브 세트에 대한 응답을 생성하기 위하여 사용하는 코드에 대응될 수 있다.
개발 서버(130)는 요청 정보 서브 세트를 전자 장치(110)로부터 수신하고, 요청 정보 서브 세트에 대한 응답(이하, 제2 응답 세트)을 생성하고, 생성된 제2 응답 세트를 전자 장치(110)로 전송한다. 개발 서버(130)는 실제로 사용자에게 서비스를 제공하는 서비스 서버에 대응하는 서버로서, 서비스 서버와 대응되는 구조를 가지는 서버일 수 있다. 즉, 개발 서버(130)는 기준 서버(120)와 서로 대응되는 구조를 가질 수 있다.
개발 서버(130)에서 요청 정보 서브 세트에 대한 응답을 생성하기 위하여 사용하는 코드는 서비스 서버에서 요청 정보 서브 세트에 대한 응답을 생성하기 위하여 사용하는 코드에 연관되는 코드일 수 있다. 다만, 사용자 입력에 따라 개발 서버(130)의 코드는 변경 가능할 수 있다.
기준 서버(120)는 서비스 서버에서 사용되는 코드를 사용하고 개발 서버(130)는 변경된 코드를 사용함으로써, 제2 응답 세트는 변경된 코드를 사용하는 경우의 응답에 대응되고, 제1 응답 세트는 기존의 코드를 사용하는 경우의 응답에 대응될 수 있다. 이 경우, 제1 응답 세트 및 제2 응답 세트를 비교함으로써 변경된 코드의 문제 여부를 판단할 수 있다. 한편 실시 예에서 기준 서버(120)는 실 서비스에서 사용되는 적어도 하나의 서버 중 적어도 일부의 서버로 구현하는 것도 가능할 수 있다.
이하, 설명의 편의를 위하여 개발 서버(130)가 변경된 코드를 사용하는 경우로 한정하여 설명하였으나, 본 발명의 내용이 개발 서버(130)가 변경된 코드를 이용하는 실시예에 국한되는 것은 아니며, 실시예에 따라 개발 서버(130)가 기준 서버(120)와 동일한 코드를 사용할 수도 있다. 예컨대, 기준 서버(120)와 개발 서버(130)가 동일한 코드를 사용함으로써, 기준 서버(120)와 개발 서버(130)의 구조가 서로 대응되는지 여부를 검증할 수 있다.
네트워크 망은, 전자 장치(110)와 기준 서버(120), 전자 장치(110)와 개발 서버(130) 또는 전자 장치(110)와 외부 장치(예: 쿼리 수신 서버, 서비스 서버 등)를 연결하는 역할을 할 수 있다. 예를 들어, 네트워크 망은, 기준 서버(120), 개발 서버(130) 또는 외부 장치가 전자 장치(110)와 연결되어 전자 장치(110)와 패킷 데이터를 송수신할 수 있도록 접속 경로를 제공할 수 있다.
다양한 실시예에 따른 일련의 정보 제공 방법과 관련된 동작들은, 단일의 물리적 장치에 의해 구현될 수 있으며, 복수의 물리적 장치가 유기적으로 결합된 방식으로 구현될 수도 있다. 예를 들어, 정보 제공 시스템에 포함된 구성 중 일부는 어느 하나의 물리적 장치에 의해 구현되고, 나머지 일부는 다른 물리적 장치로 구현될 수 있다. 예컨대, 어느 하나의 물리적 장치는, 전자 장치(110)의 일부로 구현될 수 있으며, 다른 물리적 장치는, 기준 서버(120)의 일부 또는 개발 서버(130)의 일부 또는 외부 장치의 일부로 구현될 수도 있다. 경우에 따라, 상기 정보 제공 시스템에 포함된 각각의 구성요소들은 각각 서로 다른 물리적 장치에 분산되어 배치되고, 상기 분산 배치된 구성요소들이 유기적으로 결합되어, 상기 정보 제공 시스템의 기능 및 동작을 수행하도록 구현될 수도 있다. 예컨대, 본 명세서의 전자 장치(110)는 적어도 하나의 서브 장치를 포함하며, 전자 장치(110)에 의해 수행되는 것으로 기재된 일부 동작들은 제1 서브 장치에 의하여 수행되고, 다른 일부 동작들은 제2 서브 장치에 의해 수행될 수도 있다. 예를 들어, 제1 응답 세트 및 제2 응답 세트의 비교 정보를 제공하는 동작이 전자 장치(110)가 포함하는 서브 장치에 의하여 수행될 수 있다.
도 2는 일실시예에 따른 전자 장치의 정보를 제공하는 방법의 동작 흐름도이다.
도 2를 참조하면, 쿼리 수신 서버(220)는 요청 정보 세트를 획득하고(201), 획득된 요청 정보 세트를 전자 장치(110)로 전달할 수 있다(202). 쿼리 수신 서버(220)는 수신된 정보를 다른 장치로 전송하는 서버를 포함할 수 있다. 예를 들어 쿼리 수신 서버(220)는 분산 메시징 시스템을 활용하여 수신한 정보를 다른 노드로 전송할 수 있으며, 분산 메시징 시스템의 일 예로 Apache Kafka가 사용될 수 있다.
쿼리 수신 서버(220)는 실제로 사용자에게 서비스를 제공하는 서비스 서버로부터 요청 정보 세트를 획득할 수 있다. 요청 정보 세트는 서비스 서버에 입력되는 사용자 정보를 기반으로 획득되는 정보일 수 있다. 요청 정보 세트는 서비스를 제공받는 사용자가 입력하는 각종 정보의 집합일 수 있으며, 예를 들어 프론트엔드 서버에 입력되는 사용자 입력을 기반으로 백엔드 서버에 전송되는 요청 정보를 포함할 수 있다.
실시예에 따라, 전자 장치(110)는 쿼리 수신 서버(220)를 통하지 않고 서비스 서버로부터 직접적으로 요청 정보 세트를 수신하거나 쿼리 수신 서버(220)가 전자장치(110)의 일부로 구현될 수도 있다.
전자 장치(110)는 수신한 요청 정보 세트에 기초하여 요청 정보 서브 세트를 획득할 수 있다. 요청 정보 서브 세트는 요청 정보 세트의 적어도 일부에 대응할 수 있다. 예를 들어, 요청 정보 서브 세트는 요청 정보 세트가 포함하는 복수의 사용자 정보 중 특정 비율을 샘플링함으로써 생성될 수 있다. 한편 전자 장치(110)의 설정에 따라 샘플링하는 비율은 달라질 수 있으며, 단위 시간당 획득되는 요청 정보 서브 세트의 숫자 역시 전자 장치(110)의 설정에 따라 달라질 수 있다. 이와 같은 요청 정보 서브 세트를 샘플링 하는 비율이나 단위 시간당 샘플링 되는 숫자를 조절함으로써 개발 서버(130)의 부하 테스트 등을 용이하게 진행할 수 있다.
전자 장치(110)는 요청 정보 서브 세트를 기준 서버(120)로 전송할 수 있다(203). 또한, 전자 장치(110)는 요청 정보 서브 세트를 개발 서버(130)로 전송할 수 있다(204). 기준 서버(120)는 수신한 요청 정보 서브 세트에 대응한 응답을 포함하는 제1 응답 세트를 생성하고(205), 생성된 제1 응답 세트를 전자 장치(110)로 전송할 수 있다(207). 개발 서버(130)는 수신한 요청 정보 서브 세트에 대응한 응답을 포함하는 제2 응답 세트를 생성하고(206), 생성된 제2 응답 세트를 전자 장치(110)로 전송할 수 있다(208).
전자 장치(110)는 수신한 제1 응답 세트 및 제2 응답 세트를 비교하고(209), 비교한 정보를 제공할 수 있다(210). 구체적으로, 전자 장치(110)는 제1 응답 세트가 포함하는 복수의 응답들과 제2 응답 세트가 포함하는 복수의 응답들을 각각 비교하고, 각각 대응되는 코드의 응답 중 특정 부분을 비교하여 동일한 응답이 수신되었는지 다른 응답이 수신되었는지 확인할 수 있다. 실시 예에서 전자 장치(110)에 대한 설정을 통해 특정 코드에 대한 응답 중 비교할 부분을 설정할 수 있다. 또한 두 응답을 비교하여 어떤 부분이 달라졌는지 확인할 수 있는 UI 역시 제공될 수 있다. 또한 전자 장치(110)는 전체 응답 중 서로 다른 출력을 가지는 응답의 비율에 대한 정보 역시 제공할 수 있으며, 관련하여 상세한 비교 결과의 예시는 도 4에 개시되어 있다.
일실시예에 따르면, 전자 장치(110)는 요청 정보 서브 세트의 처리와 연관되는 하나 이상의 API(Application Programming Interface)별로 제1 응답 세트 및 제2 응답 세트를 비교할 수 있다. 이 경우, 전자 장치(110)는 하나 이상의 API별로 구분되도록 제1 응답 세트 및 제2 응답 세트를 비교하는 정보를 제공할 수 있다.
관리자는 전자 장치(110)가 제공하는 비교 정보에 기초하여 개발 서버(130)가 사용하는 변경된 코드에 문제가 있는지 여부를 판단할 수 있다. 구체적으로, 관리자는 제1 응답 세트가 포함하는 복수의 응답들과 제2 응답 세트가 포함하는 복수의 응답들이 어느 정도 일치하는지를 판단할 수 있다. 예상 밖의 불일치 응답이 발견되는 경우 (즉, 코드 변경 당시에 의도한 불일치에 해당하지 않는 경우) 관리자는 변경된 코드에 문제가 있다고 판단하고, 변경된 코드를 수정할 수 있다. 전자 장치(110)가 하나 이상의 API별로 구분되도록 제1 응답 세트 및 제2 응답 세트를 비교하는 정보를 제공하는 경우, 관리자는 불일치 응답이 발생하는 API를 신속하게 파악할 수 있으므로 변경된 코드의 어느 부분에 문제가 있는지를 용이하게 파악할 수 있다.
예상 밖의 불일치 응답이 발견되지 않는 경우, 관리자는 개발 서버(130)가 사용한 코드를 기준 서버(120)에 대응하는 서비스 서버에 배포할 수 있다.
일실시예에 따르면, 요청 정보 세트가 시간별로 획득되는 경우, 전자 장치(110)는 제1 응답 세트 및 제2 응답 세트를 비교한 결과에 대한 시간 정보를 제공할 수 있다. 예를 들어, 전자 장치(110)는 시계열을 축으로 하여 제1 응답 세트 및 제2 응답 세트를 비교한 결과를 그래프 형태로 도시하여 제공할 수 있다.
전자 장치(110)가 제1 응답 세트 및 제2 응답 세트를 비교한 정보를 제공하는 것과 관련된 보다 상세한 예시는 도 4를 통하여 후술한다.
전자 장치(110)는 기준 서버(120) 및 개발 서버(130)와 관련된 통계 정보를 더 제공할 수 있다. 전자 장치(110)가 제공하는 통계 정보 중 적어도 일부는 제1 응답 세트 및 제2 응답 세트를 비교한 정보에 대응할 수 있다. 전자 장치(110)가 제공하는 통계 정보는 요청 정보 서브 세트가 포함하는 사용자 입력의 개수를 포함할 수 있다. 또한, 전자 장치(110)가 제공하는 통계 정보는 전자 장치(110) 성능 정보를 포함할 수 있다. 예를 들어, 통계 정보는 요청 정보의 획득, 요청 정보 서브 세트의 전송 및 제1 응답 세트 및 제2 응답 세트의 수신 중 적어도 일부와 관련된 지연 시간(latency)을 포함할 수 있다.
일실시예에 따르면, 전자 장치(110)는 요청 정보 서브 세트의 처리와 연관되는 하나 이상의 API별로 통계 정보를 제공할 수 있다. 예를 들어, 전자 장치(110)는 하나 이상의 API별로 요청 정보 서브 세트가 포함하는 사용자 입력의 개수 및 요청 정보 서브 세트가 포함하는 전체 사용자 입력의 개수를 모두 제공할 수 있다.
일실시예에 따르면, 전자 장치(110)는 통계 정보와 함께 시간 정보를 제공할 수 있다. 예를 들어, 전자 장치(110)는 시계열을 축으로 하여 요청 정보 서브 세트가 포함하는 사용자 입력의 개수 또는 성능 정보(예를 들어, 지연 시간)를 그래프 형태로 도시하여 제공할 수 있다.
전자 장치(110)가 기준 서버(120) 및 개발 서버(130)와 관련된 통계 정보를 제공하는 것과 관련된 보다 상세한 예시는 도 3a 및 도 3b를 통하여 후술한다.
일실시예에 따르면, 전자 장치(110)는 제1 응답 세트 및 상기 제2 응답 세트를 비교한 결과에 기초하여 개발 서버(130)의 코드의 문제 여부를 판단할 수 있다. 이 경우, 전자 장치(110)는 사전에 설정된 조건에 따라 코드의 문제 여부를 판단할 수 있다. 예를 들어, 전자 장치(110)는 제1 응답 세트 및 제2 응답 세트를 비교한 결과 불일치 응답들의 발생 비율이 특정 임계 비율을 초과하는 경우에는 개발 서버(130)의 코드가 문제가 있다고 판단할 수 있다. 이 경우, 개발 서버(130)에서 사용된 코드의 변경 당시에 의도되었던 결과에 대응하는 불일치 응답들은 개발 서버(130)의 코드가 문제가 있는지 여부를 판단함에 있어서는 불일치 응답이 아닌 것으로 간주할 수 있다. 예컨대, 개발 서버(130)에서 사용된 코드가 특정 API에 대하여 변경된 결과를 출력하도록 변경된 코드일 경우, 해당 API는 제외하고 불일치 응답들의 발생 비율을 판단할 수 있다.
일실시예에 따르면, 전자 장치(110)는 개발 서버(130)가 사용한 코드를 기준 서버(120)에 대응하는 서비스 서버에 배포할 수 있다. 이 경우, 전자 장치(110)가 자체적으로 코드의 문제 여부를 판단했을 수도 있고, 관리자가 코드의 문제 여부를 판단하여 전자 장치(110)에 그 판단 결과를 입력했을 수도 있다.
도 3a 및 도 3b는 일실시예에 따른 전자 장치가 제공하는 통계 정보를 예시적으로 설명하기 위한 도면이다.
도 3a 및 도 3b를 참조하면, 전자 장치(110)는 기준 서버(120) 및 개발 서버(130)와 관련된 통계 정보를 제공할 수 있다. 전자 장치(110)가 제공하는 통계 정보는 요청 정보 서브 세트가 포함하는 사용자 입력의 개수(310) 및 성능 정보(320 내지 370)을 포함할 수 있다. 성능 정보(320 내지 370) 중 적어도 일부는 전자 장치(110)의 동작과 연관될 수 있고, 적어도 일부는 기준 서버(120) 및 개발 서버(130) 중 적어도 하나가 요청 정보 서브 세트에 대응한 응답을 생성하는 것과 관련될 수 있다. 예컨대, 통계 정보가 포함하는 성능 정보(320 내지 370)는 요청 정보의 획득, 요청 정보 서브 세트의 전송 및 제1 응답 세트 및 제2 응답 세트의 수신 중 적어도 일부와 관련하여 전자 장치(110), 기준 서버(120) 및 개발 서버(130) 중 적어도 하나의 성능을 표시하는 적어도 하나의 정보를 포함할 수 있다.
성능 정보(320 내지 370)는 기준 서버(120) 및 개발 서버(130) 중 적어도 하나에 설치된 애플리케이션의 성능 정보를 포함할 수 있다. 애플리케이션의 성능 정보는 제1 응답 세트에 포함되는 복수의 응답 및 제2 응답 세트에 포함되는 복수의 응답 중 적어도 일부를 생성하는 것과 관련된 지연 시간 및 메모리 사용량 중 적어도 하나를 포함할 수 있다. 일실시예에 따르면, 애플리케이션의 성능 정보는 CPU의 성능과 관련된 정보(330), 메모리의 성능과 관련된 정보(340), 전자 장치(110)의 시스템 로드(load) 정보(350), 가용 디스크 용량 정보(360) 및 네트워크의 단위 시간당 정보 처리량과 관련된 정보(370) 등을 포함할 수 있다. 이 경우, CPU의 성능과 관련된 정보(330)는 사용자 영역에서 사용한 CPU 시간인 "CPU: user", 다른 통신으로 인해 CPU의 작업이 일시적으로 대기하는데 소비된 CPU 시간인 "CPU: iowait", 시스템 영역에서 CPU가 사용된 시간인 "CPU: system" 및 CPU가 사용되지 않는 유휴 상태의 비율인 "CPU: idle"을 포함할 수 있다. 또한, 메모리의 성능과 관련된 정보는 메모리 사용량과 관련된 정보인 "Memory: used" 및 "Memory: used percent", 메모리와 관련된 캐시(cache) 정보인 "Memory: cache" 및 메모리와 관련된 버퍼(buffer) 정보인 "Memory: buffer"를 포함할 수 있다.
통계 정보는 시계열을 가로축으로 하여 그래프 형태로 도시되어 표시될 수 있다. 통계 정보 중 적어도 일부는 하나 이상의 API별로 구분되어 표시될 수 있다. 시계열에 따라 통계 정보를 표시함으로써, 관리자는 특정 시점에 정보의 입출력과 관련하여 문제가 있었는지 여부를 판단할 수 있다. 예를 들어, 특정 시점에 사용자 입력이 지나치게 적거나 발생한 지연 시간이 지나치게 큰 경우, 관리자는 해당 시점에 송수신된 정보가 신뢰성이 낮다고 판단할 수 있다. 또는, 현재 시점으로부터 근접한 시점에 사용자 입력이 지나치게 적거나 발생한 지연 시간이 지나치게 큰 경우, 관리자는 문제의 발생 원인을 탐색함으로써 문제의 해결을 시도할 수 있다.
통계 정보 중 적어도 일부는 기준 서버(120)와 관련된 정보 및 개발 서버(130)와 관련된 정보를 비교하는 형태로 표시될 수 있다. 예를 들어, CPU의 성능과 관련된 정보(330)는 기준 서버(120)의 CPU 성능과 개발 서버(130)의 CPU 성능을 비교한 결과를 비교하는 형태로 표시될 수 있으며, 이는 메모리의 성능과 관련된 정보(340), 시스템 로드 정보(350), 가용 디스크 용량 정보(360) 및 네트워크의 단위 시간당 정보 처리량과 관련된 정보(370) 등의 경우에도 마찬가지일 수 있다. 또한, 도면에 도시된 지연 시간(320)은 전자 장치(110)의 API별 지연 시간 정보에 대응하나, 경우에 따라 지연 시간(320)은 기준 서버(120) 및 개발 서버(130)의 응답 생성과 관련되는 지연 시간을 비교하여 표시하는 정보에 대응할 수도 있다.
기준 서버(120)와 관련된 정보 및 개발 서버(130)와 관련된 정보를 비교하는 통계 정보를 표시함으로써, 관리자는 개발 서버(130)가 사용하는 변경된 코드에 문제가 있는지 여부를 판단할 수 있다. 예를 들어, 성능 정보(320 내지 370)를 확인한 결과 개발 서버(130)의 전반적인 성능이 기준 서버(120)의 전반적인 성능에 비해 일정 비율 이상 떨어지는 경우, 관리자는 개발 서버(130)가 사용하는 변경된 코드에 문제가 있다고 판단할 수 있다. 이 경우, 관리자는 성능 저하의 원인을 탐색함으로써 성능 저하의 해결을 시도할 수 있다.
도 4는 일실시예에 따른 전자 장치가 제공하는 비교 정보를 예시적으로 설명하기 위한 도면이다.
도 4를 참조하면, 전자 장치(110)는 제1 응답 세트 및 제2 응답 세트의 비교 정보(410)를 제공할 수 있다. 비교 정보(410)는 시계열을 가로축으로 하여 그래프 형태로 도시되어 표시될 수 있으며, 비교 정보(410)는 하나 이상의 API별로 구분되어 표시될 수 있다. 시계열에 따라 비교 정보(410)를 표시함으로써, 관리자는 불일치하는 응답이 어느 시점에 얼마나 많이 수신되었는지를 확인할 수 있다.
전자 장치(110)가 제공하는 비교 정보(410)는 제1 응답 세트가 포함하는 복수의 응답들 및 제2 응답 세트가 포함하는 복수의 응답들과 관련하여 성공적으로 수집된 응답의 개수(411)를 포함할 수 있다. 이 경우, 제1 응답 세트가 포함하는 특정 응답과, 제2 응답 세트에 포함되면서 제1 응답 세트가 포함하는 특정 응답에 대응하는 응답이 모두 성공적으로 수신되는 경우에 성공적으로 수집된 응답의 개수(411)를 하나로 카운트할 수 있다. 예를 들어, 제1 응답 세트가 300개의 응답들을 포함하고, 제2 응답 세트가 300개의 응답들을 포함하며, 제1 응답 세트에 포함되는 응답들과 제2 응답 세트에 포함되는 응답들이 빠짐없이 대응되는 경우 성공적으로 수집된 응답의 개수(411)는 300개일 수 있다.
또한, 전자 장치(110)가 제공하는 비교 정보(410)는 제1 응답 세트가 포함하는 복수의 응답들 및 제2 응답 세트가 포함하는 복수의 응답들과 관련하여 일치하는 응답의 개수(412)와 불일치하는 응답의 개수(413)를 포함할 수 있다. 예상 밖의 불일치 응답이 발견되는 경우, 관리자는 변경된 코드에 문제가 있다고 판단하고, 변경된 코드를 수정할 수 있다.
일실시예에 따르면, 전자 장치(110)가 제공하는 비교 정보(410)는 수집에 실패한 응답의 개수(416)나 통신 불안정 등의 이유로 기준 서버(120)와의 정보 송수신에 장애가 발생한 횟수(414), 개발 서버(130)와의 정보 송수신에 장애가 발생한 횟수(415) 등을 더 포함할 수 있다.
일실시예에 따르면, 전자 장치(110)는 로그 정보(420)를 제공할 수 있다. 로그 정보(420)는 특정 조건을 만족하는 이벤트가 발생했을 때 기록되는 정보일 수 있다. 예를 들어, 로그 정보(420)는 일정 시간마다 수집되는 인포(info) 로그 및 오류 발생 시에 수집되는 에러(error) 로그를 포함할 수 있다. 로그 정보(420)는 전자 장치(110)에서 생성된 정보일 수도 있고, 기준 서버(120)나 개발 서버(130)로부터 수신된 정보일 수도 있다. 에러 로그는 전자 장치(110)의 작동 오류와 관련될 수도 있고, 기준 서버(120)나 개발 서버(130)의 작동 오류와 관련될 수도 있다.
일실시예에 따른 전자 장치(110)는 불일치 응답들의 발생 비율(431), 전자 장치(110)가 포함하는 서브 장치 중 구동 중인 서브 장치의 개수(432), 전자 장치(110)가 포함하는 서브 장치 중 활성화된 서브 장치의 개수(433) 및 정보 송수신 횟수(434) 등의 정보를 더 제공할 수 있다. 서브 장치는 전자 장치(110)에 포함되는 장치로, 제1 응답 세트 및 제2 응답 세트의 비교 정보를 제공하는 동작을 수행하는 장치일 수 있다. 구동중인 서브 장치는 실시간으로 비교 정보를 제공하고 있는 장치에 대응될 수 있고, 활성화된 서브 장치는 비교 정보를 제공할 수 있는 장치에 대응될 수 있다(즉, 구동중인 서브 장치를 포함하는 개념일 수 있다). 정보 송수신 횟수(434)는 요청 정보 세트의 획득이나, 요청 정보 서브 세트의 전송이나, 제1 응답 세트 및 제2 응답 세트의 수신이 단위 시간 당 몇 회나 수행되는지에 대응될 수 있다. 한편 실시 예에서 전자 장치(110)에 대한 정을 기반으로 구동되는 서브 장치의 숫자를 조절할 수 있다.
도시되지는 않았으나, 일실시예에 따른 전자 장치(110)는 요청 정보 서브 세트의 처리와 연관되는 하나 이상의 API별로 불일치 응답의 개수 정보를 제공할 수 있다. 또한, 일실시예에 따른 전자 장치(110)는 불일치 응답이 발생하는 경우 그 불일치 응답에 대응하는 경로 정보를 제공할 수도 있다.
그 외에도, 도시되지는 않았으나, 일실시예에 따른 전자 장치(110)는 메모리 중 힙 영역(heap area)의 사용량, 메모리 중 논 힙 영역(non-heap area)의 사용량, 메모리 관리를 위아여 동작하는 백그라운드 쓰레드(thread)의 동작 시간, http 응답에 따른 요청의 횟수, 쓰레드의 개수, 지연 시간의 평균값 등을 포함하는 다양한 정보를 제공할 수 있다.
메모리 중 힙 영역의 사용량은 메모리 누수(leak)의 발생 여부와 연관될 수 있다. 구체적으로, 힙 영역의 사용량이 유지되지 않고 시간에 따라 우상향하는 경우 메모리 누수가 발생했다고 예상할 수 있다.
메모리 관리를 위하여 동작하는 백그라운드 쓰레드는 가비지 콜렉터(garbage collector)를 포함할 수 있다.
도 5는 일실시예에 따른 전자 장치의 정보 제공 방법의 동작 흐름도이다.
도 5를 참조하면, 일실시예에 따른 전자 장치(110)는 요청 정보 세트를 획득하고(510), 요청 정보 세트 중 적어도 일부에 대응하는 요청 정보 서브 세트를 기준 서버(120) 및 개발 서버(130)로 전송한다(520). 그 후, 전자 장치(110)는 기준 서버(120)로부터 요청 정보 서브 세트에 대응한 응답을 포함하는 제1 응답 세트를 수신하고, 개발 서버(130)로부터 요청 정보 서브 세트에 대응한 응답을 포함하는 제2 응답 세트를 수신한다(530).
제1 응답 세트 및 제2 응답 세트를 수신한 전자 장치(110)는 제1 응답 세트 및 제2 응답 세트를 비교하고 그 비교 정보를 제공한다(540).
도 6은 일실시예에 따른 코드를 검증하는 전자 장치의 구성의 예시도이다.
도 6을 참조하면, 전자 장치(110)는 트랜시버(610), 프로세서(620) 및 메모리(630)를 포함한다. 전자 장치(110)는 트랜시버(610)를 통하여 기준 서버(120), 개발 서버(130) 및 외부 장치(예를 들어, 퍼스널 컴퓨터) 등과 연결되고, 데이터를 교환할 수 있다.
프로세서(620)는 도 1 내지 도 5를 통하여 전술한 적어도 하나의 장치들을 포함하거나, 도 1 내지 도 5를 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. 메모리(630)는 도 1 내지 도 5를 통하여 전술한 적어도 하나의 방법을 수행하기 위한 정보(전술한 요청 정보 세트, 요청 정보 서브 세트, 제1 응답 세트, 제2 응답 세트, 통계 정보 및 비교 정보 포함)를 저장할 수 있다. 메모리(630)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(620)는 프로그램을 실행하고, 정보를 제공하기 위한 전자 장치(110)를 제어할 수 있다. 프로세서(620)에 의하여 실행되는 프로그램의 코드는 메모리(630)에 저장될 수 있다.
또한 실시 예의 전자 장치(110)는 관리자에게 정보를 제공할 수 있는 인터페이스를 더 포함할 수 있다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
전술한 실시예들에 따른 전자 장치 또는 단말은, 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-Access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler), 파이썬(Python) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
전술한 실시예들은 일 예시일 뿐 후술하는 청구항들의 범위 내에서 다른 실시예들이 구현될 수 있다.

Claims (14)

  1. 전자 장치에서 정보 제공 방법에 있어서,
    요청 정보 세트를 획득하는 단계;
    상기 요청 정보 세트 중 적어도 일부에 대응하는 요청 정보 서브 세트를 기준 서버로 전송하는 단계;
    상기 요청 정보 서브 세트를 개발 서버로 전송하는 단계;
    상기 기준 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제1 응답 세트를 수신하는 단계;
    상기 개발 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제2 응답 세트를 수신하는 단계; 및
    상기 제1 응답 세트 및 상기 제2 응답 세트의 비교 정보를 제공하는 단계를 포함하는 정보 제공 방법.
  2. 제1항에 있어서,
    상기 요청 정보 세트는 상기 기준 서버에 대응하는 서비스 서버에 입력되는 사용자 정보를 기반으로 획득되는 정보 제공 방법.
  3. 제1항에 있어서,
    상기 개발 서버는 상기 기준 서버와 서로 대응되는 구조를 가지고,
    상기 요청 정보 서브 세트에 대응한 응답을 생성하는 상기 개발 서버의 코드와 상기 기준 서버의 코드는 서로 연관되며,
    사용자 입력에 따라 상기 개발 서버의 코드가 변경 가능한 정보 제공 방법.
  4. 제1항에 있어서,
    상기 비교 정보를 제공하는 단계는
    상기 요청 정보 서브 세트의 처리와 연관되는 하나 이상의 API(Application Programming Interface)별로 상기 제1 응답 세트 및 상기 제2 응답 세트를 비교하는 정보를 제공하는 단계를 포함하는 정보 제공 방법.
  5. 제1항에 있어서,
    상기 요청 정보 세트가 시간별로 획득되는 경우,
    상기 비교 정보를 제공하는 단계는
    상기 제1 응답 세트 및 상기 제2 응답 세트를 비교한 결과에 대한 시간 정보를 출력하는 단계를 포함하는 정보 제공 방법.
  6. 제1항에 있어서,
    상기 기준 서버 및 상기 개발 서버와 관련된 통계 정보를 출력하는 단계를 더 포함하는 정보 제공 방법.
  7. 제6항에 있어서,
    상기 통계 정보는 상기 기준 서버 및 상기 개발 서버 중 적어도 하나가 상기 요청 정보 서브 세트에 대응한 응답을 생성하는 것과 관련된 성능 정보를 포함하는 정보 제공 방법.
  8. 제7항에 있어서,
    상기 성능 정보는 상기 기준 서버 및 상기 개발 서버 중 적어도 하나에 설치된 애플리케이션의 성능 정보를 포함하며,
    상기 애플리케이션의 성능 정보는 상기 응답 생성과 관련된 지연 시간 및 메모리 사용량 중 적어도 하나를 포함하는 정보 제공 방법.
  9. 제6항에 있어서,
    상기 요청 정보 서브 세트의 처리와 연관되는 하나 이상의 API별로 상기 통계 정보가 출력되는 정보 제공 방법.
  10. 제1항에 있어서,
    상기 제1 응답 세트 및 상기 제2 응답 세트를 비교한 결과에 기초하여 상기 개발 서버의 코드의 문제 여부를 판단하는 단계를 더 포함하는 정보 제공 방법.
  11. 제10항에 있어서,
    상기 개발 서버의 코드가 문제가 없다고 판단하는 경우, 상기 개발 서버의 코드를 상기 기준 서버에 대응하는 서비스 서버에 배포하는 단계를 더 포함하는 정보 제공 방법.
  12. 제1항에 있어서,
    상기 전자 장치는 적어도 하나의 서브 장치를 포함하며,
    상기 적어도 하나의 서브 장치에 의하여 상기 비교 정보를 제공하는 단계가 수행되는 정보 제공 방법.
  13. 제1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체.
  14. 정보를 제공하는 전자 장치에 있어서,
    트랜시버, 명령어를 저장하는 메모리 및 프로세서를 포함하고,
    상기 프로세서는, 상기 메모리와 연결되어, 요청 정보 세트를 획득하고, 상기 요청 정보 세트 중 적어도 일부에 대응하는 요청 정보 서브 세트를 기준 서버로 전송하고, 상기 요청 정보 서브 세트를 개발 서버로 전송하고, 상기 기준 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제1 응답 세트를 수신하고, 상기 개발 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제2 응답 세트를 수신하고, 상기 제1 응답 세트 및 상기 제2 응답 세트의 비교 정보를 제공하는 전자 장치.
PCT/KR2020/019326 2020-12-21 2020-12-29 코드의 검증을 위한 전자 장치 및 그 방법 WO2022139050A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0180048 2020-12-21
KR1020200180048A KR102305845B1 (ko) 2020-12-21 2020-12-21 코드의 검증을 위한 전자 장치 및 그 방법

Publications (1)

Publication Number Publication Date
WO2022139050A1 true WO2022139050A1 (ko) 2022-06-30

Family

ID=77924984

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/019326 WO2022139050A1 (ko) 2020-12-21 2020-12-29 코드의 검증을 위한 전자 장치 및 그 방법

Country Status (5)

Country Link
US (1) US11429510B2 (ko)
JP (1) JP6976638B1 (ko)
KR (2) KR102305845B1 (ko)
TW (1) TW202226786A (ko)
WO (1) WO2022139050A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240000809A (ko) * 2022-06-24 2024-01-03 쿠팡 주식회사 코드 정보 제공을 위한 전자 장치 및 그 방법
KR102542534B1 (ko) * 2022-12-02 2023-06-13 국방과학연구소 표준 적합성 시험을 수행하는 방법 및 전자 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040050463A (ko) * 2002-12-10 2004-06-16 한국전자통신연구원 엔터프라이즈 자바 빈 컴포넌트 테스팅 장치 및 그 방법
KR20080068385A (ko) * 2007-01-19 2008-07-23 슈어소프트테크주식회사 소프트웨어 테스트 시스템, 방법 및 그 방법을 실행하기위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
KR20100100161A (ko) * 2009-03-05 2010-09-15 한국전자통신연구원 웹 콘텐츠의 브라우저 호환성 검사 방법 및 그 장치
JP2015225361A (ja) * 2014-05-26 2015-12-14 株式会社プラグラム A/bテストの測定方法及び測定管理システム
KR101748378B1 (ko) * 2015-12-28 2017-06-27 (주)아이티엑스퍼트그룹 개발공정에서의 응용프로그램의 성능관리 시스템 및 그 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8584109B2 (en) 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
US8370806B2 (en) 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
JP2009245353A (ja) * 2008-03-31 2009-10-22 Nomura Research Institute Ltd 情報処理システムおよび情報処理方法
US8001422B1 (en) * 2008-06-30 2011-08-16 Amazon Technologies, Inc. Shadow testing services
WO2012087330A2 (en) 2010-12-23 2012-06-28 Intel Corporation Test, validation, and debug architecture
US8990778B1 (en) * 2012-09-14 2015-03-24 Amazon Technologies, Inc. Shadow test replay service
US9600393B2 (en) * 2015-03-23 2017-03-21 Facebook, Inc. Testing of application service versions on live data
CN104951399B (zh) 2015-06-19 2017-11-07 北京齐尔布莱特科技有限公司 一种软件测试系统和方法
US9830248B2 (en) * 2016-03-02 2017-11-28 Bank Of America Corporation System for automated code validation and deployment
US10564941B2 (en) 2016-03-23 2020-02-18 FogHorn Systems, Inc. Composition of pattern-driven reactions in real-time dataflow programming
EP3479248A4 (en) * 2016-06-29 2019-12-18 Synopsys, Inc. AUTOMATED HTTP USER FLOW SIMULATOR
CN114579774A (zh) 2017-03-03 2022-06-03 谷歌有限责任公司 用于检测应用不当地实施对内容项的呈现的系统和方法
US10572361B2 (en) * 2017-04-28 2020-02-25 The Boeing Company Concurrent production use of a production enterprise system and testing of a modified enterprise system
JP6703971B2 (ja) * 2017-11-01 2020-06-03 みずほ情報総研株式会社 テスト支援システム、テスト支援方法及びテスト支援プログラム
US10884903B1 (en) * 2018-11-01 2021-01-05 Intuit Inc. Automatic production testing and validation
CN111857762A (zh) * 2019-04-30 2020-10-30 戴尔产品有限公司 微服务更新系统
CN110489966A (zh) 2019-08-12 2019-11-22 腾讯科技(深圳)有限公司 平行越权漏洞检测方法、装置、存储介质及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040050463A (ko) * 2002-12-10 2004-06-16 한국전자통신연구원 엔터프라이즈 자바 빈 컴포넌트 테스팅 장치 및 그 방법
KR20080068385A (ko) * 2007-01-19 2008-07-23 슈어소프트테크주식회사 소프트웨어 테스트 시스템, 방법 및 그 방법을 실행하기위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
KR20100100161A (ko) * 2009-03-05 2010-09-15 한국전자통신연구원 웹 콘텐츠의 브라우저 호환성 검사 방법 및 그 장치
JP2015225361A (ja) * 2014-05-26 2015-12-14 株式会社プラグラム A/bテストの測定方法及び測定管理システム
KR101748378B1 (ko) * 2015-12-28 2017-06-27 (주)아이티엑스퍼트그룹 개발공정에서의 응용프로그램의 성능관리 시스템 및 그 방법

Also Published As

Publication number Publication date
TW202226786A (zh) 2022-07-01
JP2022098392A (ja) 2022-07-01
JP6976638B1 (ja) 2021-12-08
US20220197774A1 (en) 2022-06-23
US11429510B2 (en) 2022-08-30
KR102362262B1 (ko) 2022-02-14
KR102305845B1 (ko) 2021-09-29

Similar Documents

Publication Publication Date Title
US11102097B2 (en) Communication between independent containers
WO2022139050A1 (ko) 코드의 검증을 위한 전자 장치 및 그 방법
US20170192881A1 (en) Application programming interface testing services
US20060248525A1 (en) System and method for detecting peer-to-peer network software
WO2013165180A1 (ko) 로그 모니터링 방법, 그 서버 및 기록 매체
US10567250B2 (en) End-to-end tracing providers and session management
WO2011071265A2 (en) Method and apparatus for using service of plurality of internet service providers
CN116737598B (zh) 页面调试方法、装置、电子设备和计算机可读介质
WO2018094839A1 (zh) 一种移动终端预装应用的安装方法及装置
CN104298675A (zh) 用于缓存管理的方法和装置
CN113094236A (zh) 一种系统数据采集方法、装置、计算机设备及存储介质
CN113553243A (zh) 远端侦错方法
CN114257632B (zh) 断线重连的方法、装置、电子设备及可读存储介质
WO2022065525A1 (ko) 메소드 후킹을 이용한 네트워크 통신 모니터링 방법 및 시스템
CN114443480A (zh) 测试方法、系统、可读介质及电子设备
CN114513553A (zh) 一种数据处理方法、装置、电子设备及存储介质
WO2021128936A1 (zh) 报文的处理方法及装置
CN114116448A (zh) 应用程序的压力测试方法、装置、存储介质及计算机设备
WO2012026700A2 (ko) 파일 전송 방법 및 이의 방법을 수행하는 장치들
WO2024005246A1 (ko) 코드 검증 정보를 제공하는 전자 장치 및 그 방법
RU2671999C1 (ru) Способ и система для диагностики мобильных вычислительных устройств
CN112165446A (zh) 一种VxWorks系统网络侦听方法
WO2015023088A1 (ko) 이메일의 첨부파일 처리시스템과 처리방법
WO2013151371A1 (ko) Pc방의 서비스 등록 ip 판별 시스템 및 방법
CN112261051B (zh) 一种用户注册方法、装置及系统

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: 20967121

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20967121

Country of ref document: EP

Kind code of ref document: A1