KR20170044408A - 프로젝트의 추천 시스템 및 방법 - Google Patents

프로젝트의 추천 시스템 및 방법 Download PDF

Info

Publication number
KR20170044408A
KR20170044408A KR1020150144068A KR20150144068A KR20170044408A KR 20170044408 A KR20170044408 A KR 20170044408A KR 1020150144068 A KR1020150144068 A KR 1020150144068A KR 20150144068 A KR20150144068 A KR 20150144068A KR 20170044408 A KR20170044408 A KR 20170044408A
Authority
KR
South Korea
Prior art keywords
keyword
project
information
search index
recommendation
Prior art date
Application number
KR1020150144068A
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 KR1020150144068A priority Critical patent/KR20170044408A/ko
Publication of KR20170044408A publication Critical patent/KR20170044408A/ko

Links

Images

Classifications

    • G06F17/30442
    • G06F17/30321
    • G06F17/30424
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

프로젝트의 추천 시스템 및 방법이 제공된다. 본 발명의 일 실시예에 따른 프로젝트의 추천 시스템은, 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보로부터 하나 이상의 제1 키워드를 추출하고, 추출된 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하여 추천 자산 데이터베이스에 저장하는 전처리부; 및 사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물로부터 하나 이상의 제2 키워드를 추출하고, 추출된 상기 제2 키워드를 기반으로 상기 추천 자산 데이터베이스에 저장된 프로젝트에 관한 정보를 검색하여 상기 사용자 단말에 제공하는 추천부를 포함한다.

Description

프로젝트의 추천 시스템 및 방법{SYSTEM AND METHOD FOR RECOMMENDING PROJECT}
본 발명의 실시예들은 사용자에게 프로젝트를 효율적으로 추천하는 기술과 관련된다.
일반적으로, 개발자들은 소프트웨어, 응용 프로그램, 솔루션 등을 개발하기 위해 사내에서 재사용 가능한 소스 코드 또는 외부의 오픈 소스 코드를 수작업으로 일일이 검색한다.
그러나, 개발자들은 필요한 소스 코드를 모두 파악하는 데 어려움을 겪을 수 있으며, 소스 코드 검색을 위한 검색어를 어떻게 입력하여야 하는지에 대한 전문성을 갖추고 있지 않을 수 있다. 이 경우, 개발자들이 소스 코드를 수집하는 과정에서 시간 및 비용적 낭비가 발생하게 된다. 또한, 종래에는 개발자들이 수작업에 의해 소스 코드를 수집함으로써 수집된 소스 코드에 대한 검증을 할 수 없는 문제점이 있었다.
한국공개특허공보 제10-2009-0040297호(2009.04.23)
본 발명의 실시예들은 사용자가 제출한 소스 코드 또는 프로젝트 산출물을 분석하여 사용자에게 프로젝트에 관한 정보를 추천하기 위한 수단을 제공하기 위한 것이다.
본 발명의 예시적인 실시예에 따르면, 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보로부터 하나 이상의 제1 키워드를 추출하고, 추출된 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하여 추천 자산 데이터베이스에 저장하는 전처리부; 및 사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물로부터 하나 이상의 제2 키워드를 추출하고, 추출된 상기 제2 키워드를 기반으로 상기 추천 자산 데이터베이스에 저장된 프로젝트에 관한 정보를 검색하여 상기 사용자 단말에 제공하는 추천부를 포함하는, 프로젝트의 추천 시스템이 제공된다.
상기 전처리부는, 상기 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보에 포함된 키워드 중 빈도수가 설정된 횟수 이상이며 설정된 제외 키워드에 해당하지 않는 키워드를 상기 제1 키워드로 추출할 수 있다.
상기 전처리부는, 추출된 상기 제1 키워드를 기반으로 설정된 자산 데이터베이스를 검색하여 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하고, 상기 제1 키워드 및 상기 프로젝트의 리스트를 매칭시켜 검색 인덱스를 생성하며, 상기 검색 인덱스를 상기 추천 자산 데이터베이스에 저장할 수 있다.
상기 추천부는, 추출된 상기 제2 키워드와 상기 검색 인덱스와의 유사도를 계산하고, 상기 검색 인덱스 중 상기 유사도가 설정된 값 이상인 검색 인덱스를 선별하고, 선별된 상기 검색 인덱스에 대응되는 프로젝트에 관한 정보를 상기 사용자 단말에 제공할 수 있다.
상기 추천부는, 선별된 상기 검색 인덱스를 상기 유사도에 따라 스코어링(scoring)하고, 상기 스코어링에 관한 정보를 상기 사용자 단말에 제공할 수 있다.
상기 추천부는, 상기 유사도가 설정된 값 이상인 검색 인덱스가 존재하지 않는 경우 상기 제2 키워드와 상기 사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물에 관한 정보를 매칭시켜 신규 검색 인덱스를 생성하고, 상기 신규 검색 인덱스를 상기 추천 자산 데이터베이스에 저장할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 전처리부에서, 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보로부터 하나 이상의 제1 키워드를 추출하는 단계; 상기 전처리부에서, 추출된 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하여 추천 자산 데이터베이스에 저장하는 단계; 추천부에서, 사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물로부터 하나 이상의 제2 키워드를 추출하는 단계; 및 상기 추천부에서, 추출된 상기 제2 키워드를 기반으로 상기 추천 자산 데이터베이스에 저장된 프로젝트에 관한 정보를 검색하여 상기 사용자 단말에 제공하는 단계를 포함하는, 프로젝트의 추천 방법이 제공된다.
상기 제1 키워드를 추천하는 단계는, 상기 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보에 포함된 키워드 중 빈도수가 설정된 횟수 이상이며 설정된 제외 키워드에 해당하지 않는 키워드를 상기 제1 키워드로 추출할 수 있다.
상기 추천 자산 데이터베이스에 저장하는 단계는, 추출된 상기 제1 키워드를 기반으로 설정된 자산 데이터베이스를 검색하여 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하고, 상기 제1 키워드 및 상기 프로젝트의 리스트를 매칭시켜 검색 인덱스를 생성하며, 상기 검색 인덱스를 상기 추천 자산 데이터베이스에 저장할 수 있다.
상기 사용자 단말에 제공하는 단계는, 추출된 상기 제2 키워드와 상기 검색 인덱스와의 유사도를 계산하고, 상기 검색 인덱스 중 상기 유사도가 설정된 값 이상인 검색 인덱스를 선별하고, 선별된 상기 검색 인덱스에 대응되는 프로젝트에 관한 정보를 상기 사용자 단말에 제공할 수 있다.
상기 프로젝트의 추천 방법은, 상기 추천부에서, 선별된 상기 검색 인덱스를 상기 유사도에 따라 스코어링(scoring)하는 단계; 및 상기 추천부에서, 상기 스코어링에 관한 정보를 상기 사용자 단말에 제공하는 단계를 더 포함할 수 있다.
상기 프로젝트의 추천 방법은, 상기 추천부에서, 상기 유사도가 설정된 값 이상인 검색 인덱스가 존재하지 않는 경우 상기 제2 키워드와 상기 사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물에 관한 정보를 매칭시켜 신규 검색 인덱스를 생성하는 단계; 및 상기 추천부에서, 상기 신규 검색 인덱스를 상기 추천 자산 데이터베이스에 저장하는 단계를 더 포함할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 하드웨어와 결합되어 전처리부에서, 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보로부터 하나 이상의 제1 키워드를 추출하는 단계; 상기 전처리부에서, 추출된 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하여 추천 자산 데이터베이스에 저장하는 단계; 추천부에서, 사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물로부터 하나 이상의 제2 키워드를 추출하는 단계; 및 상기 추천부에서, 추출된 상기 제2 키워드를 기반으로 상기 추천 자산 데이터베이스에 저장된 프로젝트에 관한 정보를 검색하여 상기 사용자 단말에 제공하는 단계를 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램이 제공된다.
본 발명의 실시예들에 따르면, 사용자가 제출한 소스 코드 또는 프로젝트 산출물로부터 키워드를 추출하고 추출된 키워드와 기 저장된 검색 인덱스와의 유사도를 계산함으로써, 사용자에게 필요한 프로젝트에 관한 정보를 효율적으로 추천할 수 있다.
또한, 본 발명의 실시예들에 따르면, 추천 프로젝트에 관한 정보가 저장되어 있지 않은 경우 사용자로부터 제출된 소스 코드 또는 프로젝트 산출물에 관한 정보를 저장하여 다음 번 추천 과정에서 사용하도록 함으로써, 프로젝트 자원을 효율적으로 재사용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 프로젝트의 추천 시스템의 상세 구성을 나타낸 블록도
도 2는 본 발명의 일 실시예에 따른 전처리부에서 검색 인덱스를 생성하는 과정을 설명하기 위한 도면
도 3은 본 발명의 일 실시예에 따른 프로젝트의 추천 방법을 설명하기 위한 흐름도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 프로젝트의 추천 시스템(100)의 상세 구성을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 프로젝트의 추천 시스템(100)은 전처리부(102), 추천부(104), 내부 자산 데이터베이스(106) 및 추천 자산 데이터베이스(110)를 포함한다. 상기 프로젝트 추천 시스템(100)은 사용자 단말(150)과 유, 무선 네트워크를 통해 연결될 수 있으며, 상기 사용자 단말(150)은 사용자 또는 개발자가 소지하는 단말로서 예를 들어, 데스크톱, 노트북, 스마트폰, PDA 등이 될 수 있다.
전처리부(102)는 프로젝트 추천을 위한 전처리(선행) 작업을 수행하는 모듈이다. 여기서, 프로젝트란 소프트웨어, 응용 프로그램, 솔루션 등을 개발하는 데 사용되는 소스 코드, 부분 프로그램 또는 파일들의 모음으로서, 예를 들어 라이브러리(library)일 수 있다.
전처리부(102)는 먼저, 내부 자산 데이터베이스(106)에 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보로부터 하나 이상의 제1 키워드를 추출할 수 있다. 여기서, 프로젝트 산출물은 프로젝트를 개발하는 과정에서 발생되는 각종 문서 파일로서, 예를 들어 요구 사항 정의서, 사용자 스토리, 분석 명세서, 설계 명세서, 시험 계획서, 시험 결과서 등의 파일일 수 있다. 사내 임직원은 프로젝트를 개발하는 단계 또는 개발 완료 단계에서 사용자 단말(150)을 통해 소스 코드, 프로젝트 산출물 등을 내부 자산 데이터베이스(106)에 제출할 수 있으며, 내부 자산 데이터베이스(106)에 저장된 정보들은 전처리부(102)에서 프로젝트 추천을 위한 전처리 작업을 수행하는 데 사용될 수 있다.
구체적으로, 전처리부(102)는 내부 자산 데이터베이스(106)에 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보에 포함된 키워드 중 빈도수가 설정된 횟수 이상(예를 들어, 5회 이상)인 키워드를 선별하고, 선별된 키워드 중 설정된 제외 키워드(스탑워드 ; stop word)를 제거함으로써 제1 키워드를 추출할 수 있다. 여기서, 제외 키워드는 예를 들어, 자바, C언어 등에서의 예약어(예를 들어, class, function 등), 관사, 조사 및 대명사 등이 될 수 있으며, 또한 관리자에 의해 수작업으로 설정된 키워드일 수도 있다.
전처리부(102)는 추출된 제1 키워드를 기반으로 자산 데이터베이스(106, 108)를 검색하여 제1 키워드에 대응되는 프로젝트의 리스트를 수집할 수 있다. 이때, 전처리부(102)는 제1 키워드에 대응되는 프로젝트의 리스트를 수집하기 위해 내부 자산 데이터베이스(106) 또는 외부 자산 데이터베이스(108)를 검색할 수 있다. 내부 자산 데이터베이스(106)는 사내 임직원에 의해 업로드되는 자산, 즉 소스 코드, 프로젝트 산출물에 관한 정보가 저장되는 저장소로서, 사내 임직원만이 접근할 수 있다. 여기서, 소스 코드에 관한 정보는 소스 코드, 소스 코드의 이름, 소스 코드의 개발자에 의해 작성된 코멘트 등을 모두 포함하는 넓은 의미로 사용된다. 또한, 프로젝트 산출물에 관한 정보는 요구 사항 정의서, 사용자 스토리 등과 같은 프로젝트 산출물, 프로젝트 산출물에서 사용자 또는 개발자에 의해 작성된 주석, 코멘트 등을 모두 포함하는 넓은 의미로 사용된다. 또한, 외부 자산 데이터베이스(108)는 예를 들어, 구글, 깃허브(Gitbub), 트위터 등과 같이 각종 자료를 검색하는 데 사용되는 온라인 상의 공간을 의미한다. 상기 외부 자산 데이터베이스(108)는 사내 임직원뿐 아니라 일반인들이 손쉽게 접근할 수 있다.
전처리부(102)는 예를 들어, 검색 API를 이용하여 자산 데이터베이스(106, 108)를 검색하여 제1 키워드에 대응되는 프로젝트의 리스트를 수집할 수 있다. 상기 프로젝트의 리스트는 예를 들어, 프로젝트의 이름, 개발자, 목적, 요약 및 상기 프로젝트의 접근 유알엘(URL) 등과 같은 프로젝트에 관한 메타 데이터를 하나 이상 포함할 수 있다. 전처리부(102)는 예를 들어, 제1 키워드가 설정된 횟수 이상 포함된 프로젝트를 검색하여 상기 프로젝트의 리스트를 수집할 수 있다. 다만, 전처리부(102)의 프로젝트 리스트 수집 방법이 이에 한정되는 것은 아니며, 전처리부(102)는 상용화된 다양한 검색 엔진을 이용하여 제1 키워드에 대응되는 프로젝트의 리스트를 수집할 수 있다.
이때, 전처리부(102)는 프로젝트에 대한 사용자 또는 개발자의 평가 의견에 가중치를 부여하여 제1 키워드에 대응되는 프로젝트의 리스트를 수집할 수 있다. 예를 들어, 전처리부(102)는 검색된 제1 키워드에 대응되는 복수의 프로젝트 중 사용자 또는 개발자에 의해 좋은 평가(예를 들어, 깃허브의 “스타”, 트위터의 “좋아요” 등)를 5회 이상 받은 프로젝트의 리스트를 최종적으로 수집할 수 있다.
다음으로, 전처리부(102)는 추출된 제1 키워드 및 프로젝트의 리스트를 매칭시켜 검색 인덱스를 생성하고, 생성된 검색 인덱스를 추천 자산 데이터베이스(110)에 저장할 수 있다. 일 예시로서, 전처리부(102)는 추출된 제1 키워드와 프로젝트의 이름을 매칭시켜 검색 인덱스를 생성할 수 있다. 다른 예시로서, 전처리부(102)는 추출된 제1 키워드와 프로젝트의 요약 정보를 매칭시켜 검색 인덱스를 생성할 수도 있다. 상기 검색 인덱스는 후술할 바와 같이 추천부(104)에서 프로젝트에 관한 정보를 추출하는 데 사용될 수 있다. 추천부(104)는 제2 키워드와 추천 자산 데이터베이스(110)에 저장된 검색 인덱스와의 유사도를 계산하여 프로젝트에 관한 정보를 추출할 수 있다.
추천부(104)는 전처리부(102)에서의 전처리 작업에 기초하여 사용자에게 프로젝트에 관한 정보를 추천하는 모듈이다. 먼저, 사용자 단말(150)로부터 내부 자산 데이터베이스(106)로 소스 코드 또는 프로젝트 산출물이 제출되는 경우, 추천부(104)는 실시간으로 또는 주기적으로(예를 들어, 이틀에 한번) 내부 자산 데이터베이스(106)로부터 자산 제출의 알림 메시지를 수신할 수 있다. 일 예시로서, 사용자 단말(150)로부터 내부 자산 데이터베이스(106)로 소스 코드 또는 프로젝트 산출물이 제출됨으로써 내부 자산 데이터베이스(106)에 변경이 발생하는 경우, 내부 자산 데이터베이스(106)는 트리거(trigger)를 이용하여 자산이 제출되었음을 추천부(104)에 알릴 수 있다. 또한, 내부 자산 데이터베이스(106)는 훅(hook), 워치 클라이언트(watch client) 등을 이용하여 자산이 제출되었음을 추천부(104)에 알릴 수도 있다.
다음으로, 추천부(104)는 사용자 단말(150)로부터 제출된 소스 코드 또는 프로젝트 산출물로부터 하나 이상의 제2 키워드를 추출할 수 있다. 추천부(104)는 전처리부(102)가 제1 키워드를 추출한 방법과 동일한 방법으로 제2 키워드를 추출할 수 있다. 즉, 추천부(104)는 사용자 단말(150)로부터 제출된 소스 코드 또는 프로젝트 산출물에 포함된 키워드 중 빈도수가 설정된 횟수 이상이며 설정된 제외 키워드에 해당하지 않는 키워드를 상기 제2 키워드로 추출할 수 있다. 상기 제외 키워드는 예를 들어, 자바, C언어 등의 예약어(예를 들어, class, function 등), 관사, 조사 및 대명사 등이 될 수 있으며, 또한 관리자에 의해 수작업으로 설정된 키워드일 수도 있다.
다음으로, 추천부(104)는 추출된 제2 키워드를 기반으로 추천 자산 데이터베이스(110)에 저장된 프로젝트에 관한 정보를 검색할 수 있다. 구체적으로, 추천부(104)는 추출된 제2 키워드와 추천 자산 데이터베이스(110)에 저장된 검색 인덱스와의 유사도를 계산하고, 상기 검색 인덱스 중 제2 키워드와의 유사도가 설정된 값 이상인 검색 인덱스를 선별하고, 선별된 상기 검색 인덱스에 대응되는 프로젝트에 관한 정보를 검색할 수 있다. 추천부(104)는 상용화된 검색 엔진, 예를 들어 엘라스틱 서치(Elastic search) 등을 이용하여 제2 키워드와 검색 인덱스와의 유사도를 계산하고, 설정된 값 이상의 유사도를 갖는 검색 인덱스에 대응되는 프로젝트에 관한 정보를 검색할 수 있다. 여기서, 프로젝트에 관한 정보는 상술한 메타 데이터, 예를 들어 프로젝트의 이름, 개발자, 목적, 요약 및 상기 프로젝트의 접근 유알엘(URL) 등이 될 수 있다. 이후, 추천부(104)는 선별된 상기 검색 인덱스에 대응되는 프로젝트에 관한 정보를 사용자 단말(150)에 제공할 수 있다. 추천부(104)는 예를 들어, 이메일, 푸시 메시지 등을 통해 상기 프로젝트에 관한 정보를 실시간으로 또는 주기적으로(예를 들어, 이틀에 한번) 사용자 단말(150)에 제공할 수 있다.
또한, 추천부(104)는 제2 키워드와 설정된 값 이상의 유사도를 갖는 검색 인덱스들을 상기 유사도에 따라 스코어링(scoring)하고, 상기 스코어링에 관한 정보를 상기 프로젝트에 관한 정보와 함께 사용자 단말(150)에 제공할 수 있다. 예를 들어, 추천부(104)는 제2 키워드와의 유사도가 높을수록 높은 스코어를 갖도록 상기 검색 인덱스들을 스코어링할 수 있다. 즉, 본 발명의 실시예들에 따르면, 추출된 키워드와의 유사도가 높은 프로젝트에 관한 정보를 사용자에게 제공함으로써, 사용자에게 관련 프로젝트를 보다 효율적으로 추천할 수 있다.
또한, 추천부(104)는 제2 키워드와 검색 인덱스간의 유사도 및 상기 검색 인덱스에 관한 사용자 또는 개발자의 평가 의견을 고려하여 상기 검색 인덱스들을 스코어링하고, 상기 스코어링에 관한 정보를 상기 프로젝트에 관한 정보와 함께 사용자 단말(150)에 제공할 수도 있다. 예를 들어, 추천부(104)는 제2 키워드와의 유사도가 높을수록 높은 스코어를 갖도록 상기 검색 인덱스들을 스코어링하되, 사용자 또는 개발자로부터 좋은 평가를 설정된 횟수(예를 들어, 5회) 이상 받은 프로젝트에 관한 검색 인덱스들이 더 높은 스코어를 갖도록 가중치를 부여할 수 있다.
또한, 추천부(104)는 제2 키워드와의 유사도가 높을수록 높은 스코어를 갖도록 상기 검색 인덱스들을 스코어링하되, 관리자에 의해 설정된 프로젝트에 관한 검색 인덱스들이 더 높은 스코어를 갖도록 가중치를 부여할 수 있다. 상기 관리자에 의해 설정된 프로젝트는 예를 들어, 설정된 기간 동안 재사용이 많이 되는 프로젝트일 수 있으며, 또한 관리자에 의해 수작업으로 선정될 수도 있다.
또한, 상기 유사도가 설정된 값 이상인 검색 인덱스가 추천 자산 데이터베이스(110)에 존재하지 않는 경우, 추천부(104)는 추출된 제2 키워드와 사용자 단말(150)로부터 제출된 소스 코드 또는 프로젝트 산출물에 관한 정보를 매칭시켜 신규 검색 인덱스를 생성하고, 상기 신규 검색 인덱스를 추천 자산 데이터베이스(110)에 저장할 수 있다. 즉, 추천부(104)는 추천 자산 데이터베이스(110)에 추천 프로젝트에 관한 정보가 존재하지 않는 경우 사용자 단말(150)로부터 제출된 소스 코드 또는 프로젝트 산출물에 관한 정보를 제2 키워드와 매칭시켜 추천 자산 데이터베이스(110)에 저장함으로써, 사용자 단말(150)로부터 제출된 소스 코드 또는 프로젝트 산출물이 다음 번에 재사용될 수 있도록 할 수 있다.
내부 자산 데이터베이스(106)는 사내 임직원이 프로젝트를 개발하는 단계 또는 개발 완료 단계에서 사용자 단말(150)을 통해 제출한 소스 코드, 프로젝트 산출물 등이 저장되는 저장소(또는 파일 서버)이다. 전처리부(102)는 내부 자산 데이터베이스(106)에 저장된 정보로부터 제1 키워드를 추출하고, 상기 제1 키워드를 이용하여 프로젝트의 리스트를 수집할 수 있다.
추천 자산 데이터베이스(110)는 전처리부(102)에서 생성된 검색 인덱스가 저장되는 저장소이다. 상술한 바와 같이, 전처리부(102)는 내부 자산 데이터베이스(106)에 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보로부터 하나 이상의 제1 키워드를 추출하고, 추출된 제1 키워드에 대응되는 프로젝트의 리스트를 수집하여 검색 인덱스를 생성할 수 있다. 추천 자산 데이터베이스(110)에 저장된 검색 인덱스는 추천부(104)에서 프로젝트에 관한 정보를 추출하는 데 사용될 수 있다. 추천부(104)는 제2 키워드와 추천 자산 데이터베이스(110)에 저장된 검색 인덱스와의 유사도를 계산하여 프로젝트에 관한 정보를 추출할 수 있다.
일 실시예에서, 전처리부(102), 추천부(104), 내부 자산 데이터베이스(106) 및 추천 자산 데이터베이스(110)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
도 2는 본 발명의 일 실시예에 따른 전처리부(102)에서 검색 인덱스를 생성하는 과정을 설명하기 위한 도면이다. 도 2에 도시된 바와 같이, 사내에는 하나 이상의 내부 자산 데이터베이스(106)가 존재할 수 있다.
먼저, 전처리부(102)는 내부 자산 데이터베이스(106)에 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보에 포함된 키워드 중 빈도수가 설정된 횟수 이상인 키워드를 선별하고, 선별된 키워드 중 설정된 제외 키워드(스탑워드)를 제거함으로써 제1 키워드를 추출할 수 있다.
다음으로, 전처리부(102)는 추출된 상기 제1 키워드를 기반으로 내부 자산 데이터베이스(106) 또는 외부 자산 데이터베이스(108)를 검색하여 제1 키워드에 대응되는 프로젝트의 리스트를 수집하고, 수집된 프로젝트에 관한 메타 데이터를 확보할 수 있다. 상기 프로젝트의 리스트는 예를 들어, 프로젝트의 이름, 개발자, 목적, 요약 및 상기 프로젝트의 접근 유알엘(URL) 등을 포함할 수 있으며, 프로젝트의 리스트에 포함된 각각의 정보가 상기 프로젝트에 관한 메타 데이터일 수 있다. 전처리부(102)는 제1 키워드 및 프로젝트의 리스트(또는 프로젝트의 리스트에 포함된 메타 데이터)를 매칭시켜 검색 인덱스를 생성할 수 있다. 일 예시로서, 전처리부(102)는 추출된 제1 키워드와 프로젝트의 이름을 매칭시켜 검색 인덱스를 생성할 수 있다. 다른 예시로서, 전처리부(102)는 추출된 제1 키워드와 프로젝트의 요약 정보를 매칭시켜 검색 인덱스를 생성할 수도 있다. 전처리부(102)는 검색 인덱스를 추천 자산 데이터베이스(110)에 저장할 수 있으며, 추천 자산 데이터베이스(110)에 저장된 검색 인덱스는 추천부(104)에서 프로젝트에 관한 정보를 추출하는 데 사용될 수 있다.
도 3은 본 발명의 일 실시예에 따른 프로젝트의 추천 방법을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
먼저, 전처리부(102)는 추천 자산 데이터베이스(108)를 구성한다(S302). 구체적으로, 전처리부(102)는 내부 자산 데이터베이스(106)에 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보로부터 하나 이상의 제1 키워드를 추출하고, 추출된 제1 키워드에 대응되는 프로젝트의 리스트를 수집하여 추천 자산 데이터베이스(108)를 구성할 수 있다.
다음으로, 사용자 단말(150)은 사용자의 입력에 따라 소스 코드 또는 프로젝트 산출물을 내부 자산 데이터베이스(106)에 제출한다(S304). 내부 자산 데이터베이스(106)는 사용자 단말(150)의 소스 코드 또는 프로젝트 산출물의 제출에 따라 자산 제출의 알림 메시지를 추천부(104)로 전송할 수 있다.
다음으로, 추천부(104)는 사용자 단말(150)로부터 제출된 소스 코드 또는 프로젝트 산출물로부터 하나 이상의 제2 키워드를 추출한다(S306). 추천부(104)는 사용자 단말(150)로부터 제출된 소스 코드 또는 프로젝트 산출물에 포함된 키워드 중 빈도수가 설정된 횟수 이상이며 설정된 제외 키워드에 해당하지 않는 키워드를 상기 제2 키워드로 추출할 수 있다.
다음으로, 추천부(104)는 추출된 제2 키워드를 기반으로 추천 자산 데이터베이스(110)에 저장된 프로젝트에 관한 정보를 검색하고(S308), 추천 자산이 존재하는지의 여부를 판단한다(S310). 구체적으로, 추천부(104)는 제2 키워드와 추천 자산 데이터베이스(110)에 저장된 검색 인덱스와의 유사도를 계산하고, 상기 검색 인덱스 중 상기 유사도가 설정된 값 이상인 검색 인덱스를 선별함으로써 추천 자산이 존재하는지의 여부를 판단할 수 있다.
만약, S310 단계에서, 추천 자산이 존재하는 것으로 판단되는 경우, 추천부(104)는 선별된 검색 인덱스에 대응되는 프로젝트에 관한 정보를 사용자 단말(150)로 전송한다(S312).
만약, S310 단계에서, 추천 자산이 존재하지 않는 것으로 판단되는 경우, 추천부(104)는 신규 검색 인덱스를 생성한다(S314). 구체적으로, 추천부(104)는 제2 키워드와 사용자 단말(150)로부터 제출된 소스 코드 또는 프로젝트 산출물에 관한 정보를 매칭시켜 신규 검색 인덱스를 생성할 수 있다. 추천부(104)는 생성된 상기 신규 검색 인덱스를 추천 자산 데이터베이스(110)에 저장함으로써 사용자 단말(150)로부터 제출된 소스 코드 또는 프로젝트 산출물이 다음 번에 재사용될 수 있도록 할 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100 : 프로젝트의 추천 시스템
102 : 전처리부
104 : 추천부
106 : 내부 자산 데이터베이스
108 : 외부 자산 데이터베이스
110 : 추천 자산 데이터베이스
150 : 사용자 단말

