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

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

Info

Publication number
KR102305845B1
KR102305845B1 KR1020200180048A KR20200180048A KR102305845B1 KR 102305845 B1 KR102305845 B1 KR 102305845B1 KR 1020200180048 A KR1020200180048 A KR 1020200180048A KR 20200180048 A KR20200180048 A KR 20200180048A KR 102305845 B1 KR102305845 B1 KR 102305845B1
Authority
KR
South Korea
Prior art keywords
information
server
code
response
subset
Prior art date
Application number
KR1020200180048A
Other languages
English (en)
Inventor
프라카쉬 카델
배대환
김태일
장기웅
Original Assignee
쿠팡 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쿠팡 주식회사 filed Critical 쿠팡 주식회사
Priority to KR1020200180048A priority Critical patent/KR102305845B1/ko
Priority to PCT/KR2020/019326 priority patent/WO2022139050A1/ko
Priority to JP2021005709A priority patent/JP6976638B1/ja
Priority to US17/153,319 priority patent/US11429510B2/en
Priority to TW110105443A priority patent/TW202226786A/zh
Priority to KR1020210123959A priority patent/KR102362262B1/ko
Application granted granted Critical
Publication of KR102305845B1 publication Critical patent/KR102305845B1/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/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • 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/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • 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

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

코드의 검증을 위한 전자 장치 및 그 방법 {ELECTRONIC APPARATUS FOR VERIFYING CODE AND METHOD THEREOF}
본 개시는 코드의 검증을 위한 전자 장치 및 그 방법에 관한 것이다. 보다 구체적으로 본 개시는 사용자 입력을 서로 다른 버전의 코드가 구동되는 서버에 샘플링하여 전송하고, 이에 대한 결과 값을 비교한 정보를 제공함으로써 코드를 검증할 수 있는 전자 장치 및 그 방법에 관한 것이다.
전자 기술의 발달에 따라 생활 전반에는 전자 기술을 이용한 서비스가 자리잡게 되었다. 사용자에게 서비스를 제공하는 서버는 문제를 개선하거나 추가 기능을 제공하는 등의 이유로 그 동작을 위한 코드(기계어에 의해서 기술되고, 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 응답 세트의 비교 정보를 획득하는 단계; 및
    상기 비교 정보에 기초하여 상기 개발 서버의 코드의 문제 여부를 판단하는 단계를 포함하고,
    상기 제1 응답 세트는 사용자에게 서비스를 제공하는 서비스 서버에서 사용되는 코드에 대응되는 상기 기준 서버의 코드에 기반하여 상기 기준 서버에서 생성되고,
    상기 개발 서버의 코드는 상기 기준 서버의 코드가 변경됨으로써 생성된 코드이고,
    상기 제2 응답 세트는 상기 개발 서버의 코드에 기반하여 상기 개발 서버에서 생성되고,
    상기 개발 서버의 코드의 문제 여부를 판단하는 단계는
    상기 제2 응답 세트 중 상기 개발 서버의 코드에 따른 목표 변경 대상 응답 부분을 제외한 부분에 대해 제1 응답 세트와의 비교를 통해 불일치 응답의 개수를 판단하는 단계; 및
    상기 요청 정보 서브 세트에 대응한 응답의 개수와 상기 불일치 응답의 개수를 비교한 결과, 상기 불일치 응답의 개수의 비율이 임계 비율을 초과하는 경우, 상기 개발 서버의 코드에 문제가 있다고 판단하는 단계를 포함하는 정보 제공 방법.
  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. 삭제
  11. 제1항에 있어서,
    상기 개발 서버의 코드가 문제가 없다고 판단하는 경우, 상기 개발 서버의 코드를 상기 서비스 서버에 배포하는 단계를 더 포함하는 정보 제공 방법.
  12. 제1항에 있어서,
    상기 전자 장치는 적어도 하나의 서브 장치를 포함하며,
    상기 적어도 하나의 서브 장치에 의하여 상기 비교 정보를 제공하는 단계가 수행되는 정보 제공 방법.
  13. 제1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체.
  14. 정보를 제공하는 전자 장치에 있어서,
    트랜시버, 명령어를 저장하는 메모리 및 프로세서를 포함하고,
    상기 프로세서는, 상기 메모리와 연결되어, 요청 정보 세트를 획득하고, 상기 요청 정보 세트 중 적어도 일부에 대응하는 요청 정보 서브 세트를 기준 서버로 전송하고, 상기 요청 정보 서브 세트를 개발 서버로 전송하고, 상기 기준 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제1 응답 세트를 수신하고, 상기 개발 서버로부터 상기 요청 정보 서브 세트에 대응한 응답을 포함하는 제2 응답 세트를 수신하고, 상기 제1 응답 세트 및 상기 제2 응답 세트의 비교 정보를 획득하고, 상기 비교 정보에 기초하여 상기 개발 서버의 코드의 문제 여부를 판단하고, 상기 제1 응답 세트는 사용자에게 서비스를 제공하는 서비스 서버에서 사용되는 코드에 대응되는 상기 기준 서버의 코드에 기반하여 상기 기준 서버에서 생성되고, 상기 개발 서버의 코드는 상기 기준 서버의 코드가 변경됨으로써 생성된 코드이고, 상기 제2 응답 세트는 상기 개발 서버의 코드에 기반하여 상기 개발 서버에서 생성되고, 상기 개발 서버의 코드의 문제 여부를 판단하는 동작은 상기 제2 응답 세트 중 상기 개발 서버의 코드에 따른 목표 변경 대상 응답 부분을 제외한 부분에 대해 제1 응답 세트와의 비교를 통해 불일치 응답의 개수를 판단하는 동작과, 상기 요청 정보 서브 세트에 대응한 응답의 개수와 상기 불일치 응답의 개수를 비교한 결과, 상기 불일치 응답의 개수의 비율이 임계 비율을 초과하는 경우, 상기 개발 서버의 코드에 문제가 있다고 판단하는 동작을 포함하는 전자 장치.
KR1020200180048A 2020-12-21 2020-12-21 코드의 검증을 위한 전자 장치 및 그 방법 KR102305845B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020200180048A KR102305845B1 (ko) 2020-12-21 2020-12-21 코드의 검증을 위한 전자 장치 및 그 방법
PCT/KR2020/019326 WO2022139050A1 (ko) 2020-12-21 2020-12-29 코드의 검증을 위한 전자 장치 및 그 방법
JP2021005709A JP6976638B1 (ja) 2020-12-21 2021-01-18 コード検証のための電子装置およびその方法
US17/153,319 US11429510B2 (en) 2020-12-21 2021-01-20 Electronic apparatus for verifying code and method thereof
TW110105443A TW202226786A (zh) 2020-12-21 2021-02-18 用於驗證代碼之電子設備及其方法
KR1020210123959A KR102362262B1 (ko) 2020-12-21 2021-09-16 코드의 검증을 위한 전자 장치 및 그 방법

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210123959A Division KR102362262B1 (ko) 2020-12-21 2021-09-16 코드의 검증을 위한 전자 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR102305845B1 true KR102305845B1 (ko) 2021-09-29

Family

ID=77924984

Family Applications (2)

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

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210123959A KR102362262B1 (ko) 2020-12-21 2021-09-16 코드의 검증을 위한 전자 장치 및 그 방법

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)

