KR102266073B1 - Electronic device that controls the efficient loading of each sheet that makes up a spreadsheet document based on a multi-thread and operating method thereof - Google Patents

Electronic device that controls the efficient loading of each sheet that makes up a spreadsheet document based on a multi-thread and operating method thereof Download PDF

Info

Publication number
KR102266073B1
KR102266073B1 KR1020200012402A KR20200012402A KR102266073B1 KR 102266073 B1 KR102266073 B1 KR 102266073B1 KR 1020200012402 A KR1020200012402 A KR 1020200012402A KR 20200012402 A KR20200012402 A KR 20200012402A KR 102266073 B1 KR102266073 B1 KR 102266073B1
Authority
KR
South Korea
Prior art keywords
sheets
sheet
loading
unit
reference sheet
Prior art date
Application number
KR1020200012402A
Other languages
Korean (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 KR1020200012402A priority Critical patent/KR102266073B1/en
Application granted granted Critical
Publication of KR102266073B1 publication Critical patent/KR102266073B1/en

Links

Images

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions

Abstract

Disclosed are an electronic device for controlling efficient loading of each sheet constituting a spreadsheet document based on multi-thread, and an operating method thereof. According to the electronic device and the operating method thereof of the present invention, processes of allowing, when a saving command for a spreadsheet document is received from a user, editing time information for each of n sheets (where n is a natural number that is greater than or equal to 3) generated in the document to be included in a document file and stored, selecting, when an open command for the document file is received from the user, k sheets (where k is a natural number that is greater than or equal to 2 and less than n) among the n sheets based on an editing time for each of the n sheets included in the document file and a data size for each of the n sheets until all of the n sheets are loaded, and allocating the k sheets to k loading threads, respectively, to perform parallel loading are repeatedly performed, so that the efficient loading of each sheet constituting the spreadsheet document based on the multi-thread is supported.

Description

멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치 및 그 동작 방법{ELECTRONIC DEVICE THAT CONTROLS THE EFFICIENT LOADING OF EACH SHEET THAT MAKES UP A SPREADSHEET DOCUMENT BASED ON A MULTI-THREAD AND OPERATING METHOD THEREOF}ELECTRONIC DEVICE THAT CONTROLS THE EFFICIENT LOADING OF EACH SHEET THAT MAKES UP A SPREADSHEET DOCUMENT BASED ON A MULTI-THREAD AND OPERATING METHOD THEREOF}

본 발명은 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치 및 그 동작 방법에 대한 것이다.The present invention relates to an electronic device for efficiently controlling the load of each sheet constituting a spreadsheet document based on a multi-thread, and an operating method thereof.

최근, 컴퓨터나 스마트폰 또는 태블릿 PC 등이 널리 보급됨에 따라, 이러한 전자 장치를 이용하여 전자 문서를 열람, 작성, 편집할 수 있도록 하는 다양한 종류의 전자 문서 관련 프로그램들이 출시되고 있다. Recently, as computers, smart phones, or tablet PCs are widely used, various types of electronic document-related programs have been released that allow users to read, write, and edit electronic documents using such electronic devices.

이러한 전자 문서 관련 프로그램들로는 기본적인 문서의 작성, 편집 등을 지원하는 워드프로세서, 데이터의 입력, 산술연산, 데이터 관리를 보조하는 스프레드시트, 발표자의 발표를 보조하기 위한 프레젠테이션 프로그램들이 있다. These electronic document-related programs include a word processor supporting basic document creation and editing, a spreadsheet supporting data input, arithmetic operations, and data management, and presentation programs supporting a presenter's presentation.

관련하여, 스프레드시트에서 생성되는 문서는 여러 개의 시트들로 구성될 수 있고, 각 시트는 가로 행과 세로 행이 교차하면서 만든 셀이라는 공간에 데이터가 입력되어 각종 계산 작업을 수행할 수 있도록 구성되어 있다.In relation to this, a document created in a spreadsheet can be composed of several sheets, and each sheet is configured so that data can be entered into a space called a cell created by intersecting horizontal and vertical rows to perform various calculations. have.

일반적으로, 복수의 시트들로 구성되는 스프레드시트 문서가 메모리에 저장된 후, 사용자의 문서 오픈 명령에 따라 스프레드시트 상에서 오픈되면, 상기 스프레드시트 문서를 구성하는 상기 복수의 시트들이 화면 상에 순차적으로 로드된다.In general, after a spreadsheet document composed of a plurality of sheets is stored in a memory and then opened on the spreadsheet according to a user's document open command, the plurality of sheets constituting the spreadsheet document are sequentially loaded on the screen. do.

이 경우, 프로세스 내에서 실행되는 여러 흐름의 단위를 의미하는 '스레드'가 사용자의 문서 오픈 명령에 따른 상기 복수의 시트들의 로드 작업을 수행하기 위해, 운영체제로부터 시스템 자원을 할당받아 로드 작업을 처리하게 된다.In this case, a 'thread', which means a unit of several flows executed in a process, receives system resources from the operating system to process the load operation in order to perform the load operation of the plurality of sheets according to the user's document open command. do.

기존에는 각 시트별로 단일 스레드를 생성하여 로드 작업을 처리함에 따라, 하나의 시트에 대한 로드가 완료되어야만 다음 시트가 로드될 수 있어, 시트의 수가 너무 많거나 특정 시트의 데이터 크기가 매우 큰 경우, 자원의 비효율적 할당으로 상기 복수의 시트들의 전체 로딩 속도가 느려지는 문제가 있었다. In the past, as a single thread was created for each sheet to handle the load operation, the next sheet could be loaded only after the loading of one sheet was completed. If the number of sheets is too large or the data size of a specific sheet is very large, There is a problem in that the overall loading speed of the plurality of sheets is slowed down due to inefficient allocation of resources.

만약, 다수의 시트들 각각이 하나씩 할당된 다수의 스레드를 기반으로 상기 문서 오픈 명령에 따른 시트들의 로드 작업을 처리할 수 있다면, 하나의 프로세스 내에서 다수의 스레드가 자원을 공유함으로써, 시스템의 처리량과 처리 속도를 향상시킬 수 있어 자원의 효율적인 운영이 가능할 것이다. If a load operation of sheets according to the document open command can be processed based on a plurality of threads allocated to each of a plurality of sheets, a plurality of threads within one process share a resource, thereby increasing the throughput of the system and processing speed can be improved, so that efficient operation of resources will be possible.

더불어, 스프레드시트 문서를 구성하는 각 시트에 대한 사용자의 편집시간이나 데이터 크기 등을 기초로, 상기 복수의 시트들의 로드 순서를 결정함으로써, 사용자의 편의를 도모할 수도 있다.In addition, by determining the load order of the plurality of sheets based on the user's editing time or data size for each sheet constituting the spreadsheet document, user convenience may be promoted.

따라서, 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 기술에 대한 연구가 필요하다.Therefore, it is necessary to study a technique for efficiently controlling the load for each sheet composing a spreadsheet document based on multi-threading.

본 발명에 따른 전자 장치 및 그 동작 방법은 사용자로부터 스프레드시트 문서의 저장 명령이 수신되면, 상기 문서에서 생성된 n(n은 3이상의 자연수임)개의 시트들 각각에 대한 편집시간 정보를 문서 파일에 포함시켜 저장한 후, 상기 사용자로부터 상기 문서 파일에 대한 오픈 명령이 수신되면, 상기 n개의 시트들의 로드가 모두 완료될 때까지, 상기 문서 파일에 포함된 상기 n개의 시트들 각각에 대한 편집시간과 상기 n개의 시트들 각각에 대한 데이터 크기를 기초로, 상기 n개의 시트들 중 k(k는 n보다 작은 2이상의 자연수임)개의 시트들을 선택하고, k개의 로딩 스레드들에 하나씩 할당하여 병렬 로드하는 과정을 반복 수행함으로써, 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트의 효율적인 로드를 지원하고자 한다.An electronic device and an operating method thereof according to the present invention, when a command to save a spreadsheet document is received from a user, edit time information for each of n (n is a natural number equal to or greater than 3) generated in the document is stored in a document file After including and storing, when an open command for the document file is received from the user, the editing time for each of the n sheets included in the document file and Based on the data size for each of the n sheets, k (k is a natural number less than 2 or more) of the n sheets is selected, and one is assigned to k loading threads for parallel loading. By repeating the process, we want to support efficient loading of each sheet composing a spreadsheet document based on multi-threading.