Claims (13)

  1. 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보로부터 하나 이상의 제1 키워드를 추출하고, 추출된 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하여 추천 자산 데이터베이스에 저장하는 전처리부; 및
    사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물로부터 하나 이상의 제2 키워드를 추출하고, 추출된 상기 제2 키워드를 기반으로 상기 추천 자산 데이터베이스에 저장된 프로젝트에 관한 정보를 검색하여 상기 사용자 단말에 제공하는 추천부를 포함하는, 프로젝트의 추천 시스템.
  2. 청구항 1에 있어서,
    상기 전처리부는, 상기 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보에 포함된 키워드 중 빈도수가 설정된 횟수 이상이며 설정된 제외 키워드에 해당하지 않는 키워드를 상기 제1 키워드로 추출하는, 프로젝트의 추천 시스템.
  3. 청구항 1에 있어서,
    상기 전처리부는, 추출된 상기 제1 키워드를 기반으로 설정된 자산 데이터베이스를 검색하여 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하고, 상기 제1 키워드 및 상기 프로젝트의 리스트를 매칭시켜 검색 인덱스를 생성하며, 상기 검색 인덱스를 상기 추천 자산 데이터베이스에 저장하는, 프로젝트의 추천 시스템.
  4. 청구항 3에 있어서,
    상기 추천부는, 추출된 상기 제2 키워드와 상기 검색 인덱스와의 유사도를 계산하고, 상기 검색 인덱스 중 상기 유사도가 설정된 값 이상인 검색 인덱스를 선별하고, 선별된 상기 검색 인덱스에 대응되는 프로젝트에 관한 정보를 상기 사용자 단말에 제공하는, 프로젝트의 추천 시스템.
  5. 청구항 4에 있어서,
    상기 추천부는, 선별된 상기 검색 인덱스를 상기 유사도에 따라 스코어링(scoring)하고, 상기 스코어링에 관한 정보를 상기 사용자 단말에 제공하는, 프로젝트의 추천 시스템.
  6. 청구항 4에 있어서,
    상기 추천부는, 상기 유사도가 설정된 값 이상인 검색 인덱스가 존재하지 않는 경우 상기 제2 키워드와 상기 사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물에 관한 정보를 매칭시켜 신규 검색 인덱스를 생성하고, 상기 신규 검색 인덱스를 상기 추천 자산 데이터베이스에 저장하는, 프로젝트의 추천 시스템.
  7. 전처리부에서, 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보로부터 하나 이상의 제1 키워드를 추출하는 단계;
    상기 전처리부에서, 추출된 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하여 추천 자산 데이터베이스에 저장하는 단계;
    추천부에서, 사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물로부터 하나 이상의 제2 키워드를 추출하는 단계; 및
    상기 추천부에서, 추출된 상기 제2 키워드를 기반으로 상기 추천 자산 데이터베이스에 저장된 프로젝트에 관한 정보를 검색하여 상기 사용자 단말에 제공하는 단계를 포함하는, 프로젝트의 추천 방법.
  8. 청구항 7에 있어서,
    상기 제1 키워드를 추천하는 단계는, 상기 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보에 포함된 키워드 중 빈도수가 설정된 횟수 이상이며 설정된 제외 키워드에 해당하지 않는 키워드를 상기 제1 키워드로 추출하는, 프로젝트의 추천 방법.
  9. 청구항 7에 있어서,
    상기 추천 자산 데이터베이스에 저장하는 단계는, 추출된 상기 제1 키워드를 기반으로 설정된 자산 데이터베이스를 검색하여 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하고, 상기 제1 키워드 및 상기 프로젝트의 리스트를 매칭시켜 검색 인덱스를 생성하며, 상기 검색 인덱스를 상기 추천 자산 데이터베이스에 저장하는, 프로젝트의 추천 방법.
  10. 청구항 9에 있어서,
    상기 사용자 단말에 제공하는 단계는, 추출된 상기 제2 키워드와 상기 검색 인덱스와의 유사도를 계산하고, 상기 검색 인덱스 중 상기 유사도가 설정된 값 이상인 검색 인덱스를 선별하고, 선별된 상기 검색 인덱스에 대응되는 프로젝트에 관한 정보를 상기 사용자 단말에 제공하는, 프로젝트의 추천 방법.
  11. 청구항 10에 있어서,
    상기 추천부에서, 선별된 상기 검색 인덱스를 상기 유사도에 따라 스코어링(scoring)하는 단계; 및
    상기 추천부에서, 상기 스코어링에 관한 정보를 상기 사용자 단말에 제공하는 단계를 더 포함하는, 프로젝트의 추천 방법.
  12. 청구항 10에 있어서,
    상기 추천부에서, 상기 유사도가 설정된 값 이상인 검색 인덱스가 존재하지 않는 경우 상기 제2 키워드와 상기 사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물에 관한 정보를 매칭시켜 신규 검색 인덱스를 생성하는 단계; 및
    상기 추천부에서, 상기 신규 검색 인덱스를 상기 추천 자산 데이터베이스에 저장하는 단계를 더 포함하는, 프로젝트의 추천 방법.
  13. 하드웨어와 결합되어
    전처리부에서, 기 저장된 소스 코드 또는 프로젝트 산출물에 관한 정보로부터 하나 이상의 제1 키워드를 추출하는 단계;
    상기 전처리부에서, 추출된 상기 제1 키워드에 대응되는 프로젝트의 리스트를 수집하여 추천 자산 데이터베이스에 저장하는 단계;
    추천부에서, 사용자 단말로부터 제출된 소스 코드 또는 프로젝트 산출물로부터 하나 이상의 제2 키워드를 추출하는 단계; 및
    상기 추천부에서, 추출된 상기 제2 키워드를 기반으로 상기 추천 자산 데이터베이스에 저장된 프로젝트에 관한 정보를 검색하여 상기 사용자 단말에 제공하는 단계
    를 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
KR1020150144068A 2015-10-15 2015-10-15 프로젝트의 추천 시스템 및 방법 KR20170044408A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150144068A KR20170044408A (ko) 2015-10-15 2015-10-15 프로젝트의 추천 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150144068A KR20170044408A (ko) 2015-10-15 2015-10-15 프로젝트의 추천 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20170044408A true KR20170044408A (ko) 2017-04-25

Family

ID=58703353

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150144068A KR20170044408A (ko) 2015-10-15 2015-10-15 프로젝트의 추천 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20170044408A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116362761A (zh) * 2023-03-06 2023-06-30 北京三维天地科技股份有限公司 基于数据聚合推荐算法的检验检测机构推荐方法及系统
CN117649300A (zh) * 2024-01-29 2024-03-05 山东新睿信息科技有限公司 一种基于数字孪生的资产分配管理方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116362761A (zh) * 2023-03-06 2023-06-30 北京三维天地科技股份有限公司 基于数据聚合推荐算法的检验检测机构推荐方法及系统
CN116362761B (zh) * 2023-03-06 2024-04-05 北京三维天地科技股份有限公司 基于数据聚合推荐算法的检验检测机构推荐方法及系统
CN117649300A (zh) * 2024-01-29 2024-03-05 山东新睿信息科技有限公司 一种基于数字孪生的资产分配管理方法及系统
CN117649300B (zh) * 2024-01-29 2024-04-30 山东新睿信息科技有限公司 一种基于数字孪生的资产分配管理方法及系统