Cited By (2)

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

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
GB2493793B (en) 2010-12-23 2020-07-08 Intel Corp 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
KR102128571B1 (ko) 2016-03-23 2020-06-30 포그혼 시스템스 인코포레이티드 실시간 데이터플로우 프로그래밍을 위한 효율적인 상태 머신
CN109643272B (zh) * 2016-06-29 2023-03-28 新思科技有限公司 用于自动http测试的测试系统及方法
CN108811514B (zh) 2017-03-03 2022-03-01 谷歌有限责任公司 用于检测在客户端设备上执行的应用不当地实施对内容项的呈现的系统和方法
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 (주)아이티엑스퍼트그룹 개발공정에서의 응용프로그램의 성능관리 시스템 및 그 방법

Cited By (2)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
US10824484B2 (en) Event-driven computing
US20240064058A1 (en) Implementation of compliance settings by a mobile device for compliance with a configuration scenario
KR102362262B1 (ko) 코드의 검증을 위한 전자 장치 및 그 방법
US9384114B2 (en) Group server performance correction via actions to server subset
US20170220448A1 (en) Regression testing of software services
CN111625301A (zh) 幂等处理方法、装置、设备及存储介质
US20100242055A1 (en) Remote procedure call chains
US20150026325A1 (en) Notification normalization
US9658917B2 (en) Server performance correction using remote server actions
US20100333066A1 (en) Method and system for managing software issues
US8984124B2 (en) System and method for adaptive data monitoring
US10432490B2 (en) Monitoring single content page application transitions
US8280950B2 (en) Automatic client-server code generator
CN113986391B (zh) 请求处理方法、装置、介质和计算设备
CN110908886A (zh) 一种数据发送方法、装置、电子设备和存储介质
US20140089746A1 (en) Heuristic failure prevention in software as a service (saas) systems
US9921934B1 (en) Storage process metrics
CN114584556B (en) File transmission method and device
CN110380937B (zh) 应用于电子设备的网络测试方法和装置
US20200366766A1 (en) Methods and storage media for transmitting message
CN111868693B (zh) 信息处理装置及信息处理方法
US20170123818A1 (en) Dynamic Configuration of Native Functions to Intercept
US20240078164A1 (en) Techniques for managing software agent health
CN118282888A (zh) 会话对象的采集方法、装置、计算机设备及可读存储介质
CN114760218A (zh) 一种链路采样方法及其相关装置

Legal Events

Date Code Title Description
A107 Divisional application of patent
GRNT Written decision to grant