KR101764890B1 - 프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버 - Google Patents

프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버 Download PDF

Info

Publication number
KR101764890B1
KR101764890B1 KR1020160003265A KR20160003265A KR101764890B1 KR 101764890 B1 KR101764890 B1 KR 101764890B1 KR 1020160003265 A KR1020160003265 A KR 1020160003265A KR 20160003265 A KR20160003265 A KR 20160003265A KR 101764890 B1 KR101764890 B1 KR 101764890B1
Authority
KR
South Korea
Prior art keywords
source code
data
scoring
program
input
Prior art date
Application number
KR1020160003265A
Other languages
English (en)
Other versions
KR20170087075A (ko
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 KR1020160003265A priority Critical patent/KR101764890B1/ko
Publication of KR20170087075A publication Critical patent/KR20170087075A/ko
Application granted granted Critical
Publication of KR101764890B1 publication Critical patent/KR101764890B1/ko

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/10Office automation; Time management
    • G06Q10/105Human resources
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Educational Administration (AREA)
  • General Engineering & Computer Science (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 일 실시예에 따른 프로그램 개발자 테스트 서비스 제공 서버에서 실행되는 프로그램 개발자 테스트 서비스 제공 방법은 개발자 테스트 로그인 인터페이스를 통해 테스트 응시 정보가 입력되면, 상기 테스트 응시 정보를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 제공하는 단계, 상기 실행 정보를 통해 개발자 테스트 프로그램이 실행되면, 문제를 표시하는 문제 화면 및 상기 문제 화면 상의 문제를 해결하기 위한 소스 코드가 입력되는 소스 코드 입력 화면을 포함하는 개발자 테스트 인터페이스를 제공하는 단계 및 상기 개발자 테스트 인터페이스를 통해 답안 제출이 요청되면, 상기 소스 코드 입력 화면에 입력된 소스 코드를 평가하여 상기 소스 코드의 점수를 결정하는 단계를 포함한다. 따라서, 본 발명은 여러 명의 개발 분야 지원자가 개발자 선별 테스트를 보게 되면 해당 개발자 중 누가 가장 높은 점수의 코드를 작성했는지 알 수 있도록 한다는 장점이 있다.

Description

프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버{METHOD OF PROVIDING PROGRAMMER TEST SERVICE AND SERVER PERFORMING THE SAME}
본 발명의 실시예들은 프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버에 관한 것이다.
프로그램을 개발하는 기업은 개발자를 채용하는 과정에서 코딩 테스트를 생략한다. 그 이유는 코딩 테스트가 개발자의 실력을 검증하는 객관적인 지표가 됨에도 불구하고 이를 생략하는 이유는 코딩 테스트를 실행하는 과정이 번거롭기 때문이다. 즉, 코딩 테스트를 채용 과정에 적용하기 위해서는 기업이 직접 문제를 출제하고 수작업으로 평가하는 등 시간적 문제 그리고 공간적 문제가 발생한다.
상기와 같은 이유로, 기업이 개발자를 채용하는 과정에서 코딩 테스트 과정 없이 서류심사와 면접만으로 개발자를 평가하여 채용하였으나, 개발자를 투입하였을 때 개발자의 코딩 능력은 현저히 떨어지는 경우가 발생하기도 한다.
대한민국 한국공개특허 제10-2009-0028366호는 프로그램 소스코드 테스트 방법 및 시스템과 이를 위한 프로그램 기록매체에 관한 것으로, 프로그램 소스코드를 파싱 처리하여 파싱 처리된 프로그램 소스코드에 대한 테스트 항목을 생성한다는 내용이 개시되어 있다. 하지만, 종래 기술은 개발 분야 지원자를 테스트하는 구체적인 방법이 개시되어 있지 않다.
대한민국 한국공개특허 제10-2009-0028366호
본 발명은 여러 명의 개발 분야 지원자가 개발자 선별 테스트를 보게 되면 해당 개발자 중 누가 가장 높은 점수의 코드를 작성했는지 알 수 있도록 하는 프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버를 제공하는 것을 목적으로 한다.
또한, 본 발명은 소스 코드 별 점수를 기준으로 여러 명의 개발 분야 지원자 중 누가 더 프로그래밍을 잘하는지 객관적으로 판단할 수 있게 되어 개발자를 채용하는 회사가 이 점수를 기준으로 해당 개발 분야 지원자의 수준을 판단할 수 있도록 하는 프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버를 제공하는 것을 목적으로 한다.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당 업자에게 명확하게 이해될 수 있을 것이다.
실시예들 중에서, 프로그램 개발자 테스트 서비스 제공 서버에서 실행되는 프로그램 개발자 테스트 서비스 제공 방법은 개발자 테스트 로그인 인터페이스를 통해 테스트 응시 정보가 입력되면, 본인 정보를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 제공하는 단계, 상기 실행 정보를 통해 개발자 테스트 프로그램이 실행되면, 문제를 표시하는 문제 화면 및 상기 문제 화면 상의 문제를 해결하기 위한 소스 코드가 입력되는 소스 코드 입력 화면을 포함하는 개발자 테스트 인터페이스를 제공하는 단계 및 상기 개발자 테스트 인터페이스를 통해 답안 제출이 요청되면, 상기 소스 코드 입력 화면에 입력된 소스 코드를 평가하여 상기 소스 코드의 점수를 결정하는 단계를 포함한다.
실시예들 중에서, 프로그램 개발자 테스트 서비스 제공 서버는 개발자 테스트 로그인 인터페이스를 통해 테스트 응시 정보가 입력되면, 본인 정보를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 제공하는 실행 정보 제공부, 상기 실행 정보를 통해 개발자 테스트 프로그램이 실행되면, 문제를 표시하는 문제 화면 및 상기 문제 화면 상의 문제를 해결하기 위한 소스 코드가 입력되는 소스 코드 입력 화면을 포함하는 개발자 테스트 인터페이스를 제공하는 개발자 테스트 인터페이스 제공부 및 상기 개발자 테스트 인터페이스를 통해 답안 제출이 요청되면, 상기 소스 코드 입력 화면에 입력된 소스 코드를 평가하여 상기 소스 코드의 점수를 결정하는 소스 코드 평가부를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 첨부 도면들에 포함되어 있다.
본 발명의 이점 및/또는 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.
본 발명에 따르면, 여러 명의 개발 분야 지원자가 개발자 선별 테스트를 보게 되면 해당 개발자 중 누가 가장 높은 점수의 코드를 작성했는지 알 수 있다는 장점이 있다.
또한 본 발명에 따르면, 소스 코드 별 점수를 기준으로 여러 명의 개발 분야 지원자 중 누가 더 프로그래밍을 잘하는지 객관적으로 판단할 수 있게 되어 개발자를 채용하는 회사가 이 점수를 기준으로 해당 개발 분야 지원자의 수준을 판단할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 개발자 테스트 서비스 제공 시스템을 설명하기 위한 네트워크 구성도이다.
도 2는 본 발명의 일 실시예에 따른 프로그램 개발자 테스트 서비스 제공 서버의 내부 구조를 설명하기 위한 블록도이다.
도 3은 본 발명에 따른 프로그램 개발자 테스트 서비스 제공 방법의 일 실시예를 설명하기 위한 흐름도이다.
도 4는 본 발명에 따른 프로그램 개발자 테스트 서비스 제공 방법의 일 실시예를 설명하기 위한 흐름도이다.
도 5는 본 발명에 따른 개발자 테스트 로그인 인터페이스를 설명하기 위한 예시도이다.
도 6은 본 발명에 따른 개발자 테스트 인터페이스를 설명하기 위한 예시도이다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시 예에 따른 개발자 테스트 서비스 제공 시스템을 설명하기 위한 네트워크 구성도이다.
도 1을 참조하면, 개발자 테스트 서비스 제공 시스템은 프로그램 개발자 테스트 서비스 제공 서버(100) 및 개발 분야 지원자 단말(200_1~200_N)을 포함한다.
프로그램 개발자 테스트 서비스 제공 서버(100)는 개발자를 채용하려는 회사의 요청에 따라 개발 분야 지원자의 프로그램밍 실력을 평가하고 평가 결과를 해당 회사에 제공하는 서버이다.
이러한 프로그램 개발자 테스트 서비스 제공 서버(100)는 개발자 테스트 로그인 인터페이스를 통해 테스트 응시 정보가 입력되면, 본인 정보(예를 들어, 이메일 주소)를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 제공한다. 이에 따라, 개발 분야 지원자는 실행 정보를 클릭함으로써 개발자 테스트 프로그램을 실행할 수 있다. 여기에서, 테스트 응시 정보는 테스트 시 활용할 프로그램 언어, 테스트 응시 기간, 제한 시간 등을 포함할 수 있다.
개발자 테스트 서비스 제공 서버(100)는 개발자 테스트 프로그램이 실행되면, 개발자 테스트 인터페이스를 제공한다. 개발자 테스트 인터페이스는 문제를 표시하는 문제 화면 및 상기 문제 화면 상의 문제를 해결하기 위한 소스 코드가 입력되는 소스 코드 입력 화면을 포함한다. 이때, 문제 화면에 표시되는 문제는 개발자의 실력을 판단하기 위한 개발자용 문제이며 회사에 의해 미리 결정되거나 문제 제공 서버에서 독출된 문제일 수 있다. 또한, 문제는 개발자의 업무 능력에 비례하게 난이도(즉, 상/중/하)가 결정될 수 있으며, 회사가 원하는 대로 추가 및 삭제할 수 있다.
소스 코드 입력 화면에는 개발자에 의해 문제를 해결하기 위한 소스 코드가 입력되면, 소스 코드를 표시한다. 이때, 소스 코드 입력 화면에 입력되는 소스 코드는 개발자에 의해 미리 결정되거나 회사에 의해 미리 결정된 프로그래밍 언어를 기초로 작성될 수 있다.
개발자 테스트 서비스 제공 서버(100)는 소스 코드 입력 화면에 소스 코드가 입력되는 과정은 녹화되어 녹화 파일로 생성되며 이러한 녹화 파일은 해당 회사 단말에 제공되어 회사 담당자가 개발자의 소스 코드 입력 과정을 모니터링할 수 있도록 한다.
개발자 테스트 서비스 제공 서버(100)는 소스 코드 입력 화면에 입력된 소스 코드를 평가하여 소스 코드의 점수를 결정한다. 이를 위해, 개발자 테스트 서비스 제공 서버(100)는 소스 코드 작성 시 사용된 프로그래밍 언어의 컴파일러를 이용하여 소스 코드를 컴파일하여 소스 코드를 실행할 수 있는 컴파일 프로그램을 생성할 수 있다.
그런 다음, 개발자 테스트 서비스 제공 서버(100)는 컴파일 프로그램에 복수의 채점용 데이터를 적용하여 소스 코드의 점수를 결정한다. 이때, 복수의 채점용 데이터는 채점용 입력 데이터가 컴파일 프로그램에 입력될 시 출력되는 정답 출력 데이터를 포함한다.
보다 구체적으로, 개발자 테스트 서비스 제공 서버(100)는 복수의 채점용 데이터 각각의 채점용 입력 데이터를 상기 컴파일 프로그램에 입력하여 출력 데이터를 획득하고, 출력 데이터가 상기 복수의 채점용 데이터 각각의 채점용 입력 데이터에 대응되는 정답 출력 데이터와 동일하면 미리 결정된 점수를 누적하여 상기 소스 코드의 점수를 결정한다.
개발자 테스트 서비스 제공 서버(100)는 개발 분야 지원자 별 소스 코드의 점수에 따라 개발 분야 지원자 별 프로그래밍 능력을 평가하여 해당 회사 단말에 제공한다. 이때, 개발자 테스트 서비스 제공 서버(100)는 개발 분야 지원자 별 소스 코드의 점수에 따라 개발 분야 지원자 각각의 순위를 결정한다.
이때, 개발 분야 지원자의 소스 코드의 점수가 동일하면 복수의 채점용 데이터 각각의 입력 데이터를 컴파일 프로그램에 입력하여 정답 출력 데이터가 출력될 때까지 소요되는 시간이 짧은 소스 코드를 작성한 개발 분야 지원자의 순위를 더 높게 결정한다.
이와 같이, 소스 코드의 점수가 동일한 경우 복수의 채점용 데이터 각각의 입력 데이터를 컴파일 프로그램에 입력하여 출력 데이터가 출력될 때까지 소요되는 시간에 따라 개발 분야 지원자의 순위를 결정하는 이유는 소스 코드의 시간 복잡도에 따라 복수의 채점용 데이터 각각의 입력 데이터가 입력된 후 출력 데이터가 출력될 때까지 소요되는 시간이 변경되기 때문이다.
개발 분야 지원자 단말(200_1~200_N)은 개발자 테스트 로그인 인터페이스를 통해 테스트 응시 정보가 입력되면, 본인 정보를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 제공받는다. 개발 분야 지원자 단말(200_1~200_N)은 사용자에 의해 실행 정보가 클릭되면 개발자 테스트 프로그램을 실행하여 개발자 테스트 인터페이스를 표시한다.
또한, 개발 분야 지원자 단말(200_1~200_N)은 개발 분야 지원자에 의해 소스 코드가 입력되면 개발자 테스트 인터페이스의 소스 코드 입력 화면에 소스 코드를 표시한다.
또한, 개발 분야 지원자 단말(200_1~200_N)은 소스 코드 입력 화면에 입력된 소스 코드를 컴파일하여 소스 코드를 실행할 수 있는 컴파일 프로그램을 생성하고, 컴파일 프로그램에 특정 개수의 샘플용 데이터를 적용하여 그 결과를 표시함으로써 개발 분야 지원자가 소스 코드를 스스로 평가할 수 있도록 한다. 이때, 특정 개수의 샘플용 데이터는 샘플용 입력 데이터 및 샘플용 입력 데이터가 컴파일 프로그램에 입력될 시 출력되는 정답 출력 데이터를 포함한다.
즉, 개발 분야 지원자 단말(200_1~200_N)은 컴파일 프로그램에 특정 개수의 샘플용 데이터 각각의 입력 데이터를 컴파일 프로그램에 입력하여 획득한 출력 데이터를 표시한다. 그러면, 개발 분야 지원자는 출력 데이터가 특정 개수의 샘플용 데이터 각각의 입력 데이터에 대응되는 정답 출력 데이터와 동일한지 여부를 확인하여 소스 코드를 스스로 평가할 수 있도록 한다.
도 2는 본 발명의 일 실시예에 따른 프로그램 개발자 테스트 서비스 제공 서버의 내부 구조를 설명하기 위한 블록도이다.
도 2를 참조하면, 프로그램 개발자 테스트 서비스 제공 서버(100)는 실행 정보 제공부(110), 개발자 테스트 인터페이스 제공부(120), 소스 코드 평가부(130), 녹화부(140) 및 제어부(150)를 포함한다.
실행 정보 제공부(110)는 개발자 테스트 로그인 인터페이스를 통해 테스트 응시 정보가 입력되면, 본인 정보를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 제공한다.
예를 들어, 실행 정보 제공부(110)는 개발자 테스트 로그인 인터페이스를 통해 이메일 주소가 입력되면, 이메일 주소를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 링크를 제공하며, 개발자가 이메일로 제공된 실행 링크를 클릭함에 따라 개발자 테스트 인터페이스 제공부(120)에 의해 개발자 테스트 인터페이스가 제공되는 것이다.
개발자 테스트 인터페이스 제공부(120)는 실행 정보 제공부(110)에 의해 제공된 실행 정보를 통해 개발자 테스트 프로그램이 실행되면, 개발자 테스트 인터페이스를 제공한다.
개발자 테스트 인터페이스는 문제를 표시하는 문제 화면 및 상기 문제 화면 상의 문제를 해결하기 위한 소스 코드가 입력되는 소스 코드 입력 화면을 포함한다. 이때, 문제 화면에 표시되는 문제는 개발자의 실력을 판단하기 위한 개발자용 문제이며 회사에 의해 미리 결정되거나 문제 제공 서버에서 독출된 문제일 수 있다.
소스 코드 입력 화면에는 개발자에 의해 문제를 해결하기 위한 소스 코드가 입력되면, 소스 코드를 표시한다. 이때, 소스 코드 입력 화면에 입력되는 소스 코드는 개발자에 의해 미리 결정되거나 회사에 의해 미리 결정된 프로그래밍 언어를 기초로 작성될 수 있다.
이와 같이, 소스 코드 입력 화면에 소스 코드가 입력되는 과정은 녹화부(140)에 의해 녹화되어 녹화 파일로 생성되며 이러한 녹화 파일은 해당 회사 단말에 제공되어 회사 담당자가 개발자의 소스 코드 입력 과정을 모니터링할 수 있도록 한다.
소스 코드 평가부(130)는 소스 코드 입력 화면에 입력된 소스 코드를 평가하여 소스 코드의 점수를 결정한다. 이를 위해, 소스 코드 평가부(130)는 소스 코드를 컴파일하여 소스 코드를 실행할 수 있는 컴파일 프로그램을 생성한다. 보다 구체적으로, 소스 코드 평가부(130)는 소스 코드 작성 시 사용된 프로그래밍 언어의 컴파일러를 이용하여 소스 코드를 컴파일하여 소스 코드를 실행할 수 있는 컴파일 프로그램을 생성할 수 있다.
예를 들어, 소스 코드 작성 시 사용된 프로그래밍 언어가 C언어인 경우, C언어의 컴파일러를 이용하여 소스 코드를 컴파일하여 소스 코드를 실행할 수 있는 컴파일 프로그램을 생성할 수 있다. 다른 예를 들어, 소스 코드 작성 시 사용된 프로그래밍 언어가 Java인 경우, Java의 컴파일러를 이용하여 소스 코드를 컴파일하여 소스 코드를 실행할 수 있는 컴파일 프로그램을 생성할 수 있다.
그런 다음, 소스 코드 평가부(130)는 컴파일 프로그램에 복수의 채점용 데이터를 적용하여 소스 코드의 점수를 결정한다. 이때, 복수의 채점용 데이터는 채점용 입력 데이터 및 채점용 입력 데이터가 컴파일 프로그램에 입력될 시 출력되는 정답 출력 데이터를 포함한다.
예를 들어, 컴파일 프로그램이 약수 구하기 프로그램인 경우, 채점용 데이터 1은 채점용 입력 데이터: 5 / 정답 출력 데이터 : (1, 5), 채점용 데이터 2는 채점용 입력 데이터가 4 / 정답 출력 데이터 : (1, 2, 4) … 일 수 있다.
소스 코드 평가부(130)가 소스 코드의 점수를 결정하는 과정을 보다 구체적으로 설명하면, 소스 코드 평가부(130)는 복수의 채점용 데이터 각각의 채점용 입력 데이터를 상기 컴파일 프로그램에 입력하여 출력 데이터를 획득하고, 출력 데이터가 상기 복수의 채점용 데이터 각각의 채점용 입력 데이터에 대응되는 정답 출력 데이터와 동일하면 미리 결정된 점수를 누적하여 상기 소스 코드의 점수를 결정한다.
예를 들어, 채점용 데이터 1은 채점용 입력 데이터: 5 / 정답 출력 데이터 : (1, 5), 채점용 데이터 2는 채점용 입력 데이터가 4 / 정답 출력 데이터 : (1, 2, 4) … 일 경우, 소스 코드 평가부(130)는 컴파일 프로그램에 채점용 데이터 1의 채점용 입력 데이터 5를 입력하여 출력 데이터를 획득하고, 출력 데이터가 채점용 데이터 1의 정답 출력 데이터(1, 5)와 동일하면 채점용 데이터 1에 해당하는 점수를 누적한다.
그런 다음, 소스 코드 평가부(130)는 컴파일 프로그램에 채점용 데이터 2의 채점용 입력 데이터 4를 입력하여 출력 데이터를 획득하고, 출력 데이터가 채점용 데이터 4의 정답 출력 데이터(1, 2, 4)와 동일하면 채점용 데이터 2에 해당하는 점수를 누적한다.
상기의 예에서와 같이, 소스 코드 평가부(130)는 컴파일 미리 생성된 복수의 채점용 데이터 각각을 적용하여 소스 코드의 점수를 결정할 수 있는 것이다.
녹화부(140)는 소스 코드 입력 화면에 소스 코드가 입력되는 과정을 녹화하여 녹화 파일을 생성한다. 이러한 녹화 파일은 해당 회사 단말에 제공되어 회사 담당자가 개발자의 소스 코드 입력 과정을 모니터링할 수 있도록 한다.
제어부(150)는 프로그램 개발자 테스트 서비스 제공 서버(100)의 다른 구성 요소들을 제어하여 프로그램 개발자 테스트 서비스를 제공한다.
도 3은 본 발명에 따른 프로그램 개발자 테스트 서비스 제공 방법의 일 실시예를 설명하기 위한 흐름도이다.
도 3을 참조하면, 프로그램 개발자 테스트 서비스 제공 서버(100)는 개발자 테스트 로그인 인터페이스를 통해 테스트 응시 정보가 입력되면(단계 S310), 본인 정보를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 제공한다(단계 S320).
프로그램 개발자 테스트 서비스 제공 서버(100)는 실행 정보를 통해 개발자 테스트 프로그램이 실행되면(단계 S330), 문제를 표시하는 문제 화면 및 상기 문제 화면 상의 문제를 해결하기 위한 소스 코드가 입력되는 소스 코드 입력 화면을 포함하는 개발자 테스트 인터페이스를 제공한다(단계 S340).
프로그램 개발자 테스트 서비스 제공 서버(100)는 개발자 테스트 인터페이스를 통해 답안 제출이 요청되면(단계 S350), 소스 코드 입력 화면에 입력된 소스 코드를 평가하여 상기 소스 코드의 점수를 결정한다(단계 S360).
도 4는 본 발명에 따른 프로그램 개발자 테스트 서비스 제공 방법의 일 실시예를 설명하기 위한 흐름도이다.
도 4를 참조하면, 프로그램 개발자 테스트 서비스 제공 서버(100)는 개발자 테스트 인터페이스를 통해 답안 제출이 요청되면, 소스 코드 입력 화면에 입력된 소스 코드를 수신한다(단계 S410). 프로그램 개발자 테스트 서비스 제공 서버(100)는 상기 소스 코드를 컴파일하여 소스 코드를 실행할 수 있는 컴파일 프로그램을 생성한다(단계 S420).
프로그램 개발자 테스트 서비스 제공 서버(100)는 컴파일 프로그램에 복수의 채점용 데이터 각각의 채점용 입력 데이터를 입력하여 출력 데이터를 획득한다(단계 S430). 프로그램 개발자 테스트 서비스 제공 서버(100)는 출력 데이터가 복수의 채점용 데이터 각각의 채점용 입력 데이터에 대응되는 정답 출력 데이터와 동일한지 여부를 확인한다(단계 S440).
프로그램 개발자 테스트 서비스 제공 서버(100)는 출력 데이터가 복수의 채점용 데이터 각각의 채점용 입력 데이터에 대응되는 정답 출력 데이터와 동일하면(단계 S450), 미리 결정된 점수를 누적하여 소스 코드의 점수를 결정한다(단계 S460). 프로그램 개발자 테스트 서비스 제공 서버(100)는 소스 코드의 점수에 따라 해당 개발자를 평가한다(단계 S470).
도 5는 본 발명에 따른 개발자 테스트 로그인 인터페이스를 설명하기 위한 예시도이다.
도 5를 참조하면, 개발자를 채용하려는 회사가 프로그램 개발자 테스트 서비스 제공 서버(100)에 접속하여 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 생성할 수 있다. 프로그램 개발자 테스트 서비스 제공 서버(100)는 개발자 테스트 로그인 인터페이스를 통해 테스트 응시 정보가 입력되면, 본인 정보를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 제공한다.
예를 들어, 프로그램 개발자 테스트 서비스 제공 서버(100)는 개발자 테스트 로그인 인터페이스를 통해 이메일 주소가 입력되면, 이메일 주소를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 링크를 제공하며, 개발자가 이메일로 제공된 실행 링크를 클릭함에 따라 개발자 테스트 인터페이스를 제공할 수 있다.
도 6은 본 발명에 따른 개발자 테스트 인터페이스를 설명하기 위한 예시도이다.
도 6을 참조하면, 개발자 테스트 인터페이스는 문제를 표시하는 문제 화면(610) 및 상기 문제 화면(610) 상의 문제를 해결하기 위한 소스 코드가 입력되는 소스 코드 입력 화면을 포함한다.
이때, 문제 화면(610)에 표시되는 문제는 개발자의 실력을 판단하기 위한 개발자용 문제이며 회사에 의해 미리 결정되거나 문제 제공 서버에서 독출된 문제일 수 있다.
소스 코드 입력 화면(620)에는 개발자에 의해 문제를 해결하기 위한 소스 코드가 입력되면, 소스 코드를 표시한다. 이때, 소스 코드 입력 화면(620)에 입력되는 소스 코드는 개발자에 의해 미리 결정되거나 회사에 의해 미리 결정된 프로그래밍 언어를 기초로 작성될 수 있다.
이와 같이, 소스 코드 입력 화면에 소스 코드가 입력되는 과정은 녹화부(도 2, 140)에 의해 녹화되어 녹화 파일로 생성되며 이러한 녹화 파일은 해당 회사 단말에 제공되어 회사 담당자가 개발자의 소스 코드 입력 과정을 모니터링할 수 있도록 한다.
지금까지 본 발명에 따른 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안 되며, 후술하는 특허 청구의 범위뿐 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상과 같이 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
100: 개발자 테스트 서비스 제공 서버
110: 실행 정보 제공부
120: 개발자 테스트 인터페이스 제공부
130: 소스 코드 평가부
140: 녹화부
150: 제어부
200: 개발 분야 지원자 단말

Claims (12)

  1. 프로그램 개발자 테스트 서비스 제공 서버에서 실행되는 프로그램 개발자 테스트 서비스 제공 방법에 있어서,
    개발자 테스트 로그인 인터페이스를 통해 테스트 응시 정보가 입력되면, 본인 정보를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 제공하는 단계;
    상기 실행 정보를 통해 개발자 테스트 프로그램이 실행되면, 문제를 표시하는 문제 화면 및 상기 문제 화면 상의 문제를 해결하기 위한 소스 코드가 입력되는 소스 코드 입력 화면을 포함하는 개발자 테스트 인터페이스를 제공하는 단계; 및
    상기 개발자 테스트 인터페이스를 통해 답안 제출이 요청되면, 상기 소스 코드 입력 화면에 입력된 소스 코드를 평가하여 상기 소스 코드의 점수를 결정하는 단계를 포함하고,
    상기 소스 코드 입력 화면에 입력된 소스 코드를 평가하여 상기 소스 코드의 점수를 결정하는 단계는,
    상기 소스 코드를 컴파일하여 상기 소스 코드를 실행할 수 있는 컴파일 프로그램을 생성하는 단계; 및
    상기 컴파일 프로그램에 복수의 채점용 데이터를 적용하여 상기 소스 코드의 점수를 결정하는 단계를 포함하며,
    상기 채점용 데이터는, 채점용 입력 데이터 및 상기 채점용 입력 데이터가 상기 컴파일 프로그램에 입력될 시 출력되는 정답 출력 데이터를 포함하고,
    상기 컴파일 프로그램에 복수의 채점용 데이터를 적용하여 상기 소스 코드의 점수를 결정하는 단계는,
    상기 복수의 채점용 데이터 각각의 채점용 입력 데이터를 상기 컴파일 프로그램에 입력하여 출력 데이터를 획득하는 단계; 및
    상기 출력 데이터가 상기 복수의 채점용 데이터 각각의 채점용 입력 데이터에 대응되는 정답 출력 데이터와 동일한지 여부를 판단하여 정답 출력 데이터와 동일하면 미리 결정된 점수를 누적하여 상기 소스 코드의 점수를 결정하는 단계를 포함하며,
    상기 복수의 채점용 데이터는 n개로, 상기 채점용 데이터는 제1 채점용 입력 데이터 내지 제n 채점용 입력 데이터와 제1 정답 출력 데이터 내지 제n 정답 출력 데이터가 각각 대응되도록 포함하고,
    상기 컴파일 프로그램에 복수의 채점용 데이터를 적용하여 상기 소스 코드의 점수를 결정하는 단계는,
    상기 제n 채점용 입력 데이터를 상기 컴파일 프로그램에 입력하여 획득한 출력 데이터가 상기 제n 채점용 입력 데이터에 대응되도록 미리 설정된 상기 제n 정답 출력 데이터일 경우 미리 결정된 점수를 누적하는 과정을 n 번 반복하여 누적된 점수를 상기 소스 코드의 점수로 결정하고,
    상기 소스 코드 입력 화면에 입력된 소스 코드를 평가하여 상기 소스 코드의 점수를 결정하는 단계 후,
    개발 분야 지원자 별 소스 코드의 점수에 따라 개발 분야 지원자 각각의 순위를 결정하는 단계를 더 포함하고,
    상기 개발 분야 지원자 각각의 순위를 결정하는 단계는,
    개발 분야 지원자의 소스 코드의 점수가 동일하면 복수의 채점용 데이터 각각의 채점용 입력 데이터를 컴파일 프로그램에 입력하여 정답 출력 데이터가 출력될 때까지 소요되는 시간이 짧은 소스 코드를 작성한 개발 분야 지원자의 순위를 더 높게 결정하고,
    상기 컴파일 프로그램은 상기 개발 분야 지원자가 소지한 개발 분야 지원자 단말에 탑재되어, 상기 컴파일 프로그램에 샘플용 입력 데이터 및 샘플용 입력 데이터가 컴파일 프로그램에 입력될 시 출력되는 샘플용 정답 출력 데이터를 포함하는 특정 개수의 샘플용 데이터를 적용하여 그 결과를 표시함으로써 개발 분야 지원자가 소스 코드를 스스로 평가할 수 있도록 하되, 상기 컴파일 프로그램에 특정개수의 샘플용 데이터 각각의 샘플용 입력 데이터를 입력하여 획득한 샘플용 출력 데이터를 표시하여 상기 샘플용 출력 데이터가 상기 특정 개수의 샘플용 데이터 각각의 샘플용 입력 데이터에 대응되는 샘플용 정답 출력 데이터와 동일한지 여부를 확인할수 있도록 하는 것을 특징으로 하는
    프로그램 개발자 테스트 서비스 제공 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 소스 코드 입력 화면에 소스 코드가 입력되는 과정을 녹화하여 회사 단말에 제공하는 단계를 더 포함하는 것을 특징으로 하는
    프로그램 개발자 테스트 서비스 제공 방법.
  7. 프로그램 개발자 테스트 서비스 제공 서버에 있어서,
    개발자 테스트 로그인 인터페이스를 통해 테스트 응시 정보가 입력되면, 상기 테스트 응시 정보를 통해 개발자 테스트 프로그램을 실행할 수 있는 실행 정보를 제공하는 실행 정보 제공부;
    상기 실행 정보를 통해 개발자 테스트 프로그램이 실행되면, 문제를 표시하는 문제 화면 및 상기 문제 화면 상의 문제를 해결하기 위한 소스 코드가 입력되는 소스 코드 입력 화면을 포함하는 개발자 테스트 인터페이스를 제공하는 개발자 테스트 인터페이스 제공부; 및
    상기 개발자 테스트 인터페이스를 통해 답안 제출이 요청되면, 상기 소스 코드 입력 화면에 입력된 소스 코드를 평가하여 상기 소스 코드의 점수를 결정하는 소스 코드 평가부를 포함하고,
    상기 소스 코드 평가부는,
    상기 소스 코드를 컴파일하여 상기 소스 코드를 실행할 수 있는 컴파일 프로그램을 생성하고, 상기 컴파일 프로그램에 복수의 채점용 데이터를 적용하여 상기 소스 코드의 점수를 결정하며,
    상기 채점용 데이터는, 채점용 입력 데이터 및 상기 채점용 입력 데이터가 상기 컴파일 프로그램에 입력될 시 출력되는 정답 출력 데이터를 포함하고,
    상기 소스 코드 평가부는,
    상기 복수의 채점용 데이터 각각의 채점용 입력 데이터를 상기 컴파일 프로그램에 입력하여 출력 데이터를 획득하고, 상기 출력 데이터가 상기 복수의 채점용 데이터 각각의 채점용 입력 데이터에 대응되는 정답 출력 데이터와 동일한지 여부를 판단하여 정답 출력 데이터와 동일하면 미리 결정된 점수를 누적하여 상기 소스 코드의 점수를 결정하며,
    상기 복수의 채점용 데이터는 n개로, 상기 채점용 데이터는 제1 채점용 입력 데이터 내지 제n 채점용 입력 데이터와 제1 정답 출력 데이터 내지 제n 정답 출력 데이터가 각각 대응되도록 포함하고,
    상기 소스 코드 평가부는,
    상기 제n 채점용 입력 데이터를 상기 컴파일 프로그램에 입력하여 획득한 출력 데이터가 상기 제n 채점용 입력 데이터에 대응되도록 미리 설정된 상기 제n 정답 출력 데이터일 경우 미리 결정된 점수를 누적하는 과정을 n 번 반복하여 누적된 점수를 상기 소스 코드의 점수로 결정하고,
    상기 프로그램 개발자 테스트 서비스 제공 서버는,
    개발 분야 지원자 별 소스 코드의 점수에 따라 개발 분야 지원자 각각의 순위를 결정하되,
    개발 분야 지원자의 소스 코드의 점수가 동일하면 복수의 채점용 데이터 각각의 채점용 입력 데이터를 컴파일 프로그램에 입력하여 정답 출력 데이터가 출력될 때까지 소요되는 시간이 짧은 소스 코드를 작성한 개발 분야 지원자의 순위를 더 높게 결정하고,
    상기 컴파일 프로그램은 상기 개발 분야 지원자가 소지한 개발 분야 지원자 단말에 탑재되어, 상기 컴파일 프로그램에 샘플용 입력 데이터 및 샘플용 입력 데이터가 컴파일 프로그램에 입력될 시 출력되는 샘플용 정답 출력 데이터를 포함하는 특정 개수의 샘플용 데이터를 적용하여 그 결과를 표시함으로써 개발 분야 지원자가 소스 코드를 스스로 평가할 수 있도록 하되, 상기 컴파일 프로그램에 특정개수의 샘플용 데이터 각각의 샘플용 입력 데이터를 입력하여 획득한 샘플용 출력 데이터를 표시하여 상기 샘플용 출력 데이터가 상기 특정 개수의 샘플용 데이터 각각의 샘플용 입력 데이터에 대응되는 샘플용 정답 출력 데이터와 동일한지 여부를 확인할수 있도록 하는 것을 특징으로 하는
    프로그램 개발자 테스트 서비스 제공 서버.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 제7항에 있어서,
    상기 소스 코드 입력 화면에 소스 코드가 입력되는 과정을 녹화하여 회사 단말에 제공하는 녹화부를 더 포함하는 것을 특징으로 하는
    프로그램 개발자 테스트 서비스 제공 서버.

KR1020160003265A 2016-01-11 2016-01-11 프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버 KR101764890B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160003265A KR101764890B1 (ko) 2016-01-11 2016-01-11 프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160003265A KR101764890B1 (ko) 2016-01-11 2016-01-11 프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버

Publications (2)

Publication Number Publication Date
KR20170087075A KR20170087075A (ko) 2017-07-28
KR101764890B1 true KR101764890B1 (ko) 2017-08-04

Family

ID=59422143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160003265A KR101764890B1 (ko) 2016-01-11 2016-01-11 프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버

Country Status (1)

Country Link
KR (1) KR101764890B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102004486B1 (ko) 2019-01-21 2019-07-26 주식회사 종달랩 개발자의 코드 결과물을 이용한 자동화된 개발자 능력분석 시스템
KR102004489B1 (ko) 2019-01-21 2019-07-26 주식회사 종달랩 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102228117B1 (ko) * 2018-12-24 2021-03-17 주식회사 구름 온라인 이력 데이터 기반 프로그래머 역량 평가 방법 및 장치
KR102221228B1 (ko) * 2018-12-24 2021-03-03 주식회사 구름 코딩 테스트 및 채점 알고리즘 제공 방법
KR102373133B1 (ko) * 2019-12-16 2022-03-14 경북대학교 산학협력단 시뮬레이터를 이용한 임베디드 소프트웨어 자동 채점 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102004486B1 (ko) 2019-01-21 2019-07-26 주식회사 종달랩 개발자의 코드 결과물을 이용한 자동화된 개발자 능력분석 시스템
KR102004489B1 (ko) 2019-01-21 2019-07-26 주식회사 종달랩 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템

Also Published As

Publication number Publication date
KR20170087075A (ko) 2017-07-28

Similar Documents

Publication Publication Date Title
KR101764890B1 (ko) 프로그램 개발자 테스트 서비스 제공 방법 및 이를 실행하는 서버
Kochhar et al. Understanding the test automation culture of app developers
Böhme et al. Where is the bug and how is it fixed? an experiment with practitioners
Ramya et al. Testing using selenium web driver
Tómasdóttir et al. Why and how JavaScript developers use linters
Zaidman et al. Understanding Ajax applications by connecting client and server-side execution traces
Roehm et al. Monitoring user interactions for supporting failure reproduction
Matthijssen et al. Connecting traces: Understanding client-server interactions in ajax applications
Kang et al. Experience report: Detecting poor-responsive ui in android applications
WO2012056472A1 (en) System and method for testing programming skills
Leotta et al. A family of experiments to assess the impact of page object pattern in web test suite development
Chen et al. Evaluating human-assessed software maintainability metrics
US11119763B2 (en) Cognitive selection of software developer for software engineering task
da Costa Araújo et al. ARRESTT: A framework to create reproducible experiments to evaluate software testing techniques
Quental et al. Automating GUI response time measurements in mobile and web applications
Vieira et al. Metrics to measure the change impact in ATL model transformations
Silva Quality Assurance Framework for Low-Code Development Platforms
Do User-centered tool design for data-flow analysis.
Fischer et al. iTest: Using coverage measurements to improve test efficiency
Nilsson Implementation of a Continuous Integration and Continuous Delivery System for Cross-Platform Mobile Application Development
Matos et al. Watson: Web Application Interface Data Collector for Feedback Reporting
Singh et al. Selenium Broken Links Automation Testing
AU2018202545A1 (en) Communication Platform for Software Testing
Berggren An analysis and comparison of the Native mobile application versus the Progressive web application
Osipov Selecting C# Profiling tools

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)