KR102344661B1 - 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치 - Google Patents

예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치 Download PDF

Info

Publication number
KR102344661B1
KR102344661B1 KR1020200186235A KR20200186235A KR102344661B1 KR 102344661 B1 KR102344661 B1 KR 102344661B1 KR 1020200186235 A KR1020200186235 A KR 1020200186235A KR 20200186235 A KR20200186235 A KR 20200186235A KR 102344661 B1 KR102344661 B1 KR 102344661B1
Authority
KR
South Korea
Prior art keywords
information set
result information
code
server
result
Prior art date
Application number
KR1020200186235A
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 KR1020200186235A priority Critical patent/KR102344661B1/ko
Priority to US17/171,775 priority patent/US11226810B1/en
Priority to JP2021019830A priority patent/JP7013602B1/ja
Priority to PCT/KR2021/001901 priority patent/WO2022145572A1/ko
Priority to TW110106030A priority patent/TW202226092A/zh
Priority to KR1020210186766A priority patent/KR102599587B1/ko
Application granted granted Critical
Publication of KR102344661B1 publication Critical patent/KR102344661B1/ko
Priority to JP2022006445A priority patent/JP7353701B2/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0637Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
    • 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/3684Test management for test design, e.g. generating new test cases
    • 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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Computer Hardware Design (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Educational Administration (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

다양한 실시예에 따른 연산 장치의 정보 제공 방법은 입력 정보 세트를 확인하는 단계, 제1서버에서 상기 입력 정보 세트에 대응하는 제1결과 정보 세트를 수신하는 단계, 제2서버에서 상기 입력 정보 세트에 대응하는 제2결과 정보 세트를 수신하는 단계, 및 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 차이에 대한 정보를 포함하는 제3결과 정보 세트를 제공하는 단계를 포함할 수 있다.
이 밖에 다양한 실시예들이 가능할 수 있다.

Description

예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치{METHOD FOR PROVIDING INFORMATION BASED ON EXPECTED RESULT VALUE AND COMPUTING DEVICE USING THE SAME}
본 개시의 다양한 실시예는 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치에 관한 것이다.
다양한 물품에 대한 서치 결과(search result)는 개발자의 작업 코드에 의해 도출될 수 있다. 개발자가 새롭게 적용하고자 하는 작업 코드를 실제 서비스 서버에 빠르게 도입하여 자동화를 이루면서, 소비자를 비롯한 사용자들은 업데이트 상황을 신속하게 접할 수 있다.
물류 관리 시스템은 다양한 물품들을 판매하기 위한 관리 시스템을 포함할 수 있다. 예를 들어, 물류 관리 시스템은 판매 중인 물품에 관한 데이터(예: 물품의 기본 데이터)에 포함될 수 있는 물품의 명칭, 물품의 가격, 물품의 이미지, 물품의 배송 유형, 물품 및 시기에 따른 프로모션 정보, 물품의 속성, 물품의 실시간 재고, 물품이 위치한 물류 센터, 물품의 실시간 배송 정보, 또는 물품의 보상 등과 관련된 다양한 데이터를 관리할 수 있다.
예를 들어, 물류 관리 시스템은 실시간으로 재고들의 수량, 위치, 주문 상황 등에 대한 신속한 업데이트가 필요할 수 있다. 이와 같은 물류 관리 시스템에서는 개발자의 작업 코드가 올바르게 적용이 될지 확인을 할 수 있는 예상 결과값을 토대로 한 정보를 제공하는 방법 및 이를 이용한 연산 장치가 요구될 수 있다.
다양한 물품에 대한 관리 및 시스템의 운용에 따라 개발자들의 작업 코드의 결과값이 원하는 결과값으로 도출이 되는지 확인이 필요할 수 있다. 새로운 작업 코드를 생성하게 되는 경우, 생성된 코드를 곧바로 서비스 서버에 도입하게 되면 예상하지 못한 결과값이 출력될 수 있다. 물류 관리 시스템에서는 신속한 처리가 요구되므로 새로운 작업 코드가 적용되어도 문제없이 작동할 수 있는지 확인할 필요가 있다.
본 개시는 개발자의 작업 코드 변경 및 입력을 실제 서비스 서버에 적용하기 전 테스트를 통해 의도한 결과값이 출력되는지 확인할 수 있는 정보 제공 방법 및 이를 이용한 연산 장치를 제공하는 것을 목적으로 할 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법은 입력 정보 세트를 확인하는 단계, 제1서버에서 상기 입력 정보 세트에 대응하는 제1결과 정보 세트를 수신하는 단계, 제2서버에서 상기 입력 정보 세트에 대응하는 제2결과 정보 세트를 수신하는 단계, 및 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 차이에 대한 정보를 포함하는 제3결과 정보 세트를 제공하는 단계를 포함할 수 있다.
다양한 실시예에 따른 연산 장치는, 데이터를 수신 및 송신하는 트랜시버, 데이터를 저장하는 데이터베이스, 및 프로세서를 포함하고, 상기 프로세서는 상기 트랜시버를 통해 수신한 입력 정보 세트를 확인하고, 제1서버로부터 상기 입력 정보 세트에 대응하는 제1결과 정보 세트를 수신하고, 제2서버로부터 상기 입력 정보 세트에 대응하는 제2결과 정보 세트를 수신하고, 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 차이에 대한 정보를 포함하는 제 3 정보 세트를 제공할 수 있다.
다양한 실시예에 따른 정보를 제공하는 방법은, 물류 관리 시스템의 업데이트 상황을 반영하여 개발자의 작업 코드의 변경 및 입력에 대응한 테스트를 거쳐 의도된 결과값과 비교한 결과를 제공하여 실제 서버에서의 적용 시 오류를 줄일 수 있다.
다양한 실시예에 따른 연산 장치는, 동일한 입력값에 대한 실제 서버에서의 결과값 및 테스트 서버에서의 결과값을 비교함으로써 오류를 미연에 방지할 수 있고 효율적인 물류 관리로 업무의 과부하를 방지할 수 있다.
도 1은 본 개시의 다양한 실시예에 따른 정보를 제공하는 방법의 수행을 나타내는 개략적인 구성 블록도이다.
도 2는 본 개시의 다양한 실시예에 따른 연산 장치의 구성요소를 나타내는 블록도이다.
도 3은 본 개시의 다양한 실시예에 따른 정보를 제공하는 과정을 설명하기 위한 예시도이다.
도 4는 본 개시의 다양한 실시예에 따른 정보를 제공하는 방법에 관한 개략적인 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 연산 장치의 정보 제공 방법의 수행을 나타내는 흐름도이다.
도 6은 본 개시의 다양한 실시예에 따른 연산 장치 및 주변 장치 간 정보를 제공하는 방법의 수행 과정을 설명하기 위한 예시도이다.
도 7은 본 개시의 다양한 실시예에 따른 연산 장치 및 주 변 장치 간 정보를 제공하는 방법의 수행을 나타내는 예시도이다.
도 8은 본 개시의 다양한 실시예에 따른 정보를 제공하는 방법의 룰 적용과 관련된 예시도이다.
도 9는 본 개시의 다양한 실시예에 따른 코드 별 출력 값에 차이에 대한 정보를 포함하는 제3결과 정보 세트에 관련된 예시도이다.
도 10은 본 개시의 다양한 실시예에 따른 코드에 관한 정보를 표시하는 웹UI에 관한 정보를 포함하는 제3결과 정보 세트에 관련된 예시도이다.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “...부”, “...모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 기재된 “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), 제1서버(120), 제2서버(130), 및 분산 메시징 시스템(140)을 통해 수행될 수 있다.
연산 장치(110)는 다양한 연산을 처리하기 위한 시스템이 구축된 장치로서, 예를 들면 개발자의 처리 명령이 포함된 언어를 통한 연산 처리, 결과 정보 세트를 수신하여 테마 별 비교를 위한 연산 처리, 또는 변경된 입력 정보 세트 중 적어도 일부에 룰을 적용하여 연산을 처리할 수 있다.
연산 장치(110)는 네트워크 서버로 구현되는 다수의 컴퓨터 시스템 또는 컴퓨터 소프트웨어를 포함할 수 있으며, 다양한 정보를 웹 페이지 또는 제어 툴에 맞추어 제공할 수 있다. 예를 들어, 연산 장치(110)는 네트워크를 통해 다른 네트워크 서버와 통신할 수 있으며 외부 장치와 연결되어 작업 수행 요청을 접수하고, 그에 대한 작업을 수행하여 수행 결과를 제공하는 컴퓨터 시스템 및 컴퓨터 소프트웨어를 의미할 수 있다.
제1서버(120)는 연산 장치(110)와 네트워크 연결되어 데이터를 주고 받을 수 있다. 예를 들어, 제1서버(120)는 제품에 관한 서비스 정보가 저장되어 처리되는 서버일 수 있다. 제품에 관한 서비스 정보는 제품의 목록, 제품의 수량, 제품의 입고 시기, 제품이 위치한 물류 센터의 위치, 제품의 판매자, 제품의 카테고리, 제품의 판매 순위, 제품의 판매량, 제품의 광고 수반 여부, 또는 제품의 상태 등에 관한 정보를 포함할 수 있다. 제1서버(120)는 프로덕션 빌드(production build)를 포함할 수 있으며 연산 장치(110)로 입력 정보 세트에 대응하는 결과 정보 세트(예: 제1결과 정보 세트)를 송신할 수 있다. 제1서버는 기준 코드가 동작하는 서버일 수 있다.
제2서버(130)는 연산 장치(110)와 네트워크 연결되어 데이터를 주고 받을 수 있다. 제2서버(130)는 서비스 서버에서 제공하고자 하는 기준 코드와 대응되는 개발 코드가 동작하는 서버일 수 있다. 예를 들어, 제2서버(130)는 연산 장치(110)를 통해 예상 결과값을 확인하고자 하는 작업과 관련된 정보가 저장되어 처리되는 서버일 수 있다. 작업과 관련된 정보는 제품의 나열 시 일부 테마를 제한하는 작업, 제품의 명칭 변경 시 일부 테마를 변경하는 작업, 또는 캐시(cache)를 삭제하는 작업 등을 포함할 수 있으며 개발자에 의해 서비스 서버에 적용하고자 하는 개발 코드를 포함할 수 있다. 제2서버(130)는 스테이지 빌드(stage build)를 포함할 수 있으며 연산 장치(110)로 입력 정보 세트에 대응하는 결과 정보 세트(예: 제2결과 정보 세트)를 송신할 수 있다. 제2서버는 개발 코드가 동작하는 서버일 수 있다.
분산 메시징 시스템(140)은 연산 장치(110) 및 제2서버(130)와 네트워크 연결되어 데이터를 주고 받을 수 있다. 예를 들어, 분산 메시징 시스템(140)은 제2서버(130)로부터 배치 메시지(deployment message)를 수신할 수 있다. 분산 메시징 시스템(140)은 제3결과 정보 세트를 제공하기 위한 요청 메시지를 연산 장치(110)로 송신할 수 있다. 분산 메시징 시스템(140)은 수신한 배치 메시지를 기초로 하여 연산 장치(110)의 테스트를 위한 연산 처리를 요청할 수 있다. 예를 들어, 분산 메시징 시스템(140)은 연산 장치(110)가 제3결과 정보 세트를 제공하기 위한 테스트 개시의 메시지를 송신할 수 있다.
도 2는 본 개시의 다양한 실시예에 따른 연산 장치의 구성요소를 나타내는 블록도이다.
도 2를 참조하면, 연산 장치(110)는 프로세서(111), 트랜시버(112), 및 데이터베이스(113) 중 적어도 하나를 포함할 수 있다.
프로세서(111)는, 본 개시의 다양한 실시예에 따른 정보를 제공하는 방법을 수행하기 위한 일련의 단계들을 처리할 수 있다. 프로세서(111)는 연산 장치(110)의 다른 구성요소들을 제어할 수 있다.
프로세서(111)는 테스트를 위한 입력 정보 세트를 확인할 수 있다. 예를 들어, 프로세서(111)는 컨트롤 시스템 및/또는 개발자 툴에 의한 프로그램을 통해 입력 정보 세트를 수신하여 확인할 수 있다. 다른 예를 들어, 프로세서(111)는 트랜시버(112)를 통해 입력 정보 세트를 수신할 수 있으며,입력 정보 세트는 분산 메시징 시스템을 통해 연산 장치(110)로 전송될 수 있다.
프로세서(111)는 제1서버(예: 도 1의 제1서버(120))에서 입력 정보 세트에 대응하는 제1결과 정보 세트를 수신할 수 있다. 예를 들어, 프로세서(111)는 트랜시버(112)를 통해 제1결과 정보 세트를 수신할 수 있다. 제1결과 정보 세트는 입력 정보 세트에 대응하는 결과값(또는 출력 값)을 의미할 수 있으며, 예상되는 결과값으로 의도된 결과값 또는 원하는 결과값 등으로 지칭될 수 있다. 제1결과 정보 세트는 연산 장치(110)를 통해 테스트 하고자 하는 입력 정보 세트에 대응하는 코드 별 출력 값을 포함할 수 있다. 다른 예를 들어, 제1결과 정보 세트는 제1서버에 적용되는 기준 코드의 동작 및 조합에 따라 달라질 수 있다. 제1결과 정보 세트는 코드가 적용되는 시간, 적용되는 코드의 조합 등에 따라 달라질 수 있다.
프로세서(111)는 제2서버(예: 도 1의 제2서버(130))에서 입력 정보 세트에 대응하는 제2결과 정보 세트를 수신할 수 있다. 예를 들어, 프로세서(111)는 트랜시버(112)를 통해 제2결과 정보 세트를 수신할 수 있다. 제2결과 정보 세트는 입력 정보 세트에 대응하는 결과값(또는 출력 값)을 의미할 수 있으며, 테스트 결과값으로 테스트한 결과값 또는 테스트 값 등으로 지칭될 수 있다. 제2결과 정보 세트는 연산 장치(110)를 통해 테스트 하고자 하는 입력 정보 세트에 대응하는 코드 별 출력 값을 포함할 수 있다. 다른 예를 들어, 제2결과 정보 세트는 제2서버에 적용되는 개발 코드의 동작 및 조합에 따라 달라질 수 있다. 제2결과 정보 세트는 코드가 적용되는 시간, 적용되는 코드의 조합 등에 따라 달라질 수 있다.
프로세서(111)는 제1결과 정보 세트 및 제2결과 정보 세트의 차이(difference)에 대한 정보를 포함하는 제3결과 정보 세트를 제공할 수 있다. 제1결과 정보 세트는 입력 정보 세트에 대응하는 코드 별 출력 값을 포함할 수 있다. 제2결과 정보 세트는 입력 정보 세트에 대응하는 코드 별 출력 값을 포함할 수 있다. 예를 들어, 프로세서(111)는 제1서버 및 제2서버에서 구동되는 코드 별 출력 값에 차이를 연산할 수 있다. 제1서버에서 구동되는 기준 코드 별 출력 값은 제1결과 정보 세트에 포함될 수 있으며, 제2서버에서 구동되는 개발 코드 별 출력 값은 제2결과 정보 세트에 포함될 수 있다. 제1결과 정보 세트 및 제2결과 정보 세트의 코드 별 차이는 코드 별 출력 값의 차이를 의미할 수 있다. 예를 들어, 제1서버 및 제2서버에서 구동되는 코드 별 출력 값의 차이는 제1결과 정보 세트 및 제2결과 정보 세트의 차이를 의미할 수 있다. 프로세서(111)는 입력 정보 세트에 대응하는 제1결과 정보 세트와 제2결과 정보 세트의 코드 별 차이가 존재하는지 여부를 판단할 수 있다.
프로세서(111)는 제1서버 및 제2서버에서 구동되는 코드 별 출력 값에 차이가 존재하는지 여부에 대한 정보를 포함하는 제3결과 정보 세트를 제공할 수 있다. 예를 들어, 프로세서(111)는 동일한 입력 정보 세트에 대하여 기준 코드를 적용하여 획득되는 제1결과 정보 세트와 개발 코드를 적용하여 획득되는 제2결과 정보 세트의 출력 값들의 차이의 존재 여부에 대한 정보를 제공할 수 있다.
제3결과 정보 세트는 제1서버 및 제2서버의 코드의 명칭, 코드에 대한 설명, 및 코드를 설정한 개발자 명칭이 표시되는 웹UI(web UI)에 대한 정보를 포함할 수 있다. 예를 들어, 제3결과 정보 세트는 제1결과 정보 세트 및 제2결과 정보 세트에 적용되거나 적용될 코드의 명칭, 코드에 대한 설명, 및 코드를 설정한 개발자 명칭을 웹UI를 통해 표시하는 정보를 포함할 수 있다.
제3결과 정보 세트는 코드 별로 존재하는 출력 값의 차이를 확인할 수 있는 정보를 포함할 수 있다. 프로세서(111)는 코드 별로 존재하는 출력 값의 차이를 확인하기 위한 선택 입력을 수신할 수 있다. 예를 들어, 프로세서(111)가 제3결과 정보 세트를 제공하는 것은 차이를 확인하기 위한 선택 입력에 대응하여 코드의 출력 값 중 선택된 부분의 차이에 대한 비교 정보를 제1결과 정보 세트 및 제2결과 정보 세트를 기반으로 제공하는 것을 포함할 수 있다. 비교 정보는 제1결과 정보 세트의 적어도 일부, 제2결과 정보 세트의 적어도 일부, 및 차이가 존재하는 부분을 지시하는 정보를 포함할 수 있다.
프로세서(111)는 변경된 개발 코드에 대응하는 제3결과 정보 세트를 제공할 수 있다. 예를 들어, 제2서버는 컨트롤 시스템 및/또는 개발자 툴을 통한 개발자의 입력 사항을 반영한 변경된 개발 코드를 수신할 수 있다. 코드를 설정한 개발자는, 제공된 제3결과 정보 세트를 통해 제1결과 정보 세트 및 제2결과 정보 세트의 차이가 큰 것으로 확인된 경우, 확인된 차이를 줄이기 위하여 제2서버에 적용되는 개발 코드를 변경할 수 있다. 개발 코드를 변경하는 것은 제1결과 정보 세트 및 제2결과 정보 세트에 포함되는 출력 값들의 차이를 줄이거나 없애기 위함일 수 있다. 프로세서(111)는 기존의 입력 정보 세트에 변경된 개발 코드가 적용되어 출력되는 변경된 제2결과 정보 세트를 이용하여 변경된 개발 코드에 대응하는 제3결과 정보 세트를 제공할 수 있다. 변경된 개발 코드에 대응하는 제3결과 정보 세트는 제1결과 정보 세트 및 변경된 개발 코드에 따라 입력 정보 세트에 대응하는 변경된 제2결과 정보 세트의 차이에 대한 정보를 포함할 수 있다. 프로세서(111)는, 개발 코드의 변경 이후, 동일한 입력 정보 세트에 대응하는 결과 정보 세트 간 차이의 존재 여부를 다시 테스트할 수 있다.
프로세서(111)는 개발 코드의 변경과 관계없이, 제3결과 정보 세트가 변경되는 부분을 차이에 대한 정보에서 제외하는 설정 정보(예: ignorance rule)를 획득할 수 있다. 예를 들어, 프로세서(111)는 제1결과 정보 세트 및 제2결과 정보 세트의 비교 대상 부분을 설정하는 설정 정보를 획득할 수 있다. 제3결과 정보 세트는 설정 정보를 기반으로 표시될 수 있다. 일 예를 들어, 설정 정보는 제1결과 정보 세트 및 제2결과 정보 세트에 포함되는 출력 값 중 개발 코드의 변경과 무관하게 변경되는 부분을 차이(difference)에 대한 정보에서 제외하기 위해 적용되는 것일 수 있다. 개발자는 제3결과 정보 세트에 포함되는 차이에 대한 정보에서 개발 코드의 변경과 무관하게 변경되는 부분을 제외할 수 있도록 설정 정보를 입력할 수 있다. 다른 일 예를 들어, 설정 정보는 제1결과 정보 세트 및 제2결과 정보 세트를 비교하기 전, 제1결과 정보 세트 및 제2결과 정보 세트를 정렬하기 위해 적용되는 것일 수 있다. 제1결과 정보 세트와 제2결과 정보 세트가 비교되기 위해서는 코드 별 출력 값이 맵핑되는 순서로 정렬시키는 설정이 필요할 수 있다. 다른 일 예를 들어, 설정 정보는 제1결과 정보 세트 및 제2결과 정보 세트 중 특정 부분에서 동일한 값을 갖는 출력 값을 비교 대상으로 하기 위해 적용되는 것일 수 있다. 프로세서는 설정 정보를 적용하여 특정 부분에서 동일하지 않은 출력 값은 제1결과 정보 세트 및 제2결과 정보 세트에서 제거함으로써 제3결과 정보 세트를 보다 빠르게 제공할 수 있다.
프로세서(111)는 분산 메시징 시스템을 통해 제3결과 정보 세트를 제공하기 위한 요청 메시지를 트랜시버를 통해 송신할 수 있다. 예를 들어, 프로세서(111)는 서비스 서버에서 서비스 제공을 위한 서비스 코드를 적용하기 전 테스트 서버를 거쳐 서비스 제공을 위한 서비스 코드의 오류 존재 여부를 테스트할 수 있다. 프로세서(111)는 요청 메시지에 대응하여 제1결과 정보 세트 및 제2결과 정보 세트를 수신할 수 있다.
개발자가 입력 정보 세트 중 적어도 일부를 선택하는 선택 정보를 입력하면, 프로세서(111)는 선택 정보를 획득할 수 있다. 선택 정보를 획득함에 따라 프로세서(111)는 테스트를 수행하기 위해 제1서버 및 제2서버로 테스트를 요청하는 요청 메시지를 송신할 수 있다. 프로세서(111)는 선택 정보를 기반으로 입력 정보 세트를 확인할 수 있다
프로세서(111)는 이외에도 본 개시의 다양한 실시예에 따른 정보를 제공하는 방법과 관련된 다양한 기능들을 수행할 수 있다.
트랜시버(112)는 연산 장치(110)의 데이터베이스(113)에 저장된 정보 또는 프로세서(111)에 의해 처리된 정보를 다른 장치로 송신하거나, 다른 장치로부터 연산 장치(110)로 정보를 수신하는 기능을 수행할 수 있다. 예를 들어, 트랜시버(112)는 제1서버 및/또는 제2서버로부터 결과 정보 세트(예: 제1결과 정보 세트, 제2결과 정보 세트)를 수신할 수 있다. 다른 예를 들어, 트랜시버(112)는 분산 메시징 시스템(예: 도 1의 분산 메시징 시스템(140)) 또는 개발 컨트롤 시스템으로부터 정보를 수신하거나 분산 메시징 시스템 또는 개발 컨트롤 시스템으로 정보를 송신할 수 있다.
데이터베이스(113)는 연산 장치(110)의 소정의 저장 공간에 구현된 데이터 구조로서, 데이터의 저장, 검색, 삭제, 편집, 또는 추가 등의 기능이 자유롭게 수행될 수 있다. 예를 들어, 데이터베이스(113)는 데이터의 저장, 검색, 삭제, 편집, 또는 추가 등의 기능을 처리하기 위한 필드 또는 구성요소들을 포함할 수 있다. 데이터베이스(113)는 연산 장치(110)가 정보를 제공하는 방법을 수행하는데 관련된 데이터를 저장할 수 있다. 예를 들어, 데이터베이스(113)는 프로세서(111)의 실행 동작을 위한 명령어들 또는 데이터들을 저장할 수 있다.
도 3은 본 개시의 다양한 실시예에 따른 정보를 제공하는 과정을 설명하기 위한 예시도이다.
도 3을 참조하면, 연산 장치(310)(예: 도 1의 연산 장치(110))는 테스트를 거쳐 예상되는 결과값을 토대로 정보를 제공하는 방법에 따라 기능을 수행할 수 있다. 예를 들어, 연산 장치(310)는 결과 정보 세트a(311)(예: 제1결과 정보 세트, 제2결과 정보 세트)를 수신하여 결과 정보 세트b(313)(예: 제3결과 정보 세트)를 제공할 수 있다.
연산 장치(310)는 제1서버(320)(예: 도 1의 제1서버(120)) 및 제2서버(330)(예: 도 1의 제2서버(130))로부터 입력 정보 세트(312)에 대응하는 제1결과 정보 세트 및 제2결과 정보 세트를 수신할 수 있다. 도3을 참조하면, 결과 정보 세트a(311)는 제1서버(320) 및 제2서버(330)로부터 연산 장치(310)로 수신되는 것이지만 개별 서버인 제1서버(320) 및 제2서버(330)로부터 수신되는 결과 정보 세트는 서로 다른 출력 값일 수 있다. 예를 들어, 연산 장치(310)가 제1서버(320)에서 수신하게 되는 제1결과 정보 세트는 결과 정보 세트a(311)에 포함될 수 있다. 다른 예를 들어, 연산 장치(310)가 제2서버(330)에서 수신하게 되는 제2결과 정보 세트는 결과 정보 세트a(311)에 포함될 수 있다. 일 예를 들어, 연산 장치(310)는 동일한 입력 정보 세트에 대하여 제1서버(320)로부터 기준 코드를 적용하여 결과 정보 세트a(311) 중 적어도 일부(예: 제1결과 정보 세트)를 수신할 수 있다. 다른 일 예를 들어, 연산 장치(310)는 상기 제1서버(320)에서의 입력 정보 세트와 동일한 입력 정보 세트에 대하여 제2서버(330)로부터 개발 코드를 적용하여 결과 정보 세트a(311) 중 적어도 일부(예: 제2결과 정보 세트)를 수신할 수 있다. 도 3을 참조하면, 결과 정보 세트a(311)는 제1서버(320) 및 제2서버(330)로부터 수신될 수 있다. 입력 정보 세트(312)는 도 3에서 제1서버(320) 및 제2서버(330)에 송신되는 것으로 도시되어 있지는 않으나, 직접적 및/또는 간접적인 방법에 의해 입력 정보 세트(312)는 제1서버(320) 및 제2서버(330)에 송신되거나 제공될 수 있다. 입력 정보 세트(312)는 적어도 하나의 개발자에 데이터베이스에 저장될 수 있으며, 유선 및/또는 무선 네트워크 환경을 통해 전송될 수 있다. 입력 정보 세트(312)는 분산 메시징 시스템에 의해 연산 장치(310), 제1서버(320), 및/또는 제2서버(330)로 전송될 수 있다.
연산 장치(310)는 기존에 문제가 발생했던 케이스들에 대하여, 해당 케이스들의 입력값과 입력값에 대해 원하는 결과값의 정보 세트를 데이터베이스(예: 도 2의 데이터베이스(113))에 저장하거나 직접적 및/또는 간접적인 방법에 의해 수신할 수 있다. 연산 장치(310)는 구축된 데이터베이스를 기반으로 서비스 서버(예: 제1서버)에 작업 코드(예: 서비스 코드, 배포 코드)를 배포하기 전에 배포하려는 작업 코드에 해당 케이스들을 테스트할 수 있다. 연산 장치(310)는 배포되는 작업 코드에 대응하는 출력 값이 데이터베이스의 결과 정보 세트와 동일한 결과를 나타내는지, 차이가 있는 다른 결과를 나타내는지 모니터링할 수 있다. 원하는 결과값은 서비스 서버에서 입력 정보 세트에 기준 코드를 적용하여 입력 정보 세트에 대응되는 출력 값을 의미할 수 있다. 예를 들어, 서비스 서버 및 테스트 서버에 입력되는 입력 정보 세트(312)는 동일한 것을 의미할 수 있다. 연산 장치(310)는 동일한 입력 정보 세트(312)에 대한 서비스 서버 및 테스트 서버에서의 결과 정보 세트 간 차이(예: 결과 정보 세트a(311) 간 차이 또는 제1결과 정보 세트 및 제2결과 정보 세트 간 차이, 또는 동일한 입력 정보 세트에 대한 코드 별 출력 값의 차이)를 결과 정보 세트b(313)(예: 제3결과 정보 세트)로 제공할 수 있다. 예를 들어, 연산 장치(310)는 결과 정보 세트a(311)에 포함될 수 있는 제1결과 정보 세트 및 제2결과 정보 세트의 차이를 결과 정보 세트b(313)로 제공할 수 있다.
도 3을 참조하면, 제1서버(320)는 기준 코드가 동작하는 서버를 포함할 수 있으며 제2서버(330)는 테스트 서버 또는 개발 코드가 동작하는 서버를 포함할 수 있다. 제1서버(320) 및 제2서버(330)는 입력 정보 세트(312)에 대응하는 결과 정보 세트a(311)(예: 제1결과 정보 세트, 제2결과 정보 세트)를 연산 장치(310)로 송신할 수 있다.
도 3을 참조하면, 제2서버(330)는 연산 장치(310)를 통해 예상 결과값을 확인하고자 하는 작업과 관련된 정보가 저장되어 처리되는 서버를 포함할 수 있다. 예를 들어, 제2서버(330)는 테스트 서버 또는 개발 코드가 동작하는 서버를 포함할 수 있다. 제2서버(330)는 분산 메시징 시스템(340)(예: 도 1의 분산 메시징 시스템(140))으로 배치 메시지(deployment message)를 송신할 수 있다. 예를 들어, 제2서버(330)는 분산 메시지 큐(que)를 활용할 수 있는 분산 메시징 시스템(340)(예: 카프카(Kafka))으로 배치 메시지를 송신할 수 있다. 분산 메시징 시스템(340)으로 송신되는 배치 메시지는 도 3에서는 제2서버(330)로 도시되어 있으나 연산 장치(310), 제1서버(320), 및/또는 컨트롤 시스템(350)을 통해서 송신될 수도 있다.
도 3을 참조하면, 분산 메시징 시스템(340)은 메모리 또는 데이터베이스에 저장하는 구조가 아닐 수 있다. 예를 들어, 프로듀서(producer)가 분산 메시징 시스템(340)으로 데이터를 송신하고, 컨슈머(consumer)는 분산 메시징 시스템(340)에 저장된 데이터를 수신할 수 있다. 분산 메시징 시스템(340)은 프로듀서 및 컨슈머에 대한 API를 제공할 수 있으며 연동할 수 있다. 분산 메시징 시스템(340)은 적어도 하나의 서버를 포함할 수 있으며, 하나의 서버로부터 데이터가 전부 송신될 때까지 대기하지 않고 일정 수 이상의 컨슈머가 수신하는 경우 다른 서버의 데이터를 송신할 수 있다. 예를 들어, 분산 메시징 시스템(340)은 배치 메시지를 수신하면 연산 장치(310)의 정보 제공 방법의 수행을 촉발시키는 메시지 큐를 분산하여 송신할 수 있다. 일 예를 들어, 분산 메시징 시스템(340)은 입력 정보 세트(312)를 연산 장치(310)로 전송할 수 있다. 다른 예를 들어, 분산 메시징 시스템(340)은 입력 정보 세트(312)를 연산 장치(310), 제1서버(320), 및/또는 제2서버(330)로 전송할 수 있다.
도 3을 참조하면, 컨트롤 시스템(350)은 연산 장치(310), 제1서버(320), 제2서버(330), 및/또는 분산 메시징 시스템(340)으로 데이터를 송신할 수 있다. 예를 들어, 컨트롤 시스템(350)은 개발자의 개발 코드에 대한 변경 사항, 제1서버(320)에 저장되는 데이터에 관한 변경, 또는 제2서버(330)에 저장되는 데이터에 관한 변경에 따른 데이터를 송신할 수 있다. 컨트롤 시스템(350)은 연산 장치(310)를 통해 정보를 제공하는 방법을 수행하는데 필요한 입력 정보 세트를 포함하는 데이터를 송신할 수 있다. 컨트롤 시스템(350)은 웹UI(web UI)를 통해 연산 장치(310)로부터 결과 정보 세트b(예: 제3결과 정보 세트)를 제공받을 수 있다.
도 4는 본 개시의 다양한 실시예에 따른 정보를 제공하는 방법에 관한 개략적인 흐름도이다.
도 4를 참조하면, 프로세서(예: 도 2의 프로세서(111))는 단계 410에서 입력 정보 세트(예: 도 3의 입력 정보 세트(312))를 확인할 수 있다. 예를 들어, 입력 정보 세트는 컨트롤 시스템(예: 도 3의 컨트롤 시스템(350))을 통해 연산 장치(예: 도 1의 연산 장치(110), 도 3의 연산 장치(310))로 송신될 수 있다. 다른 예를 들어, 입력 정보 세트는 컨트롤 시스템을 통해 제1서버(예: 도 1의 제1서버(120), 도 3의 제1서버(320)) 및/또는 제2서버(예: 도 1의 제2서버(130), 도 3의 제2서버(330))로 송신될 수 있다. 다른 예를 들어, 입력 정보 세트는 분산 메시징 시스템을 통해 연산 장치, 제1서버, 및/또는 제2서버로 송신될 수 있다. 입력 정보 세트는 연산 장치를 통해 테스트를 수행하기 위한 입력 값의 세트를 의미할 수 있다.
도 4를 참조하면, 프로세서는 단계 420에서 입력 정보 세트에 대응하는 결과 정보 세트를 수신할 수 있다. 제1서버는 기준 코드를 적용하여 입력 정보 세트에 대응하는 제1결과 정보 세트(예: 도 3의 결과 정보 세트a(311))를 도출하고, 도출된 제1결과 정보 세트를 연산 장치로 송신할 수 있다. 제2서버는 개발 코드를 적용하여 입력 정보 세트에 대응하는 제2결과 정보 세트(예: 도 3의 결과 정보 세트a(311))를 도출하고, 도출된 제2결과 정보 세트를 연산 장치로 송신할 수 있다.
도 4를 참조하면, 프로세서는 단계 430에서 결과 정보 세트의 코드 별 출력 값의 차이에 대한 정보를 제공할 수 있다. 결과 정보 세트의 코드 별 출력 값의 차이는 제1결과 정보 세트 및 제2결과 정보 세트의 코드 별 출력 값의 차이를 의미할 수 있다. 입력 정보 세트에 적용되는 개별 코드에 대응하여 결과 정보 세트는 동일한 코드 별 출력 값을 가질 수 있으며, 제1결과 정보 세트 및 제2결과 정보 세트는 개별 코드 별로 같거나 다른 출력 값을 가질 수 있다. 결과 정보 세트 간 코드 별 출력 값의 차이는 제3결과 정보 세트(예: 도 3의 결과 정보 세트b(313))를 의미할 수 있다.
도 5는 본 개시의 일 실시예에 따른 연산 장치의 정보 제공 방법의 수행을 나타내는 흐름도이다.
도 5를 참조하면, 프로세서(예: 도 2의 프로세서(111))는 단계 510에서 제1결과 정보 세트 및 제2결과 정보 세트(예: 도 3의 결과 정보 세트a(311))를 수신할 수 있다. 예를 들어, 프로세서는 제1서버에서 입력 정보 세트에 대응하는 제1결과 정보 세트를 수신하고 제2서버에서 입력 정보 세트에 대응하는 제2결과 정보 세트를 수신할 수 있다.
도 5를 참조하면, 프로세서는 단계 520에서 제1결과 정보 세트 및 제2결과 정보 세트 간 코드 별 출력 값의 차이의 존재 여부를 판단할 수 있다. 예를 들어, 프로세서는 제1결과 정보 세트 및 제 2 정보 세트의 차이를 입력 정보 세트의 코드 별 출력 값의 차이로 판단할 수 있다. 프로세서는 코드 별 출력 값의 차이의 존재를 판단하고, 차이가 일정 개수를 넘게 존재하는 경우 오류가 발생될 수 있는 코드로 판단할 수 있다.
도 5를 참조하면, 프로세서는 단계 520에서 코드 별 출력 값의 차이가 일정 개수를 넘게 존재하는 경우 단계 530으로 진행할 수 있다. 개발자 제공된 제3결과 정보 세트를 기초로 하여 개발 코드를 변경할 수 있다. 프로세서는 단계 530에서 변경된 개발 코드를 획득할 수 있다. 예를 들어, 프로세서는 제3결과 정보 세트에 포함된 차이에 대한 정보를 기초로 하여 변경된 개발 코드를 획득할 수 있다. 코드 별로 판단된 출력 값의 차이가 일정 개수보다 많은 경우에는 상기 해당하는 코드에 대한 변경이 필요할 수 있다. 프로세서는, 제2서버에서 입력 정보 세트에 적용될 개발 코드에 대한 변경을 통해 변경된 제2결과 정보 세트를 수신할 수 있다. 개발 코드는 개발자에 의해 변경될 수 있다. 기준 코드, 개발 코드는 각각 제1서버, 제2서버에 적용될 코드로 개별 서버의 데이터베이스에 저장되어 있을 수 있다. 기준 코드, 개발 코드는 연산 장치를 통해 제1서버 및 제2서버로 송신되거나 컨트롤 시스템 또는 개발자 툴을 통해 제1서버 및 제2서버로 송신될 수 있다. 변경된 개발 코드는 컨트롤 시스템 또는 개발자 툴을 통해 연산 장치를 거쳐 제2서버로 송신되거나 곧바로 제2서버로 송신될 수도 있다. 프로세서는 변경된 개발 코드에 대응하는 제1결과 정보 세트 및 제2결과 정보 세트의 차이에 대한 정보를 포함하는 제3결과 정보 세트를 제공할 수 있다. 예를 들어, 변경된 개발 코드에 대응하여 새로이 제공되는 제3결과 정보 세트의 코드 별 출력 값의 차이가 일정 개수보다 적은 경우에는 단계 540으로 진행할 수 있다.
도 5를 참조하면, 프로세서는 단계 520에서 코드 별 출력 값의 차이가 일정 개수보다 적게 존재하는 경우 단계 540으로 진행할 수 있다. 프로세서는 제1결과 정보 세트 및 제2결과 정보 세트의 차이에 대한 정보가 포함된 제3결과 정보 세트를 제공할 수 있다. 프로세서는 제공 받은 제3결과 정보 세트를 기초로 하여 코드 별 출력 값의 차이가 일정 개수보다 적게 존재하는 경우 단계 540에서 서비스 서버로 개발 코드를 분배할 수 있다 서비스 서버는 개발 코드를 적용할 수 있다. 프로세서는 제1결과 정보 세트 및 제2결과 정보 세트 간 코드 별 출력 값의 차이가 포함된 제3결과 정보 세트를 기초로 하여 개발 코드를 분배하고 적용할지 여부를 결정할 수 있다. 프로세서는 차이에 대한 정보가 일정 개수보다 적게 존재하는 경우 서비스 서버에서 오류 없이 작동할 수 있는 것으로 판단할 수 있다. 예를 들어, 프로세서는 제1서버에서 입력 정보 세트에 기준 코드를 적용한 결과(예: 제1결과 정보 세트)가 제2서버에서 입력 정보 세트에 개발 코드를 적용한 결과(예: 제2결과 정보 세트)와 코드 별 출력 값의 차이가 일정 개수보다 적은 경우 서비스 서버에서도 기준 코드가 오류 없이 작동할 수 있다고 판단할 수 있다. 코드의 오류 발생 여부를 판단하는 기준이 되는 차이의 개수에 대한 일정 개수는 개발자에 의해 설정될 수 있으며 코드 별로 상이할 수 있다.
도 6은 본 개시의 다양한 실시예에 따른 연산 장치 및 주변 장치 간 정보를 제공하는 방법의 수행 과정을 설명하기 위한 예시도이다.
도 6을 참조하면, 연산 장치(310)(예: 도 1 의 연산 장치(110))는 컨트롤 시스템(예: 개발자 툴에 의한 프로그램(administrator tool))(350)으로부터 입력 정보 세트를 수신할 수 있다. 다른 예를 들어, 입력 정보 세트는 제3결과 정보 세트를 제공하는 테스트를 수행하기 위한 입력 값을 의미할 수 있다. 연산 장치(310)는 개발 코드를 서비스 서버에 배포하여 적용하기 전, 개발 코드에 대한 테스트를 수행하여 테스트 결과값 및 예상 결과값의 차이가 오차 범위 내인지 판단할 수 있다.
도 6을 참조하면, 컨트롤 시스템(350)은 테스트 세트를 연산 장치로 송신할 수 있다. 테스트 세트는 입력 정보 세트를 의미할 수 있다. 제1서버(320) 및 제2서버(330)는 연산 장치(310) 또는 컨트롤 시스템(350)으로부터 입력 정보 세트를 수신할 수 있다. 제1서버(320)는 수신한 입력 정보 세트에 대응하는 제1결과 정보 세트를 연산 장치(310)로 송신할 수 있다. 제2서버(330)는 수신한 입력 정보 세트에 대응하는 제2결과 정보 세트를 연산 장치(310)로 송신할 수 있다. 제1결과 정보 세트는 연산 장치(310)를 통해 테스트 하고자 하는 입력 정보 세트에 대한 코드 별 출력 값을 포함할 수 있다. 제2결과 정보 세트는 연산 장치(310)를 통해 테스트 하고자 하는 입력 정보 세트에 대한 코드 별 출력 값을 포함할 수 있다.
도 6을 참조하면, 제2서버(330)는 분산 메시징 시스템(340)으로 배치 메시지(deployment message)를 송신할 수 있다. 분산 메시징 시스템(340)은 수신한 배치 메시지를 기초로 하여 연산 장치(310)의 정보 제공 방법의 수행을 요청 메시지를 송신할 수 있다. 도 6에 도시 되지 않았지만, 연산 장치(310)는 분산 메시징 시스템(340)을 통해 제3결과 정보 세트를 제공하기 위한 요청 메시지를 송신할 수 있다. 요청 메시지는 제1서버(320) 및 제2서버(330)에서 제1결과 정보 세트 및 제2결과 정보 세트를 수신하기 위한 것을 의미할 수 있고, 테스트 수행을 개시하기 위한 것을 의미할 수도 있다.
도 6을 참조하면, 연산 장치(310)는 제1서버(320) 및 제2서버(330)로부터 제1결과 정보 세트 및 제2결과 정보 세트를 수신할 수 있다. 연산 장치(310)는 제1결과 정보 세트 및 제2결과 정보 세트 간 코드 별 출력 값의 차이를 비교할 수 있다. 연산 장치(310)는 제1결과 정보 세트 및 제2결과 정보 세트의 코드 별 출력 값의 차이에 대한 정보를 포함하는 제3결과 정보 세트를 컨트롤 시스템(350)에 제공할 수 있다. 연산 장치(310)는 제3결과 정보 세트를 데이터베이스에 저장할 수 있다. 차이에 대한 정보는 코드 별 출력 값의 차이의 개수에 대한 정보를 포함할 수 있다. 차이의 개수는 연산 장치(310)에 의해 카운트될 수 있다.
도 7은 본 개시의 다양한 실시예에 따른 연산 장치 및 주 변 장치 간 정보를 제공하는 방법의 수행을 나타내는 예시도이다.
도 7을 참조하면, 연산 장치(310)(예: 도 1 의 연산 장치(110))는 제1서버(320)(예: 도 1의 제1서버(120)) 및 제2서버(330)(예: 도 1의 제2서버(130))로부터 제1결과 정보 세트 및 제2결과 정보 세트를 수신할 수 있다. 연산 장치(310)는 분산 메시징 시스템(340)(예: 도 1의 분산 메시징 시스템(140))으로부터 정보 제공 방법의 수행을 촉발시키는 메시지를 수신할 수 있다.
도 7을 참조하면, 연산 장치(310)는 제1결과 정보 세트 및 제2결과 정보 세트의 차이에 대한 정보를 포함하는 제3결과 정보 세트를 제공할 수 있다. 제3결과 정보 세트는 테스트 결과(test results)로 축적되어 데이터베이스에 저장될 수 있다. 컨트롤 시스템 또는 및/또는 개발자는 웹UI(web UI)를 통해 테스트 결과를 제공받을 수 있다. 제3결과 정보 세트는 웹UI에 표시될 정보, 비교 대상 부분을 설정하는 설정 정보 등을 포함할 수 있으며 웹UI도 포함할 수 있다.
도 8은 본 개시의 다양한 실시예에 따른 정보를 제공하는 방법의 룰 적용과 관련된 예시도이다.
도 8을 참조하면, 컨트롤 시스템(예: 도 3의 컨트롤 시스템(350))을 통해 설정 정보(810)(예: ignorance rule)를 입력하여 연산 장치(예: 도 1의 연산 장치(110), 도 3의 연산 장치(310))로 송신할 수 있다. 프로세서(예: 도 2의 프로세서(111))는 개발 코드의 변경과 관계없이, 제3결과 정보 세트가 변경되는 부분을 차이에 대한 정보에서 제외하는 설정 정보를 획득할 수 있다. 예를 들어, 프로세서는 제1결과 정보 세트 및 제2결과 정보 세트의 비교 대상 부분을 설정하는 설정 정보를 획득할 수 있다. 제3결과 정보 세트는 설정 정보를 기반으로 표시될 수 있다. 설정 정보는 제1결과 정보 세트 및 제2결과 정보 세트에 포함되는 출력 값 중 개발 코드의 변경과 무관하게 변경되는 부분을 차이(difference)에 대한 정보에서 제외하기 위해 적용되는 것일 수 있다. 개발자는 컨트롤 시스템을 통해 제3결과 정보 세트에 포함되는 차이에 대한 정보에서 개발 코드의 변경과 무관하게 변경되는 부분을 제외할 수 있도록 설정 정보를 입력할 수 있다. 예를 들어, 프로세서는 컨트롤 시스템 및/또는 개발자 툴에 의한 프로그램을 통해 설정 정보를 수신하거나 데이터베이스(예: 도 2의 데이터베이스(113))로부터 설정 정보를 획득할 수 있다.
프로세서는 제1결과 정보 세트 및 제2결과 정보 세트의 코드 별 출력 값의 차이에 대해 일정 개수를 벗어나는지 여부를 판단할 수 있다. 프로세서는 미리 설정된 룰에서 개별 코드 별 출력 값의 차이를 개수로 카운트하여 일정 개수보다 적은 경우에는 코드에 문제가 없다고 판단할 수 있다. 예를 들어, 프로세서는 테스트 결과 제1결과 정보 세트 및 제2결과 정보 세트의 제1코드에 대한 출력 값의 차이가 10개(예: 제1코드에 대한 출력 값의 차이에 대한 일정 개수가 10개)보다 적은 경우에는 제1코드에 문제가 없다고 판단할 수 있다. 제1코드에 대한 것은 예시에 불과할 뿐이며, 제n코드에 대한 일정 개수가 개별적으로 존재할 수 있다.
도 8을 참조하면, 프로모션과 관련된 제품의 캐시(cache)에 대해 적용되는 설정 정보(811), 이미 서칭된 제품에 대해 적용되는 설정 정보(812), 프로모션과 관련된 제품의 페이로드에 대해 적용되는 설정 정보(813), 및 벤더의 마지막 달 판매와 관련된 결과에 대해 적용되는 설정 정보(814) 등이 존재할 수 있다. 개발 코드를 적용하여 출력되는 출력 값들을 포함하는 결과 정보 세트(예: 제2결과 정보 세트)와 기준 코드를 적용하여 출력되는 출력 값들을 포함하는 결과 정보 세트(예: 제1결과 정보 세트) 간 코드 별 출력 값의 차이에 적용되는 설정 정보는 도 8에 도시된 예시에 한정되지 않는다.
도 9는 본 개시의 다양한 실시예에 따른 코드 별 출력 값에 차이에 대한 정보를 포함하는 제3결과 정보 세트에 관련된 예시도이다.
도 9를 참조하면, 개발자는 입력 정보 세트 중 제3코드(910)(예: code 3)에 대응하는 결과 정보 세트 간 차이를 확인할 수 있다. 예를 들어, 개발자는 제3코드(910)에 대응하는 제1결과 정보 세트 및 제2결과 정보 세트 간 출력 값의 차이를 테스트 횟수 및 차이의 개수(920)로 확인할 수 있다. 프로세서는 테스트 횟수 및 차이의 개수(920)를 카운트 할 수 있으며 도 9에 도시된 정보를 포함하는 제3결과 정보 세트를 제공할 수 있다.
도 9를 참조하면, 개발자는 제공되는 제3결과 정보 세트를 통해 제3코드(910)를 설정한 개발자 명칭(930)을 확인할 수 있다. 개발자는 차이에 대한 세부 항목 정보(Diff Detail)에서 제3코드(910)의 출력 값에 대한 차이가 나타난 항목(940)을 확인할 수 있다.
도 9를 참조하면, 프로세서는 제1코드 내지 제n코드 별 출력 값에 차이가 존재하는지 여부에 대한 정보를 포함하는 제3결과 정보 세트를 제공할 수 있다. 예를 들어, 도 9의 예시는 제3코드(910)에 존재하는 출력 값의 차이를 확인하기 위한 제3코드(910)를 선택하는 입력이 이루어지면 선택된 제3코드(910) 별 출력 값의 차이가 존재하는 정보를 포함하는 제3결과 정보 세트를 제공하는 것일 수 있다. 도 9에 도시된 920 내지 940은 제3코드(910)에 대한 정보를 포함하는 제3결과 정보 세트를 의미할 수 있다. 도 9에는 제3코드(910)에 대한 예시가 900으로 도시 되었으나, 이는 제3코드(910)에 한정되는 것은 아니며 제1코드 내지 제n코드에 대하여 확장되어 제한없이 설명될 수 있다.
도 9를 참조하면, 도시된 정보는 비교 정보를 의미할 수 있다. 프로세서는 코드 별로 존재하는 출력 값의 차이를 확인하기 위한 선택 입력을 수신하고, 코드의 출력 값 중 상기 선택 입력에 대응하여 선택된 부분의 차이에 대한 비교 정보를 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트를 기반으로 제공하고, 상기 비교 정보는 상기 제1결과 정보 세트의 적어도 일부, 상기 제2결과 정보 세트의 적어도 일부, 및 차이가 존재하는 부분을 지시하는 정보를 포함할 수 있다. 선택 입력은 개발자에 의해 입력되고 프로세서는 선택 입력을 수신할 수 있다.
도 10은 본 개시의 다양한 실시예에 따른 코드에 관한 정보를 표시하는 웹UI에 관한 정보를 포함하는 제3결과 정보 세트에 관련된 예시도이다.
도 10을 참조하면, 제3결과 정보 세트에 포함될 수 있는 정보 중 일부에 관한 것으로서 웹UI에 대한 예시 화면을 확인할 수 있다. 예를 들어, 코드의 명칭(1020)은 입력 정보 세트에 포함될 수 있는 코드들에 관한 명칭을 포함할 수 있다. 코드1(1021)은 제1코드, 코드2(1022)는 제2코드, 코드3(1023)은 제3코드를 의미할 수 있다. 코드의 명칭(1020) 좌측의 사각형 표시는 개별 코드에 대한 선택 창(1010)을 의미할 수 있다. 예를 들어, 코드1(1021)의 좌측 사각형 표시는 코드1에 대한 선택 창(1011), 코드2(1022)의 좌측 사각형 표시는 코드2에 대한 선택 창(1012), 및 코드3(1023)의 좌측 사각형 표시는 코드3에 대한 선택 창(1013)을 의미할 수 있다.
도 10을 참조하면, 코드에 대한 설명(1030)은 개별 코드에 대한 기능을 설명하는 공간을 의미할 수 있다. 예를 들어, 설명1(1031)은 코드1(1021)에 대한 기능의 설명, 설명2(1032)는 코드2(1022)에 대한 기능의 설명, 및 설명3(1033)은 코드3(1023)에 대한 기능의 설명을 의미할 수 있다. 개발자 명칭(1040)은 개별 코드를 설정한 개발자의 명칭을 의미할 수 있다. 예를 들어, 개발자1(1041)은 코드1(1021)을 설정한 개발자의 명칭, 개발자2(1042)는 코드2(1022)를 설정한 개발자의 명칭, 및 개발자3(1043)은 코드3(1023)을 설정한 개발자의 명칭을 의미할 수 있다.
도 10을 참조하면, 컨트롤 시스템 및/또는 개발자 툴에 의한 프로그램으로 확인할 수 있는 웹UI는 제3결과 정보 세트를 시각적으로 확인할 수 있도록 표시하는 것으로 제3결과 정보 세트에 포함되어 제공될 수 있다. 도 10은 3개의 코드를 도시하고 있으나, 코드의 개수는 이에 한정되는 것은 아닐 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법은 입력 정보 세트를 확인하는 단계, 제1서버에서 상기 입력 정보 세트에 대응하는 제1결과 정보 세트를 수신하는 단계, 제2서버에서 상기 입력 정보 세트에 대응하는 제2결과 정보 세트를 수신하는 단계, 및 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 차이에 대한 정보를 포함하는 제3결과 정보 세트를 제공하는 단계를 포함할 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법의 상기 제1서버는 기준 코드가 동작하는 서버이고, 상기 제2서버는 개발 코드가 동작하는 서버이고, 상기 개발 코드는 상기 기준 코드와 대응되는 코드를 포함하고 상기 기준 코드는 사용자에게 제공되는 서비스 서버의 코드와 대응될 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법의 상기 제3결과 정보 세트를 제공하는 단계는 상기 제1서버 및 상기 제2서버에서 구동되는 코드 별 출력 값에 차이가 존재하는지 여부에 대한 정보를 포함하는 상기 제3결과 정보 세트를 제공하는 단계를 포함할 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법은 상기 코드 별로 존재하는 출력 값의 차이를 확인하기 위한 선택 입력을 수신하는 단계를 포함하고, 상기 제3결과 정보 세트를 제공하는 단계는 코드의 출력 값 중 상기 선택 입력에 대응하여 선택된 부분의 차이에 대한 비교 정보를 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트를 기반으로 제공하는 단계를 포함하고, 상기 비교 정보는 상기 제1결과 정보 세트의 적어도 일부, 상기 제2결과 정보 세트의 적어도 일부 및 차이가 존재하는 부분을 지시하는 정보를 포함할 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법은 상기 제3결과 정보 세트는 상기 제1서버 및 상기 제2서버에서 구동되는 코드의 명칭, 코드에 대한 설명, 및 코드를 설정한 개발자 명칭이 표시되는 웹UI에 관한 정보를 포함할 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법의 상기 개발 코드는 상기 제공된 제3결과 정보 세트에 대응하여 변경되고, 상기 변경된 개발 코드에 대응하는 제3결과 정보 세트를 제공하는 단계를 더 포함할 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법의 상기 변경된 개발 코드에 대응하는 제3결과 정보 세트는 상기 제1결과 정보 세트 및 상기 변경된 개발 코드에 따라 상기 입력 정보 세트에 대응하는 변경된 제2결과 정보 세트의 차이에 대한 정보를 포함할 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법은 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 비교 대상 부분을 설정하는 설정 정보를 획득하는 단계를 더 포함하고, 상기 제3결과 정보 세트는 상기 설정 정보를 기반으로 표시될 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법은 분산 메시징 시스템을 통해 상기 제3결과 정보 세트를 제공하기 위한 요청 메시지를 송신하는 단계를 포함하고, 상기 요청 메시지에 대응하여 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트를 수신할 수 있다.
다양한 실시예에 따른 연산 장치의 정보 제공 방법은 상기 입력 정보 세트 중 적어도 일부를 선택하는 선택 정보를 획득하는 단계를 더 포함하고, 상기 입력 정보 세트는 상기 선택 정보를 기반으로 확인할 수 있다.
다양한 실시예에 따른 연산 장치는, 데이터를 수신 및 송신하는 트랜시버, 데이터를 저장하는 데이터베이스, 및 프로세서를 포함하고, 상기 프로세서는 상기 트랜시버를 통해 수신한 입력 정보 세트를 확인하고, 제1서버로부터 상기 입력 정보 세트에 대응하는 제1결과 정보 세트를 수신하고, 제2서버로부터 상기 입력 정보 세트에 대응하는 제2결과 정보 세트를 수신하고, 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 차이에 대한 정보를 포함하는 제 3 정보 세트를 제공할 수 있다.
다양한 실시예에 따른 연산 장치의 상기 제1서버는 기준 코드가 동작하는 서버이고, 상기 제2서버는 개발 코드가 동작하는 서버이고, 상기 개발 코드는 상기 기준 코드와 대응되는 코드를 포함하고 상기 기준 코드는 사용자에게 제공되는 서비스 서버의 코드와 대응될 수 있다.
다양한 실시예에 따른 연산 장치의 상기 프로세서는 상기 제1서버 및 상기 제2서버에서 구동되는 코드 별 출력 값에 차이가 존재하는지 여부에 대한 정보를 포함하는 상기 제3결과 정보 세트를 제공할 수 있다.
다양한 실시예에 따른 연산 장치의 상기 프로세서는 상기 코드 별로 존재하는 출력 값의 차이를 확인하기 위한 선택 입력을 수신하고, 코드의 출력 값 중 상기 선택 입력에 대응하여 선택된 부분의 차이에 대한 비교 정보를 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트를 기반으로 제공하고, 상기 비교 정보는 상기 제1결과 정보 세트의 적어도 일부, 상기 제2결과 정보 세트의 적어도 일부, 및 차이가 존재하는 부분을 지시하는 정보를 포함할 수 있다.
다양한 실시예에 따른 연산 장치에 있어서, 상기 제3결과 정보 세트는 상기 제1서버 및 상기 제2서버에서 구동되는 코드의 명칭, 코드에 대한 설명, 및 코드를 설정한 개발자 명칭이 표시되는 웹UI에 관한 정보를 포함할 수 있다.
다양한 실시예에 따른 연산 장치의 상기 개발 코드는 상기 제공된 제3결과 정보 세트에 대응하여 변경되고, 상기 프로세서는 상기 변경된 개발 코드에 대응하는 제3결과 정보 세트를 제공할 수 있다.
다양한 실시예에 따른 연산 장치에 있어서, 상기 변경된 개발 코드에 대응하는 제3결과 정보 세트는 상기 제1결과 정보 세트 및 상기 변경된 개발 코드에 따라 상기 입력 정보 세트에 대응하는 변경된 제2결과 정보 세트의 차이에 대한 정보를 포함할 수 있다.
다양한 실시예에 따른 연산 장치의 상기 프로세서는 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 비교 대상 부분을 설정하는 설정 정보를 획득하고, 상기 제3결과 정보 세트는 상기 설정 정보를 기반으로 표시될 수 있다.
다양한 실시예에 따른 연산 장치의 상기 프로세서는 분산 메시징 시스템을 통해 상기 제3결과 정보 세트를 제공하기 위한 요청 메시지를 송신하고, 상기 요청 메시지에 대응하여 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트를 수신할 수 있다.
다양한 실시예에 따른 연산 장치의 상기 프로세서는 상기 입력 정보 세트 중 적어도 일부를 선택하는 선택 정보를 획득하고, 상기 입력 정보 세트는 상기 선택 정보를 기반으로 확인될 수 있다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
전술한 실시예들에 따른 전자 장치 또는 단말은, 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(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) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
전술한 실시예들은 일 예시일 뿐 후술하는 청구항들의 범위 내에서 다른 실시예들이 구현될 수 있다.

Claims (20)

  1. 연산 장치의 정보 제공 방법에 있어서,
    입력 정보 세트를 확인하는 단계;
    기준 코드가 동작하는 제1서버에서 상기 입력 정보 세트에 대응하는 제1결과 정보 세트를 수신하는 단계;
    상기 기준 코드와 적어도 일부가 상이한 개발 코드가 동작하는 제2서버에서 상기 입력 정보 세트에 대응하는 제2결과 정보 세트를 수신하는 단계; 및
    상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 차이에 대한 정보를 포함하는 제3결과 정보 세트를 제공하는 단계를 포함하고,
    상기 제1서버 및 상기 제2서버에서 구동되는 코드 별 출력 값의 차이는 상기 제3결과 정보 세트를 기반으로 확인되고,
    상기 제3결과 정보 세트에서 코드 별 출력 값의 차이가 있는 결과 정보의 숫자를 기반으로 상기 개발 코드의 오류 관련 정보가 제공되는 정보 제공 방법.
  2. 제1항에 있어서,
    상기 기준 코드는 서비스의 사용자에게 제공되는 서비스 서버의 서비스 코드를 기반으로 설정되는 정보 제공 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 코드 별로 존재하는 출력 값의 차이를 확인하기 위한 선택 입력을 수신하는 단계를 포함하고,
    상기 제3결과 정보 세트를 제공하는 단계는
    코드의 출력 값 중 상기 선택 입력에 대응하여 선택된 부분의 차이에 대한 비교 정보를 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트를 기반으로 제공하는 단계를 포함하고,
    상기 비교 정보는 상기 제1결과 정보 세트의 적어도 일부, 상기 제2결과 정보 세트의 적어도 일부 및 차이가 존재하는 부분을 지시하는 정보를 포함하는 정보 제공 방법.
  5. 제1항에 있어서,
    상기 제3결과 정보 세트는 상기 제1서버 및 상기 제2서버에서 구동되는 코드의 명칭, 코드에 대한 설명, 및 코드를 설정한 개발자 명칭이 표시되는 웹UI에 관한 정보를 포함하는 정보 제공 방법.
  6. 제1항에 있어서,
    상기 개발 코드는 상기 제공된 제3결과 정보 세트에 대응하여 변경되고,
    상기 변경된 개발 코드에 대응하는 제3결과 정보 세트를 제공하는 단계를 더 포함하는 정보 제공 방법.
  7. 제6항에 있어서,
    상기 변경된 개발 코드에 대응하는 제3결과 정보 세트는 상기 제1결과 정보 세트 및 상기 변경된 개발 코드에 따라 상기 입력 정보 세트에 대응하는 변경된 제2결과 정보 세트의 차이에 대한 정보를 포함하는 정보 제공 방법.
  8. 제6항에 있어서,
    상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 비교 대상 부분을 설정하는 설정 정보를 획득하는 단계를 더 포함하고,
    상기 제3결과 정보 세트는 상기 설정 정보를 기반으로 표시되는 정보 제공 방법.
  9. 제1항에 있어서,
    분산 메시징 시스템을 통해 상기 제3결과 정보 세트를 제공하기 위한 요청 메시지를 송신하는 단계를 포함하고,
    상기 요청 메시지에 대응하여 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트를 수신하는 정보 제공 방법.
  10. 제1항에 있어서,
    상기 입력 정보 세트 중 적어도 일부를 선택하는 선택 정보를 획득하는 단계를 더 포함하고,
    상기 입력 정보 세트는 상기 선택 정보를 기반으로 확인되는 정보 제공 방법.
  11. 연산 장치에 있어서,
    데이터를 수신 및 송신하는 트랜시버;
    데이터를 저장하는 데이터베이스; 및
    프로세서를 포함하고,
    상기 프로세서는
    상기 트랜시버를 통해 수신한 입력 정보 세트를 확인하고,
    기준 코드가 동작하는 제1서버로부터 상기 입력 정보 세트에 대응하는 제1결과 정보 세트를 수신하고,
    상기 기준 코드와 적어도 일부가 상이한 개발 코드가 동작하는 제2서버로부터 상기 입력 정보 세트에 대응하는 제2결과 정보 세트를 수신하고,
    상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 차이에 대한 정보를 포함하는 제3결과 정보 세트를 제공하고,
    상기 제1서버 및 상기 제2서버에서 구동되는 코드 별 출력 값의 차이는 상기 제3결과 정보 세트를 기반으로 확인되고,
    상기 제3결과 정보 세트에서 코드 별 출력 값의 차이가 있는 결과 정보의 숫자를 기반으로 상기 개발 코드의 오류 관련 정보가 제공되는 연산 장치.
  12. 제11항에 있어서,
    상기 기준 코드는 서비스의 사용자에게 제공되는 서비스 서버의 서비스 코드를 기반으로 설정되는, 연산 장치.
  13. 삭제
  14. 제11항에 있어서,
    상기 프로세서는
    상기 코드 별로 존재하는 출력 값의 차이를 확인하기 위한 선택 입력을 수신하고,
    코드의 출력 값 중 상기 선택 입력에 대응하여 선택된 부분의 차이에 대한 비교 정보를 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트를 기반으로 제공하고,
    상기 비교 정보는 상기 제1결과 정보 세트의 적어도 일부, 상기 제2결과 정보 세트의 적어도 일부, 및 차이가 존재하는 부분을 지시하는 정보를 포함하는, 연산 장치.
  15. 제11항에 있어서,
    상기 제3결과 정보 세트는 상기 제1서버 및 상기 제2서버에서 구동되는 코드의 명칭, 코드에 대한 설명, 및 코드를 설정한 개발자 명칭이 표시되는 웹UI에 관한 정보를 포함하는, 연산 장치.
  16. 제11항에 있어서,
    상기 개발 코드는 상기 제공된 제3결과 정보 세트에 대응하여 변경되고,
    상기 프로세서는
    상기 변경된 개발 코드에 대응하는 제3결과 정보 세트를 제공하는, 연산 장치.
  17. 제16항에 있어서,
    상기 변경된 개발 코드에 대응하는 제3결과 정보 세트는 상기 제1결과 정보 세트 및 상기 변경된 개발 코드에 따라 상기 입력 정보 세트에 대응하는 변경된 제2결과 정보 세트의 차이에 대한 정보를 포함하는, 연산 장치.
  18. 제16항에 있어서,
    상기 프로세서는
    상기 제1결과 정보 세트 및 상기 제2결과 정보 세트의 비교 대상 부분을 설정하는 설정 정보를 획득하고,
    상기 제3결과 정보 세트는 상기 설정 정보를 기반으로 표시되는, 연산 장치.
  19. 제11항에 있어서,
    상기 프로세서는
    분산 메시징 시스템을 통해 상기 제3결과 정보 세트를 제공하기 위한 요청 메시지를 송신하고,
    상기 요청 메시지에 대응하여 상기 제1결과 정보 세트 및 상기 제2결과 정보 세트를 수신하는, 연산 장치.
  20. 제11항에 있어서,
    상기 프로세서는
    상기 입력 정보 세트 중 적어도 일부를 선택하는 선택 정보를 획득하고,
    상기 입력 정보 세트는 상기 선택 정보를 기반으로 확인되는, 연산 장치.
KR1020200186235A 2020-12-29 2020-12-29 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치 KR102344661B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020200186235A KR102344661B1 (ko) 2020-12-29 2020-12-29 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치
US17/171,775 US11226810B1 (en) 2020-12-29 2021-02-09 Method for providing information based on expected result value and computing device using the same
JP2021019830A JP7013602B1 (ja) 2020-12-29 2021-02-10 予想結果値に基づいて情報を提供する方法およびこれを利用した演算装置
PCT/KR2021/001901 WO2022145572A1 (ko) 2020-12-29 2021-02-15 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치
TW110106030A TW202226092A (zh) 2020-12-29 2021-02-22 基於預期結果值提供資訊之方法及使用該方法之計算裝置
KR1020210186766A KR102599587B1 (ko) 2020-12-29 2021-12-24 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치
JP2022006445A JP7353701B2 (ja) 2020-12-29 2022-01-19 予想結果値に基づいて情報を提供する方法およびこれを利用した演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200186235A KR102344661B1 (ko) 2020-12-29 2020-12-29 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210186766A Division KR102599587B1 (ko) 2020-12-29 2021-12-24 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치

Publications (1)

Publication Number Publication Date
KR102344661B1 true KR102344661B1 (ko) 2021-12-30

Family

ID=79178471

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200186235A KR102344661B1 (ko) 2020-12-29 2020-12-29 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치
KR1020210186766A KR102599587B1 (ko) 2020-12-29 2021-12-24 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210186766A KR102599587B1 (ko) 2020-12-29 2021-12-24 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치

Country Status (5)

Country Link
US (1) US11226810B1 (ko)
JP (2) JP7013602B1 (ko)
KR (2) KR102344661B1 (ko)
TW (1) TW202226092A (ko)
WO (1) WO2022145572A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102653757B1 (ko) * 2023-05-30 2024-04-03 쿠팡 주식회사 전자 장치 및 그의 데이터 관리 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017107265A (ja) * 2015-12-07 2017-06-15 株式会社日立システムズ テストシナリオ作成支援システム及びテストシナリオ作成支援方法
JP2018205796A (ja) * 2017-05-30 2018-12-27 京セラドキュメントソリューションズ株式会社 管理サーバー、テスト環境構築システム及びテスト環境構築方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US5802528A (en) * 1996-05-24 1998-09-01 Oracle Corporation Method and apparatus for data comparisons
US6236993B1 (en) * 1998-06-24 2001-05-22 Victor V. Fanberg Computer file comparison method
US6510402B1 (en) * 1999-02-04 2003-01-21 International Business Machines Corporation Component testing with a client system in an integrated test environment network
US6536037B1 (en) * 1999-05-27 2003-03-18 Accenture Llp Identification of redundancies and omissions among components of a web based architecture
JP2001282578A (ja) * 2000-03-31 2001-10-12 Hitachi Software Eng Co Ltd プログラムテスト支援装置、方法、および該方法に係るプログラムを記憶した記憶媒体
US7131112B1 (en) * 2000-11-21 2006-10-31 Microsoft Corporation Managing code changes for software development
JP4595260B2 (ja) 2001-07-06 2010-12-08 日本電気株式会社 携帯端末におけるテストプログラムの自動実行方法
US7353510B2 (en) * 2003-07-11 2008-04-01 Computer Associates Think, Inc. System and method for comparing objects
KR100572587B1 (ko) 2004-01-13 2006-04-24 충남대학교산학협력단 테스트 오라클의 자동 생성 기능을 갖는 테스트드라이버의 생성 방법
US7437712B1 (en) * 2004-01-22 2008-10-14 Sprint Communications Company L.P. Software build tool with revised code version based on description of revisions and authorizing build based on change report that has been approved
US7823132B2 (en) 2004-09-29 2010-10-26 Microsoft Corporation Automated test case verification that is loosely coupled with respect to automated test case execution
US8443354B1 (en) * 2006-03-29 2013-05-14 Symantec Corporation Detecting new or modified portions of code
JP4859821B2 (ja) 2007-12-05 2012-01-25 富士通株式会社 アプリケーションプログラムのテストプログラム
JP5418442B2 (ja) * 2010-08-18 2014-02-19 株式会社リコー 情報処理装置、電子機器、更新処理支援方法、更新処理支援プログラム、及び更新処理支援システム
US8572552B2 (en) * 2011-06-05 2013-10-29 Fourth Medium Consulting Inc. System and method for providing expert advice on software development practices
JP5703195B2 (ja) 2011-11-15 2015-04-15 株式会社日本総合研究所 プログラムの新旧バージョンに対する差分比較テストシステム及びテスト方法
JP2014010581A (ja) 2012-06-28 2014-01-20 Toshiba Corp テスト装置、テストシステム、テスト方法、及びプログラム
US9842044B2 (en) 2013-02-13 2017-12-12 Sugarcrm Inc. Commit sensitive tests
US9424172B1 (en) * 2013-03-15 2016-08-23 Twitter, Inc. Web services comparison tool
CA2945328C (en) * 2014-04-08 2017-10-31 Turnkey Solutions Corp. Software test automation system and method
US9218176B1 (en) * 2014-06-13 2015-12-22 International Business Machines Corporation Software deployment in a distributed virtual machine environment
US9176728B1 (en) * 2014-11-12 2015-11-03 Bank Of America Corporation Global software deployment/remediation management and associated analytics
US10521272B1 (en) * 2016-03-30 2019-12-31 Amazon Technologies, Inc. Testing in grid computing systems
US10657023B1 (en) * 2016-06-24 2020-05-19 Intuit, Inc. Techniques for collecting and reporting build metrics using a shared build mechanism
KR101935105B1 (ko) * 2016-11-15 2019-01-03 국방과학연구소 오류 모의 함수를 이용한 자동화 기반 강건성 검증 장치 및 방법
US10873618B1 (en) * 2020-01-07 2020-12-22 Volterra, Inc. System and method to dynamically generate a set of API endpoints

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017107265A (ja) * 2015-12-07 2017-06-15 株式会社日立システムズ テストシナリオ作成支援システム及びテストシナリオ作成支援方法
JP2018205796A (ja) * 2017-05-30 2018-12-27 京セラドキュメントソリューションズ株式会社 管理サーバー、テスト環境構築システム及びテスト環境構築方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102653757B1 (ko) * 2023-05-30 2024-04-03 쿠팡 주식회사 전자 장치 및 그의 데이터 관리 방법

Also Published As

Publication number Publication date
WO2022145572A1 (ko) 2022-07-07
KR102599587B1 (ko) 2023-11-07
JP7013602B1 (ja) 2022-01-31
TW202226092A (zh) 2022-07-01
US11226810B1 (en) 2022-01-18
JP7353701B2 (ja) 2023-10-02
KR20220095136A (ko) 2022-07-06
JP2022104768A (ja) 2022-07-11
JP2022104837A (ja) 2022-07-11

Similar Documents

Publication Publication Date Title
US11593400B1 (en) Automatic triage model execution in machine data driven monitoring automation apparatus
US10942960B2 (en) Automatic triage model execution in machine data driven monitoring automation apparatus with visualization
US11315084B2 (en) Method and system for aggregating diagnostic analyzer related information
US9268672B1 (en) Automated test case generation for applications
US20160103750A1 (en) Application programming interface monitoring tool notification and escalation method and system
US20160224400A1 (en) Automatic root cause analysis for distributed business transaction
US10402310B1 (en) Systems and methods for reducing storage required for code coverage results
US11706084B2 (en) Self-monitoring
US9736031B2 (en) Information system construction assistance device, information system construction assistance method, and information system construction assistance program
JP6094593B2 (ja) 情報システム構築装置、情報システム構築方法および情報システム構築プログラム
KR20150033453A (ko) 빅데이터 처리 방법, 이를 수행하는 빅데이터 처리 장치 및 이를 저장하는 기록매체
US20230130527A1 (en) Dynamic review of software updates after pull requests
US20140082582A1 (en) Resource Tracker
KR102344661B1 (ko) 예상 결과값을 토대로 정보를 제공하는 방법 및 이를 이용한 연산 장치
CN115617780A (zh) 数据导入方法、装置、设备及存储介质
CN110879701B (zh) 工作流可视化配置方法、服务器、系统及介质
CN114816389B (zh) 一种基于元模型的管理系统搭建方法、装置、设备及介质
JPWO2016067391A1 (ja) 電子機器、システムおよび方法
CN114546220A (zh) 页面配置方法及装置、存储介质、计算机设备
CN113011858A (zh) 审计项目配置、执行方法和装置
CN111061747B (zh) 业务单据数据的更新方法及相关设备
CN112966201A (zh) 对象处理方法、装置、电子设备以及存储介质
US20160110387A1 (en) Product lifecycle management system
US20220207475A1 (en) Data management method for various products and electronic device using the same
CN117668102A (zh) 一种隐私数据同步方法、系统及计算机设备

Legal Events

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