KR102375511B1 - 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법 - Google Patents

복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법 Download PDF

Info

Publication number
KR102375511B1
KR102375511B1 KR1020200092113A KR20200092113A KR102375511B1 KR 102375511 B1 KR102375511 B1 KR 102375511B1 KR 1020200092113 A KR1020200092113 A KR 1020200092113A KR 20200092113 A KR20200092113 A KR 20200092113A KR 102375511 B1 KR102375511 B1 KR 102375511B1
Authority
KR
South Korea
Prior art keywords
document
storage
file
words
client terminal
Prior art date
Application number
KR1020200092113A
Other languages
English (en)
Other versions
KR20220013084A (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 KR1020200092113A priority Critical patent/KR102375511B1/ko
Publication of KR20220013084A publication Critical patent/KR20220013084A/ko
Application granted granted Critical
Publication of KR102375511B1 publication Critical patent/KR102375511B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • G06F16/1837Management specially adapted to peer-to-peer storage networks
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

문서 저장 관리 서버 및 그 동작 방법이 개시된다. 본 발명은 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법을 제시함으로써, 복수의 문서 저장소들을 이용하여 문서 파일을 저장하는 클라우드 오피스 서비스에서 문서 파일에 대한 효율적 저장이 가능하도록 지원할 수 있다.

Description

복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법{DOCUMENT STORAGE MANAGEMENT SERVER FOR PERFORMING STORAGE PROCESSING OF DOCUMENT FILES RECEIVED FROM A CLIENT TERMINAL IN CONJUNCTION WITH A PLURALITY OF DOCUMENT STORAGE AND OPERATING METHOD THEREOF}
본 발명은 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법에 대한 것이다.
최근, 인터넷의 보급이 활발하게 이루어짐에 따라, 다양한 클라우드 서비스가 등장하고 있다.
이러한 클라우드 서비스는 문서 작성과 관련된 오피스 분야에도 적용되고 있다. 클라우드 기반의 오피스 서비스는 사용자가 클라이언트 단말에서 소정의 전자 문서를 작성하게 되면, 해당 전자 문서를 클라우드 저장소에 저장할 수 있도록 지원함으로써, 사용자가 언제 어디에서든지 클라우드 저장소로부터 자신이 작성한 전자 문서 파일을 클라이언트 단말에 다시 다운로드해서 열람할 수 있도록 지원한다.
이렇게, 문서 파일을 클라우드 단에 저장할 수 있도록 지원하는 클라우드 기반의 오피스 서비스에서는 많은 사용자들이 문서 파일을 저장할 수 있다는 점에서, 원활한 서비스를 제공하기 위해 대용량의 저장 공간이 확보될 필요가 있다.
보통, 대용량의 저장 장치는 그 가격이 비싸고, 고장이 발생하는 경우, 저장 장치에 저장되어 있는 모든 문서 파일이 복구 불가능한 상태로 될 수 있다는 점에서, 대용량의 저장 공간을 확보하는 방법으로 저장 용량이 큰 하나의 저장 장치를 이용해서 하나의 문서 저장소를 구축하는 것이 아니라, 저장 용량이 작은 다수의 저장 장치들을 이용해서 다수의 문서 저장소들을 구축하는 방법이 주로 사용된다.
다만, 다수의 문서 저장소들을 이용하는 방법을 채용하기 위해서는 특정 저장소에만 문서 파일이 저장되지 않고, 각 문서 저장소에 골고루 문서 파일이 저장되도록 함으로써, 각 문서 저장소의 저장 용량을 효율적으로 사용할 수 있는 관리 기법이 적용될 필요가 있다.
따라서, 다수의 문서 저장소들을 활용해서 문서 파일을 클라우드 단에 저장할 수 있도록 지원하는 클라우드 기반의 오피스 서비스에서, 효율적으로 문서 파일이 저장될 수 있도록 관리하는 문서 저장 관리 기법에 대한 연구가 필요하다.
본 발명은 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법을 제시함으로써, 복수의 문서 저장소들을 이용하여 문서 파일을 저장하는 클라우드 오피스 서비스에서 문서 파일에 대한 효율적 저장이 가능하도록 지원하고자 한다.
본 발명의 일실시예에 따른 문서 저장 관리 서버는 네트워크로 연결된 복수의 문서 저장소들 각각에 대한 고유 식별자가 기록된 식별자 테이블을 저장하여 유지하는 식별자 테이블 유지부, 클라이언트 단말로부터 상기 클라이언트 단말에서 생성된 제1 문서 파일에 대한 저장 요청 명령이 수신되면, 상기 복수의 문서 저장소들 중 상기 제1 문서 파일을 저장하기 위한 제1 문서 저장소를 선별하는 저장소 선별부, 상기 제1 문서 파일을 상기 제1 문서 저장소에 전송함과 동시에 상기 제1 문서 파일에 대한 저장 명령을 상기 제1 문서 저장소에 전송하는 문서 저장부, 상기 식별자 테이블로부터 상기 제1 문서 저장소에 대한 고유 식별자를 추출하고, 문서 관리 테이블에 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자를 서로 대응시켜 기록하는 문서 관리 처리부 및 상기 클라이언트 단말로 상기 제1 문서 파일의 저장이 완료되었음을 지시하는 저장 완료 메시지를 전송하는 저장 완료 메시지 전송부를 포함한다.
또한, 본 발명의 일실시예에 따른 문서 저장 관리 서버의 동작 방법은 네트워크로 연결된 복수의 문서 저장소들 각각에 대한 고유 식별자가 기록된 식별자 테이블을 저장하여 유지하는 단계, 클라이언트 단말로부터 상기 클라이언트 단말에서 생성된 제1 문서 파일에 대한 저장 요청 명령이 수신되면, 상기 복수의 문서 저장소들 중 상기 제1 문서 파일을 저장하기 위한 제1 문서 저장소를 선별하는 단계, 상기 제1 문서 파일을 상기 제1 문서 저장소에 전송함과 동시에 상기 제1 문서 파일에 대한 저장 명령을 상기 제1 문서 저장소에 전송하는 단계, 상기 식별자 테이블로부터 상기 제1 문서 저장소에 대한 고유 식별자를 추출하고, 문서 관리 테이블에 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자를 서로 대응시켜 기록하는 단계 및 상기 클라이언트 단말로 상기 제1 문서 파일의 저장이 완료되었음을 지시하는 저장 완료 메시지를 전송하는 단계를 포함한다.
본 발명은 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법을 제시함으로써, 복수의 문서 저장소들을 이용하여 문서 파일을 저장하는 클라우드 오피스 서비스에서 문서 파일에 대한 효율적 저장이 가능하도록 지원할 수 있다.
도 1은 본 발명의 일실시예에 따른 문서 저장 관리 서버의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 문서 저장 관리 서버의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 문서 저장 관리 서버의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 문서 저장 관리 서버(110)는 식별자 테이블 유지부(111), 저장소 선별부(112), 문서 저장부(113), 문서 관리 처리부(114) 및 저장 완료 메시지 전송부(115)를 포함한다.
식별자 테이블 유지부(111)는 네트워크로 연결된 복수의 문서 저장소들(101, 102, 103) 각각에 대한 고유 식별자가 기록된 식별자 테이블을 저장하여 유지한다.
예컨대, 상기 식별자 테이블에는 하기의 표 1과 같이 정보가 기록되어 있을 수 있다.
복수의 문서 저장소들 고유 식별자
문서 저장소 1 고유 식별자 1
문서 저장소 2 고유 식별자 2
문서 저장소 3 고유 식별자 3
... ...
저장소 선별부(112)는 클라이언트 단말(100)로부터 클라이언트 단말(100)에서 생성된 제1 문서 파일에 대한 저장 요청 명령이 수신되면, 복수의 문서 저장소들(101, 102, 103) 중 상기 제1 문서 파일을 저장하기 위한 제1 문서 저장소를 선별한다.
이때, 본 발명의 일실시예에 따르면, 저장소 선별부(112)는 정보 확인부(116), 수치 산출부(117), 특징 벡터 생성부(118), 군집화부(119), 평균 산출부(120) 및 선별 처리부(121)를 포함할 수 있다.
정보 확인부(116)는 클라이언트 단말(100)로부터 상기 제1 문서 파일에 대한 저장 요청 명령이 수신되면, 복수의 문서 저장소들(101, 102, 103) 각각의 잔여 저장 가능 용량 및 각 문서 저장소에 이미 저장되어 있는 문서 파일의 개수를 확인한다.
예컨대, 복수의 문서 저장소들(101, 102, 103) 중 문서 저장소 1(101)의 잔여 저장 가능 용량이 '5TB'이고, 문서 저장소 1(101)에 이미 저장되어 있는 문서 파일의 개수가 '1000개'라고 하는 경우, 정보 확인부(116)는 문서 저장소 1(101)의 잔여 저장 가능 용량으로 '5TB', 이미 저장되어 있는 문서 파일의 개수로 '1000개'를 확인할 수 있다. 이러한 방식으로, 정보 확인부(116)는 복수의 문서 저장소들(101, 102, 103) 각각의 잔여 저장 가능 용량 및 각 문서 저장소에 이미 저장되어 있는 문서 파일의 개수를 확인할 수 있다.
수치 산출부(117)는 복수의 문서 저장소들(101, 102, 103) 각각에 대해, 각 문서 저장소의 잔여 저장 가능 용량을 각 문서 저장소의 최대 저장 가능 용량으로 나누어 제1 수치 값을 연산하고, 각 문서 저장소에 이미 저장되어 있는 문서 파일의 개수를 사전 설정된 기준 문서 파일의 개수로 나눈 값의 역수를 쌍곡 탄젠트 함수(hyperbolic tangent functions)에 입력으로 인가하여 제2 수치 값을 연산함으로써, 복수의 문서 저장소들(101, 102, 103) 각각에 대응되는 상기 제1 수치 값과 상기 제2 수치 값을 산출한다.
관련해서, 수치 산출부(117)는 하기의 수학식 1의 연산에 따라 복수의 문서 저장소들(101, 102, 103) 각각에 대한 상기 제1 수치 값과 상기 제2 수치 값을 연산할 수 있다.
Figure 112020077451381-pat00001
상기 수학식 1에서 X는 복수의 문서 저장소들(101, 102, 103) 각각에 대한 상기 제1 수치 값으로, SR은 복수의 문서 저장소들(101, 102, 103) 각각의 잔여 저장 가능 용량, SM은 복수의 문서 저장소들(101, 102, 103) 각각의 최대 저장 가능 용량을 의미한다. 그리고, Y는 복수의 문서 저장소들(101, 102, 103) 각각에 대한 상기 제2 수치 값으로, DT는 사전 설정된 기준 문서 파일의 개수, DS는 복수의 문서 저장소들(101, 102, 103) 각각에 이미 저장되어 있는 문서 파일의 개수를 의미한다.
즉, 상기 제1 수치 값은 저장소의 잔여 저장 가능 용량이 클수록 큰 값으로 산출되고, 상기 제2 수치 값은 저장소에 이미 저장되어 있는 문서 파일의 개수가 적을수록 큰 값으로 산출된다.
예컨대, 복수의 문서 저장소들(101, 102, 103) 중 문서 저장소 1(101)의 잔여 저장 가능 용량이 '5TB'이고, 최대 저장 가능 용량이 '10TB'이며, 문서 저장소 1(101)에 이미 저장되어 있는 문서 파일의 개수가 '1000개'이고, 상기 사전 설정된 기준 문서 파일의 개수가 '2000개'라고 하는 경우, 수치 산출부(117)는 문서 저장소 1(101)에 대해서, '0.5'를 상기 제1 수치 값으로 산출할 수 있고, '0.964'를 상기 제2 수치 값으로 산출할 수 있다. 이러한 방식으로, 수치 산출부(117)는 복수의 문서 저장소들(101, 102, 103) 각각에 대해서 상기 제1 수치 값과 상기 제2 수치 값을 산출할 수 있다.
특징 벡터 생성부(118)는 복수의 문서 저장소들(101, 102, 103) 각각에 대해, 상기 제1 수치 값과 상기 제2 수치 값을 성분으로 갖는 2차원의 벡터를 구성함으로써, 복수의 문서 저장소들(101, 102, 103) 각각에 대응되는 특징 벡터를 생성한다.
예컨대, 복수의 문서 저장소들(101, 102, 103) 중 문서 저장소 1(101)에 대해서 산출된 상기 제1 수치 값이 '0.5', 제2 수치 값이 '0.964'라고 하는 경우, 특징 벡터 생성부(118)는 문서 저장소 1(101)에 대해 '[0.5 0.964]'라고 하는 2차원의 특징 벡터를 생성할 수 있다. 이러한 방식으로, 특징 벡터 생성부(118)는 복수의 문서 저장소들(101, 102, 103) 각각에 대응되는 특징 벡터를 생성할 수 있다.
군집화부(119)는 복수의 문서 저장소들(101, 102, 103) 각각에 대응되는 특징 벡터를 기초로 K(K는 2이상의 자연수)개의 그룹들을 생성하기 위한 K-평균 군집화(K-means Clustering)를 수행하여 복수의 문서 저장소들(101, 102, 103)을 K개의 저장소 그룹들로 군집화한다.
여기서, K-평균 군집화란 벡터의 형태로 구성된 데이터를 K개의 그룹들로 묶는 알고리즘을 의미하는 것으로, 데이터가 속한 그룹의 중심과 각 데이터 간의 거리의 차이가 최소가 되도록 데이터들을 K개의 그룹들로 군집화하는 알고리즘이다.
이때, 군집화부(119)는 상기 제1 수치 값과 상기 제2 수치 값으로 구성된 특징 벡터를 기초로 복수의 문서 저장소들(101, 102, 103)을 K개의 저장소 그룹들로 군집화하기 때문에, 복수의 문서 저장소들(101, 102, 103)은 잔여 저장 가능 용량이 크면서 이미 저장된 문서 파일의 개수가 적은 그룹, 잔여 저장 가능 용량이 크면서 이미 저장된 문서 파일의 개수가 많은 그룹, 잔여 저장 가능 용량이 작으면서 이미 저장된 문서 파일의 개수가 적은 그룹, 잔여 저장 가능 용량이 작으면서 이미 저장된 문서 파일의 개수가 많은 그룹 등으로 군집화될 수 있다.
이렇게, 복수의 문서 저장소들(101, 102, 103)이 K개의 저장소 그룹들로 군집화되면, 평균 산출부(120)는 상기 K개의 저장소 그룹들 각각에 대해, 각 저장소 그룹에 포함된 문서 저장소들의 특징 벡터에 대한 유클리드 노름(Euclidean norm)의 평균을 연산함으로써, 상기 K개의 저장소 그룹들 각각에 대응되는 유클리드 노름의 평균을 산출한다.
그리고, 선별 처리부(121)는 상기 K개의 저장소 그룹들 중 상기 유클리드 노름의 평균이 최대로 산출된 제1 저장소 그룹을 선택한 후 상기 제1 저장소 그룹에 포함된 문서 저장소들 중 랜덤하게 선택되는 어느 하나의 문서 저장소를 상기 제1 문서 저장소로 선별한다.
관련해서, 평균 산출부(120)와 선별 처리부(121)의 동작을 예를 들어 설명하면 다음과 같다.
우선, K를 3이라고 하고, 복수의 문서 저장소들(101, 102, 103)이 '저장소 그룹 1', '저장소 그룹 2', '저장소 그룹 3'으로 군집화되었다고 하는 경우, 평균 산출부(120)는 상기 3개의 저장소 그룹들 각각에 대해, 각 저장소 그룹에 포함된 문서 저장소들의 특징 벡터에 대한 유클리드 노름의 평균을 연산함으로써, 상기 3개의 저장소 그룹들 각각에 대응되는 유클리드 노름의 평균을 산출할 수 있다.
여기서, 유클리드 노름이란 벡터나 행렬의 유클리드 공간 상에서의 크기를 나타내는 L2 노름으로, 하기의 수학식 2와 같이 나타낼 수 있다.
Figure 112020077451381-pat00002
여기서,
Figure 112020077451381-pat00003
가 유클리드 노름,
Figure 112020077451381-pat00004
는 벡터 또는 행렬의 k번째 성분을 의미한다.
관련해서, '저장소 그룹 1'에 10개의 문서 저장소들이 속해 있다고 하는 경우, 평균 산출부(120)는 '저장소 그룹 1'에 대해서 10개의 문서 저장소들 각각에 대한 특징 벡터의 유클리드 노름을 연산한 후 10개의 문서 저장소들에 대한 유클리드 노름의 평균을 연산함으로써, '저장소 그룹 1'에 대한 유클리드 노름의 평균을 산출할 수 있다. 이러한 방식으로, 평균 산출부(120)는 '저장소 그룹 2'와 '저장소 그룹 3'에 대해서도 각각 유클리느 노름의 평균을 산출할 수 있다.
그 이후, 선별 처리부(121)는 상기 3개의 저장소 그룹들을 중 상기 유클리드 노름의 평균이 최대로 산출된 저장소 그룹을 상기 제1 저장소 그룹으로 선택할 수 있다.
이와 관련해서, '저장소 그룹 1', '저장소 그룹 3', '저장소 그룹 2'의 순서로 상기 유클리드 노름의 평균이 크게 산출되었다고 하는 경우, 선별 처리부(121)는 상기 유클리드 노름의 평균이 가장 큰 '저장소 그룹 1'을 상기 제1 저장소 그룹으로 선택할 수 있다.
여기서, 각 저장소 그룹에서의 유클리드 노름의 평균이 크다는 의미는 각 저장소 그룹에 포함되어 있는 문서 저장소들의 잔여 저장 가능 용량이 크고, 이미 저장되어 있는 문서 파일의 개수가 적다는 의미이다. 이로 인해, 선별 처리부(121)는 상기 3개의 저장소 그룹들 중 상기 제1 문서 파일을 저장하기 위한 저장소 그룹으로 잔여 저장 가능 용량이 크고, 이미 저장되어 있는 문서 파일의 개수가 적은 '저장소 그룹 1'을 선택할 수 있다.
그 이후, 선별 처리부(121)는 '저장소 그룹 1'에 포함되어 있는 문서 저장소들 중 어느 하나의 문서 저장소를 랜덤하게 선택한 후 상기 선택된 문서 저장소를 상기 제1 문서 파일을 저장하기 위한 상기 제1 문서 저장소로 결정할 수 있다.
결국, 저장소 선별부(112)는 복수의 문서 저장소들(101, 102, 103) 중 잔여 저장 가능 용량이 크고, 이미 저장되어 있는 문서 파일의 개수가 적은 문서 저장소를 상기 제1 문서 파일의 저장을 위한 상기 제1 문서 저장소 선별할 수 있다. 이로 인해, 복수의 문서 저장소들(101, 102, 103)에는 문서 파일들이 골고루 분산되어 저장될 수 있게 된다.
이렇게, 저장소 선별부(112)를 통해 상기 제1 문서 저장소의 선별이 완료되면, 문서 저장부(113)는 상기 제1 문서 파일을 상기 제1 문서 저장소에 전송함과 동시에 상기 제1 문서 파일에 대한 저장 명령을 상기 제1 문서 저장소에 전송한다.
그러고 나서, 문서 관리 처리부(114)는 상기 식별자 테이블로부터 상기 제1 문서 저장소에 대한 고유 식별자를 추출하고, 문서 관리 테이블에 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자를 서로 대응시켜 기록한다.
이때, 본 발명의 일실시예에 따르면, 문서 관리 처리부(114)는 상기 제1 문서 파일에 따른 전자 문서로부터 사전 설정된 제1 개수의 주요 키워드들을 추출한 후 상기 문서 관리 테이블에 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자를 서로 대응시켜 기록함과 동시에, 상기 주요 키워드들을 함께 대응시켜 기록할 수 있다.
예컨대, 상기 제1 문서 파일의 파일명이 'patent.hwp'이고, 상기 제1 문서 저장소에 대한 고유 식별자가 '고유 식별자 1'이며, 상기 주요 키워드들이 '특허, 상표, 디자인, 지식재산권'이라고 하는 경우, 문서 관리 처리부(114)는 하기의 표 2와 같이 상기 문서 관리 테이블에 관련 정보를 기록할 수 있다.
연번 파일명 고유 식별자 주요 키워드
... ... ... ...
100 patent.hwp 고유 식별자 1 특허, 상표, 디자인, 지식재산권
상기 표 2와 같은 문서 관리 테이블은 문서 저장 관리 서버(110)에 저장 요청이 수신된 문서 파일들의 관리를 위한 테이블이기 때문에, 과거에 저장 처리가 완료된 문서 파일들의 파일명, 문서 저장소의 고유 식별자, 해당 문서에서 추출된 주요 키워드들도 기록되어 있을 수 있다. 관련해서, 표 2에서는 클라이언트 단말(100)로부터 전송된 상기 제1 문서 파일의 저장 요청이 100번째로 문서 저장 관리 서버(110)에 수신되었다는 상황을 가정해서 나타낸 것이다.
이때, 본 발명의 일실시예에 따르면, 문서 관리 처리부(114)는 상기 제1 문서 파일에 따른 전자 문서로부터 상기 주요 키워드들을 추출하기 위한 구체적인 구성으로, 단어 추출부(122), 빈도수 확인부(123), 후보 키워드 선택부(124), 평균 글자 크기 값 산출부(125), 횟수 카운트부(126), 단어 벡터 생성부(127), 주요 키워드 추출부(128)를 포함할 수 있다.
단어 추출부(122)는 상기 제1 문서 파일에 따른 전자 문서 내에 삽입되어 있는 복수의 단어들을 추출한다.
빈도수 확인부(123)는 상기 복수의 단어들 각각의 상기 전자 문서 내에서의 등장 빈도수를 확인한다.
예컨대, 상기 전자 문서에서 '특허', 상표', '디자인', '지식재산권', '출원', '등록' 등과 같은 단어가 추출되었다고 하는 경우, 빈도수 확인부(123)는 '특허', 상표', '디자인', '지식재산권', '출원', '등록' 각각의 상기 전자 문서 내에서의 등장 빈도수를 확인할 수 있다.
후보 키워드 선택부(124)는 상기 복수의 단어들 중 상기 등장 빈도수가 큰 순서로 사전 설정된 제2 개수의 단어들을 후보 키워드로 선택한다.
예컨대, 상기 제2 개수를 '10개'라고 하는 경우, 후보 키워드 선택부(124)는 상기 복수의 단어들 중 전자 문서에서의 등장 빈도수가 큰 순서로 '10개'의 단어들을 후보 키워드로 선택할 수 있다.
평균 글자 크기 값 산출부(125)는 상기 후보 키워드로 선택된 상기 제2 개수의 단어들 각각의 상기 전자 문서 내에서의 평균 글자 크기 값을 산출한다.
예컨대, 상기 후보 키워드 중 '특허'라는 단어가 포함되어 있다고 하는 경우, 평균 글자 크기 값 산출부(125)는 '특허'라는 단어의 상기 전자 문서 내에서의 평균 글자 크기 값을 산출할 수 있다. 관련해서, '특허'라는 단어가 상기 전자 문서에서 총 100회 등장하는데, 그중 50회는 '11pt'의 글자 크기를 갖고, 30회는 '14pt'의 글자 크기를 가지며, 20회는 '20pt'의 글자 크기를 갖는다고 하는 경우, 평균 글자 크기 값 산출부(125)는 '특허'라는 단어의 상기 전자 문서 내에서의 평균 글자 크기 값으로 '13.7pt'를 산출할 수 있다.
횟수 카운트부(126)는 상기 제2 개수의 단어들 각각의 평균 글자 크기 값 중 중앙값(median)을 확인한 후 상기 전자 문서 내에서 상기 제2 개수의 단어들 각각이 상기 중앙값 이상의 글자 크기 값으로 등장하는 횟수를 카운트한다.
예컨대, 상기 제2 개수의 단어들이 총 '10개'의 단어들이라고 하고, '10개'의 단어들 각각의 평균 글자 크기 값 중 중앙값이 '12pt'라고 하는 경우, 횟수 카운트부(126)는 상기 전자 문서 내에서 '10개'의 단어들 각각이 '12pt' 이상의 글자 크기 값으로 등장하는 횟수를 카운트한다. 관련해서, '10개'의 단어들 중 '특허'라는 단어에 대해서는 상기 전자 문서 내에서 총 '50회'가 '12pt' 이상의 글자 크기 값으로 등장하는 경우, 횟수 카운트부(126)는 '특허'라는 단어에 대해서 '50회'를 카운트할 수 있다.
단어 벡터 생성부(127)는 상기 제2 개수의 단어들 각각에 대해, 각 단어의 평균 글자 크기 값과 각 단어에 대해서 카운트된 상기 중앙값 이상의 글자 크기 값으로 등장하는 횟수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 제2 개수의 단어들 각각에 대응되는 단어 벡터를 생성한다.
예컨대, 상기 제2 개수의 단어들 중 '특허'라는 단어가 있고, '특허'에 대한 평균 글자 크기 값이 '13.7pt', 중앙값 이상의 글자 크기 값으로 등장하는 횟수가 '50회'라고 하는 경우, 단어 벡터 생성부(127)는 '특허'라는 단어에 대해 '[13.7 50]'이라고 하는 단어 벡터를 생성할 수 있다. 이러한 방식으로, 단어 벡터 생성부(127)는 상기 제2 개수의 단어들 각각에 대해 단어 벡터를 생성할 수 있다.
주요 키워드 추출부(128)는 상기 제2 개수의 단어들 중 상기 제2 개수의 단어들 각각에 대응되는 단어 벡터의 맨해튼 노름(Manhattan norm)이 큰 순서로 상기 제1 개수만큼의 단어들을 상기 주요 키워드들로 추출한다.
여기서, 맨해튼 노름이란 벡터나 행렬의 크기를 나타내는 L1 노름으로, 하기의 수학식 3과 같이 나타낼 수 있다.
Figure 112020077451381-pat00005
여기서,
Figure 112020077451381-pat00006
이 맨해튼 노름,
Figure 112020077451381-pat00007
는 벡터 또는 행렬의 k번째 성분을 의미한다.
본 발명에서 특정 단어의 맨해튼 노름이 크다는 의미는 해당 단어의 평균 글자 크기 값과 전자 문서 내에서 상기 중앙값 이상의 글자 크기로 등장하는 횟수가 많다라는 의미이기 때문에, 상기 단어는 상기 전자 문서 내에서 다른 단어들에 비해 더 중요한 의미를 담고 있는 단어라고 볼 수 있다.
따라서, 주요 키워드 추출부(128)는 상기 제2 개수의 단어들 중 맨해튼 노름이 큰 순서로 상기 제1 개수만큼의 단어들을 상기 주요 키워드들로 추출할 수 있다.
이렇게, 문서 관리 처리부(114)를 통해 상기 문서 관리 테이블에 상기 표 2와 같이 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자 및 상기 주요 키워드들이 함께 대응되어 기록 완료되면, 저장 완료 메시지 전송부(115)는 클라이언트 단말(100)로 상기 제1 문서 파일의 저장이 완료되었음을 지시하는 저장 완료 메시지를 전송한다.
이때, 본 발명의 일실시예에 따르면, 문서 저장 관리 서버(110)는 검색 처리부(129), 문서 로드부(130) 및 문서 파일 제공부(131)를 더 포함할 수 있다.
검색 처리부(129)는 상기 저장 완료 메시지가 클라이언트 단말(100)로 전송된 이후에, 클라이언트 단말(100)로부터 상기 제1 문서 파일의 파일명이 검색어로 수신되면서, 상기 검색어를 기반으로 하는 문서 파일의 검색 명령이 수신되는 경우, 상기 문서 관리 테이블로부터 상기 제1 문서 파일의 파일명과 상기 주요 키워드들을 추출한 후 상기 제1 문서 파일의 파일명과 상기 주요 키워드들에 대한 정보로 구성된 검색 결과 정보를 생성하여 클라이언트 단말(100)로 전송한다.
즉, 상기 제1 문서 파일이 문서 저장소에 저장 완료된 이후, 사용자가 클라이언트 단말(100)을 통해서 상기 제1 문서 파일을 다시 다운로드하기 위해 상기 제1 문서 파일의 파일명을 검색어로 지정하여 문서 저장 관리 서버(110)로 검색 명령을 전송하게 되면, 검색 처리부(129)는 상기 문서 관리 테이블로부터 상기 제1 문서 파일의 파일명과 상기 주요 키워드들을 추출한 후 상기 제1 문서 파일의 파일명과 상기 주요 키워드들에 대한 정보로 구성된 검색 결과 정보를 생성하여 클라이언트 단말(100)로 전송할 수 있다.
이렇게, 상기 제1 문서 파일의 파일명과 상기 주요 키워드들에 대한 정보로 구성된 검색 결과 정보가 클라이언트 단말(100)에 수신되면, 사용자는 클라이언트 단말(100)을 통해 상기 검색 결과 정보에 포함된 상기 주요 키워드들을 확인함으로써, 상기 제1 문서 파일을 직접 다운로드받아 열어보지 않더라도 상기 제1 문서 파일의 내용이 무엇인지를 한 눈에 파악할 수 있다.
문서 로드부(130)는 클라이언트 단말(100)로부터 상기 제1 문서 파일에 대한 다운로드 요청이 수신되는 경우, 상기 문서 관리 테이블로부터 상기 제1 문서 파일의 파일명에 대응되어 기록되어 있는 상기 제1 문서 저장소의 고유 식별자를 추출한 후 상기 제1 문서 저장소의 고유 식별자를 기초로 상기 복수의 문서 저장소들 중 상기 제1 문서 저장소에 접속하여 상기 제1 문서 파일에 대한 로드 명령을 전송한다.
그리고, 문서 파일 제공부(131)는 상기 제1 문서 저장소에서 상기 제1 문서 파일이 로드됨에 따라 상기 제1 문서 저장소로부터 상기 제1 문서 파일이 수신되면, 상기 제1 문서 파일을 클라이언트 단말(100)로 전송한다.
이를 통해, 사용자는 클라이언트 단말(100)을 이용해서 상기 제1 문서 파일을 다시 획득할 수 있게 된다.
도 2는 본 발명의 일실시예에 따른 문서 저장 관리 서버의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 네트워크로 연결된 복수의 문서 저장소들 각각에 대한 고유 식별자가 기록된 식별자 테이블을 저장하여 유지한다.
단계(S220)에서는 클라이언트 단말로부터 상기 클라이언트 단말에서 생성된 제1 문서 파일에 대한 저장 요청 명령이 수신되면, 상기 복수의 문서 저장소들 중 상기 제1 문서 파일을 저장하기 위한 제1 문서 저장소를 선별한다.
단계(S230)에서는 상기 제1 문서 파일을 상기 제1 문서 저장소에 전송함과 동시에 상기 제1 문서 파일에 대한 저장 명령을 상기 제1 문서 저장소에 전송한다.
단계(S240)에서는 상기 식별자 테이블로부터 상기 제1 문서 저장소에 대한 고유 식별자를 추출하고, 문서 관리 테이블에 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자를 서로 대응시켜 기록한다.
단계(S250)에서는 상기 클라이언트 단말로 상기 제1 문서 파일의 저장이 완료되었음을 지시하는 저장 완료 메시지를 전송한다.
이때, 본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 클라이언트 단말로부터 상기 제1 문서 파일에 대한 저장 요청 명령이 수신되면, 상기 복수의 문서 저장소들 각각의 잔여 저장 가능 용량 및 각 문서 저장소에 이미 저장되어 있는 문서 파일의 개수를 확인하는 단계, 상기 복수의 문서 저장소들 각각에 대해, 각 문서 저장소의 잔여 저장 가능 용량을 각 문서 저장소의 최대 저장 가능 용량으로 나누어 제1 수치 값을 연산하고, 각 문서 저장소에 이미 저장되어 있는 문서 파일의 개수를 사전 설정된 기준 문서 파일의 개수로 나눈 값의 역수를 쌍곡 탄젠트 함수에 입력으로 인가하여 제2 수치 값을 연산함으로써, 상기 복수의 문서 저장소들 각각에 대응되는 상기 제1 수치 값과 상기 제2 수치 값을 산출하는 단계, 상기 복수의 문서 저장소들 각각에 대해, 상기 제1 수치 값과 상기 제2 수치 값을 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 복수의 문서 저장소들 각각에 대응되는 특징 벡터를 생성하는 단계, 상기 복수의 문서 저장소들 각각에 대응되는 특징 벡터를 기초로 K(K는 2이상의 자연수)개의 그룹들을 생성하기 위한 K-평균 군집화를 수행하여 상기 복수의 문서 저장소들을 K개의 저장소 그룹들로 군집화하는 단계, 상기 K개의 저장소 그룹들 각각에 대해, 각 저장소 그룹에 포함된 문서 저장소들의 특징 벡터에 대한 유클리드 노름의 평균을 연산함으로써, 상기 K개의 저장소 그룹들 각각에 대응되는 유클리드 노름의 평균을 산출하는 단계 및 상기 K개의 저장소 그룹들 중 상기 유클리드 노름의 평균이 최대로 산출된 제1 저장소 그룹을 선택한 후 상기 제1 저장소 그룹에 포함된 문서 저장소들 중 랜덤하게 선택되는 어느 하나의 문서 저장소를 상기 제1 문서 저장소로 선별하는 단계를 포함할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(S240)에서는 상기 제1 문서 파일에 따른 전자 문서로부터 사전 설정된 제1 개수의 주요 키워드들을 추출한 후 상기 문서 관리 테이블에 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자를 서로 대응시켜 기록함과 동시에, 상기 주요 키워드들을 함께 대응시켜 기록할 수 있다.
이때, 본 발명의 일실시예에 따르면, 단계(S240)에서는 상기 제1 문서 파일에 따른 전자 문서 내에 삽입되어 있는 복수의 단어들을 추출하는 단계, 상기 복수의 단어들 각각의 상기 전자 문서 내에서의 등장 빈도수를 확인하는 단계, 상기 복수의 단어들 중 상기 등장 빈도수가 큰 순서로 사전 설정된 제2 개수의 단어들을 후보 키워드로 선택하는 단계, 상기 후보 키워드로 선택된 상기 제2 개수의 단어들 각각의 상기 전자 문서 내에서의 평균 글자 크기 값을 산출하는 단계, 상기 제2 개수의 단어들 각각의 평균 글자 크기 값 중 중앙값을 확인한 후 상기 전자 문서 내에서 상기 제2 개수의 단어들 각각이 상기 중앙값 이상의 글자 크기 값으로 등장하는 횟수를 카운트하는 단계, 상기 제2 개수의 단어들 각각에 대해, 각 단어의 평균 글자 크기 값과 각 단어에 대해서 카운트된 상기 중앙값 이상의 글자 크기 값으로 등장하는 횟수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 제2 개수의 단어들 각각에 대응되는 단어 벡터를 생성하는 단계 및 상기 제2 개수의 단어들 중 상기 제2 개수의 단어들 각각에 대응되는 단어 벡터의 맨해튼 노름이 큰 순서로 상기 제1 개수만큼의 단어들을 상기 주요 키워드들로 추출하는 단계를 포함할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 문서 저장 관리 서버의 동작 방법은 상기 저장 완료 메시지가 상기 클라이언트 단말로 전송된 이후에, 상기 클라이언트 단말로부터 상기 제1 문서 파일의 파일명이 검색어로 수신되면서, 상기 검색어를 기반으로 하는 문서 파일의 검색 명령이 수신되는 경우, 상기 문서 관리 테이블로부터 상기 제1 문서 파일의 파일명과 상기 주요 키워드들을 추출한 후 상기 제1 문서 파일의 파일명과 상기 주요 키워드들에 대한 정보로 구성된 검색 결과 정보를 생성하여 상기 클라이언트 단말로 전송하는 단계, 상기 클라이언트 단말로부터 상기 제1 문서 파일에 대한 다운로드 요청이 수신되는 경우, 상기 문서 관리 테이블로부터 상기 제1 문서 파일의 파일명에 대응되어 기록되어 있는 상기 제1 문서 저장소의 고유 식별자를 추출한 후 상기 제1 문서 저장소의 고유 식별자를 기초로 상기 복수의 문서 저장소들 중 상기 제1 문서 저장소에 접속하여 상기 제1 문서 파일에 대한 로드 명령을 전송하는 단계 및 상기 제1 문서 저장소에서 상기 제1 문서 파일이 로드됨에 따라 상기 제1 문서 저장소로부터 상기 제1 문서 파일이 수신되면, 상기 제1 문서 파일을 상기 클라이언트 단말로 전송하는 단계를 더 포함할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 문서 저장 관리 서버의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 문서 저장 관리 서버의 동작 방법은 도 1을 이용하여 설명한 문서 저장 관리 서버(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 문서 저장 관리 서버의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 문서 저장 관리 서버의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 문서 저장 관리 서버
111: 식별자 테이블 유지부 112: 저장소 선별부
113: 문서 저장부 114: 문서 관리 처리부
115: 저장 완료 메시지 전송부 116: 정보 확인부
117: 수치 산출부 118: 특징 벡터 생성부
119: 군집화부 120: 평균 산출부
121: 선별 처리부 122: 단어 추출부
123: 빈도수 확인부 124: 후보 키워드 선택부
125: 평균 글자 크기 값 산출부 126: 횟수 카운트부
127: 단어 벡터 생성부 128: 주요 키워드 추출부
129: 검색 처리부 130: 문서 로드부
131: 문서 파일 제공부
100: 클라이언트 단말
101, 102, 103: 복수의 문서 저장소들

Claims (12)

  1. 네트워크로 연결된 복수의 문서 저장소들 각각에 대한 고유 식별자가 기록된 식별자 테이블을 저장하여 유지하는 식별자 테이블 유지부;
    클라이언트 단말로부터 상기 클라이언트 단말에서 생성된 제1 문서 파일에 대한 저장 요청 명령이 수신되면, 상기 복수의 문서 저장소들 중 상기 제1 문서 파일을 저장하기 위한 제1 문서 저장소를 선별하는 저장소 선별부;
    상기 제1 문서 파일을 상기 제1 문서 저장소에 전송함과 동시에 상기 제1 문서 파일에 대한 저장 명령을 상기 제1 문서 저장소에 전송하는 문서 저장부;
    상기 식별자 테이블로부터 상기 제1 문서 저장소에 대한 고유 식별자를 추출하고, 문서 관리 테이블에 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자를 서로 대응시켜 기록하는 문서 관리 처리부; 및
    상기 클라이언트 단말로 상기 제1 문서 파일의 저장이 완료되었음을 지시하는 저장 완료 메시지를 전송하는 저장 완료 메시지 전송부
    를 포함하고,
    상기 저장소 선별부는
    상기 클라이언트 단말로부터 상기 제1 문서 파일에 대한 저장 요청 명령이 수신되면, 상기 복수의 문서 저장소들 각각의 잔여 저장 가능 용량 및 각 문서 저장소에 이미 저장되어 있는 문서 파일의 개수를 확인하는 정보 확인부;
    상기 복수의 문서 저장소들 각각에 대해, 각 문서 저장소의 잔여 저장 가능 용량을 각 문서 저장소의 최대 저장 가능 용량으로 나누어 제1 수치 값을 연산하고, 각 문서 저장소에 이미 저장되어 있는 문서 파일의 개수를 사전 설정된 기준 문서 파일의 개수로 나눈 값의 역수를 쌍곡 탄젠트 함수(hyperbolic tangent functions)에 입력으로 인가하여 제2 수치 값을 연산함으로써, 상기 복수의 문서 저장소들 각각에 대응되는 상기 제1 수치 값과 상기 제2 수치 값을 산출하는 수치 산출부;
    상기 복수의 문서 저장소들 각각에 대해, 상기 제1 수치 값과 상기 제2 수치 값을 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 복수의 문서 저장소들 각각에 대응되는 특징 벡터를 생성하는 특징 벡터 생성부;
    상기 복수의 문서 저장소들 각각에 대응되는 특징 벡터를 기초로 K(K는 2이상의 자연수)개의 그룹들을 생성하기 위한 K-평균 군집화(K-means Clustering)를 수행하여 상기 복수의 문서 저장소들을 K개의 저장소 그룹들로 군집화하는 군집화부;
    상기 K개의 저장소 그룹들 각각에 대해, 각 저장소 그룹에 포함된 문서 저장소들의 특징 벡터에 대한 유클리드 노름(Euclidean norm)의 평균을 연산함으로써, 상기 K개의 저장소 그룹들 각각에 대응되는 유클리드 노름의 평균을 산출하는 평균 산출부; 및
    상기 K개의 저장소 그룹들 중 상기 유클리드 노름의 평균이 최대로 산출된 제1 저장소 그룹을 선택한 후 상기 제1 저장소 그룹에 포함된 문서 저장소들 중 랜덤하게 선택되는 어느 하나의 문서 저장소를 상기 제1 문서 저장소로 선별하는 선별 처리부
    를 포함하는 문서 저장 관리 서버.
  2. 삭제
  3. 제1항에 있어서,
    상기 문서 관리 처리부는
    상기 제1 문서 파일에 따른 전자 문서로부터 사전 설정된 제1 개수의 주요 키워드들을 추출한 후 상기 문서 관리 테이블에 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자를 서로 대응시켜 기록함과 동시에, 상기 주요 키워드들을 함께 대응시켜 기록하는 문서 저장 관리 서버.
  4. 제3항에 있어서,
    상기 문서 관리 처리부는
    상기 제1 문서 파일에 따른 전자 문서 내에 삽입되어 있는 복수의 단어들을 추출하는 단어 추출부;
    상기 복수의 단어들 각각의 상기 전자 문서 내에서의 등장 빈도수를 확인하는 빈도수 확인부;
    상기 복수의 단어들 중 상기 등장 빈도수가 큰 순서로 사전 설정된 제2 개수의 단어들을 후보 키워드로 선택하는 후보 키워드 선택부;
    상기 후보 키워드로 선택된 상기 제2 개수의 단어들 각각의 상기 전자 문서 내에서의 평균 글자 크기 값을 산출하는 평균 글자 크기 값 산출부;
    상기 제2 개수의 단어들 각각의 평균 글자 크기 값 중 중앙값(median)을 확인한 후 상기 전자 문서 내에서 상기 제2 개수의 단어들 각각이 상기 중앙값 이상의 글자 크기 값으로 등장하는 횟수를 카운트하는 횟수 카운트부;
    상기 제2 개수의 단어들 각각에 대해, 각 단어의 평균 글자 크기 값과 각 단어에 대해서 카운트된 상기 중앙값 이상의 글자 크기 값으로 등장하는 횟수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 제2 개수의 단어들 각각에 대응되는 단어 벡터를 생성하는 단어 벡터 생성부; 및
    상기 제2 개수의 단어들 중 상기 제2 개수의 단어들 각각에 대응되는 단어 벡터의 맨해튼 노름(Manhattan norm)이 큰 순서로 상기 제1 개수만큼의 단어들을 상기 주요 키워드들로 추출하는 주요 키워드 추출부
    를 포함하는 문서 저장 관리 서버.
  5. 제3항에 있어서,
    상기 저장 완료 메시지가 상기 클라이언트 단말로 전송된 이후에, 상기 클라이언트 단말로부터 상기 제1 문서 파일의 파일명이 검색어로 수신되면서, 상기 검색어를 기반으로 하는 문서 파일의 검색 명령이 수신되는 경우, 상기 문서 관리 테이블로부터 상기 제1 문서 파일의 파일명과 상기 주요 키워드들을 추출한 후 상기 제1 문서 파일의 파일명과 상기 주요 키워드들에 대한 정보로 구성된 검색 결과 정보를 생성하여 상기 클라이언트 단말로 전송하는 검색 처리부;
    상기 클라이언트 단말로부터 상기 제1 문서 파일에 대한 다운로드 요청이 수신되는 경우, 상기 문서 관리 테이블로부터 상기 제1 문서 파일의 파일명에 대응되어 기록되어 있는 상기 제1 문서 저장소의 고유 식별자를 추출한 후 상기 제1 문서 저장소의 고유 식별자를 기초로 상기 복수의 문서 저장소들 중 상기 제1 문서 저장소에 접속하여 상기 제1 문서 파일에 대한 로드 명령을 전송하는 문서 로드부; 및
    상기 제1 문서 저장소에서 상기 제1 문서 파일이 로드됨에 따라 상기 제1 문서 저장소로부터 상기 제1 문서 파일이 수신되면, 상기 제1 문서 파일을 상기 클라이언트 단말로 전송하는 문서 파일 제공부
    를 더 포함하는 문서 저장 관리 서버.
  6. 네트워크로 연결된 복수의 문서 저장소들 각각에 대한 고유 식별자가 기록된 식별자 테이블을 저장하여 유지하는 단계;
    클라이언트 단말로부터 상기 클라이언트 단말에서 생성된 제1 문서 파일에 대한 저장 요청 명령이 수신되면, 상기 복수의 문서 저장소들 중 상기 제1 문서 파일을 저장하기 위한 제1 문서 저장소를 선별하는 단계;
    상기 제1 문서 파일을 상기 제1 문서 저장소에 전송함과 동시에 상기 제1 문서 파일에 대한 저장 명령을 상기 제1 문서 저장소에 전송하는 단계;
    상기 식별자 테이블로부터 상기 제1 문서 저장소에 대한 고유 식별자를 추출하고, 문서 관리 테이블에 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자를 서로 대응시켜 기록하는 단계; 및
    상기 클라이언트 단말로 상기 제1 문서 파일의 저장이 완료되었음을 지시하는 저장 완료 메시지를 전송하는 단계
    를 포함하고,
    상기 선별하는 단계는
    상기 클라이언트 단말로부터 상기 제1 문서 파일에 대한 저장 요청 명령이 수신되면, 상기 복수의 문서 저장소들 각각의 잔여 저장 가능 용량 및 각 문서 저장소에 이미 저장되어 있는 문서 파일의 개수를 확인하는 단계;
    상기 복수의 문서 저장소들 각각에 대해, 각 문서 저장소의 잔여 저장 가능 용량을 각 문서 저장소의 최대 저장 가능 용량으로 나누어 제1 수치 값을 연산하고, 각 문서 저장소에 이미 저장되어 있는 문서 파일의 개수를 사전 설정된 기준 문서 파일의 개수로 나눈 값의 역수를 쌍곡 탄젠트 함수(hyperbolic tangent functions)에 입력으로 인가하여 제2 수치 값을 연산함으로써, 상기 복수의 문서 저장소들 각각에 대응되는 상기 제1 수치 값과 상기 제2 수치 값을 산출하는 단계;
    상기 복수의 문서 저장소들 각각에 대해, 상기 제1 수치 값과 상기 제2 수치 값을 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 복수의 문서 저장소들 각각에 대응되는 특징 벡터를 생성하는 단계;
    상기 복수의 문서 저장소들 각각에 대응되는 특징 벡터를 기초로 K(K는 2이상의 자연수)개의 그룹들을 생성하기 위한 K-평균 군집화(K-means Clustering)를 수행하여 상기 복수의 문서 저장소들을 K개의 저장소 그룹들로 군집화하는 단계;
    상기 K개의 저장소 그룹들 각각에 대해, 각 저장소 그룹에 포함된 문서 저장소들의 특징 벡터에 대한 유클리드 노름(Euclidean norm)의 평균을 연산함으로써, 상기 K개의 저장소 그룹들 각각에 대응되는 유클리드 노름의 평균을 산출하는 단계; 및
    상기 K개의 저장소 그룹들 중 상기 유클리드 노름의 평균이 최대로 산출된 제1 저장소 그룹을 선택한 후 상기 제1 저장소 그룹에 포함된 문서 저장소들 중 랜덤하게 선택되는 어느 하나의 문서 저장소를 상기 제1 문서 저장소로 선별하는 단계
    를 포함하는 문서 저장 관리 서버의 동작 방법.
  7. 삭제
  8. 제6항에 있어서,
    상기 기록하는 단계는
    상기 제1 문서 파일에 따른 전자 문서로부터 사전 설정된 제1 개수의 주요 키워드들을 추출한 후 상기 문서 관리 테이블에 상기 제1 문서 파일의 파일명과 상기 제1 문서 저장소에 대한 고유 식별자를 서로 대응시켜 기록함과 동시에, 상기 주요 키워드들을 함께 대응시켜 기록하는 문서 저장 관리 서버의 동작 방법.
  9. 제8항에 있어서,
    상기 기록하는 단계는
    상기 제1 문서 파일에 따른 전자 문서 내에 삽입되어 있는 복수의 단어들을 추출하는 단계;
    상기 복수의 단어들 각각의 상기 전자 문서 내에서의 등장 빈도수를 확인하는 단계;
    상기 복수의 단어들 중 상기 등장 빈도수가 큰 순서로 사전 설정된 제2 개수의 단어들을 후보 키워드로 선택하는 단계;
    상기 후보 키워드로 선택된 상기 제2 개수의 단어들 각각의 상기 전자 문서 내에서의 평균 글자 크기 값을 산출하는 단계;
    상기 제2 개수의 단어들 각각의 평균 글자 크기 값 중 중앙값(median)을 확인한 후 상기 전자 문서 내에서 상기 제2 개수의 단어들 각각이 상기 중앙값 이상의 글자 크기 값으로 등장하는 횟수를 카운트하는 단계;
    상기 제2 개수의 단어들 각각에 대해, 각 단어의 평균 글자 크기 값과 각 단어에 대해서 카운트된 상기 중앙값 이상의 글자 크기 값으로 등장하는 횟수를 성분으로 갖는 2차원의 벡터를 구성함으로써, 상기 제2 개수의 단어들 각각에 대응되는 단어 벡터를 생성하는 단계; 및
    상기 제2 개수의 단어들 중 상기 제2 개수의 단어들 각각에 대응되는 단어 벡터의 맨해튼 노름(Manhattan norm)이 큰 순서로 상기 제1 개수만큼의 단어들을 상기 주요 키워드들로 추출하는 단계
    를 포함하는 문서 저장 관리 서버의 동작 방법.
  10. 제8항에 있어서,
    상기 저장 완료 메시지가 상기 클라이언트 단말로 전송된 이후에, 상기 클라이언트 단말로부터 상기 제1 문서 파일의 파일명이 검색어로 수신되면서, 상기 검색어를 기반으로 하는 문서 파일의 검색 명령이 수신되는 경우, 상기 문서 관리 테이블로부터 상기 제1 문서 파일의 파일명과 상기 주요 키워드들을 추출한 후 상기 제1 문서 파일의 파일명과 상기 주요 키워드들에 대한 정보로 구성된 검색 결과 정보를 생성하여 상기 클라이언트 단말로 전송하는 단계;
    상기 클라이언트 단말로부터 상기 제1 문서 파일에 대한 다운로드 요청이 수신되는 경우, 상기 문서 관리 테이블로부터 상기 제1 문서 파일의 파일명에 대응되어 기록되어 있는 상기 제1 문서 저장소의 고유 식별자를 추출한 후 상기 제1 문서 저장소의 고유 식별자를 기초로 상기 복수의 문서 저장소들 중 상기 제1 문서 저장소에 접속하여 상기 제1 문서 파일에 대한 로드 명령을 전송하는 단계; 및
    상기 제1 문서 저장소에서 상기 제1 문서 파일이 로드됨에 따라 상기 제1 문서 저장소로부터 상기 제1 문서 파일이 수신되면, 상기 제1 문서 파일을 상기 클라이언트 단말로 전송하는 단계
    를 더 포함하는 문서 저장 관리 서버의 동작 방법.
  11. 제6항, 제8항, 제9항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  12. 제6항, 제8항, 제9항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020200092113A 2020-07-24 2020-07-24 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법 KR102375511B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200092113A KR102375511B1 (ko) 2020-07-24 2020-07-24 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200092113A KR102375511B1 (ko) 2020-07-24 2020-07-24 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20220013084A KR20220013084A (ko) 2022-02-04
KR102375511B1 true KR102375511B1 (ko) 2022-03-17

Family

ID=80267737

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200092113A KR102375511B1 (ko) 2020-07-24 2020-07-24 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102375511B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024043355A1 (ko) * 2022-08-23 2024-02-29 주식회사 아카에이아이 언어 데이터를 관리하는 방법 및 그를 이용한 서버

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112016002365T5 (de) * 2015-05-27 2018-02-15 Google Inc. System und Verfahren zur automatischen cloudbasierten Volldatensicherung und Wiederherstellung auf mobilen Geräten

Also Published As

Publication number Publication date
KR20220013084A (ko) 2022-02-04

Similar Documents

Publication Publication Date Title
US10452691B2 (en) Method and apparatus for generating search results using inverted index
KR101137147B1 (ko) 질의 강제 인덱싱
US6678687B2 (en) Method for creating an index and method for searching an index
US8171029B2 (en) Automatic generation of ontologies using word affinities
US8799291B2 (en) Forensic index method and apparatus by distributed processing
US8027961B2 (en) System and method for composite record keys ordered in a flat key space for a distributed database
US8266150B1 (en) Scalable document signature search engine
US7617250B2 (en) Semantic file system
CN111506621A (zh) 一种数据统计方法及装置
CN109829073B (zh) 一种图像搜索的方法及装置
CN112328548A (zh) 一种文件检索方法及计算设备
WO2021043088A1 (zh) 文件查询方法、装置、计算机设备及存储介质
CN111562920A (zh) 小程序代码相似度确定方法、装置、服务器及存储介质
CN114529741A (zh) 一种图片去重方法、装置及电子设备
KR102375511B1 (ko) 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법
KR102417824B1 (ko) 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 종이 문서의 스캔 이미지와 유사한 문서 파일의 로드를 수행하는 문서 관리 서버 및 그 동작 방법
CN113377876A (zh) 基于Domino平台的数据分库处理方法、装置及平台
JP5418138B2 (ja) 文書検索システム、情報処理装置およびプログラム
JP3702268B2 (ja) 情報検索システム、情報検索方法およびプログラム
EP4024226A1 (en) Query tree labeling and processing
CN114461606A (zh) 数据存储方法、装置、计算机设备及存储介质
CN114238334A (zh) 异构数据编码、解码方法和装置、计算机设备和存储介质
CN112380445A (zh) 数据查询方法、装置、设备和存储介质
US8788483B2 (en) Method and apparatus for searching in a memory-efficient manner for at least one query data element
EP2318956A1 (en) Apparatus and method for searching information

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant