1 |
1
코드 추천 및 공유를 위한 시스템에 있어서,개발자의 에디터(editor)의 연동하며 개발자의 소스 코드 유닛 정보를 추출하는 에디터 플러그인; 및코드 데이터를 저장하고 있는 코드 리파지토리(repository)를 포함하는 코드 추천 서버를 포함하되, 상기 코드 추천 서버는상기 에디터 플러그인에서 추출된 개발자의 소스 코드 유닛 정보를 기반으로 코드 추천 알고리즘을 통해 상기 코드 리파지토리에서 추천 코드 데이터를 선별하는 것을 특징으로 하는 코드 추천 및 공유 시스템
|
2 |
2
제 1 항에 있어서, 상기 에디터 플러그 인은 상기 추천 코드 데이터를 상기 코드 추천 서버로부터 수신하여 상기 에디터에 제공하고, 상기 에디터로부터 선택된 코드 유닛을 상기 소스 코드 내에 삽입하고, 상기 코드 추천 서버에 리포팅하는 것을 특징으로 하는 코드 추천 및 공유 시스템
|
3 |
3
제 1 항에 있어서, 상기 코드 추천 서버는 상기 소스 코드 유닛의 타입 정보를 기반으로 소스 코드 유닛의 타입과 연관성이 높은 타입을 추론하여 타겟 유닛 - 타겟 유닛은 코드 리파지토리에 저장되어 추천 코드가 될 수 있는 코드 유닛을 의미함 - 을 필터링하는 제 1 단계;상기 소스 코드 유닛의 윈도우 크기 정보를 기반으로 상기 타겟 유닛의 길이를 상기 윈도우 크기에 맞게 조정하는 제 2 단계; 및상기 소스 코드 유닛의 컨텍스트 정보를 기반으로 기본 문자열 매칭 또는 상기 소스 유닛 텍스트의 전후 문맥을 담은 블록 텍스트와 상기 타겟 유닛과의 유사도를 계산하여 상기 추천 코드를 정렬하는 제 3 단계를 통해 상기 추천 코드 데이터를 선별하는 것을 특징으로 하는 코드 추천 및 공유 시스템
|
4 |
4
제 3 항에 있어서, 상기 제 3 단계는상기 컨텍스트 정보가 존재하는 경우, 상기 블록 텍스트와 상기 타겟 유닛과의 유사도를 계산하여 상기 추천 코드를 정렬하여 최종 상위 N 개의 추천 코드만을 선별하는 단계; 및상기 컨텍스트 정보가 존재하지 않는 경우, 기본 문자열 매칭을 통해 상기 추천 코드를 선별하는 단계 중 하나를 포함하는 것을 특징으로 하는 코드 추천 및 공유 시스템
|
5 |
5
제 3 항에 있어서, 상기 에디터 플러그인을 통해 추출되는 소스 코드 유닛의 데이터는 개발자가 입력한 또는 관심도가 높은 소스 코드 유닛의, 문자열 정보, 타입 정보, 윈도우 크기 정보 및 컨텍스트 정보 - 컨텍스트 정보는 유닛 문자열을 포함한 임의의 길이의 블록 텍스트를 포함함 - 로 구성되는 것을 특징으로 하는 코드 추천 및 공유 시스템
|
6 |
6
제 3 항에 있어서, 상기 추천 코드 데이터는 추천 코드의 문자열 및 개발자의 문맥과의 매칭 정도를 나타내는 매칭 점수로 구성되는 것을 특징으로 하는 코드 추천 공유 시스템
|
7 |
7
제 1 항에 있어서, 상기 에디터 플러그인은 상기 코드 리파지토리에서 고빈도 타입을 기준으로 유닛 텍스트의 길이를 통계내어 소스 유닛 데이터를 생성시 윈도우 크기를 결정하는데 사용하는 것을 특징으로 하는 코드 추천 공유 시스템
|
8 |
8
제 1 항에 있어서, 상기 에디터 플러그인는 상기 에디터 플러그인을 통해 소스 코드 유닛을 수신하면, 추후 추천할 코드 데이터로서 코드 리파지토리에 저장하는 것을 특징으로 하는 코드 추천 및 공유 시스템
|
9 |
9
제 1 항에 있어서, 상기 코드 리파지토리는 복수 개일 수 있고, 상기 코드 추천 서버는 제3자 리파지토리로부터 코드 데이터를 불러오되, 제3자 리파지토리에 저장된 코드 데이터에 대한 프로그래밍 언어, 문법 및 입도(granularity)를 분석하는 리파지토리 어댑터를 더 포함하는 것을 특징으로 하는 코드 추천 및 공유 시스템
|
10 |
10
코드 추천 및 공유를 위한 방법에 있어서,에디터 플러그인을 통해, 개발자의 에디터(editor)의 연동하며 개발자의 소스 코드 유닛 정보를 추출하는 단계; 및코드 추천 서버를 통해, 상기 에디터 플러그인에서 추출된 개발자의 소스 코드 유닛 정보를 기반으로 코드 추천 알고리즘을 이용하여 코드 데이터를 저장하고 있는 코드 리파지토리(repository)에서 추천 코드 데이터를 선별하는 단계를 포함하는 것을 특징으로 하는 코드 추천 및 공유 방법
|
11 |
11
제 10 항에 있어서, 상기 에디터 플러그 인이 상기 추천 코드 데이터를 상기 코드 추천 서버로부터 수신하여 상기 에디터에 제공하는 단계; 상기 에디터로부터 선택된 코드 유닛을 상기 소스 코드 내에 삽입하는 단계;및상기 선택된 코드 유닛을 상기 코드 추천 서버에 리포팅하는 단계를 더 포함하는 것을 특징으로 하는 코드 추천 및 공유 방법
|
12 |
12
제 10 항에 있어서, 상기 추천 코드 데이터를 선별하는 단계는 상기 소스 코드 유닛의 타입 정보를 기반으로 소스 코드 유닛의 타입과 연관성이 높은 타입을 추론하여 타겟 유닛 - 타겟 유닛은 코드 리파지토리에 저장되어 추천 코드가 될 수 있는 코드 유닛을 의미함 - 을 필터링하는 제 1 단계;상기 소스 코드 유닛의 윈도우 크기 정보를 기반으로 상기 타겟 유닛의 길이를 상기 윈도우 크기에 맞게 조정하는 제 2 단계; 및상기 소스 코드 유닛의 컨텍스트 정보를 기반으로 기본 문자열 매칭 또는 상기 소스 유닛 텍스트의 전후 문맥을 담은 블록 텍스트와 상기 타겟 유닛과의 유사도를 계산하여 상기 추천 코드를 정렬하는 제 3 단계를 포함하는 것을 특징으로 하는 코드 추천 및 공유 방법
|
13 |
13
제 12 항에 있어서, 상기 제 3 단계는상기 컨텍스트 정보가 존재하는 경우, 상기 블록 텍스트와 상기 타겟 유닛과의 유사도를 계산하여 상기 추천 코드를 정렬하여 최종 상위 N 개의 추천 코드만을 선별하는 단계; 및상기 컨텍스트 정보가 존재하지 않는 경우, 기본 문자열 매칭을 통해 상기 추천 코드를 선별하는 단계 중 하나를 포함하는 것을 특징으로 하는 코드 추천 및 공유 방법
|
14 |
14
제 12 항에 있어서, 상기 에디터 플러그인을 통해 추출되는 소스 코드 유닛의 데이터는 개발자가 입력한 또는 관심도가 높은 소스 코드 유닛의, 문자열 정보, 타입 정보, 윈도우 크기 정보 및 컨텍스트 정보 - 컨텍스트 정보는 유닛 문자열을 포함한 임의의 길이의 블록 텍스트를 포함함 - 로 구성되는 것을 특징으로 하는 코드 추천 및 공유 방법
|
15 |
15
제 12 항에 있어서, 상기 추천 코드 데이터는 추천 코드의 문자열 및 개발자의 문맥과의 매칭 정도를 나타내는 매칭 점수로 구성되는 것을 특징으로 하는 코드 추천 공유 방법
|
16 |
16
제 10 항에 있어서, 상기 에디터 플러그인이 상기 코드 리파지토리에서 고빈도 타입을 기준으로 유닛 텍스트의 길이를 통계내어 소스 유닛 데이터를 생성시 윈도우 크기를 결정하는 단계를 더 포함하는 것을 특징으로 하는 코드 추천 공유 방법
|
17 |
17
제 10 항에 있어서, 상기 코드 추천 서버가 상기 에디터 플러그인을 통해 소스 코드 유닛을 수신하면, 추후 추천할 코드 데이터로서 코드 리파지토리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 코드 추천 및 공유 방법
|
18 |
18
제 10 항에 있어서, 상기 코드 리파지토리는 복수 개일 수 있고, 상기 코드 추천 서버가 제3자 리파지토리로부터 코드 데이터를 불러오되, 리파지토리 어댑터를 통해, 제3자 리파지토리에 저장된 코드 데이터에 대한 프로그래밍 언어, 문법 및 입도(granularity)를 분석하는 단계를 더 포함하는 것을 특징으로 하는 코드 추천 및 공유 방법
|