Similar Documents

Publication Publication Date Title
JP7282940B2 (ja) 電子記録の文脈検索のためのシステム及び方法
US10169337B2 (en) Converting data into natural language form
Noei et al. Too many user-reviews! what should app developers look at first?
US8577884B2 (en) Automated analysis and summarization of comments in survey response data
US9703536B2 (en) Debugging code using a question and answer system based on documentation and code change records
US20160196336A1 (en) Cognitive Interactive Search Based on Personalized User Model and Context
Lazar et al. Generating duplicate bug datasets
US10970466B2 (en) Inserting links that aid action completion
CN104699730A (zh) 用于识别候选答案之间的关系的方法和系统
US10621255B2 (en) Identifying equivalent links on a page
KR20160124079A (ko) 인-메모리 데이터베이스 탐색을 위한 시스템 및 방법
US10628749B2 (en) Automatically assessing question answering system performance across possible confidence values
US10282678B2 (en) Automated similarity comparison of model answers versus question answering system output
US20160019462A1 (en) Predicting and Enhancing Document Ingestion Time
Heck et al. Horizontal traceability for just‐in‐time requirements: the case for open source feature requests
JP2004362223A (ja) 情報マイニングシステム
US20180336507A1 (en) Cognitive risk analysis system for risk identification, modeling and assessment
US9558462B2 (en) Identifying and amalgamating conditional actions in business processes
JP2007011604A (ja) 不具合診断システム及びプログラム
Rahmi Dewi et al. Software Requirement-Related Information Extraction from Online News using Domain Specificity for Requirements Elicitation: How the system analyst can get software requirements without constrained by time and stakeholder availability
KR20170044408A (ko) 프로젝트의 추천 시스템 및 방법
Rahman et al. Toward optimal selection of information retrieval models for software engineering tasks
WO2018220688A1 (ja) 辞書生成装置、辞書生成方法、及びプログラム
Shahzad et al. On comparing manual and automatic generated textual descriptions of business process models
US20180349358A1 (en) Non-transitory computer-readable storage medium, information processing device, and information generation method