본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치는 사용자의 편집 명령에 의해 스프레드시트 문서에서 n(n은 3이상의 자연수임)개의 시트들이 생성된 경우, 상기 n개의 시트들 각각에 대한 편집시간 - 상기 n개의 시트들 각각에 대한 편집시간은 상기 n개의 시트들 각각이 문서 편집을 위해 활성화되어 있는 시간을 의미함 - 을 측정하는 편집시간 측정부, 상기 사용자로부터 상기 n개의 시트들에 대한 문서 편집이 완료되어 문서 저장 명령이 수신되면, 상기 n개의 시트들 각각에 대한 편집시간 정보가 포함된 문서 파일을 생성하여 저장하는 저장부, 상기 사용자로부터 상기 문서 파일에 대한 오픈 명령이 수신되면, 상기 문서 파일에 포함되어 있는 상기 n개의 시트들 각각에 대한 편집시간을 확인한 후, 상기 n개의 시트들 각각에 대한 데이터 크기를 확인하는 확인부, 상기 n개의 시트들 각각에 대하여, 상기 n개의 시트들 각각에 대한 편집시간과 상기 n개의 시트들 각각에 대한 데이터 크기를 각 성분으로 하는 2차원의 기준 벡터를 생성하는 기준 벡터 생성부, 상기 n개의 시트들 중 편집시간이 최대인 제1 기준 시트를 추출하는 추출부, 상기 n개의 시트들 중 상기 제1 기준 시트를 제외한 나머지 n-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제1 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리(Euclidean Distance)를 연산한 후, 상기 n-1개의 시트들 중 상기 제1 기준 시트에 대한 2차원의 기준 벡터와의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 k-1(k는 n보다 작은 2이상의 자연수임)개의 제1 시트들을 선택하는 선택부 및 상기 제1 기준 시트와 상기 k-1개의 제1 시트들의 로드를 위한 k개의 제1 로딩 스레드(thread)들을 생성하고, 상기 k개의 제1 로딩 스레드들에 상기 제1 기준 시트와 상기 k-1개의 제1 시트들 각각을 하나씩 할당한 후, 상기 k개의 제1 로딩 스레드들을 실행시켜 상기 제1 기준 시트와 상기 k-1개의 제1 시트들을 병렬 로드하는 로드부를 포함한다.The electronic device for efficiently controlling the loading of each sheet constituting the spreadsheet document based on the multi-thread according to an embodiment of the present invention is n (n is a natural number greater than or equal to 3) in the spreadsheet document by the user's editing command. When n sheets are generated, the editing time for each of the n sheets - the editing time for each of the n sheets means the time during which each of the n sheets is active for document editing - is measured an editing time measuring unit that generates and stores a document file including editing time information for each of the n sheets when a document saving command is received from the user after the document editing for the n sheets is completed When an open command for the document file is received from the user, after checking the editing time for each of the n sheets included in the document file, the data size for each of the n sheets is checked A check unit, for each of the n sheets, a reference vector generation unit for generating a two-dimensional reference vector using an editing time for each of the n sheets and a data size for each of the n sheets as each component , an extraction unit for extracting a first reference sheet having the maximum editing time from among the n sheets, a two-dimensional reference vector for each of the remaining n-1 sheets excluding the first reference sheet among the n sheets After calculating the Euclidean Distance between the and the two-dimensional reference vector for the first reference sheet, the Euclidean distance from the two-dimensional reference vector for the first reference sheet among the n-1 sheets is A selection unit for selecting k-1 (k is a natural number greater than or equal to 2, less than n) first sheets having a minimum two-dimensional reference vector, and a load of the first reference sheet and the k-1 first sheets After generating k first loading threads for the , assigning each of the first reference sheet and the k-1 first sheets one to the k first loading threads, the k and a load unit for executing the first loading threads to load the first reference sheet and the k-1 first sheets in parallel.

또한, 본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법은 사용자의 편집 명령에 의해 스프레드시트 문서에서 n개의 시트들이 생성된 경우, 편집시간 측정부가 상기 n개의 시트들 각각에 대한 편집시간 - 상기 n개의 시트들 각각에 대한 편집시간은 상기 n개의 시트들 각각이 문서 편집을 위해 활성화되어 있는 시간을 의미함 - 을 측정하는 단계, 상기 사용자로부터 상기 n개의 시트들에 대한 문서 편집이 완료되어 문서 저장 명령이 수신되면, 저장부가 상기 n개의 시트들 각각에 대한 편집시간 정보가 포함된 문서 파일을 생성하여 저장하는 단계, 상기 사용자로부터 상기 문서 파일에 대한 오픈 명령이 수신되면, 확인부가 상기 문서 파일에 포함되어 있는 상기 n개의 시트들 각각에 대한 편집시간을 확인한 후, 상기 n개의 시트들 각각에 대한 데이터 크기를 확인하는 단계, 기준 벡터 생성부가 상기 n개의 시트들 각각에 대하여, 상기 n개의 시트들 각각에 대한 편집시간과 상기 n개의 시트들 각각에 대한 데이터 크기를 각 성분으로 하는 2차원의 기준 벡터를 생성하는 단계, 추출부가 상기 n개의 시트들 중 편집시간이 최대인 제1 기준 시트를 추출하는 단계, 선택부가 상기 n개의 시트들 중 상기 제1 기준 시트를 제외한 나머지 n-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제1 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리를 연산한 후, 상기 n-1개의 시트들 중 상기 제1 기준 시트에 대한 2차원의 기준 벡터와의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 k-1개의 제1 시트들을 선택하는 단계 및 로드부가 상기 제1 기준 시트와 상기 k-1개의 제1 시트들의 로드를 위한 k개의 제1 로딩 스레드들을 생성하고, 상기 k개의 제1 로딩 스레드들에 상기 제1 기준 시트와 상기 k-1개의 제1 시트들 각각을 하나씩 할당한 후, 상기 k개의 제1 로딩 스레드들을 실행시켜 상기 제1 기준 시트와 상기 k-1개의 제1 시트들을 병렬 로드하는 단계를 포함한다.In addition, the operating method of the electronic device for efficiently controlling the loading of each sheet constituting the spreadsheet document based on the multi-thread according to an embodiment of the present invention is that n sheets in the spreadsheet document are When generated, the editing time measuring unit calculates the editing time for each of the n sheets - the editing time for each of the n sheets means the time during which each of the n sheets is active for document editing Measuring, when the document editing of the n sheets is completed and a document storage command is received from the user, a storage unit generating and storing a document file including editing time information for each of the n sheets , when an open command for the document file is received from the user, a confirmation unit checks the editing time for each of the n sheets included in the document file, and then checks the data size for each of the n sheets step, the reference vector generating unit, for each of the n sheets, generating a two-dimensional reference vector using the editing time for each of the n sheets and the data size for each of the n sheets as each component step, extracting, by an extraction unit, a first reference sheet having a maximum editing time from among the n sheets, a selection unit 2 for each of the remaining n-1 sheets excluding the first reference sheet among the n sheets After calculating the Euclidean distance between the dimensional reference vector and the two-dimensional reference vector for the first reference sheet, the Euclidean distance between the two-dimensional reference vector for the first reference sheet among the n-1 sheets is selecting k-1 first sheets having a minimum two-dimensional reference vector, and a loader generating k first loading threads for loading the first reference sheet and the k-1 first sheets, , after allocating each of the first reference sheet and the k-1 first sheets to the k first loading threads, executing the k first loading threads and loading a first reference sheet and the k-1 first sheets in parallel.

본 발명에 따른 전자 장치 및 그 동작 방법은 사용자로부터 스프레드시트 문서의 저장 명령이 수신되면, 상기 문서에서 생성된 n(n은 3이상의 자연수임)개의 시트들 각각에 대한 편집시간 정보를 문서 파일에 포함시켜 저장한 후, 상기 사용자로부터 상기 문서 파일에 대한 오픈 명령이 수신되면, 상기 n개의 시트들의 로드가 모두 완료될 때까지, 상기 문서 파일에 포함된 상기 n개의 시트들 각각에 대한 편집시간과 상기 n개의 시트들 각각에 대한 데이터 크기를 기초로, 상기 n개의 시트들 중 k(k는 n보다 작은 2이상의 자연수임)개의 시트들을 선택하고, k개의 로딩 스레드들에 하나씩 할당하여 병렬 로드하는 과정을 반복 수행함으로써, 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트의 효율적인 로드를 지원할 수 있다.An electronic device and an operating method thereof according to the present invention, when a command to save a spreadsheet document is received from a user, edit time information for each of n (n is a natural number equal to or greater than 3) generated in the document is stored in a document file After including and storing, when an open command for the document file is received from the user, the editing time for each of the n sheets included in the document file and Based on the data size for each of the n sheets, k (k is a natural number less than 2 or more) of the n sheets is selected, and one is assigned to k loading threads for parallel loading. By repeating the process, it is possible to support efficient loading of each sheet composing a spreadsheet document based on multiple threads.

도 1은 본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법을 도시한 순서도이다.
1 is a diagram illustrating a structure of an electronic device for efficiently controlling a load for each sheet constituting a spreadsheet document based on a multi-thread according to an embodiment of the present invention.
2 is a flowchart illustrating a method of operating an electronic device for efficiently controlling a load for each sheet constituting a spreadsheet document based on a multi-thread according to an embodiment of the present invention.

이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. These descriptions are not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. While describing each drawing, like reference numerals are used for similar components, and unless otherwise defined, all terms used in this specification, including technical or scientific terms, refer to those of ordinary skill in the art to which the present invention belongs. It has the same meaning as is commonly understood by those who have it.

본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다. In this document, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. In addition, in various embodiments of the present invention, each of the components, functional blocks or means may be composed of one or more sub-components, and the electrical, electronic, and mechanical functions performed by each component are electronic. A circuit, an integrated circuit, an ASIC (Application Specific Integrated Circuit), etc. may be implemented with various well-known devices or mechanical elements, and may be implemented separately or two or more may be integrated into one.

한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.On the other hand, the blocks in the accompanying block diagram or steps in the flowchart are computer program instructions that are loaded in the processor or memory of equipment capable of data processing, such as general-purpose computers, special-purpose computers, portable notebook computers, and network computers, and perform specified functions can be interpreted as meaning Since these computer program instructions may be stored in a memory provided in a computer device or in a memory readable by a computer, the functions described in the blocks of the block diagrams or the steps of the flowcharts are produced as articles of manufacture containing instruction means for performing the same. could be In addition, each block or each step may represent a module, segment, or portion of code comprising one or more executable instructions for executing the specified logical function(s). It should also be noted that, in some alternative embodiments, it is also possible for the functions recited in blocks or steps to be executed out of the prescribed order. For example, two blocks or steps shown in succession may be performed substantially simultaneously or in the reverse order, and in some cases, some blocks or steps may be omitted.

도 1은 본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 구조를 도시한 도면이다. 1 is a diagram illustrating a structure of an electronic device for efficiently controlling a load for each sheet constituting a spreadsheet document based on a multi-thread according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치(110)는 편집시간 측정부(111), 저장부(112), 확인부(113), 기준 벡터 생성부(114), 추출부(115), 선택부(116) 및 로드부(117)를 포함한다.Referring to FIG. 1 , the electronic device 110 for efficiently controlling the loading of each sheet constituting a spreadsheet document based on a multi-thread according to an embodiment of the present invention includes an editing time measuring unit 111 and a storage unit. 112 , a check unit 113 , a reference vector generation unit 114 , an extraction unit 115 , a selection unit 116 , and a load unit 117 .

편집시간 측정부(111)는 사용자의 편집 명령에 의해 스프레드시트 문서에서 n(n은 3이상의 자연수임)개의 시트들이 생성된 경우, 상기 n개의 시트들 각각에 대한 편집시간을 측정한다.The editing time measuring unit 111 measures the editing time for each of the n sheets when n (n is a natural number equal to or greater than 3) sheets in the spreadsheet document by the user's editing command.

여기서, 상기 n개의 시트들 각각에 대한 편집시간은 상기 n개의 시트들 각각이 문서 편집을 위해 활성화되어 있는 시간을 의미한다. Here, the editing time for each of the n sheets means a time during which each of the n sheets is activated for document editing.

예컨대, n이 '9'라고 가정하면, 편집시간 측정부(111)는 사용자의 편집 명령에 의해 스프레드시트 문서에서 '9'개의 시트들('시트 1', '시트 2', '시트 3', '시트 4', '시트 5', '시트 6', '시트 7', '시트 8', '시트 9')이 생성된 경우, 상기 '9'개의 시트들 각각에 대한 편집시간을 하기의 표 1과 같이 측정할 수 있다.For example, assuming that n is '9', the editing time measuring unit 111 sets '9' sheets ('Sheet 1', 'Sheet 2', and 'Sheet 3') in the spreadsheet document by the user's editing command. , 'Sheet 4', 'Sheet 5', 'Sheet 6', 'Sheet 7', 'Sheet 8', 'Sheet 9'), edit time for each of the '9' sheets It can be measured as shown in Table 1.

'9'개의 시트들'9' sheets 편집시간(분)Editing time (minutes) 시트 1sheet 1 300300 시트 2sheet 2 250250 시트 3sheet 3 230230 시트 4sheet 4 220220 시트 5sheet 5 100100 시트 6sheet 6 6060 시트 7sheet 7 5050 시트 8sheet 8 3030 시트 9sheet 9 1515

저장부(112)는 상기 사용자로부터 상기 n개의 시트들에 대한 문서 편집이 완료되어 문서 저장 명령이 수신되면, 상기 n개의 시트들 각각에 대한 편집시간 정보가 포함된 문서 파일을 생성하여 저장한다.The storage unit 112 generates and stores a document file including editing time information for each of the n sheets when a document storage command is received from the user after the document editing of the n sheets is completed.

예컨대, 앞선 예에 따라, 상기 사용자로부터 상기 '9'개의 시트들에 대한 문서 편집이 완료되어 문서 저장 명령이 수신되면, 저장부(112)는 상기 '9'개의 시트들 각각에 대한 편집시간 정보가 포함된 문서 파일을 생성하여 저장할 수 있다.For example, according to the preceding example, when the document editing of the '9' sheets is completed and a document storage command is received from the user, the storage unit 112 may store edit time information for each of the '9' sheets. You can create and save a document file containing

확인부(113)는 상기 사용자로부터 상기 문서 파일에 대한 오픈 명령이 수신되면, 상기 문서 파일에 포함되어 있는 상기 n개의 시트들 각각에 대한 편집시간을 확인한 후, 상기 n개의 시트들 각각에 대한 데이터 크기를 확인한다.When an open command for the document file is received from the user, the check unit 113 checks the editing time for each of the n sheets included in the document file, and then checks the editing time for each of the n sheets included in the document file. Check the size.

기준 벡터 생성부(114)는 상기 n개의 시트들 각각에 대하여, 상기 n개의 시트들 각각에 대한 편집시간과 상기 n개의 시트들 각각에 대한 데이터 크기를 각 성분으로 하는 2차원의 기준 벡터를 생성한다.The reference vector generating unit 114 generates, for each of the n sheets, a two-dimensional reference vector using an editing time for each of the n sheets and a data size for each of the n sheets as components. do.

추출부(115)는 상기 n개의 시트들 중 편집시간이 최대인 제1 기준 시트를 추출한다.The extraction unit 115 extracts a first reference sheet having the maximum editing time from among the n sheets.

선택부(116)는 상기 n개의 시트들 중 상기 제1 기준 시트를 제외한 나머지 n-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제1 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리(Euclidean Distance)를 연산한 후, 상기 n-1개의 시트들 중 상기 제1 기준 시트에 대한 2차원의 기준 벡터와의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 k-1(k는 n보다 작은 2이상의 자연수임)개의 제1 시트들을 선택한다.The selection unit 116 is configured to determine the Euclidean distance between the two-dimensional reference vector for each of the remaining n-1 sheets of the n sheets except for the first reference sheet and the two-dimensional reference vector for the first reference sheet. After calculating (Euclidean Distance), k-1 having a two-dimensional reference vector having a minimum Euclidean distance from a two-dimensional reference vector with respect to the first reference sheet among the n-1 sheets (k is n) less than 2 natural numbers) first sheets are selected.

여기서, 유클리드 거리란 두 벡터 간의 거리를 의미하는 것으로 하기의 수학식 1에 따라 연산될 수 있다.Here, the Euclidean distance refers to a distance between two vectors and may be calculated according to Equation 1 below.

Figure 112020010865949-pat00001
Figure 112020010865949-pat00001

상기 수학식 1에서 D는 유클리드 거리, pi와 qi는 두 벡터에 포함되어 있는 i번째 성분들을 의미한다. 두 벡터 간의 유클리드 거리가 작을수록 두 벡터는 유사한 벡터라고 볼 수 있고, 두 벡터 간의 유클리드 거리가 클수록 두 벡터는 비유사한 벡터라고 볼 수 있다.In Equation 1, D denotes a Euclidean distance, and p i and q i denote i-th components included in the two vectors. As the Euclidean distance between two vectors is small, the two vectors can be regarded as similar vectors, and as the Euclidean distance between two vectors increases, the two vectors can be regarded as dissimilar vectors.

즉, 상기 n-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제1 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리가 작을수록 상기 n-1개의 시트들 각각에 대한 2차원의 기준 벡터는 상기 제1 기준 시트에 대한 2차원의 기준 벡터와 유사한 벡터라고 볼 수 있고, 상기 n-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제1 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리가 클수록 상기 n-1개의 시트들 각각에 대한 2차원의 기준 벡터는 상기 제1 기준 시트에 대한 2차원의 기준 벡터와 비유사한 벡터라고 볼 수 있다.That is, the smaller the Euclidean distance between the two-dimensional reference vector for each of the n-1 sheets and the two-dimensional reference vector for the first reference sheet is, the smaller the two-dimensional reference for each of the n-1 sheets. The vector may be viewed as a vector similar to a two-dimensional reference vector for the first reference sheet, a two-dimensional reference vector for each of the n-1 sheets, and a two-dimensional reference vector for the first reference sheet As the Euclidean distance between them increases, the two-dimensional reference vector for each of the n-1 sheets may be regarded as a vector dissimilar to the two-dimensional reference vector for the first reference sheet.

로드부(117)는 상기 제1 기준 시트와 상기 k-1개의 제1 시트들의 로드를 위한 k개의 제1 로딩 스레드(thread)들을 생성하고, 상기 k개의 제1 로딩 스레드들에 상기 제1 기준 시트와 상기 k-1개의 제1 시트들 각각을 하나씩 할당한 후, 상기 k개의 제1 로딩 스레드들을 실행시켜 상기 제1 기준 시트와 상기 k-1개의 제1 시트들을 병렬 로드한다.The rod unit 117 generates k first loading threads for loading the first reference sheet and the k-1 first sheets, and provides the k first loading threads with the first reference sheet. After allocating a sheet and each of the k-1 first sheets, the k first loading threads are executed to load the first reference sheet and the k-1 first sheets in parallel.

여기서, 스레드는 프로세스 내에서 실행되는 명령을 독립적으로 처리하는 하나의 작업 단위를 의미한다.Here, a thread means one unit of work that independently processes instructions executed within a process.

이하에서는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치(110)의 동작에 대해 예를 들어 상세히 설명하기로 한다. Hereinafter, an operation of the electronic device 110 that efficiently controls the load of each sheet constituting the spreadsheet document based on the multi-thread will be described in detail with an example.

전술한 예를 따르면, 확인부(113)는 상기 사용자로부터 상기 문서 파일에 대한 오픈 명령이 수신되는 경우, 상기의 표 1에 기록된 바와 같이, 상기 문서 파일에 포함되어 있는 상기 '9'개의 시트들 각각에 대한 편집시간을 확인한 후, 상기 '9'개의 시트들 각각에 대한 데이터 크기를 하기의 표 2와 같이 확인할 수 있다.According to the above-described example, when an open command for the document file is received from the user, the confirmation unit 113 is configured to, as recorded in Table 1, the '9' sheets included in the document file. After checking the editing time for each of the '9' sheets, the data size for each of the '9' sheets can be confirmed as shown in Table 2 below.

'9'개의 시트들'9' sheets 데이터 크기(kB)Data size (kB) 시트 1sheet 1 150150 시트 2sheet 2 200200 시트 3sheet 3 100100 시트 4sheet 4 150150 시트 5sheet 5 6060 시트 6sheet 6 5050 시트 7sheet 7 100100 시트 8sheet 8 2525 시트 9sheet 9 2525

이후, 기준 벡터 생성부(114)는 상기 '9'개의 시트들 각각에 대하여, 상기 '9'개의 시트들 각각에 대한 편집시간과 상기 '9'개의 시트들 각각에 대한 데이터 크기를 각 성분으로 하는 2차원의 기준 벡터를 하기의 표 3과 같이 생성할 수 있다.Thereafter, for each of the '9' sheets, the reference vector generator 114 converts the editing time for each of the '9' sheets and the data size for each of the '9' sheets into each component. A two-dimensional reference vector can be generated as shown in Table 3 below.

'9'개의 시트들'9' sheets 2차원의 기준 벡터two-dimensional reference vector 시트 1sheet 1 [300 150][300 150] 시트 2sheet 2 [250 200][250 200] 시트 3sheet 3 [230 100][230 100] 시트 4sheet 4 [220 150][220 150] 시트 5sheet 5 [100 60][100 60] 시트 6sheet 6 [60 50][60 50] 시트 7sheet 7 [50 100][50 100] 시트 8sheet 8 [30 25][30 25] 시트 9sheet 9 [15 25][15 25]

추출부(115)는 상기 '9'개의 시트들 중 편집시간이 최대인 제1 기준 시트로 편집시간이 '300(분)'인 '시트 1'을 추출할 수 있다.The extraction unit 115 may extract 'sheet 1' having an editing time of '300 (minutes)' as a first reference sheet having the maximum editing time among the '9' sheets.

이렇게, 상기 제1 기준 시트로 '시트 1'이 추출되면, 선택부(116)는 상기 '9'개의 시트들 중 '시트 1'을 제외한 나머지 '8'개의 시트들('시트 2', '시트 3', '시트 4', '시트 5', '시트 6', '시트 7', '시트 8', '시트 9') 각각에 대한 2차원의 기준 벡터와 '시트 1'에 대한 2차원의 기준 벡터인 '[300 150]' 간의 유클리드 거리를 상기 수학식 1에 따라, 하기의 표 4와 같이 연산할 수 있다. In this way, when 'sheet 1' is extracted as the first reference sheet, the selection unit 116 selects the remaining '8' sheets ('sheet 2', ', excluding 'sheet 1' among the '9' sheets). 2 for 'sheet 1' and a two-dimensional reference vector for each of 'sheet 3', 'sheet 4', 'sheet 5', 'sheet 6', 'sheet 7', 'sheet 8', 'sheet 9') The Euclidean distance between '[300 150]', which is a dimensional reference vector, can be calculated according to Equation 1, as shown in Table 4 below.

Figure 112020010865949-pat00002
Figure 112020010865949-pat00002

그리고, 선택부(116)는 k가 '3'이라고 가정하는 경우, 상기 '8'개의 시트들 중 '시트 1'에 대한 2차원의 기준 벡터인 '[300 150]'과의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 '2'개의 제1 시트들로 '시트 2'와 '시트 4'를 선택할 수 있다.And, when it is assumed that k is '3', the selector 116 determines that the Euclidean distance from '[300 150]', which is a two-dimensional reference vector for 'sheet 1' among the '8' sheets, is the minimum. 'Sheet 2' and 'Sheet 4' may be selected as '2' first sheets having a two-dimensional reference vector.

이렇게, 상기 '2'개의 제1 시트들로 '시트 2'와 '시트 4'가 선택되면, 로드부(117)는 '시트 1'과 '시트 2' 및 '시트 4'의 로드를 위한 '3'개의 제1 로딩 스레드들을 생성할 수 있고, 상기 '3'개의 제1 로딩 스레드들에 '시트 1', '시트 2' 및 '시트 4' 각각을 하나씩 할당한 후, 상기 '3'개의 제1 로딩 스레드들을 실행시켜 '시트 1', '시트 2' 및 '시트 4'를 병렬 로드할 수 있다.In this way, when 'sheet 2' and 'sheet 4' are selected as the '2' first sheets, the rod unit 117 is configured to load 'sheet 1', 'sheet 2' and 'sheet 4'. 3' first loading threads can be created, and after each of 'sheet 1', 'sheet 2' and 'sheet 4' is allocated to the '3' first loading threads, the '3' 'Sheet 1', 'Sheet 2' and 'Sheet 4' may be loaded in parallel by executing the first loading threads.

이때, 본 발명의 일실시예에 따르면, 추출부(115)는 상기 제1 기준 시트와 상기 k-1개의 제1 시트들이 모두 로드 완료되는 경우, 상기 n개의 시트들에서 상기 제1 기준 시트와 상기 k-1개의 제1 시트들을 제외한 나머지 n-k개의 시트들 중 편집시간이 최대인 제2 기준 시트를 추출할 수 있다.At this time, according to an embodiment of the present invention, the extraction unit 115 is the first reference sheet and the first reference sheet in the n sheets when all of the first reference sheet and the k-1 first sheets are loaded. A second reference sheet having a maximum editing time may be extracted from among the remaining nk sheets other than the k-1 first sheets.

또한, 본 발명의 일실시예에 따르면, 선택부(116)는 상기 n-k개의 시트들 중 상기 제2 기준 시트를 제외한 나머지 n-k-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제2 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리를 연산한 후, 상기 n-k-1개의 시트들 중 상기 제2 기준 시트에 대한 2차원의 기준 벡터와의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 k-1개의 제2 시트들을 선택할 수 있다.In addition, according to an embodiment of the present invention, the selection unit 116 includes a two-dimensional reference vector and the second reference for each of the remaining nk-1 sheets excluding the second reference sheet among the nk sheets. After calculating the Euclidean distance between the two-dimensional reference vectors for the sheets, the two-dimensional reference vector having the minimum Euclidean distance from the two-dimensional reference vector for the second reference sheet among the nk-1 sheets has k-1 second sheets may be selected.

또한, 본 발명의 일실시예에 따르면, 로드부(117)는 상기 제2 기준 시트와 상기 k-1개의 제2 시트들의 로드를 위한 k개의 제2 로딩 스레드들을 생성하고, 상기 k개의 제2 로딩 스레드들에 상기 제2 기준 시트와 상기 k-1개 제2 시트들 각각을 하나씩 할당한 후, 상기 k개의 제2 로딩 스레드들을 실행시켜 상기 제2 기준 시트와 상기 k-1개의 제2 시트들을 병렬 로드할 수 있다.In addition, according to an embodiment of the present invention, the rod part 117 generates k second loading threads for loading the second reference sheet and the k-1 second sheets, and the k second loading threads. After allocating the second reference sheet and the k-1 second sheets one by one to loading threads, the k second loading threads are executed to obtain the second reference sheet and the k-1 second sheets. can be loaded in parallel.

이때, n-k-1이 0인 경우, 선택부(116)는 상기 k-1개의 제2 시트들을 선택하지 않을 수 있고, 로드부(117)는 상기 제2 기준 시트의 로드를 위한 제2 로딩 스레드를 생성하고, 상기 제2 로딩 스레드에 상기 제2 기준 시트를 할당한 후, 상기 제2 로딩 스레드를 실행시켜 상기 제2 기준 시트만을 로드할 수 있다. In this case, when nk-1 is 0, the selection unit 116 may not select the k-1 second sheets, and the rod unit 117 uses a second loading thread for loading the second reference sheet. , and after allocating the second reference sheet to the second loading thread, only the second reference sheet may be loaded by executing the second loading thread.

또한, n-k-1이 k-1보다 작은 경우, 선택부(116)는 n-k-1개의 제2 시트들을 선택할 수 있고, 로드부(117)는 상기 제2 기준 시트와 상기 n-k-1개의 제2 시트들의 로드를 위한 n-k개의 제2 로딩 스레드들을 생성하고, 상기 n-k개의 제2 로딩 스레드들에 상기 제2 기준 시트와 상기 n-k-1개의 제2 시트들 각각을 하나씩 할당한 후, 상기 n-k개의 제2 로딩 스레드들을 실행시켜 상기 제2 기준 시트와 상기 n-k-1개의 제2 시트들을 병렬 로드할 수 있다.Also, when nk-1 is smaller than k-1, the selection unit 116 may select nk-1 second sheets, and the rod unit 117 may select the second reference sheet and the nk-1 second sheets. After generating nk second loading threads for loading sheets, and allocating each of the second reference sheet and the nk-1 second sheets to the nk second loading threads, the nk second loading threads By executing 2 loading threads, the second reference sheet and the nk-1 second sheets may be loaded in parallel.

관련하여, 전술한 예에 따르면, 추출부(115)는 '시트 1', '시트 2' 및 '시트 4'가 모두 로드 완료되는 경우, 상기 '9'개의 시트들에서 '시트 1', '시트 2' 및 '시트 4'를 제외한 나머지 '6'개의 시트들('시트 3', '시트 5', '시트 6', '시트 7', '시트 8', '시트 9') 중 편집시간이 최대인 제2 기준 시트로 편집시간이 '230(분)'인 '시트 3'을 추출할 수 있다.In relation to this, according to the above-described example, when all of 'sheet 1', 'sheet 2', and 'sheet 4' are loaded, the extraction unit 115 performs 'sheet 1', ' from the '9' sheets. Edit among the remaining '6' sheets ('Sheet 3', 'Sheet 5', 'Sheet 6', 'Sheet 7', 'Sheet 8', and 'Sheet 9') except for 'Sheet 2' and 'Sheet 4' As the second reference sheet having the maximum time, 'Sheet 3' having an editing time of '230 (minutes)' may be extracted.

선택부(116)는 상기 '6'개의 시트들 중 '시트 3'을 제외한 나머지 '5'개의 시트들('시트 5', '시트 6', '시트 7', '시트 8', '시트 9') 각각에 대한 2차원의 기준 벡터와 '시트 3'에 대한 2차원의 기준 벡터인 '[230 100]' 간의 유클리드 거리를 상기 수학식 1에 따라, 하기의 표 5와 같이 연산할 수 있다. The selection unit 116 selects the remaining '5' sheets ('Sheet 5', 'Sheet 6', 'Sheet 7', 'Sheet 8', and 'Sheet' excluding 'Sheet 3' among the '6' sheets). 9') According to Equation 1, the Euclidean distance between the two-dimensional reference vector for each and the two-dimensional reference vector '[230 100]' for 'Sheet 3' can be calculated as shown in Table 5 below. have.

Figure 112020010865949-pat00003
Figure 112020010865949-pat00003

그리고, 선택부(116)는 상기 '5'개의 시트들 중 '시트 3'에 대한 2차원의 기준 벡터인 '[230 100]'과의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 '2'개의 제2 시트들로 '시트 5'와 '시트 6'을 선택할 수 있다.In addition, the selection unit 116 selects '2' having a two-dimensional reference vector having a minimum Euclidean distance from '[230 100]', which is a two-dimensional reference vector for 'sheet 3' among the '5' sheets. 'Sheet 5' and 'Sheet 6' may be selected as the 'second sheets'.

이렇게, 상기 '2'개의 제2 시트들로 '시트 5'와 '시트 6'이 선택되면, 로드부(117)는 '시트 3'과 '시트 5' 및 '시트 6'의 로드를 위한 '3'개의 제2 로딩 스레드들을 생성할 수 있고, 상기 '3'개의 제2 로딩 스레드들에 '시트 3', '시트 5' 및 '시트 6' 각각을 하나씩 할당한 후, 상기 '3'개의 제2 로딩 스레드들을 실행시켜 '시트 3', '시트 5' 및 '시트 6'을 병렬 로드할 수 있다.In this way, when 'sheet 5' and 'sheet 6' are selected as the '2' second sheets, the rod unit 117 is configured to load 'sheet 3', 'sheet 5' and 'sheet 6'. 3' second loading threads may be created, and after allocating one 'sheet 3', 'sheet 5' and 'sheet 6' to the '3' second loading threads, the '3' 'Sheet 3', 'Sheet 5' and 'Sheet 6' may be loaded in parallel by executing the second loading threads.

이때, 본 발명의 일실시예에 따르면, 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치(110)는 상기 n개의 시트들의 로드를 모두 완료하기 위한 구성으로 반복 수행 제어부(118)를 더 포함할 수 있다.At this time, according to an embodiment of the present invention, the electronic device 110 for efficiently controlling the loading of each sheet constituting the spreadsheet document based on the multi-thread is configured to complete the loading of all the n sheets. It may further include a repeat execution control unit 118 .

반복 수행 제어부(118)는 상기 n개의 시트들의 로드가 모두 완료될 때까지 추출부(115), 선택부(116) 및 로드부(117)의 동작을 반복 수행시킨다.The iteration control unit 118 repeatedly performs the operations of the extraction unit 115 , the selection unit 116 , and the loading unit 117 until all of the n sheets are loaded.

관련하여, 앞선 예와 같이, 상기 사용자로부터 상기 '9'개의 시트들로 구성되는 상기 문서 파일에 대한 오픈 명령이 수신됨에 따라, 로드부(117)에 의해 상기 '3'개의 제1 로딩 스레드들이 실행되어 '시트 1', '시트 2' 및 '시트 4'가 병렬 로드되고, 상기 '3'개의 제2 로딩 스레드들이 실행되어 '시트 3', '시트 5' 및 '시트 6'이 병렬 로드된 경우, 반복 수행 제어부(118)는 상기 '9'개의 시트들 중 아직 로드되지 않은 '시트 7', '시트 8' 및 '시트 9'의 로드가 모두 완료될 때까지 추출부(115), 선택부(116) 및 로드부(117)의 동작을 반복 수행시킬 수 있다.In this regard, as in the previous example, as an open command for the document file composed of the '9' sheets is received from the user, the '3' first loading threads are executed by the load unit 117 . 'Sheet 1', 'Sheet 2' and 'Sheet 4' are loaded in parallel, and the '3' second loading threads are executed to parallel load 'Sheet 3', 'Sheet 5' and 'Sheet 6' In this case, the iteration control unit 118 controls the extraction unit 115 until all loading of the 'sheet 7', 'sheet 8' and 'sheet 9' that have not yet been loaded among the '9' sheets is completed. The operations of the selection unit 116 and the load unit 117 may be repeatedly performed.

즉, 추출부(115)는 '시트 3', '시트 5' 및 '시트 6'의 로드가 완료되면, 상기 '6'개의 시트들에서 '시트 3', '시트 5' 및 '시트 6'을 제외한 나머지 '3'개의 시트들('시트 7', '시트 8', '시트 9') 중 편집시간이 최대인 제3 기준 시트로 편집시간이 '50(분)'인 '시트 7'을 추출할 수 있다.That is, when the loading of 'sheet 3', 'sheet 5' and 'sheet 6' is completed, the extraction unit 115 selects 'sheet 3', 'sheet 5' and 'sheet 6' from the '6' sheets. Among the remaining '3' sheets ('Sheet 7', 'Sheet 8', and 'Sheet 9'), the third reference sheet with the maximum editing time, 'Sheet 7' with an editing time of '50 (minutes)' can be extracted.

그리고, 선택부(116)는 상기 '3'개의 시트들 중 '시트 7'을 제외한 나머지 '2'개의 시트들('시트 8', '시트 9') 각각에 대한 2차원의 기준 벡터와 '시트 7'에 대한 2차원의 기준 벡터인 '[50 100]' 간의 유클리드 거리를 연산한 후, '시트 7'에 대한 2차원의 기준 벡터인 '[50 100]'과의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 '2'개의 제3 시트들을 선택할 수 있다.And, the selection unit 116 is a two-dimensional reference vector for each of the remaining '2' sheets ('sheet 8', 'sheet 9') except for 'sheet 7' among the '3' sheets and ' After calculating the Euclidean distance between '[50 100]', which is a two-dimensional reference vector for sheet 7', the Euclidean distance from '[50 100]', a two-dimensional reference vector for 'sheet 7', is the minimum. '2' third sheets having a two-dimensional reference vector may be selected.

이때, 선택부(116)는 상기 제3 기준 시트인 '시트 7' 외에 로드되지 않고 남아있는 시트들로 '시트 8'과 '시트 9'만이 존재하므로, 상기 '2'개의 제3 시트들로 '시트 8'과 '시트 9'를 선택할 수 있다.At this time, the selection unit 116 selects the '2' third sheets because only 'Sheet 8' and 'Sheet 9' exist as the remaining unloaded sheets other than the 'Sheet 7', which is the third reference sheet. You can choose between 'Sheet 8' and 'Sheet 9'.

이렇게, 상기 '2'개의 제3 시트들로 '시트 8'과 '시트 9'가 선택되면, 로드부(117)는 '시트 7'과 '시트 8' 및 '시트 9'의 로드를 위한 '3'개의 제3 로딩 스레드들을 생성할 수 있고, 상기 '3'개의 제3 로딩 스레드들에 '시트 7', '시트 8' 및 '시트 9' 각각을 하나씩 할당한 후, 상기 '3'개의 제3 로딩 스레드들을 실행시켜 '시트 7', '시트 8' 및 '시트 9'를 병렬 로드할 수 있다.In this way, when 'sheet 8' and 'sheet 9' are selected as the '2' third sheets, the rod unit 117 is configured to load 'sheet 7', 'sheet 8' and 'sheet 9'. 3' third loading threads may be created, and after allocating one 'sheet 7', 'sheet 8' and 'sheet 9' to the '3' third loading threads, the '3' 'Sheet 7', 'Sheet 8' and 'Sheet 9' may be loaded in parallel by executing third loading threads.

또한, 본 발명의 일실시예에 따르면, 로드부(117)는 상기 n개의 시트들 각각의 로드가 완료될 때마다, 마지막으로 로드가 완료된 시트를 활성화시켜 화면 상에 임시로 표시할 수 있다.Also, according to an embodiment of the present invention, the loading unit 117 may activate the last loaded sheet and temporarily display it on the screen whenever loading of each of the n sheets is completed.

예컨대, 앞선 예에 따라, 상기 '9'개의 시트들 중 '시트 1', '시트 2', '시트 4'의 로드가 '시트 1', '시트 2', '시트 4'의 순서로 완료된 경우, 로드부(117)는 마지막으로 로드가 완료된 시트인 '시트 4'를 활성화시켜 화면 상에 임시로 표시할 수 있다. For example, according to the preceding example, loading of 'Sheet 1', 'Sheet 2', and 'Sheet 4' among the '9' sheets is completed in the order of 'Sheet 1', 'Sheet 2', and 'Sheet 4'. In this case, the loading unit 117 may activate 'sheet 4', which is the last loaded sheet, and temporarily display it on the screen.

그리고, '시트 1', '시트 2', '시트 4'의 로드가 완료된 후, '시트 3', '시트 5', '시트 6'의 로드가 '시트 5', '시트 6', '시트 3'의 순서로 완료되면, 로드부(117)는 마지막으로 로드가 완료된 시트인 '시트 3'을 활성화시켜 화면 상에 임시로 표시할 수 있다. 만약, '시트 3'이 로드되기 전이라면, 로드부(117)는 마지막으로 로드가 완료된 시트인 '시트 6'을 활성화시켜 화면 상에 임시로 표시할 수 있을 것이다.And, after loading of 'Sheet 1', 'Sheet 2', and 'Sheet 4' is completed, the loading of 'Sheet 3', 'Sheet 5', and 'Sheet 6' is changed to 'Sheet 5', 'Sheet 6', ' When the order of sheet 3' is completed, the loading unit 117 may activate 'sheet 3', which is the last loaded sheet, and temporarily display it on the screen. If 'Sheet 3' is before being loaded, the loading unit 117 may activate 'Sheet 6', which is the last loaded sheet, to be temporarily displayed on the screen.

또한, 본 발명의 일실시예에 따르면, 로드부(117)는 상기 n개의 시트들이 전부 로드 완료되면, 상기 n개의 시트들 중 상기 제1 기준 시트를 활성화시켜 화면 상에 최종 표시할 수 있다.Also, according to an embodiment of the present invention, when all of the n sheets are loaded, the load unit 117 may activate the first reference sheet among the n sheets to finally display it on the screen.

즉, 로드부(117)는 상기 n개의 시트들 전부의 로드가 완료되면, 상기 n개의 시트들 중 편집시간이 최대인 상기 제1 기준 시트를 화면 상에 최종 표시하여, 상기 사용자가 열람할 가능성이 가장 높은 시트를 화면 상에 표시함으로써, 상기 사용자의 편의를 도모할 수 있다.That is, when the loading of all of the n sheets is completed, the loading unit 117 displays the first reference sheet having the maximum editing time among the n sheets on the screen, so that the user is likely to read it. By displaying the highest sheet on the screen, the user's convenience can be achieved.

도 2는 본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법을 도시한 순서도이다.2 is a flowchart illustrating an operation method of an electronic device for efficiently controlling a load for each sheet constituting a spreadsheet document based on a multi-thread according to an embodiment of the present invention.

단계(S210)에서는 사용자의 편집 명령에 의해 스프레드시트 문서에서 n개의 시트들이 생성된 경우, 편집시간 측정부가 상기 n개의 시트들 각각에 대한 편집시간(상기 n개의 시트들 각각에 대한 편집시간은 상기 n개의 시트들 각각이 문서 편집을 위해 활성화되어 있는 시간을 의미함)을 측정한다.In step S210, when n sheets are generated in the spreadsheet document by the user's editing command, the editing time measuring unit edits the editing time for each of the n sheets (the editing time for each of the n sheets is the Measure the time each of n sheets is active for document editing).

단계(S220)에서는 상기 사용자로부터 상기 n개의 시트들에 대한 문서 편집이 완료되어 문서 저장 명령이 수신되면, 저장부가 상기 n개의 시트들 각각에 대한 편집시간 정보가 포함된 문서 파일을 생성하여 저장한다.In step S220, when the document editing of the n sheets is completed and a document storage command is received from the user, the storage unit generates and stores a document file including editing time information for each of the n sheets. .

단계(S230)에서는 상기 사용자로부터 상기 문서 파일에 대한 오픈 명령이 수신되면, 확인부가 상기 문서 파일에 포함되어 있는 상기 n개의 시트들 각각에 대한 편집시간을 확인한 후, 상기 n개의 시트들 각각에 대한 데이터 크기를 확인한다.In step S230, when an open command for the document file is received from the user, a confirmation unit checks the editing time for each of the n sheets included in the document file, and then Check the data size.

단계(S240)에서는 기준 벡터 생성부가 상기 n개의 시트들 각각에 대하여, 상기 n개의 시트들 각각에 대한 편집시간과 상기 n개의 시트들 각각에 대한 데이터 크기를 각 성분으로 하는 2차원의 기준 벡터를 생성한다.In step S240, for each of the n sheets, the reference vector generating unit generates a two-dimensional reference vector using the editing time for each of the n sheets and the data size for each of the n sheets as components. create

단계(S250)에서는 추출부가 상기 n개의 시트들 중 편집시간이 최대인 제1 기준 시트를 추출한다.In step S250, the extraction unit extracts the first reference sheet having the maximum editing time from among the n sheets.

단계(S260)에서는 선택부가 상기 n개의 시트들 중 상기 제1 기준 시트를 제외한 나머지 n-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제1 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리를 연산한 후, 상기 n-1개의 시트들 중 상기 제1 기준 시트에 대한 2차원의 기준 벡터와의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 k-1개의 제1 시트들을 선택한다.In step S260, the selection unit Euclidean between the two-dimensional reference vector for each of the remaining n-1 sheets of the n sheets except the first reference sheet and the two-dimensional reference vector for the first reference sheet After calculating the distance, k-1 first sheets having a two-dimensional reference vector having a minimum Euclidean distance from a two-dimensional reference vector with respect to the first reference sheet are selected from among the n-1 sheets. .

단계(S270)에서는 로드부가 상기 제1 기준 시트와 상기 k-1개의 제1 시트들의 로드를 위한 k개의 제1 로딩 스레드들을 생성하고, 상기 k개의 제1 로딩 스레드들에 상기 제1 기준 시트와 상기 k-1개의 제1 시트들 각각을 하나씩 할당한 후, 상기 k개의 제1 로딩 스레드들을 실행시켜 상기 제1 기준 시트와 상기 k-1개의 제1 시트들을 병렬 로드한다.In step S270, a load unit generates k first loading threads for loading the first reference sheet and the k-1 first sheets, and includes the first reference sheet and the k first loading threads in the k first loading threads. After allocating each of the k-1 first sheets one by one, the k first loading threads are executed to load the first reference sheet and the k-1 first sheets in parallel.

이때, 본 발명의 일실시예에 따르면, 상기 전자 장치의 동작 방법은 상기 제1 기준 시트와 상기 k-1개의 제1 시트들이 모두 로드 완료되면, 상기 추출부가 상기 n개의 시트들에서 상기 제1 기준 시트와 상기 k-1개의 제1 시트들을 제외한 나머지 n-k개의 시트들 중 편집시간이 최대인 제2 기준 시트를 추출하는 단계, 상기 선택부가 상기 n-k개의 시트들 중 상기 제2 기준 시트를 제외한 나머지 n-k-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제2 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리를 연산한 후, 상기 n-k-1개의 시트들 중 상기 제2 기준 시트에 대한 2차원의 기준 벡터와의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 k-1개의 제2 시트들을 선택하는 단계 및 상기 로드부가 상기 제2 기준 시트와 상기 k-1개의 제2 시트들의 로드를 위한 k개의 제2 로딩 스레드들을 생성하고, 상기 k개의 제2 로딩 스레드들에 상기 제2 기준 시트와 상기 k-1개 제2 시트들 각각을 하나씩 할당한 후, 상기 k개의 제2 로딩 스레드들을 실행시켜 상기 제2 기준 시트와 상기 k-1개의 제2 시트들을 병렬 로드하는 단계를 더 포함할 수 있다.At this time, according to an embodiment of the present invention, in the method of operating the electronic device, when all of the first reference sheet and the k-1 first sheets are loaded, the extraction unit selects the first reference sheet from the n sheets. extracting a second reference sheet having a maximum editing time from among the remaining nk sheets other than the reference sheet and the k-1 first sheets, wherein the selection unit selects the remainder of the nk sheets except for the second reference sheet After calculating the Euclidean distance between the two-dimensional reference vector for each of the nk-1 sheets and the two-dimensional reference vector for the second reference sheet, for the second reference sheet among the nk-1 sheets selecting k-1 second sheets having a two-dimensional reference vector having a minimum Euclidean distance from the two-dimensional reference vector, and the loading unit loads the second reference sheet and the k-1 second sheets After generating k second loading threads for , and allocating each of the second reference sheet and the k-1 second sheets to the k second loading threads, the k second loading threads It may further include the step of parallel loading the second reference sheet and the k-1 number of second sheets by executing .

이때, 본 발명의 일실시예에 따르면, 상기 전자 장치의 동작 방법은 반복 수행 제어부가 상기 n개의 시트들의 로드가 모두 완료될 때까지 상기 추출부, 상기 선택부, 상기 로드부의 동작을 반복 수행시키는 단계를 더 포함할 수 있다.At this time, according to an embodiment of the present invention, in the method of operating the electronic device, the iteration control unit repeatedly performs the operations of the extraction unit, the selection unit, and the loading unit until all the n sheets are loaded. It may include further steps.

또한, 본 발명의 일실시예에 따르면, 상기 전자 장치의 동작 방법은 상기 로드부가 상기 n개의 시트들 각각의 로드가 완료될 때마다, 마지막으로 로드가 완료된 시트를 활성화시켜 화면 상에 임시로 표시하는 단계를 더 포함할 수 있다.In addition, according to an embodiment of the present invention, in the method of operating the electronic device, whenever the loading of each of the n sheets is completed, the loading unit activates the last loaded sheet and temporarily displays it on the screen It may further include the step of

또한, 본 발명의 일실시예에 따르면, 상기 전자 장치의 동작 방법은 상기 n개의 시트들이 전부 로드 완료되면, 상기 로드부가 상기 n개의 시트들 중 상기 제1 기준 시트를 활성화시켜 화면 상에 최종 표시하는 단계를 더 포함할 수 있다.In addition, according to an embodiment of the present invention, in the method of operating the electronic device, when all the n sheets are loaded, the loading unit activates the first reference sheet among the n sheets to be finally displayed on the screen It may further include the step of

이상, 도 2를 참조하여 본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법은 도 1을 이용하여 설명한 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.In the above, an operating method of an electronic device for efficiently controlling a load for each sheet constituting a spreadsheet document based on a multi-thread according to an embodiment of the present invention has been described with reference to FIG. 2 . Here, the operating method of the electronic device for efficiently controlling the loading of each sheet constituting the spreadsheet document based on the multi-thread according to an embodiment of the present invention is a spreadsheet document based on the multi-thread described with reference to FIG. 1 . Since it may correspond to the configuration of the operation of the electronic device 110 for efficiently controlling the load on each sheet constituting the , a more detailed description thereof will be omitted.

본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.An operating method of an electronic device for efficiently controlling the load of each sheet constituting a spreadsheet document based on a multi-thread according to an embodiment of the present invention is a computer program stored in a storage medium for execution through combination with a computer. can be implemented.

또한, 본 발명의 일실시예에 따른 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.In addition, the operating method of the electronic device for efficiently controlling the load for each sheet constituting the spreadsheet document based on the multi-thread according to an embodiment of the present invention is in the form of a computer program command for execution through combination with a computer. It may be implemented and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described with specific matters such as specific components and limited embodiments and drawings, but these are provided to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , various modifications and variations are possible from these descriptions by those of ordinary skill in the art to which the present invention pertains.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and not only the claims to be described later, but also all those with equivalent or equivalent modifications to the claims will be said to belong to the scope of the spirit of the present invention. .

110: 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치
111: 편집시간 측정부 112: 저장부
113: 확인부 114: 기준 벡터 생성부
115: 추출부 116: 선택부
117: 로드부 118: 반복 수행 제어부
110: Electronic device for controlling efficient loading of each sheet composing a spreadsheet document on a multi-threaded basis
111: editing time measurement unit 112: storage unit
113: check unit 114: reference vector generation unit
115: extraction unit 116: selection unit
117: load unit 118: repeat execution control unit

Claims (12)

사용자의 편집 명령에 의해 스프레드시트 문서에서 n(n은 3이상의 자연수임)개의 시트들이 생성된 경우, 상기 n개의 시트들 각각에 대한 편집시간 - 상기 n개의 시트들 각각에 대한 편집시간은 상기 n개의 시트들 각각이 문서 편집을 위해 활성화되어 있는 시간을 의미함 - 을 측정하는 편집시간 측정부;
상기 사용자로부터 상기 n개의 시트들에 대한 문서 편집이 완료되어 문서 저장 명령이 수신되면, 상기 n개의 시트들 각각에 대한 편집시간 정보가 포함된 문서 파일을 생성하여 저장하는 저장부;
상기 사용자로부터 상기 문서 파일에 대한 오픈 명령이 수신되면, 상기 문서 파일에 포함되어 있는 상기 n개의 시트들 각각에 대한 편집시간을 확인한 후, 상기 n개의 시트들 각각에 대한 데이터 크기를 확인하는 확인부;
상기 n개의 시트들 각각에 대하여, 상기 n개의 시트들 각각에 대한 편집시간과 상기 n개의 시트들 각각에 대한 데이터 크기를 각 성분으로 하는 2차원의 기준 벡터를 생성하는 기준 벡터 생성부;
상기 n개의 시트들 중 편집시간이 최대인 제1 기준 시트를 추출하는 추출부;
상기 n개의 시트들 중 상기 제1 기준 시트를 제외한 나머지 n-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제1 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리(Euclidean Distance)를 연산한 후, 상기 n-1개의 시트들 중 상기 제1 기준 시트에 대한 2차원의 기준 벡터와의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 k-1(k는 n보다 작은 2이상의 자연수임)개의 제1 시트들을 선택하는 선택부; 및
상기 제1 기준 시트와 상기 k-1개의 제1 시트들의 로드를 위한 k개의 제1 로딩 스레드(thread)들을 생성하고, 상기 k개의 제1 로딩 스레드들에 상기 제1 기준 시트와 상기 k-1개의 제1 시트들 각각을 하나씩 할당한 후, 상기 k개의 제1 로딩 스레드들을 실행시켜 상기 제1 기준 시트와 상기 k-1개의 제1 시트들을 병렬 로드하는 로드부
를 포함하는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치.
When n (n is a natural number of 3 or more) sheets are generated in the spreadsheet document by the user's editing command, the editing time for each of the n sheets - The editing time for each of the n sheets is the n an editing time measuring unit that measures the time during which each of the sheets is active for document editing;
a storage unit for generating and storing a document file including editing time information for each of the n sheets when a document storage command is received from the user after the document editing of the n sheets is completed;
When an open command for the document file is received from the user, after checking the editing time for each of the n sheets included in the document file, a confirmation unit for checking the data size of each of the n sheets ;
a reference vector generator for generating, for each of the n sheets, a two-dimensional reference vector using an editing time for each of the n sheets and a data size for each of the n sheets as components;
an extraction unit for extracting a first reference sheet having a maximum editing time from among the n sheets;
Calculate the Euclidean distance between the two-dimensional reference vector for each of the remaining n-1 sheets of the n sheets except the first reference sheet and the two-dimensional reference vector for the first reference sheet Then, k-1 having a two-dimensional reference vector having a minimum Euclidean distance from a two-dimensional reference vector with respect to the first reference sheet among the n-1 sheets (k is a natural number of 2 or more less than n) ) a selection unit for selecting the first sheets; and
creating k first loading threads for loading the first reference sheet and the k-1 first sheets, and providing the k first loading threads with the first reference sheet and the k-1 After allocating each of the number of first sheets one by one, the load unit executes the k first loading threads to load the first reference sheet and the k-1 first sheets in parallel.
An electronic device that controls the efficient loading of each sheet composing a spreadsheet document based on a multi-thread containing
제1항에 있어서,
상기 추출부는
상기 제1 기준 시트와 상기 k-1개의 제1 시트들이 모두 로드 완료되면, 상기 n개의 시트들에서 상기 제1 기준 시트와 상기 k-1개의 제1 시트들을 제외한 나머지 n-k개의 시트들 중 편집시간이 최대인 제2 기준 시트를 추출하고,
상기 선택부는
상기 n-k개의 시트들 중 상기 제2 기준 시트를 제외한 나머지 n-k-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제2 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리를 연산한 후, 상기 n-k-1개의 시트들 중 상기 제2 기준 시트에 대한 2차원의 기준 벡터와의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 k-1개의 제2 시트들을 선택하며,
상기 로드부는
상기 제2 기준 시트와 상기 k-1개의 제2 시트들의 로드를 위한 k개의 제2 로딩 스레드들을 생성하고, 상기 k개의 제2 로딩 스레드들에 상기 제2 기준 시트와 상기 k-1개의 제2 시트들 각각을 하나씩 할당한 후, 상기 k개의 제2 로딩 스레드들을 실행시켜 상기 제2 기준 시트와 상기 k-1개의 제2 시트들을 병렬 로드하는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치.
According to claim 1,
The extraction unit
When the first reference sheet and the k-1 number of first sheets are all loaded, the editing time among the remaining nk sheets excluding the first reference sheet and the k-1 number of first sheets in the n sheets Extracting a second reference sheet that is this maximum,
the selection unit
After calculating the Euclidean distance between the two-dimensional reference vector for each of the remaining nk-1 sheets excluding the second reference sheet among the nk sheets and the two-dimensional reference vector for the second reference sheet, the selecting k-1 second sheets having a two-dimensional reference vector having a minimum Euclidean distance from a two-dimensional reference vector with respect to the second reference sheet from among nk-1 sheets,
the rod part
generating k second loading threads for loading the second reference sheet and the k-1 second sheets, and providing the k second loading threads with the second reference sheet and the k-1 second sheets. After allocating each sheet one by one, each sheet composing a spreadsheet document based on a multi-thread that executes the k second loading threads to load the second reference sheet and the k-1 second sheets in parallel Electronic devices that control the load efficiently.
제2항에 있어서,
상기 n개의 시트들의 로드가 모두 완료될 때까지 상기 추출부, 상기 선택부 및 상기 로드부의 동작을 반복 수행시키는 반복 수행 제어부
를 더 포함하는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치.
3. The method of claim 2,
A repetition control unit for repeatedly performing the operations of the extraction unit, the selection unit, and the loading unit until the loading of the n sheets is completed.
Electronic device for controlling efficient loading for each sheet composing a spreadsheet document on a multi-threaded basis further comprising:
제1항에 있어서,
상기 로드부는
상기 n개의 시트들 각각의 로드가 완료될 때마다, 마지막으로 로드가 완료된 시트를 활성화시켜 화면 상에 임시로 표시하는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치.
According to claim 1,
the rod part
Whenever the loading of each of the n sheets is completed, the efficient loading of each sheet composing the spreadsheet document is controlled based on a multi-thread that activates the last loaded sheet and temporarily displays it on the screen. electronic device.
제4항에 있어서,
상기 로드부는
상기 n개의 시트들이 전부 로드 완료되면, 상기 n개의 시트들 중 상기 제1 기준 시트를 활성화시켜 화면 상에 최종 표시하는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치.
5. The method of claim 4,
the rod part
When all the n sheets are loaded, the first reference sheet among the n sheets is activated to control the efficient loading of each sheet constituting the spreadsheet document based on a multi-thread that is finally displayed on the screen electronic device.
사용자의 편집 명령에 의해 스프레드시트 문서에서 n(n은 3이상의 자연수임)개의 시트들이 생성된 경우, 편집시간 측정부가 상기 n개의 시트들 각각에 대한 편집시간 - 상기 n개의 시트들 각각에 대한 편집시간은 상기 n개의 시트들 각각이 문서 편집을 위해 활성화되어 있는 시간을 의미함 - 을 측정하는 단계;
상기 사용자로부터 상기 n개의 시트들에 대한 문서 편집이 완료되어 문서 저장 명령이 수신되면, 저장부가 상기 n개의 시트들 각각에 대한 편집시간 정보가 포함된 문서 파일을 생성하여 저장하는 단계;
상기 사용자로부터 상기 문서 파일에 대한 오픈 명령이 수신되면, 확인부가 상기 문서 파일에 포함되어 있는 상기 n개의 시트들 각각에 대한 편집시간을 확인한 후, 상기 n개의 시트들 각각에 대한 데이터 크기를 확인하는 단계;
기준 벡터 생성부가 상기 n개의 시트들 각각에 대하여, 상기 n개의 시트들 각각에 대한 편집시간과 상기 n개의 시트들 각각에 대한 데이터 크기를 각 성분으로 하는 2차원의 기준 벡터를 생성하는 단계;
추출부가 상기 n개의 시트들 중 편집시간이 최대인 제1 기준 시트를 추출하는 단계;
선택부가 상기 n개의 시트들 중 상기 제1 기준 시트를 제외한 나머지 n-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제1 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리(Euclidean Distance)를 연산한 후, 상기 n-1개의 시트들 중 상기 제1 기준 시트에 대한 2차원의 기준 벡터와의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 k-1(k는 n보다 작은 2이상의 자연수임)개의 제1 시트들을 선택하는 단계; 및
로드부가 상기 제1 기준 시트와 상기 k-1개의 제1 시트들의 로드를 위한 k개의 제1 로딩 스레드(thread)들을 생성하고, 상기 k개의 제1 로딩 스레드들에 상기 제1 기준 시트와 상기 k-1개의 제1 시트들 각각을 하나씩 할당한 후, 상기 k개의 제1 로딩 스레드들을 실행시켜 상기 제1 기준 시트와 상기 k-1개의 제1 시트들을 병렬 로드하는 단계
를 포함하는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법.
When n (n is a natural number greater than or equal to 3) sheets are generated in the spreadsheet document by the user's editing command, the editing time measuring unit edits time for each of the n sheets - Editing for each of the n sheets measuring time - which means the time during which each of the n sheets is active for document editing;
generating and storing, by a storage unit, a document file including editing time information for each of the n sheets, when a document saving command is received from the user after the document editing of the n sheets is completed;
When an open command for the document file is received from the user, a confirmation unit checks the editing time for each of the n sheets included in the document file, and then checks the data size for each of the n sheets step;
generating, by a reference vector generator, for each of the n sheets, a two-dimensional reference vector using an editing time for each of the n sheets and a data size for each of the n sheets as components;
extracting, by an extracting unit, a first reference sheet having a maximum editing time from among the n sheets;
Euclidean distance between the two-dimensional reference vector for each of the remaining n-1 sheets except for the first reference sheet among the n sheets and the two-dimensional reference vector for the first reference sheet by the selection unit After calculating , k-1 having a two-dimensional reference vector having a minimum Euclidean distance from a two-dimensional reference vector with respect to the first reference sheet among the n-1 sheets (k is two or more smaller than n) a natural number) of first sheets; and
A load unit generates k first loading threads for loading the first reference sheet and the k-1 first sheets, and provides the k first loading threads with the first reference sheet and the k - after allocating each of the -1 first sheets one by one, executing the k first loading threads to load the first reference sheet and the k-1 first sheets in parallel
A method of operation of an electronic device for controlling the efficient loading of each sheet composing a spreadsheet document based on a multi-thread comprising a.
제6항에 있어서,
상기 제1 기준 시트와 상기 k-1개의 제1 시트들이 모두 로드 완료되면, 상기 추출부가 상기 n개의 시트들에서 상기 제1 기준 시트와 상기 k-1개의 제1 시트들을 제외한 나머지 n-k개의 시트들 중 편집시간이 최대인 제2 기준 시트를 추출하는 단계;
상기 선택부가 상기 n-k개의 시트들 중 상기 제2 기준 시트를 제외한 나머지 n-k-1개의 시트들 각각에 대한 2차원의 기준 벡터와 상기 제2 기준 시트에 대한 2차원의 기준 벡터 간의 유클리드 거리를 연산한 후, 상기 n-k-1개의 시트들 중 상기 제2 기준 시트에 대한 2차원의 기준 벡터와의 유클리드 거리가 최소인 2차원의 기준 벡터를 갖는 k-1개의 제2 시트들을 선택하는 단계; 및
상기 로드부가 상기 제2 기준 시트와 상기 k-1개의 제2 시트들의 로드를 위한 k개의 제2 로딩 스레드들을 생성하고, 상기 k개의 제2 로딩 스레드들에 상기 제2 기준 시트와 상기 k-1개의 제2 시트들 각각을 하나씩 할당한 후, 상기 k개의 제2 로딩 스레드들을 실행시켜 상기 제2 기준 시트와 상기 k-1개의 제2 시트들을 병렬 로드하는 단계
를 더 포함하는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법.
7. The method of claim 6,
When the first reference sheet and the k-1 number of first sheets are all loaded, the extractor selects the remaining nk sheets from the n sheets except for the first reference sheet and the k-1 number of first sheets. extracting a second reference sheet having a maximum editing time among them;
The selection unit calculates the Euclidean distance between the two-dimensional reference vector for each of the remaining nk-1 sheets excluding the second reference sheet among the nk sheets and the two-dimensional reference vector for the second reference sheet. thereafter, selecting k-1 second sheets having a two-dimensional reference vector having a minimum Euclidean distance from a two-dimensional reference vector with respect to the second reference sheet from among the nk-1 sheets; and
The rod part generates k second loading threads for loading the second reference sheet and the k-1 second sheets, and the k second loading threads are connected to the second reference sheet and the k-1 number of the second reference sheet. After allocating each of the 2 second sheets one by one, executing the k second loading threads to load the second reference sheet and the k-1 second sheets in parallel
A method of operating an electronic device for controlling an efficient load for each sheet composing a spreadsheet document based on a multi-thread further comprising a.
제7항에 있어서,
반복 수행 제어부가 상기 n개의 시트들의 로드가 모두 완료될 때까지 상기 추출부, 상기 선택부, 상기 로드부의 동작을 반복 수행시키는 단계
를 더 포함하는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법.
8. The method of claim 7,
repeating the operation of the extracting unit, the selecting unit, and the loading unit until the iteration control unit completes the loading of the n sheets.
A method of operating an electronic device for controlling an efficient load for each sheet composing a spreadsheet document based on a multi-thread further comprising a.
제8항에 있어서,
상기 로드부가 상기 n개의 시트들 각각의 로드가 완료될 때마다, 마지막으로 로드가 완료된 시트를 활성화시켜 화면 상에 임시로 표시하는 단계
를 더 포함하는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법.
9. The method of claim 8,
Whenever the loading of each of the n sheets is completed by the loading unit, activating the last loaded sheet and temporarily displaying it on the screen
A method of operating an electronic device for controlling an efficient load for each sheet composing a spreadsheet document based on a multi-thread further comprising a.
제9항에 있어서,
상기 n개의 시트들이 전부 로드 완료되면, 상기 로드부가 상기 n개의 시트들 중 상기 제1 기준 시트를 활성화시켜 화면 상에 최종 표시하는 단계
를 더 포함하는 멀티 스레드를 기반으로 스프레드시트 문서를 구성하는 각 시트에 대한 효율적 로드를 제어하는 전자 장치의 동작 방법.
10. The method of claim 9,
When all of the n sheets are loaded, the loading unit activates the first reference sheet among the n sheets to finally display the first reference sheet on the screen
A method of operating an electronic device for controlling an efficient load for each sheet composing a spreadsheet document based on a multi-thread further comprising a.
제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium recording a computer program for executing the method of any one of claims 6 to 10 through combination with a computer. 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.A computer program stored in a storage medium for executing the method of any one of claims 6 to 10 through combination with a computer.
KR1020200012402A 2020-02-03 2020-02-03 Electronic device that controls the efficient loading of each sheet that makes up a spreadsheet document based on a multi-thread and operating method thereof KR102266073B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200012402A KR102266073B1 (en) 2020-02-03 2020-02-03 Electronic device that controls the efficient loading of each sheet that makes up a spreadsheet document based on a multi-thread and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200012402A KR102266073B1 (en) 2020-02-03 2020-02-03 Electronic device that controls the efficient loading of each sheet that makes up a spreadsheet document based on a multi-thread and operating method thereof

Publications (1)

Publication Number Publication Date
KR102266073B1 true KR102266073B1 (en) 2021-06-17

Family

ID=76603502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200012402A KR102266073B1 (en) 2020-02-03 2020-02-03 Electronic device that controls the efficient loading of each sheet that makes up a spreadsheet document based on a multi-thread and operating method thereof

Country Status (1)

Country Link
KR (1) KR102266073B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060048515A (en) * 2004-09-27 2006-05-18 마이크로소프트 코포레이션 Method and system for multithread processing of spreadsheet chain calculations
JP2010525489A (en) * 2007-04-27 2010-07-22 マイクロソフト コーポレーション Loading scripts dynamically
KR20150045471A (en) * 2012-08-16 2015-04-28 퀄컴 인코포레이티드 Pre-processing of scripts in web browsers
JP2016173690A (en) * 2015-03-17 2016-09-29 カシオ計算機株式会社 Information management device and program
KR101774265B1 (en) * 2017-05-23 2017-09-12 주식회사 한글과컴퓨터 Multi thread based spreadsheet document providing apparatus and operating method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060048515A (en) * 2004-09-27 2006-05-18 마이크로소프트 코포레이션 Method and system for multithread processing of spreadsheet chain calculations
JP2010525489A (en) * 2007-04-27 2010-07-22 マイクロソフト コーポレーション Loading scripts dynamically
KR20150045471A (en) * 2012-08-16 2015-04-28 퀄컴 인코포레이티드 Pre-processing of scripts in web browsers
JP2016173690A (en) * 2015-03-17 2016-09-29 カシオ計算機株式会社 Information management device and program
KR101774265B1 (en) * 2017-05-23 2017-09-12 주식회사 한글과컴퓨터 Multi thread based spreadsheet document providing apparatus and operating method thereof

Similar Documents

Publication Publication Date Title
US20160292144A1 (en) Document data entry suggestions
US7707508B1 (en) Methods and apparatus for efficient layout of digital content
KR102266073B1 (en) Electronic device that controls the efficient loading of each sheet that makes up a spreadsheet document based on a multi-thread and operating method thereof
CN110705208B (en) Text display method, text display device, computer readable storage medium and electronic equipment
KR101999576B1 (en) Spreadsheet driving apparatus capable of performing fast function operations on selected cell range and operating method thereof
KR102004994B1 (en) Spreadsheet driving apparatus capable of automatic change of reference cell area in relation to mathematical operation and operating method thereof
KR102300437B1 (en) Electronic document editing apparatus that enables the insertion of special characters at specific locations on the electronic document based on the entered characters and operating method thereof
KR102004996B1 (en) Presentation document editing apparatus for performing a simple insertion of a page movement link on a slide page and operating method thereof
KR102300491B1 (en) Electronic terminal device that enables easy change of matrix layout entered through the formula editing window in the electronic document and operating method thereof
JP2007080049A (en) Built-in program generation method, built-in program development system and information table section
CN113835835A (en) Method and device for creating consistency group and computer-readable storage medium
KR101977104B1 (en) Spreadsheet driving apparatus for performing automatic function calculation based on cell range selection and operating method thereof
CN113011148A (en) Method, device, equipment and medium for automatically outputting file with specified format
KR102566934B1 (en) Electronic apparatus that performs parallel processing-based document format conversion and operating method thereof
KR102442510B1 (en) Document editing apparatus that automatically specifies the storage file format for documents and the operating method thereof
KR102300486B1 (en) Electronic terminal device that support easy subscript entry for mathematical operators in electronic documents and operating method thereof
KR102545260B1 (en) Electronic terminal apparatus that supports application of natural substitute fonts when loading electronic documents with unsupported fonts applied and operating method thereof
KR102442506B1 (en) Electronic device for recommending shortcuts for editing actions in document editing programs and the operating method thereof
KR102466710B1 (en) Electronic device that provides auto-complete for unfinished table in spreadsheets and operating method thereof
KR102466714B1 (en) Electronic device that provides improved object insertion into electronic document through object box and operating method thereof
KR102566913B1 (en) Electronic apparatus that provides improved page switching function when running a slide show for a presentation document and operating method thereof
CN104461636B (en) A kind of skin resource loading method and electronic equipment
KR102466706B1 (en) Electronic device that enables easy selection of dependent edit action in document editing programs and operating method thereof
KR102507487B1 (en) Electronic apparatus which generates the dedicated document file for supporting fast editing of the pages comprising of a document, and the operating method thereof
KR101485907B1 (en) Apparatus and method for preload using probability model

Legal Events

Date Code Title Description
GRNT Written decision to grant