KR101774265B1 - Multi thread based spreadsheet document providing apparatus and operating method thereof - Google Patents

Multi thread based spreadsheet document providing apparatus and operating method thereof Download PDF

Info

Publication number
KR101774265B1
KR101774265B1 KR1020170063285A KR20170063285A KR101774265B1 KR 101774265 B1 KR101774265 B1 KR 101774265B1 KR 1020170063285 A KR1020170063285 A KR 1020170063285A KR 20170063285 A KR20170063285 A KR 20170063285A KR 101774265 B1 KR101774265 B1 KR 101774265B1
Authority
KR
South Korea
Prior art keywords
data
elements
sheet
object type
client terminal
Prior art date
Application number
KR1020170063285A
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 KR1020170063285A priority Critical patent/KR101774265B1/en
Application granted granted Critical
Publication of KR101774265B1 publication Critical patent/KR101774265B1/en
Priority to PCT/KR2018/005061 priority patent/WO2018216920A1/en

Links

Images

Classifications

    • G06F17/246
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

According to the present invention, a device for providing a multi thread based spread sheet document and an operating method thereof response a read command with respect to a spread sheet document stored in a document storing part from a client terminal, thereby checking information with respect to a sheet displayed on the client terminal when the client terminal lastly finishes edit of the spread sheet document. After checking identification information of elements included in a data area of the spread sheet document, data of each of the elements are loaded. When the data of each of the elements corresponding to the displayed sheet are loaded, the data of each of the loaded element are converted into object type data, thereby transmitting to the client terminal. Therefore, a web based electronic document can be transmitted to the client terminal by responding the web based electronic document at a maximum speed.

Description

멀티 쓰레드 기반의 스프레드시트 문서 제공 장치 및 그의 동작 방법{MULTI THREAD BASED SPREADSHEET DOCUMENT PROVIDING APPARATUS AND OPERATING METHOD THEREOF}[0001] MULTI-THREAD BASED SPREADSHEET DOCUMENT PROVIDING APPARATUS AND OPERATING METHOD THEREOF [0002]

본 발명은 스프레드시트 문서를 고속으로 로드 및 변환하여 클라이언트 단말로 제공하기 위한 기법에 대한 것이다.The present invention relates to a technique for rapidly loading and converting a spreadsheet document and providing it to a client terminal.

최근, 컴퓨터나 스마트폰 또는 태블릿 PC 등과 같은 전자 단말 장치가 널리 보급됨에 따라 이러한 전자 단말 장치를 이용하여 전자 문서를 열람, 작성, 편집할 수 있도록 하는 다양한 종류의 전자 문서 관련 프로그램들이 출시되고 있다.2. Description of the Related Art [0002] Recently, various electronic document-related programs have been released to enable electronic documents to be viewed, created, and edited using electronic terminal devices such as computers, smart phones, tablet PCs, and the like.

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

기존에는 사용자가 전자 단말 장치를 활용해서 전자 문서를 열람, 작성, 편집하기 위해서는 전자 단말 장치에 직접 앞서 언급한 전자 문서 관련 프로그램들을 설치한 후 전자 문서 관련 프로그램들을 구동시켜 전자 문서를 열람하거나 작성 및 편집해야 했었다.Conventionally, in order to view, create and edit an electronic document by using an electronic terminal device, a user has to install the above-mentioned electronic document related programs directly in the electronic terminal device, and then operate the electronic document related programs to browse, I had to edit.

하지만, 최근에는 초고속 인터넷 환경이 구축되고, 언제 어디에서든지 인터넷에 접속할 수 있도록 하는 무선 인터넷 환경이 구축됨에 따라, 원격지의 서버를 통해서, 클라이언트 단말인 전자 단말 장치에 전자 문서 관련 서비스를 제공함으로써, 사용자가 전자 단말 장치에 소정의 전자 문서 관련 프로그램을 설치하지 않더라도 언제 어디에서든지 전자 문서를 열람, 작성, 편집할 수 있도록 하는 웹 기반의 전자 문서 서비스가 등장하고 있다.However, in recent years, a wireless Internet environment has been established in which a broadband Internet environment is established and a user can access the Internet anytime and anywhere. Thus, by providing an electronic document related service to an electronic terminal device serving as a client terminal through a remote server, A web-based electronic document service that allows an electronic document to be viewed, created, and edited anytime and anywhere without installing a predetermined electronic document-related program in the electronic terminal apparatus is emerging.

이러한 웹 기반의 전자 문서 서비스는 다양한 클라이언트 단말들이 전자 문서 서비스 제공 서버에 접속한 후 브라우저를 통해 웹 기반의 전자 문서를 열람한 후 해당 전자 문서를 작성 및 편집할 수 있도록 지원하며, 다양한 클라이언트 단말들이 상기 전자 문서에 대해서 실시간으로 동시 협업을 수행할 수 있도록 지원한다는 점에서 기업이나 단체 등에서 주로 활용되고 있다.This web-based electronic document service enables various client terminals to access the electronic document service providing server, browse the web-based electronic document through the browser and create and edit the electronic document, and various client terminals The present invention is mainly utilized in corporations and organizations because it supports simultaneous collaboration on the electronic document in real time.

그리고, 웹 기반의 전자 문서 서비스는 클라이언트 단말에 소정의 전자 문서 작성 프로그램을 설치할 필요 없이, 인터넷에 접속만 할 수 있으면, 클라이언트 단말에 탑재되어 있는 브라우저를 통해서 전자 문서를 열람하고, 작성 및 편집할 수 있도록 지원하기 때문에 사용자의 이동성을 보장할 수 있어, 개인 사용자들도 점차 증가하고 있는 추세이다.If a web-based electronic document service can be connected to the Internet without installing a predetermined electronic document creating program on the client terminal, the electronic document service can be browsed, created and edited through a browser installed in the client terminal And thus the mobility of users can be guaranteed, and the number of individual users is also increasing.

관련해서, 사용자가 클라이언트 단말을 이용하여 웹 기반의 전자 문서를 요청할 때, 이에 응답하여 클라이언트 단말로 웹 기반의 전자 문서를 빠르게 전송하는 것이 중요하다. 그러나, 웹 기반의 전자 문서, 특히, 스프레드시트 문서의 경우, 문서에 대한 데이터들을 모두 리드하여 객체형 문서로 변환한 후 변환된 객체형 문서를 클라이언트 단말로 전송함으로써, 웹 기반의 전자 문서에 대한 요청에 응답하여 클라이언트 단말로 전송하는 반응 시간이 길어지는 문제점이 있다.In connection with this, when a user requests a web-based electronic document using a client terminal, it is important to quickly transmit the web-based electronic document to the client terminal in response thereto. However, in the case of a web-based electronic document, particularly a spreadsheet document, all the data for the document are read and converted into an object type document, and the converted object type document is transmitted to the client terminal, There is a problem in that the response time to transmit to the client terminal becomes longer in response to the request.

따라서, 사용자들이 클라이언트 단말을 이용하여 웹 기반의 전자 문서를 요청할 때, 최대한 고속으로 웹 기반의 전자 문서에 대한 요청에 응답하여 클라이언트 단말로 전송하는 알고리즘이 도입될 필요가 있다.Accordingly, when a user requests a web-based electronic document using a client terminal, it is necessary to introduce an algorithm for transmitting the web-based electronic document to the client terminal in response to a request for a web-based electronic document at a maximum speed.

클라이언트 단말로부터 문서 저장부에 저장된 스프레드시트 문서에 대한 리드 명령이 입력되면, 상기 클라이언트 단말이 상기 스프레드시트 문서에 대한 편집을 마지막으로 종료하였을 때 상기 클라이언트 단말에 디스플레이되고 있던 시트에 대한 정보를 확인하고, 상기 스프레드시트 문서의 데이터 영역에 포함된 엘리먼트들의 식별 정보를 확인한 후 상기 엘리먼트들 각각의 데이터를 로드하도록 상기 엘리먼트들 각각을 다수의 서브 쓰레드들 각각에 순차적으로 할당함으로써 상기 엘리먼트들 각각의 데이터를 로드하며, 상기 클라이언트 단말에 디스플레이되고 있던 시트에 상응하는 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 엘리먼트들 각각의 데이터를 객체형 데이터로 변환하고, 이를 상기 클라이언트 단말로 전송함으로써, 사용자들이 클라이언트 단말을 이용하여 웹 기반의 전자 문서를 요청할 때, 최대한 고속으로 웹 기반의 전자 문서에 대한 요청에 응답하여 클라이언트 단말로 전송하고자 한다.When a read command for a spreadsheet document stored in a document storage unit is inputted from the client terminal, information on the sheet displayed on the client terminal is checked when the client terminal has finally finished editing the spreadsheet document , Identifying each of the elements included in the data area of the spreadsheet document and sequentially assigning each of the elements to each of the plurality of sub-threads to load data of each of the elements, And when data of each element corresponding to the sheet displayed on the client terminal is loaded, the data of each of the loaded elements is converted into object type data and transmitted to the client terminal, Now, when they ask for electronic documents using a Web-based client terminals, and want to respond to requests for electronic documents, Web-based maximum speed transmission to the client terminal.

본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치는 클라이언트 단말로부터 문서 저장부에 저장된 스프레드시트 문서에 대한 리드 명령이 입력되면, 상기 스프레드시트 문서의 문서 정보 영역에 기록된 제1 시트 정보 - 상기 제1 시트 정보는 상기 클라이언트 단말이 상기 스프레드시트 문서에 대한 편집을 마지막으로 종료하였을 때 상기 클라이언트 단말에 디스플레이되고 있던 시트에 대한 정보임 - 를 확인하는 문서 정보 확인부, 상기 스프레드시트 문서의 데이터 영역에 포함된 엘리먼트들의 식별 정보를 확인한 후 상기 엘리먼트들 각각의 데이터를 로드하도록 상기 엘리먼트들 각각을 다수의 서브 쓰레드들 각각에 순차적으로 할당하는 메인 쓰레드, 상기 메인 쓰레드로부터 상기 다수의 서브 쓰레드들 각각에 순차적으로 할당된 상기 엘리먼트들 각각의 데이터를 로드하는 다수의 서브 쓰레드들, 상기 엘리먼트들의 상기 식별 정보에 기초하여 상기 엘리먼트들 중 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제1 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환하는 객체형 데이터 변환부 및 상기 제1 객체형 데이터를 상기 클라이언트 단말로 전송하는 객체형 데이터 전송부를 포함한다.The apparatus for providing a spreadsheet document based on a multithread according to an exemplary embodiment of the present invention is characterized in that when a read command for a spreadsheet document stored in a document storage unit is input from a client terminal, Sheet information - The first sheet information is a document information confirmation unit for confirming that the client terminal is information on a sheet displayed on the client terminal when the client terminal finally finished editing the spreadsheet document, A main thread sequentially assigning each of the elements to each of a plurality of sub threads to load data of each of the elements after identifying identification information of elements included in a data area of a document, Sequential to each thread The method comprising the steps of: if the data of each of the first elements corresponding to the first sheet of the elements is loaded based on the identification information of the elements, An object type data converter for converting data of each of the loaded first elements into first object type data, and an object type data transmitter for transmitting the first object type data to the client terminal.

본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법은 클라이언트 단말로부터 문서 저장부에 저장된 스프레드시트 문서에 대한 리드 명령이 입력되면, 상기 스프레드시트 문서의 문서 정보 영역에 기록된 제1 시트 정보 - 상기 제1 시트 정보는 상기 클라이언트 단말이 상기 스프레드시트 문서에 대한 편집을 마지막으로 종료하였을 때 상기 클라이언트 단말에 디스플레이되고 있던 시트에 대한 정보임 - 를 확인하는 단계, 메인 쓰레드가 상기 스프레드시트 문서의 데이터 영역에 포함된 엘리먼트들의 식별 정보를 확인한 후 상기 엘리먼트들 각각의 데이터를 로드하도록 상기 엘리먼트들 각각을 다수의 서브 쓰레드들 각각에 순차적으로 할당하도록 상기 메인 쓰레드를 제어하는 단계, 상기 다수의 서브 쓰레드들 각각이 상기 메인 쓰레드로부터 순차적으로 할당된 상기 엘리먼트들 각각의 데이터를 로드하도록 상기 다수의 서브 쓰레드들을 제어하는 단계, 상기 엘리먼트들의 상기 식별 정보에 기초하여 상기 엘리먼트들 중 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제1 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환하는 단계 및 상기 제1 객체형 데이터를 상기 클라이언트 단말로 전송하는 단계를 포함한다.A method of operating a multi-threaded spreadsheet document providing apparatus according to an exemplary embodiment of the present invention includes: inputting a read command for a spreadsheet document stored in a document storage unit from a client terminal; The first sheet information, the first sheet information, confirming that the client terminal is information about the sheet displayed on the client terminal when the editing of the spreadsheet document last ended, Controlling the main thread to sequentially assign each of the elements to each of a plurality of sub threads to load data of each of the elements after identifying identification information of elements included in a data area of the spreadsheet document, The plurality of sub-threads Controlling each of the plurality of sub threads to load data of each of the sequentially assigned elements from the main thread, determining a first thread corresponding to a first sheet of the elements based on the identification information of the elements, Converting data of each of the loaded first elements into first object type data when data of each of the elements is loaded, and transmitting the first object type data to the client terminal.

클라이언트 단말로부터 문서 저장부에 저장된 스프레드시트 문서에 대한 리드 명령이 입력되면, 상기 클라이언트 단말이 상기 스프레드시트 문서에 대한 편집을 마지막으로 종료하였을 때 상기 클라이언트 단말에 디스플레이되고 있던 시트에 대한 정보를 확인하고, 상기 스프레드시트 문서의 데이터 영역에 포함된 엘리먼트들의 식별 정보를 확인한 후 상기 엘리먼트들 각각의 데이터를 로드하도록 상기 엘리먼트들 각각을 다수의 서브 쓰레드들 각각에 순차적으로 할당함으로써 상기 엘리먼트들 각각의 데이터를 로드하며, 상기 클라이언트 단말에 디스플레이되고 있던 시트에 상응하는 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 엘리먼트들 각각의 데이터를 객체형 데이터로 변환하고, 이를 상기 클라이언트 단말로 전송함으로써, 사용자들이 클라이언트 단말을 이용하여 웹 기반의 전자 문서를 요청할 때, 최대한 고속으로 웹 기반의 전자 문서에 대한 요청에 응답하여 클라이언트 단말로 전송할 수 있다.When a read command for a spreadsheet document stored in a document storage unit is inputted from the client terminal, information on the sheet displayed on the client terminal is checked when the client terminal has finally finished editing the spreadsheet document , Identifying each of the elements included in the data area of the spreadsheet document and sequentially assigning each of the elements to each of the plurality of sub-threads to load data of each of the elements, And when data of each element corresponding to the sheet displayed on the client terminal is loaded, the data of each of the loaded elements is converted into object type data and transmitted to the client terminal, Here they are, be transferred to the client terminal in response to a request for an electronic document from a Web-based high speed as much as possible when you request a web-based electronic document using the client terminal.

도 1은 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치를 포함하는 스프레드시트 문서 편집 시스템의 구조를 도시한 도면이다.
도 2는 바이너리 포맷 형식의 스프레드시트 문서를 예시한 도면이다.
도 3은 XML(eXtensible Markup Language) 형식의 스프레드시트 문서를 예시한 도면이다.
도 4는 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법을 도시한 순서도이다.
1 is a diagram illustrating a structure of a spreadsheet document editing system including a multithread-based spreadsheet document providing apparatus according to an embodiment of the present invention.
2 is a diagram illustrating a spreadsheet document in binary format.
3 is a diagram illustrating a spreadsheet document in XML (extensible Markup Language) format.
4 is a flowchart illustrating an operation method of a multi-threaded spreadsheet document providing apparatus 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. It is to be understood that the description is not intended to limit the invention to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals in the drawings are used for similar elements and, unless otherwise defined, all terms used in the specification, including technical and scientific terms, are to be construed in a manner that is familiar to those skilled in the art. It has the same meaning as commonly understood by those who have it.

이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치(100)를 포함하는 스프레드시트 문서 편집 시스템(10)의 구조를 도시한 도면이다.1 is a diagram illustrating a structure of a spreadsheet document editing system 10 including an apparatus 100 for providing a spreadsheet document based on a multithread according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 스프레드시트 문서 편집 시스템(10)은 스프레드시트 문서 제공 장치(100) 및 클라이언트 단말(170)을 포함한다.As shown in FIG. 1, a spreadsheet document editing system 10 includes a spreadsheet document providing apparatus 100 and a client terminal 170.

본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치(100)는 문서 저장부(110), 클라이언트 명령 수신부(120), 문서 정보 확인부(130), 쓰레드부(140), 객체형 데이터 변환부(150) 및 객체형 데이터 전송부(160)를 포함한다.An apparatus 100 for providing a spreadsheet document based on a multithread according to an exemplary embodiment of the present invention includes a document storage unit 110, a client command receiving unit 120, a document information checking unit 130, a threading unit 140, Type data conversion unit 150 and an object-type data transfer unit 160. FIG.

문서 저장부(110)는 스프레드시트 문서를 저장한다. 여기서 스프레드시트 문서는 "cell", "nxl", “xls" 및 "xlsx" 등의 확장자를 갖는 표 형식의 문서이다.The document storage unit 110 stores a spreadsheet document. Here, the spreadsheet document is a tabular document having extensions such as "cell", "nxl", "xls", and "xlsx".

도 2는 바이너리 포맷 형식의 스프레드시트 문서(200)를 예시한 도면이다.2 is a diagram illustrating a spreadsheet document 200 in binary format.

도 2에 예시된 바와 같이, 바이너리 포맷 형식의 스프레드시트 문서(200)는 하나의 파일로 구성되며, 문서 정보 영역(210), 시트 데이터 영역(220) 및 서식 데이터 영역(230)이 기록되어 있다. 문서 정보 영역(210)에는 상기 스프레드시트 문서(200)의 문서 정보, 예컨대, 상기 클라이언트 단말(170)이 상기 스프레드시트 문서에 대한 편집을 종료할 것을 명령하였을 때 상기 클라이언트 단말(170)에 디스플레이되고 있던 제1 시트에 대한 정보(이하에서는 제1 시트 정보라고 함)가 기록되어 있다. 시트 데이터 영역(220)에는 상기 스프레드시트 문서(200)의 1 내지 4번 시트들(221 내지 224)에 포함된 객체들에 대한 데이터가 기록되어 있으며, 서식 데이터 필드(230)에는 객체들 각각에 대한 서식 데이터 등이 기록되어 있다. 문서 정보 영역(210), 시트 데이터 영역(220) 및 서식 데이터 영역(230) 각각은 데이터가 엘리먼트 형태로 기록되어 있으며, 엘리먼트들 각각은 하기 표 1과 같은 형태를 가진다.2, the spreadsheet document 200 in binary format is composed of one file, and a document information area 210, a sheet data area 220 and a format data area 230 are recorded . The document information area 210 displays the document information of the spreadsheet document 200, for example, when the client terminal 170 instructs the client terminal 170 to finish editing the spreadsheet document (Hereinafter referred to as " first sheet information ") is recorded. Data for objects included in the first to fourth sheets 221 to 224 of the spreadsheet document 200 are recorded in the sheet data area 220. In the format data field 230, Format data and the like are recorded. Each of the document information area 210, the sheet data area 220, and the format data area 230 has data recorded in an element format, and each of the elements has a form as shown in Table 1 below.

레코드 필드Record field 렝스 필드Rancefield 데이터 필드Data field

여기서, 레코드 필드는 엘리먼트의 메타 정보가 기록되고, 렝스 필드는 데이터의 길이 정보가 기록되며, 데이터 필드는 엘리먼트의 메타 정보에 상응하는 데이터가 기록된다. 또한, 레코드 필드 및 렝스 필드는 사전 설정된 길이의 데이터를 가진다. 이에 따라, 스프레드시트 문서 제공 장치(100)는 상기 스프레드시트 문서(200)를 로드할 때 엘리먼트들 각각의 레코드 필드 및 렝스 필드에 기록된 데이터를 참조함으로써, 다음번의 엘리먼트의 시작 위치를 확인할 수 있다. 이하에서는, 시트 데이터 영역(220) 및 서식 데이터 영역(230)을 데이터 영역으로 지칭한다.Here, the meta information of the element is recorded in the record field, the length information of the data is recorded in the length field, and the data corresponding to the meta information of the element is recorded in the data field. In addition, the record field and the length field have a predetermined length of data. Accordingly, when loading the spreadsheet document 200, the spreadsheet document providing apparatus 100 can check the start position of the next element by referring to the data recorded in the record field and the length field of each of the elements . Hereinafter, the sheet data area 220 and the format data area 230 are referred to as a data area.

이상에서는, 스프레드시트 문서가 4개의 시트로 이루어진 것으로 예시하였으나, 이는 예시일 뿐, 4개를 초과하는 시트 또는 4개 미만의 시트로 이루어질 수도 있다.In the above description, the spreadsheet document is illustrated as being composed of four sheets, but this is merely an example, and may be composed of more than four sheets or less than four sheets.

이하에서는 도 2에 예시된 바이너리 포맷 형식의 스프레드시트 문서(200)를 참조하여, 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치(100)의 동작을 설명한다.Hereinafter, the operation of the apparatus 100 for providing a spreadsheet document based on a multithread according to an embodiment of the present invention will be described with reference to a spreadsheet document 200 of the binary format format illustrated in FIG.

클라이언트 명령 수신부(120)는 유/무선으로 연결된 클라이언트 단말(170)로부터 클라이언트 명령을 수신한다. 여기에서, 클라이언트 명령은 문서 저장부(110)에 저장된 스프레드시트 문서, 예컨대, 바이너리 포맷 형식의 스프레드시트 문서(200)의 리드 명령, 상기 스프레드시트 문서(200)에 대한 편집 명령, 상기 편집 명령에 기초하여 편집된 스프레드시트 문서(200)에 대한 저장 명령 등일 수 있다.The client command receiving unit 120 receives a client command from the client terminal 170, which is connected wirelessly or wirelessly. Here, the client command is a command to read a spreadsheet document stored in the document storage unit 110, for example, a read command of the spreadsheet document 200 in binary format, an edit command to the spreadsheet document 200, A save command for the spreadsheet document 200 based on editing, and the like.

문서 정보 확인부(130)는 클라이언트 단말(170)로부터의 클라이언트 명령에 응답하여 문서 저장부(110)에 저장된 스프레드시트 문서(200)의 문서 정보 영역(210)을 확인한다.The document information checking unit 130 checks the document information area 210 of the spreadsheet document 200 stored in the document storage unit 110 in response to a client command from the client terminal 170. [

구체적으로, 문서 정보 확인부(130)는 클라이언트 단말(170)로부터 스프레드시트 문서(200)를 리드하라는 리드 명령에 응답하여 상기 스프레드시트 문서(200)의 문서 정보 영역(210)을 확인한다. 이에 따라, 문서 정보 확인부(130)는 상기 스프레드시트 문서(200)의 문서 정보 영역(210)을 확인함으로써 문서 정보 영역에 기록된 제1 시트 정보를 확인할 수 있다.More specifically, the document information verification unit 130 confirms the document information area 210 of the spreadsheet document 200 in response to a read command to read the spreadsheet document 200 from the client terminal 170. Accordingly, the document information checking unit 130 can check the first sheet information recorded in the document information area by checking the document information area 210 of the spreadsheet document 200. [

쓰레드부(140)는, 도 1에 도시된 바와 같이, 메인 쓰레드(141) 및 다수의 서브 쓰레드들(142 내지 144)을 포함한다. 여기서, 다수의 서브 쓰레드들(142 내지 144)이 3개의 서브 쓰레드들로 이루어진 것으로 예시하였으나, 이는 예시일 뿐, 다수의 서브 쓰레드들은 3개를 초과하는 서브 쓰레드 또는 3개 미만의 서브 쓰레드로 이루어질 수도 있다.The thread portion 140 includes a main thread 141 and a plurality of sub-threads 142 to 144, as shown in Fig. Here, although the plurality of sub-threads 142 to 144 are illustrated as being composed of three sub-threads, this is only an example, and a plurality of sub-threads may consist of more than three sub-threads or less than three sub-threads It is possible.

쓰레드부(140)는 클라이언트 단말(170)로부터의 클라이언트 명령에 응답하여 문서 저장부(110)에 저장된 스프레드시트 문서(200)의 데이터 영역에 기록된 데이터들을 로드하며, 시트들 각각에 대한 데이터들이 모두 로드될 때마다, 시트들 각각에 대한 데이터들이 모두 로드되었음을 객체형 데이터 변환부(150)에 통지한다. 이에 따라, 쓰레드부(140)는 상기 제1 시트 정보에 상응하는 제1 시트에 대한 데이터들이 로드된 경우, 상기 제1 시트에 대한 데이터들이 로드되었음을 객체형 데이터 변환부(150)에 통지할 수 있으며, 상기 제1 시트 이외의 제2 시트들 각각에 대한 데이터들이 로드된 경우, 상기 제2 시트들 각각에 대한 데이터들이 로드되었음을 객체형 데이터 변환부(150)에 통지할 수 있다.The thread unit 140 loads data recorded in the data area of the spreadsheet document 200 stored in the document storage unit 110 in response to a client command from the client terminal 170, And notifies the object type data conversion unit 150 that all the data for each of the sheets has been loaded each time it is all loaded. Accordingly, when the data for the first sheet corresponding to the first sheet information is loaded, the thread unit 140 can notify the object-type data conversion unit 150 that the data for the first sheet is loaded If data for each of the second sheets other than the first sheet is loaded, the object type data conversion unit 150 can be notified that data for each of the second sheets has been loaded.

구체적으로, 메인 쓰레드(141)는 상기 스프레드시트 문서(200)의 데이터 영역에 포함된 엘리먼트들의 식별 정보를 확인한 후 상기 엘리먼트들 각각을 다수의 서브 쓰레드들(142, 143 및 144) 각각에 순차적으로 할당하며, 이에 따라, 다수의 서브 쓰레드들(142, 143 및 144) 각각은 할당된 엘리먼트를 데이터 필드를 로드할 수 있다. 이때, 메인 쓰레드(141)는 상기 스프레드시트 문서(200)의 데이터 영역에 포함된 상기 엘리먼트들 각각을 상기 다수의 서브 쓰레드들(142, 143 및 144) 중 아이들(idle) 상태인 서브 쓰레드들 각각에 순차적으로 할당한다. 여기서, 식별 정보는 상기 스프레드시트 문서(200)에서의 엘리먼트의 위치, 레코드 필드의 엘리먼트의 메타 정보 및 렝스 필드의 데이터의 길이 정보를 포함하는 정보이다.Specifically, the main thread 141 identifies the identification information of the elements included in the data area of the spreadsheet document 200, and then sequentially transmits each of the elements to each of the plurality of sub threads 142, 143, and 144 in sequence And thus each of the plurality of sub-threads 142, 143 and 144 may load the data field with the assigned element. At this time, the main thread 141 inserts each of the elements included in the data area of the spreadsheet document 200 into each of the sub-threads 142, 143 and 144, which are idle states of the plurality of sub-threads 142, . Here, the identification information is information including the position of the element in the spreadsheet document 200, the meta information of the element of the record field, and the length information of the data of the length field.

예를 들어, 다수의 서브 쓰레드들(142, 143 및 144)이 아이들(idle) 상태이고, 1, 3 및 4번 시트 데이터 영역들(221, 223 및 223) 각각에는 3개의 엘리먼트가 기록되어 있고, 2번 시트 데이터 영역(222)에는 6개의 엘리먼트가 기록되어 있으며, 서식 데이터 영역(230)에는 4개의 엘리먼트가 기록되어 있는 경우, 메인 쓰레드(141)는 제1 서브 쓰레드(142)에 1번 시트 데이터 영역(221)의 1번 엘리먼트를 할당하고, 제2 서브 쓰레드(143)에 1번 시트 데이터 영역(221)의 2번 엘리먼트를 할당하며, 제3 서브 쓰레드(144)에 1번 시트 데이터 영역(221)의 3번 엘리먼트를 할당함으로써, 상기 엘리먼트들 각각을 다수의 서브 쓰레드들(142, 143 및 144) 각각에 순차적으로 할당할 수 있다.For example, in the case where a plurality of sub threads 142, 143, and 144 are idle, three elements are recorded in each of the first, third, and fourth sheet data areas 221, 223, and 223 6 elements are recorded in the second sheet data area 222. When four elements are recorded in the format data area 230, the main thread 141 writes the first sub-thread 142 in the first sub- The first element of the sheet data area 221 is allocated and the second element of the first sheet data area 221 is allocated to the second sub thread 143 and the second element of the first sheet data area 221 is allocated to the third sub thread 144, By assigning the third element of the area 221, each of the elements can be sequentially allocated to each of the plurality of sub threads 142, 143, and 144, respectively.

또한, 메인 쓰레드(141)는 상기 엘리먼트들 각각을 상기 다수의 서브 쓰레드들(142, 143 및 144) 각각에 순차적으로 할당하되, 상기 다수의 서브 쓰레드들(142, 143 및 144) 모두가 할당된 엘리먼트들 각각의 데이터를 로드하고 있는 경우 상기 엘리먼트들 중 할당되지 않은 엘리먼트들 중 하나의 엘리먼트를 자신에게 할당한 후 상기 하나의 엘리먼트의 데이터를 로드할 수 있다.Also, the main thread 141 sequentially allocates each of the elements to each of the plurality of sub threads 142, 143, and 144, wherein all of the plurality of sub threads 142, 143, and 144 are allocated When loading data of each of the elements, it is possible to assign one element of the unallocated elements among the elements to load the data of the one element.

예를 들어, 상기 예로 든 상황에서, 제1 내지 3 서브 쓰레드들(142, 142 및 144) 각각이 순차적으로 할당된 1번 시트 데이터 영역(221)의 1 내지 3번 엘리먼트들 각각을 로드하고 있는 경우, 상기 스프레드시트 문서(200)의 데이터 영역에 포함된 상기 엘리먼트들 중 할당되지 않은 엘리먼트들 중 하나의 엘리먼트, 예컨대, 2번 시트 데이터 영역(222)의 1번 엘리먼트를 자신에게 할당한 후 상기 하나의 엘리먼트, 즉, 2번 시트 데이터 영역(222)의 1번 엘리먼트의 데이터를 로드할 수 있다.For example, in the above-described situation, each of the first to third sub-threads 142, 142 and 144 loads each of the first to third elements of the sequentially allocated first sheet data area 221 , An element of the unallocated elements of the elements included in the data area of the spreadsheet document 200, for example, element 1 of the second sheet data area 222, is allocated to itself, It is possible to load data of one element, that is, element 1 of the second sheet data area 222.

그리고, 메인 쓰레드(141)는 자신에게 할당된 상기 하나의 엘리먼트를 로드한 후, 상기 다수의 서브 쓰레드들(142, 143 및 144) 모두가 할당된 엘리먼트들 각각의 데이터를 로드하고 있는지 확인한 후, 상기 스프레드시트 문서(200)의 데이터 영역에 포함된 상기 엘리먼트들 중 할당되지 않은 엘리먼트들 중 다른 하나의 엘리먼트의 할당 여부를 결정할 수 있다.After the main thread 141 loads the one element allocated to itself, it checks whether all of the plurality of sub threads 142, 143 and 144 are loading data of the allocated elements, It is possible to determine whether another element among the unallocated elements among the elements included in the data area of the spreadsheet document 200 is allocated.

예를 들어, 상기 예로 든 상황에서, 메인 쓰레드(141)가 자신에게 할당한 2번 시트 데이터 영역(222)의 1번 엘리먼트를 로드한 후, 제1 내지 3 서브 쓰레드들(142, 142 및 144) 각각이 순차적으로 할당된 1번 시트 데이터 영역(221)의 1 내지 3번 엘리먼트들 각각을 로드하고 있는지 확인하며, 확인 결과, 여전히 제1 내지 3 서브 쓰레드들(142, 142 및 144) 각각이 순차적으로 할당된 1번 시트 데이터 영역(221)의 1 내지 3번 엘리먼트들 각각을 로드하고 있는 경우, 상기 스프레드시트 문서(200)의 데이터 영역에 포함된 상기 엘리먼트들 중 할당되지 않은 엘리먼트들 중 다른 하나의 엘리먼트, 예컨대, 2번 시트 데이터 영역(222)의 2번 엘리먼트를 자신에게 할당한 후 상기 2번 시트 데이터 영역(222)의 2번 엘리먼트의 데이터를 로드할 수 있다. 그러나, 상기 예로 든 상황에서, 확인 결과, 제1 내지 3 서브 쓰레드들(142, 142 및 144) 중 제2 서브 쓰레드(142)가 1번 시트 데이터 영역(221)의 2번 엘리먼트를 로드 완료한 경우, 상기 스프레드시트 문서(200)의 데이터 영역에 포함된 상기 엘리먼트들 중 할당되지 않은 엘리먼트들 중 다른 하나의 엘리먼트, 예컨대, 2번 시트 데이터 영역(222)의 2번 엘리먼트를 제2 서브 쓰레드(142)에게 할당할 수 있다.For example, in the above example, after loading the element 1 of the second sheet data area 222 allocated to the main thread 141 by itself, the first to third sub threads 142, 142 and 144 Checks whether each of the first through third subthreads 142, 142, and 144 has been loaded with the first through third elements of the sequentially allocated first-time sheet data area 221. As a result, When one of the elements 1 to 3 of the sequentially assigned first sheet data area 221 is loaded, the first element of the first unused element among the elements included in the data area of the spreadsheet document 200 The second element of the second sheet data area 222 can be loaded after one element, for example, the second element of the second sheet data area 222, is allocated to itself. However, in the above-described situation, when the second sub-thread 142 among the first to third sub-threads 142, 142, and 144 has loaded the second element of the first sheet data area 221 (For example, the second element of the second sheet data area 222) of the unallocated elements among the elements included in the data area of the spreadsheet document 200 to the second sub-thread 142).

본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치(100)는 상술한 바와 같은 방식으로 메인 쓰레드(141)가 상기 스프레드시트 문서(200)의 데이터 영역에 포함된 상기 엘리먼트들을 메인 쓰레드(141) 및/또는 상기 다수의 서브 쓰레드들(142, 143 및 144)에게 할당함으로써, 상기 스프레드시트 문서(200)를 고속으로 로드할 수 있다.The apparatus 100 for providing a spreadsheet document based on a multithread according to an embodiment of the present invention may be configured such that the main thread 141 divides the elements included in the data area of the spreadsheet document 200 into main Thread 141 and / or the plurality of sub-threads 142, 143 and 144 to load the spreadsheet document 200 at high speed.

또한, 메인 쓰레드(141)는 상기 엘리먼트들의 상기 식별 정보에 기초하여 시트들 각각에 상응하는 엘리먼트들의 각각의 데이터가 모두 로드된 경우, 시트들 각각에 상응하는 엘리먼트들의 각각의 데이터가 모두 로드되었음을 객체형 데이터 변환부(150)에 통지한다. 여기에서, 상기 스프레드시트 문서(200)의 1 내지 4번 시트들 중 1번 시트를 예로 들면, 1번 시트에 상응하는 엘리먼트들의 각각의 데이터는 1번 시트 데이터 영역(221)에 기록된 엘리먼트들의 각각의 데이터와 서식 데이터 영역(230)에 기록된 엘리먼트들 중 1번 시트에 대한 서식 정보에 대한 엘리먼트들의 각각의 데이터이다. 또한, 상기 스프레드시트 문서(200)의 1 내지 4번 시트들 중 2번 시트를 예로 들면, 2번 시트에 상응하는 엘리먼트들의 각각의 데이터는 2번 시트 데이터 영역(222)에 기록된 엘리먼트들의 각각의 데이터와 서식 데이터 영역(230)에 기록된 엘리먼트들 중 2번 시트에 대한 서식 정보에 대한 엘리먼트들의 각각의 데이터이다. 이때, 메인 쓰레드(141)는 이전에 할당한 엘리먼트의 상기 식별 정보 중 레코드 필드의 메타 정보가 1번 시트에 대한 데이터임을 나타내고, 현재의 엘리먼트의 상기 식별 정보 중 레코드 필드의 메타 정보가 2번 시트에 대한 데이터임을 나타내는 경우, 1번 시트에 대한 서식 정보를 기록한 엘리먼트들의 각각의 데이터가 모두 로드된 것으로 판단할 수 있다. 이때, 메인 쓰레드(141)는 서식 데이터 영역(230)에 기록된 엘리먼트들의 레코드 필드의 메타 정보가 1번 시트에 상응하는 어느 한 엘리먼트의 데이터에서 2번 시트에 상응하는 어느 한 엘리먼트의 데이터로 변경될 때 1번 시트에 대한 서식 정보를 기록한 엘리먼트들이 모두 로드된 것으로 판단할 수 있다.In addition, the main thread 141, if all the data of the elements corresponding to each of the sheets are all loaded based on the identification information of the elements, indicates that each data of each of the elements corresponding to each of the sheets has been loaded, Type data conversion unit 150. [0064] Here, taking one sheet out of the first to fourth sheets of the spreadsheet document 200 as an example, each data of the elements corresponding to the first sheet is the same as the data of the elements recorded in the first sheet data area 221 Each of the data and each of the elements of the format information for the first sheet among the elements recorded in the format data area 230. For example, in the case of the second sheet among the first through fourth sheets of the spreadsheet document 200, each data of the elements corresponding to the second sheet is stored in each of the elements recorded in the second sheet data area 222 And the data of the elements of the format information for the second sheet among the elements recorded in the format data area 230. [ At this time, the main thread 141 indicates that the meta information of the record field among the identification information of the previously assigned element is data for the first sheet, and the meta information of the record field among the identification information of the current element is the second sheet It can be determined that all the data of the elements in which the format information of the first sheet is recorded are all loaded. At this time, the main thread 141 changes the meta information of the record field of the elements recorded in the format data area 230 from data of one element corresponding to the first sheet to data of one element corresponding to the second sheet It can be judged that all of the elements in which the format information of the first sheet is recorded are loaded.

예를 들어, 메인 쓰레드(141)는 1번 시트에 대한 데이터들, 즉, 1번 시트 데이터 영역(221)에 기록된 엘리먼트들과 서식 데이터 영역(230)에 기록된 엘리먼트들 중 1번 시트에 대한 서식 정보를 기록한 엘리먼트들이 모두 로드된 경우, 1번 시트에 상응하는 엘리먼트들의 각각의 데이터가 모두 로드되었음을 객체형 데이터 변환부(150)에 통지한다. 또한, 예를 들어, 메인 쓰레드(141)는 2번 시트에 대한 데이터들, 즉, 2번 시트 데이터 영역(222)에 기록된 엘리먼트들과 서식 데이터 영역(230)에 기록된 엘리먼트들 중 2번 시트에 대한 서식 정보를 기록한 엘리먼트들이 모두 로드된 경우, 2번 시트에 상응하는 엘리먼트들의 각각의 데이터가 모두 로드되었음을 객체형 데이터 변환부(150)에 통지한다.For example, the main thread 141 may store the data for the first sheet, i.e., the elements recorded in the first sheet data area 221 and the first sheet among the elements recorded in the format data area 230 When all the elements in which the format information is recorded are loaded, the object type data conversion unit 150 is notified that all the data of the elements corresponding to the first sheet have been loaded. In addition, for example, the main thread 141 may store the data for the second sheet, that is, the elements recorded in the second sheet data area 222 and the elements recorded in the second data area 230, When all the elements in which the format information of the sheet is recorded are loaded, the object type data conversion unit 150 is notified that all the data of the elements corresponding to the second sheet have been loaded.

다음으로, 객체형 데이터 변환부(150)는 상기 엘리먼트들의 상기 식별 정보에 기초하여 시트들 중 어느 한 시트에 상응하는 엘리먼트들의 각각의 데이터가 모두 로드된 경우, 상기 어느 한 시트에 상응하는 엘리먼트들의 각각의 데이터를 객체형 데이터로 변환한다. 여기에서, 객체형 데이터는 JSON(JavaScript Object Notation)과 같은 키-밸류 포맷(Key-Value Format)의 데이터일 수 있다.Next, the object-type data conversion unit 150, if all the data of the elements corresponding to any one of the sheets are loaded based on the identification information of the elements, Each data is converted into object type data. Here, the object type data may be data in a key-value format such as JavaScript Object Notation (JSON).

예를 들어, 객체형 데이터 변환부(150)는 상기 스프레드시트 문서(200)의 1번 시트에 상응하는 엘리먼트들의 각각의 데이터가 모두 로드된 경우, 상기 1번 시트에 상응하는 엘리먼트들의 각각의 데이터를 객체형 데이터로 변환한다.For example, when all the data of the elements corresponding to the first sheet of the spreadsheet document 200 are all loaded, the object-type data conversion unit 150 converts each data of the elements corresponding to the first sheet Into object type data.

객체형 데이터 변환부(150)는 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터가 로드된 경우, 상기 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환한다. 이때, 객체형 데이터 변환부(150)는 제1 시트 이외의 다른 시트들 중 어느 한 시트에 상응하는 엘리먼트들 각각의 데이터가 로드된 경우에도, 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터가 로드될 때까지 기다린 후 상기 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환할 수 있다. 여기서, 제1 시트는, 전술한 바와 같이, 상기 클라이언트 단말(170)이 상기 스프레드시트 문서(200)에 대한 편집을 종료할 것을 명령하였을 때 상기 클라이언트 단말(170)에 디스플레이되고 있던 제1 시트에 대한 정보에 상응하는 시트이다.When the data of each of the first elements corresponding to the first sheet is loaded, the object-type data conversion unit 150 converts the data of each of the first elements corresponding to the first sheet into the first object type data . At this time, the object-type data conversion unit 150 may convert the data of each of the first elements corresponding to the first sheet into the data of each of the elements corresponding to the first sheet, And then convert the data of each of the first elements corresponding to the first sheet into the first object type data. As described above, when the client terminal 170 instructs the client terminal 170 to finish editing the spreadsheet document 200, the first sheet is displayed on the first sheet displayed on the client terminal 170 This is the sheet corresponding to the information on.

예를 들어, 1번 시트가 제1 시트인 경우, 객체형 데이터 변환부(150)는 상기 1번 시트에 상응하는 엘리먼트들 각각의 데이터가 로드된 경우, 상기 1번 시트에 상응하는 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환한다. 이때, 객체형 데이터 변환부(150)는 1번 시트 이외의 2번 시트에 상응하는 엘리먼트들 각각의 데이터가 먼저 로드된 경우에도, 1번 시트에 상응하는 엘리먼트들 각각의 데이터가 로드될 때까지 기다린 후 상기 1번 시트에 상응하는 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환할 수 있다. 이에 따라, 1번 시트에 상응하는 엘리먼트들 각각의 데이터가 로드되자마자 상기 1번 시트에 상응하는 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환될 수 있다.For example, when the first sheet is the first sheet, the object-type data conversion unit 150 converts each of the elements corresponding to the first sheet, Into the first object type data. At this time, even if the data of the elements corresponding to the second sheet other than the first sheet are loaded first, the object-type data conversion unit 150 converts the data of the elements corresponding to the first sheet until the data of the elements corresponding to the first sheet are loaded And then converts the data of each of the elements corresponding to the first sheet into the first object type data. Accordingly, as soon as the data of each of the elements corresponding to the first sheet is loaded, the data of each of the elements corresponding to the first sheet can be converted into the first object type data.

다음으로, 객체형 데이터 변환부(150)는 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환한 후 상기 제1 시트 이외의 제2 시트들 각각에 상응하는 제2 엘리먼트들 각각의 데이터가 로드된 경우, 상기 제2 시트들 각각에 상응하는 제2 엘리먼트들 각각의 데이터를 제2 객체형 데이터로 변환한다.Next, the object-type data conversion unit 150 converts the data of each of the first elements corresponding to the first sheet into the first object type data, When the data of each of the two elements is loaded, the data of each of the second elements corresponding to each of the second sheets is converted into second object type data.

예를 들어, 상기 예로 든 상황에서, 객체형 데이터 변환부(150)는 상기 1번 시트에 상응하는 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환한 후, 2번 시트에 상응하는 엘리먼트들 각각의 데이터가 로드된 경우, 상기 2번 시트에 상응하는 엘리먼트들 각각의 데이터를 제2 객체형 데이터로 변환한다.For example, in the above-described example, the object-type data conversion unit 150 converts data of each of the elements corresponding to the first sheet into first object-type data, When each data is loaded, the data of each of the elements corresponding to the second sheet are converted into second object type data.

이때, 객체형 데이터 변환부(150)는 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환하고 객체형 데이터 전송부(160)가 상기 제1 객체형 데이터를 상기 클라이언트 단말(170)로 전송한 후, 상기 클라이언트 단말(170)이 상기 제1 시트 이외의 제2 시트들 중 제3 시트에 대한 제3 객체형 데이터를 요청한 경우, 객체형 데이터 변환부(150)는 상기 제3 시트에 상응하는 제3 엘리먼트들 각각의 데이터가 로드되었는지 확인하고, 상기 제3 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제3 엘리먼트들 각각의 데이터를 제3 객체형 데이터로 변환한다. 여기서, 상기 클라이언트 단말(170)이 상기 제1 시트 이외의 제2 시트들 중 제3 시트에 대한 제3 객체형 데이터를 요청한 경우는 상기 클라이언트 단말(170)이 객체형 데이터 전송부(160)를 통해 수신된 상기 제1 객체형 데이터를 클라이언트 단말(170)의 브라우저에 디스플레이한 후 제3 시트를 디스플레이하기 위해 선택한 경우일 수 있다.At this time, the object-type data conversion unit 150 converts the data of the first elements corresponding to the first sheet into the first object type data, and the object-type data transfer unit 160 converts the first object- When the client terminal 170 requests the third object type data for the third one of the second sheets other than the first sheet after transmitting the data to the client terminal 170, Checks whether the data of each of the third elements corresponding to the third sheet are loaded and, when the data of each of the third elements is loaded, converts the data of each of the loaded third elements into third object type data . If the client terminal 170 requests the third object type data of the third sheet among the second sheets other than the first sheet, the client terminal 170 transmits the object type data transfer unit 160 May be displayed in the browser of the client terminal 170 and then selected to display the third sheet.

예를 들어, 상기 예로 든 상황에서, 객체형 데이터 변환부(150)는 상기 1번 시트에 상응하는 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환하고 객체형 데이터 전송부(160)가 상기 제1 객체형 데이터를 상기 클라이언트 단말(170)로 전송한 후, 상기 클라이언트 단말(170)이 상기 1번 시트 이외의 3번 시트에 대한 제3 객체형 데이터를 요청한 경우, 객체형 데이터 변환부(150)는 상기 3번 시트에 상응하는 엘리먼트들 각각의 데이터가 로드되었는지 확인하고, 상기 3번 시트에 상응하는 엘리먼트들 각각의 데이터가 로드된 경우, 상기 3번 시트에 상응하는 엘리먼트들 각각의 데이터를 제3 객체형 데이터로 변환한다.For example, in the above-described situation, the object-type data conversion unit 150 converts the data of each element corresponding to the first sheet into the first object type data, When the client terminal 170 requests the third object type data for the third sheet other than the first sheet after transmitting the first object type data to the client terminal 170, 150 checks whether the data of each of the elements corresponding to the third sheet is loaded and, if data of each of the elements corresponding to the third sheet are loaded, checks whether data of each of the elements corresponding to the third sheet Into third object type data.

객체형 데이터 전송부(160)는 상기 객체형 데이터 변환부(150)가 변환한 객체형 데이터를 클라이언트 단말(170)로 전송한다. 이때, 객체형 데이터 전송부(160)는 상기 제1 객체형 데이터를 클라이언트 단말(170)로 전송하고, 상기 제2 객체형 데이터를 클라이언트 단말(170)로 전송하며, 상기 제3 객체형 데이터를 클라이언트 단말(170)로 전송할 수 있다.The object-type data transfer unit 160 transfers the object-type data converted by the object-type data conversion unit 150 to the client terminal 170. At this time, the object-type data transfer unit 160 transmits the first object type data to the client terminal 170, transmits the second object type data to the client terminal 170, To the client terminal 170.

도 2에 예시된 바이너리 포맷 형식의 스프레드시트 문서(200)를 참조하여 상술한 바와 같은 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치(100)는 상기 스프레드시트 문서(200)를 고속으로 로드하고, 클라이언트 단말(170)이 마지막으로 편집했던 시트를 우선적으로 객체형 데이터로 변환한 후 클라이언트 단말(170)에 전송함으로써, 클라이언트 단말(170)이 요청한 스프레드시트 문서(200)를 고속으로 제공할 수 있다.Referring to the spreadsheet document 200 of the binary format shown in FIG. 2, an apparatus 100 for providing a spreadsheet document based on a multithread according to an embodiment of the present invention, as described above, And the client terminal 170 converts the sheet that was last edited by the client terminal 170 into the object type data first and then transmits the object type data to the client terminal 170 so that the spreadsheet document 200 requested by the client terminal 170 It can be provided at high speed.

이하에서는 도 3에 예시된 XML(eXtensible Markup Language) 형식의 스프레드시트 문서(300)를 참조하여, 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치(100)의 동작을 설명한다. 간단명료한 설명을 위하여 바이너리 포맷 형식의 스프레드시트 문서(200)를 참조하여, 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치(100)의 동작과 중복되는 내용에 대한 설명을 이외의 핵심적인 내용에 대하여 중점적으로 설명한다.Hereinafter, the operation of the apparatus 100 for providing a spreadsheet document based on a multithread according to an embodiment of the present invention will be described with reference to a spreadsheet document 300 of XML (eXtensible Markup Language) format illustrated in FIG. For simplicity and clarity, the description of the contents overlapping with the operation of the apparatus 100 for providing a spreadsheet document based on the multithread according to an embodiment of the present invention will be described with reference to a spreadsheet document 200 in binary format This paper focuses on the core contents of

도 3은 XML 형식의 스프레드시트 문서(300)를 예시한 도면이다.3 is a diagram illustrating a spreadsheet document 300 in XML format.

도 3에 예시된 바와 같이, XML 형식의 스프레드시트 문서(300)는 문서 정보 파일(310), 다수의 시트 데이터 파일들(320, 330, 340 및 350) 및 서식 데이터 파일(360)로 구성되며, 문서 정보 파일(310)에는 문서 정보 영역(310)이 기록되어 있고, 1 내지 4번 시트 데이터 파일들(320, 330, 340 및 350) 각각에는 시트 데이터 영역들(321, 331, 341 및 351) 각각이 기록되어 있으며, 서식 데이터 파일(360)에는 서식 데이터 영역(361)이 기록되어 있다. 스프레드시트 문서(300)의 문서 정보 영역(311), 1 내지 4번 시트 데이터 영역들(321, 331, 341 및 351) 및 서식 데이터 영역(360) 각각에 기록된 데이터는 스프레드시트 문서(200)의 문서 정보 영역(210), 1 내지 4번 시트 데이터 영역들(221 내지 224) 및 서식 데이터 영역(230)의 각각에 기록된 데이터에 상응한다. 구체적으로, 문서 정보 영역(311)에는 상기 스프레드시트 문서(300)의 문서 정보, 예컨대, 제1 시트 정보가 기록되어 있다. 1 내지 4번 시트 데이터 영역들(321, 331, 341 및 351) 각각에는 상기 스프레드시트 문서(300)의 1 내지 4번 시트 데이터 파일들(320, 330, 340 및 350) 각각에 상응하는 시트에 포함된 객체들에 대한 데이터가 기록되어 있으며, 서식 데이터 영역(361)에는 객체들 각각에 대한 서식 데이터 등이 기록되어 있다.3, a spreadsheet document 300 in XML format comprises a document information file 310, a plurality of sheet data files 320, 330, 340 and 350, and a form data file 360 The document information area 310 is recorded in the document information file 310 and the sheet data areas 321, 331, 341 and 351 And the format data file 361 is recorded in the format data file 360. [ Data recorded in each of the document information area 311, the first to fourth sheet data areas 321, 331, 341, and 351, and the format data area 360 of the spreadsheet document 300 is stored in the spreadsheet document 200, The first to fourth sheet data areas 221 to 224, and the format data area 230 of the document information area 210, the first to fourth sheet data areas 221 to 224, and the format data area 230, respectively. Specifically, in the document information area 311, document information of the spreadsheet document 300, for example, first sheet information, is recorded. Each of the first to fourth sheet data areas 321, 331, 341 and 351 is provided with sheets corresponding to the first to fourth sheet data files 320, 330, 340 and 350 of the spreadsheet document 300 And data on embedded objects is recorded. In the format data area 361, format data and the like for each object are recorded.

XML 형식의 스프레드시트 문서(300)는 문서 정보 파일(310), 다수의 시트 데이터 파일들(320, 330, 340 및 350) 및 서식 데이터 파일(360)로 구성됨에 따라, 스프레드시트 문서 제공 장치(100)는 상기 스프레드시트 문서(300)를 로드할 때 문서 정보 파일(310)에 저장된 1 내지 4번 시트 데이터 파일들(320, 330, 340 및 350) 및 서식 데이터 파일(330) 각각의 위치를 확인함으로써 1 내지 4번 시트 데이터 영역들(321, 331, 341 및 351) 및 서식 데이터 영역(360) 각각에 저장된 데이터를 리드할 수 있다.The spreadsheet document 300 in XML format is composed of a document information file 310, a plurality of sheet data files 320, 330, 340 and 350 and a form data file 360, 100 may store the position of each of the first to fourth sheet data files 320, 330, 340, and 350 and the form data file 330 stored in the document information file 310 when the spreadsheet document 300 is loaded The data stored in the first to fourth sheet data areas 321, 331, 341, and 351 and the format data area 360 can be read.

바이너리 포맷 형식의 스프레드시트 문서(200)와 달리 XML 형식의 스프레드시트 문서(300)는 문서 정보 파일(310), 다수의 시트 데이터 파일들(320, 330, 340 및 350) 및 서식 데이터 파일(360)로 구성됨에 따라, 파일들을 억세스하여 필요한 데이터들을 로드할 수 있다.Unlike the spreadsheet document 200 in binary format, the spreadsheet document 300 in XML format includes a document information file 310, a plurality of sheet data files 320, 330, 340, and 350, and a format data file 360 ), It is possible to access the files and load necessary data.

구체적으로, 쓰레드부(140)는 클라이언트 단말(170)로부터의 클라이언트 명령에 응답하여 문서 저장부(110)에 저장된 스프레드시트 문서(300)의 데이터 영역들(321, 331, 341 및 351)에 기록된 데이터들을 로드할 때, 제1 시트에 상응하는 파일들을 억세스하여 데이터들을 로드한 후, 제1 시트 이외의 제2 시트들 각각에 상응하는 파일들을 순차적으로 억세스하여 데이터들을 로드할 수 있다.Specifically, the thread unit 140 records in the data areas 321, 331, 341, and 351 of the spreadsheet document 300 stored in the document storage unit 110 in response to a client command from the client terminal 170 The data corresponding to the first sheet may be accessed to load the data, and then the files corresponding to each of the second sheets other than the first sheet may be sequentially accessed to load the data.

예를 들어, 스프레드시트 문서 정보 확인부(130)가 스프레드시트 문서(300)의 문서 정보 파일(310)에 기록된 제1 시트 정보의 확인한 결과 1번 시트가 제1 시트인 경우, 객체형 데이터 변환부(150)는 1번 시트 데이터 영역이 기록된 1번 시트 데이터 파일(320) 및 서식 데이터 파일(360)에 억세스하여 1번 시트에 상응하는 데이터들을 로드한다. 이에 따라, 1번 시트에 상응하는 데이터들이 로드된 경우, 객체형 데이터 변환부(150)는 상기 1번 시트에 상응하는 데이터들을 제1 객체형 데이터들로 변환한다. 이에 따라, 바이너리 포맷 형식의 스프레드시트 문서(200)와 달리 XML 형식의 스프레드시트 문서(300)의 경우, 1번 시트에 상응하는 데이터들이 보다 빠르게 로드되어 제1 객체형 데이터로 변환될 수 있다.For example, if the spreadsheet document information check unit 130 determines that the first sheet is the first sheet as a result of checking the first sheet information recorded in the document information file 310 of the spreadsheet document 300, The conversion unit 150 accesses the first sheet data file 320 and the first format data file 360 in which the first sheet data area is recorded and loads the data corresponding to the first sheet. Accordingly, when data corresponding to the first sheet is loaded, the object-type data converter 150 converts the data corresponding to the first sheet into the first object-type data. Accordingly, in the case of the spreadsheet document 300 in XML format, unlike the spreadsheet document 200 in the binary format, the data corresponding to the first sheet can be quickly loaded and converted into the first object type data.

도 4는 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법을 도시한 순서도이다.4 is a flowchart illustrating an operation method of a multi-threaded spreadsheet document providing apparatus according to an embodiment of the present invention.

단계(S410)에서는 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치가 클라이언트 단말로부터 문서 저장부에 저장된 스프레드시트 문서에 대한 리드 명령이 입력되면, 상기 스프레드시트 문서의 문서 정보 영역에 기록된 제1 시트 정보를 확인한다.In step S410, if a multi-threaded spreadsheet document providing apparatus according to an embodiment of the present invention inputs a read command for a spreadsheet document stored in a document storage unit from a client terminal, The first sheet information recorded in the first sheet is confirmed.

단계(S420)에서는 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치가 메인 쓰레드가 상기 스프레드시트 문서의 데이터 영역에 포함된 엘리먼트들의 식별 정보를 확인한 후 상기 엘리먼트들 각각의 데이터를 로드하도록 상기 엘리먼트들 각각을 다수의 서브 쓰레드들 각각에 순차적으로 할당하도록 상기 메인 쓰레드를 제어한다.In step S420, the apparatus for providing a spreadsheet document based on a multithread according to an embodiment of the present invention checks the identification information of the elements included in the data area of the spreadsheet document, The main thread is controlled to sequentially allocate each of the elements to each of a plurality of sub threads to load.

이때, 단계(S420)에서는 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치가 상기 메인 쓰레드가 상기 엘리먼트들 각각을 상기 다수의 서브 쓰레드들 중 아이들(idle) 상태인 서브 쓰레드들 각각에 순차적으로 할당하도록 상기 메인 쓰레드를 제어할 수 있다.At this time, in step S420, an apparatus for providing a spreadsheet document based on a multithread according to an embodiment of the present invention causes the main thread to insert each of the elements into an idle state of the plurality of sub-threads, The main thread can be controlled so as to be sequentially allocated to each of them.

단계(S430)에서는 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치가 상기 다수의 서브 쓰레드들 각각이 상기 메인 쓰레드로부터 순차적으로 할당된 상기 엘리먼트들 각각의 데이터를 로드하도록 상기 다수의 서브 쓰레드들을 제어한다.In step S430, an apparatus for providing a spreadsheet document based on a multithread according to an exemplary embodiment of the present invention includes a plurality of sub-threads, each of the plurality of sub-threads sequentially loading data of the elements sequentially allocated from the main thread, Threads.

단계(S440)에서는 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치가 상기 엘리먼트들의 상기 식별 정보에 기초하여 상기 엘리먼트들 중 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제1 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환한다.In step S440, an apparatus for providing a spreadsheet document based on a multithread according to an embodiment of the present invention determines whether or not the data of each of the first elements corresponding to the first sheet of the elements, based on the identification information of the elements, And if so, converts the data of each of the loaded first elements into the first object type data.

단계(S450)에서는 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치가 상기 제1 객체형 데이터를 상기 클라이언트 단말로 전송한다.In step S450, the multithread-based spreadsheet document providing apparatus transmits the first object type data to the client terminal according to an embodiment of the present invention.

이때, 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치는 상기 엘리먼트들의 상기 식별 정보 기초하여 상기 엘리먼트들 중 상기 제1 시트 이외의 제2 시트들 각각에 상응하는 제2 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제2 엘리먼트들 각각의 데이터를 제2 객체형 데이터로 변환하고, 상기 제2 객체형 데이터를 상기 클라이언트 단말로 전송할 수 있다.At this time, an apparatus for providing a spreadsheet document based on a multithread according to an embodiment of the present invention may include a second element corresponding to each of the second sheets other than the first sheet among the elements based on the identification information of the elements When each data is loaded, data of each of the loaded second elements may be converted into second object type data, and the second object type data may be transmitted to the client terminal.

또한, 단계(S420)에서는 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치가 상기 다수의 서브 쓰레드들 모두가 상기 할당된 엘리먼트들 각각의 데이터를 로드하고 있는 경우 상기 엘리먼트들 중 할당되지 않은 엘리먼트들 중 하나의 엘리먼트를 상기 메인 쓰레드에게 할당한 후 상기 하나의 엘리먼트의 데이터를 로드하도록 상기 메인 쓰레드를 제어하고, 상기 메인 쓰레드가 다수의 서브 쓰레드들 각각에 순차적으로 할당된 엘리먼트의 식별 정보를 제공하도록 상기 메인 쓰레드를 제어할 수 있으며, 이에 따라, 단계(S430)에서는 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치가 상기 다수의 서브 쓰레드들을 제어하는 단계는 상기 다수의 서브 쓰레드들 각각이 상기 메인 쓰레드로부터 제공된 상기 식별 정보에 상응하는 엘리먼트의 데이터를 로드하도록 제어할 수 있다.In step S420, if the apparatus for providing a spreadsheet document based on a multithread according to an embodiment of the present invention loads data of each of the allocated elements in all of the plurality of sub-threads, Controlling the main thread to allocate an element of one of the unallocated elements to the main thread and then to load the data of the one element, wherein the main thread allocates elements of sequentially allocated elements to the plurality of sub threads The main thread can be controlled to provide the identification information. Accordingly, in step S430, the step of controlling the plurality of sub-threads by the apparatus for providing a spreadsheet document based on the multithread according to an embodiment of the present invention Each of the plurality of sub-threads being provided from the main thread It can be controlled so as to load the data element corresponding to the group identification information.

또한, 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치는 상기 제1 객체형 데이터를 상기 클라이언트 단말로 전송한 후 상기 클라이언트 단말로부터 제2 시트들 중 제3 시트에 대한 제3 객체형 데이터를 요청한 경우, 상기 제3 시트에 상응하는 제3 엘리먼트들 각각의 데이터가 로드되었는지 확인하고, 상기 제3 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제3 엘리먼트들 각각의 데이터를 제3 객체형 데이터로 변환하며, 상기 제3 객체형 데이터를 상기 클라이언트 단말로 전송할 수 있다.Also, the apparatus for providing a spreadsheet document based on a multithread according to an embodiment of the present invention transmits the first object type data to the client terminal, and then transmits the third object type data from the client terminal to the third If data of the third elements corresponding to the third sheet is requested, if data of each of the third elements is loaded, if data of each of the third elements is loaded, To third object type data, and transmits the third object type data to the client terminal.

이상, 도 4를 참조하여 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법의 동작 방법은 도 1 내지 3을 이용하여 설명한 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치(100)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.The operation of the apparatus for providing a spreadsheet document based on the multithread according to an embodiment of the present invention has been described above with reference to FIG. Here, an operation method of an operation method of a multithread-based spreadsheet document providing apparatus according to an embodiment of the present invention will be described with reference to the operation of the apparatus 100 for providing a spreadsheet document based on the multi- And therefore, a detailed description thereof will be omitted.

본 발명의 일실시예에 따른 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.A method of operating a multithreaded spreadsheet document providing apparatus according to an embodiment of the present invention may be implemented by a computer program stored in a storage medium for execution through a combination with a computer.

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

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and specific embodiments and drawings. However, it should be understood that the present invention is not limited to the above- And various modifications and changes may be made thereto by those skilled in the art to which the present invention pertains.

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

Claims (12)

클라이언트 단말로부터 문서 저장부에 저장된 스프레드시트 문서에 대한 리드 명령이 입력되면, 상기 스프레드시트 문서의 문서 정보 영역에 기록된 제1 시트 정보 - 상기 제1 시트 정보는 상기 클라이언트 단말이 상기 스프레드시트 문서에 대한 편집을 마지막으로 종료하였을 때 상기 클라이언트 단말에 디스플레이되고 있던 시트에 대한 정보임 - 를 확인하는 문서 정보 확인부;
상기 스프레드시트 문서의 데이터 영역에 포함된 엘리먼트들의 식별 정보를 확인한 후 상기 엘리먼트들 각각의 데이터를 로드하도록 상기 엘리먼트들 각각을 다수의 서브 쓰레드들 각각에 순차적으로 할당하는 메인 쓰레드;
상기 메인 쓰레드로부터 상기 다수의 서브 쓰레드들 각각에 순차적으로 할당된 상기 엘리먼트들 각각의 데이터를 로드하는 다수의 서브 쓰레드들;
상기 엘리먼트들의 상기 식별 정보에 기초하여 상기 엘리먼트들 중 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제1 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환하는 객체형 데이터 변환부; 및
상기 제1 객체형 데이터를 상기 클라이언트 단말로 전송하는 객체형 데이터 전송부
를 포함하는 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치.
When a read command for a spreadsheet document stored in a document storage unit is input from a client terminal, first sheet information recorded in a document information area of the spreadsheet document, A document information confirmation unit for confirming that the sheet has been displayed on the client terminal when the editing of the sheet has been finished last;
A main thread sequentially assigning each of the elements to each of a plurality of sub threads to load data of each of the elements after identifying identification information of elements included in a data area of the spreadsheet document;
A plurality of sub-threads for loading data of each of the elements sequentially assigned to each of the plurality of sub-threads from the main thread;
If data of each of first elements corresponding to a first sheet of the elements is loaded based on the identification information of the elements, converting data of each of the loaded first elements into first object type data An object type data conversion unit; And
An object type data transfer unit for transferring the first object type data to the client terminal,
Based spreadsheet document providing apparatus.
제1항에 있어서,
상기 객체형 데이터 변환부는 상기 엘리먼트들의 상기 식별 정보 기초하여 상기 엘리먼트들 중 상기 제1 시트 이외의 제2 시트들 각각에 상응하는 제2 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제2 엘리먼트들 각각의 데이터를 제2 객체형 데이터로 변환하고,
상기 객체형 데이터 전송부는 상기 제2 객체형 데이터를 상기 클라이언트 단말로 전송하는
멀티 쓰레드 기반의 스프레드시트 문서 제공 장치.
The method according to claim 1,
Wherein the object type data conversion unit converts the data of each of the second elements corresponding to each of the second sheets other than the first sheet of the elements based on the identification information of the elements, Into second object type data,
And the object type data transmission unit transmits the second object type data to the client terminal
Multi-threaded spreadsheet document delivery device.
제2항에 있어서,
상기 메인 쓰레드는 상기 엘리먼트들 각각을 상기 다수의 서브 쓰레드들 중 아이들(idle) 상태인 서브 쓰레드들 각각에 순차적으로 할당하는
멀티 쓰레드 기반의 스프레드시트 문서 제공 장치.
3. The method of claim 2,
The main thread sequentially allocates each of the elements to each of the sub-threads in an idle state among the plurality of sub-threads
Multi-threaded spreadsheet document delivery device.
제3항에 있어서,
상기 메인 쓰레드는 상기 엘리먼트들 각각을 상기 다수의 서브 쓰레드들 각각에 순차적으로 할당하되, 상기 다수의 서브 쓰레드들 모두가 상기 할당된 엘리먼트들 각각의 데이터를 로드하고 있는 경우 상기 엘리먼트들 중 할당되지 않은 엘리먼트들 중 하나의 엘리먼트를 자신에게 할당한 후 상기 하나의 엘리먼트의 데이터를 로드하며,
상기 메인 쓰레드는 다수의 서브 쓰레드들 각각에 순차적으로 할당된 엘리먼트의 식별 정보를 제공하고,
상기 다수의 서브 쓰레드들 각각은 상기 메인 쓰레드로부터 제공된 상기 식별 정보에 상응하는 엘리먼트의 데이터를 로드하는
멀티 쓰레드 기반의 스프레드시트 문서 제공 장치.
The method of claim 3,
Wherein the main thread sequentially allocates each of the elements to each of the plurality of sub-threads, wherein if all of the plurality of sub-threads are loading data of each of the allocated elements, Assigning an element of one of the elements to itself, loading the data of the one element,
The main thread provides identification information of elements sequentially assigned to each of a plurality of sub-threads,
Wherein each of the plurality of sub threads loads data of an element corresponding to the identification information provided from the main thread
Multi-threaded spreadsheet document delivery device.
제4항에 있어서,
상기 객체형 데이터 변환부는 상기 제1 객체형 데이터를 상기 클라이언트 단말로 전송한 후 상기 클라이언트 단말로부터 제2 시트들 중 제3 시트에 대한 제3 객체형 데이터를 요청한 경우, 상기 제3 시트에 상응하는 제3 엘리먼트들 각각의 데이터가 로드되었는지 확인하고, 상기 제3 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제3 엘리먼트들 각각의 데이터를 제3 객체형 데이터로 변환하고,
상기 객체형 데이터 전송부는 상기 제3 객체형 데이터를 상기 클라이언트 단말로 전송하는
멀티 쓰레드 기반의 스프레드시트 문서 제공 장치.
5. The method of claim 4,
When the object type data conversion unit transmits the first object type data to the client terminal and then requests the third object type data for the third sheet among the second sheets from the client terminal, If the data of each of the third elements is loaded, converting the data of each of the loaded third elements into third object type data,
And the object type data transmission unit transmits the third object type data to the client terminal
Multi-threaded spreadsheet document delivery device.
클라이언트 단말로부터 문서 저장부에 저장된 스프레드시트 문서에 대한 리드 명령이 입력되면, 상기 스프레드시트 문서의 문서 정보 영역에 기록된 제1 시트 정보 - 상기 제1 시트 정보는 상기 클라이언트 단말이 상기 스프레드시트 문서에 대한 편집을 마지막으로 종료하였을 때 상기 클라이언트 단말에 디스플레이되고 있던 시트에 대한 정보임 - 를 확인하는 단계;
메인 쓰레드가 상기 스프레드시트 문서의 데이터 영역에 포함된 엘리먼트들의 식별 정보를 확인한 후 상기 엘리먼트들 각각의 데이터를 로드하도록 상기 엘리먼트들 각각을 다수의 서브 쓰레드들 각각에 순차적으로 할당하도록 상기 메인 쓰레드를 제어하는 단계;
상기 다수의 서브 쓰레드들 각각이 상기 메인 쓰레드로부터 순차적으로 할당된 상기 엘리먼트들 각각의 데이터를 로드하도록 상기 다수의 서브 쓰레드들을 제어하는 단계;
상기 엘리먼트들의 상기 식별 정보에 기초하여 상기 엘리먼트들 중 제1 시트에 상응하는 제1 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제1 엘리먼트들 각각의 데이터를 제1 객체형 데이터로 변환하는 단계; 및
상기 제1 객체형 데이터를 상기 클라이언트 단말로 전송하는 단계
를 포함하는 멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법.
When a read command for a spreadsheet document stored in a document storage unit is input from a client terminal, first sheet information recorded in a document information area of the spreadsheet document, Confirming that the sheet has been displayed on the client terminal when the editing of the sheet is finished last;
Controlling the main thread to sequentially allocate each of the elements to each of a plurality of sub threads so that the main thread identifies identification information of elements included in a data area of the spreadsheet document and then loads data of each of the elements; ;
Controlling each of the plurality of sub threads to load data of each of the sequentially assigned elements from the main thread;
If data of each of first elements corresponding to a first sheet of the elements is loaded based on the identification information of the elements, converting data of each of the loaded first elements into first object type data step; And
Transmitting the first object type data to the client terminal
Based spreadsheet document providing apparatus.
제6항에 있어서,
상기 엘리먼트들의 상기 식별 정보 기초하여 상기 엘리먼트들 중 상기 제1 시트 이외의 제2 시트들 각각에 상응하는 제2 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제2 엘리먼트들 각각의 데이터를 제2 객체형 데이터로 변환하는 단계; 및
상기 제2 객체형 데이터를 상기 클라이언트 단말로 전송하는 단계를 더 포함하는
멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법.
The method according to claim 6,
If the data of each of the second elements corresponding to each of the second sheets other than the first sheet among the elements is loaded based on the identification information of the elements, 2 object type data; And
And transmitting the second object type data to the client terminal
Method of operating a device for providing a spreadsheet document based on a multithread.
제7항에 있어서,
상기 엘리먼트들 각각을 순차적으로 할당하는 단계는 상기 메인 쓰레드가 상기 엘리먼트들 각각을 상기 다수의 서브 쓰레드들 중 아이들(idle) 상태인 서브 쓰레드들 각각에 순차적으로 할당하도록 상기 메인 쓰레드를 제어하는
멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법.
8. The method of claim 7,
Wherein sequentially allocating each of the elements comprises: controlling the main thread to sequentially allocate each of the elements to each of the sub-threads in an idle state of the plurality of sub-threads
Method of operating a device for providing a spreadsheet document based on a multithread.
제8항에 있어서,
상기 엘리먼트들 각각을 순차적으로 할당하는 단계는
상기 다수의 서브 쓰레드들 모두가 상기 할당된 엘리먼트들 각각의 데이터를 로드하고 있는 경우 상기 엘리먼트들 중 할당되지 않은 엘리먼트들 중 하나의 엘리먼트를 상기 메인 쓰레드에게 할당한 후 상기 하나의 엘리먼트의 데이터를 로드하도록 상기 메인 쓰레드를 제어하는 단계; 및
상기 메인 쓰레드가 다수의 서브 쓰레드들 각각에 순차적으로 할당된 엘리먼트의 식별 정보를 제공하도록 상기 메인 쓰레드를 제어하는 단계;
를 포함하고,
상기 다수의 서브 쓰레드들을 제어하는 단계는 상기 다수의 서브 쓰레드들 각각이 상기 메인 쓰레드로부터 제공된 상기 식별 정보에 상응하는 엘리먼트의 데이터를 로드하도록 제어하는
멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법.
9. The method of claim 8,
The step of sequentially allocating each of the elements
When all of the plurality of sub-threads are loading data of each of the allocated elements, allocating one of the unallocated elements to the main thread and then loading the data of the one element Controlling the main thread; And
Controlling the main thread so that the main thread provides identification information of an element sequentially assigned to each of a plurality of sub threads;
Lt; / RTI >
Wherein the controlling of the plurality of sub-threads controls each of the plurality of sub-threads to load data of an element corresponding to the identification information provided from the main thread
Method of operating a device for providing a spreadsheet document based on a multithread.
제9항에 있어서,
상기 제1 객체형 데이터를 상기 클라이언트 단말로 전송한 후 상기 클라이언트 단말로부터 제2 시트들 중 제3 시트에 대한 제3 객체형 데이터를 요청한 경우, 상기 제3 시트에 상응하는 제3 엘리먼트들 각각의 데이터가 로드되었는지 확인하는 단계;
상기 제3 엘리먼트들 각각의 데이터가 로드된 경우, 상기 로드된 제3 엘리먼트들 각각의 데이터를 제3 객체형 데이터로 변환하는 단계; 및
상기 제3 객체형 데이터를 상기 클라이언트 단말로 전송하는 단계
를 더 포함하는
멀티 쓰레드 기반의 스프레드시트 문서 제공 장치의 동작 방법.
10. The method of claim 9,
When transmitting the first object type data to the client terminal and requesting the third object type data for the third one of the second sheets from the client terminal, Confirming that data is loaded;
If data of each of the third elements is loaded, converting data of each of the loaded third elements into third object type data; And
Transmitting the third object type data to the client terminal
Further comprising
Method of operating a device for providing a spreadsheet document based on a multithread.
제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터로 하여금 수행하도록 하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.11. A computer-readable recording medium having recorded thereon a program for causing a computer to perform the method according to any one of claims 6 to 10. 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.11. A computer program stored in a storage medium for executing the method of any one of claims 6 to 10 through a combination with a computer.
KR1020170063285A 2017-05-23 2017-05-23 Multi thread based spreadsheet document providing apparatus and operating method thereof KR101774265B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170063285A KR101774265B1 (en) 2017-05-23 2017-05-23 Multi thread based spreadsheet document providing apparatus and operating method thereof
PCT/KR2018/005061 WO2018216920A1 (en) 2017-05-23 2018-05-02 Device for providing multi-thread based spread sheet document, and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170063285A KR101774265B1 (en) 2017-05-23 2017-05-23 Multi thread based spreadsheet document providing apparatus and operating method thereof

Publications (1)

Publication Number Publication Date
KR101774265B1 true KR101774265B1 (en) 2017-09-12

Family

ID=59926436

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170063285A KR101774265B1 (en) 2017-05-23 2017-05-23 Multi thread based spreadsheet document providing apparatus and operating method thereof

Country Status (2)

Country Link
KR (1) KR101774265B1 (en)
WO (1) WO2018216920A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200016579A (en) * 2018-08-07 2020-02-17 캐릭터테크 주식회사 Apparatus for processing 3 dimension modelling data based on multi thread and operating method thereof
KR102266073B1 (en) * 2020-02-03 2021-06-17 주식회사 한글과컴퓨터 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
KR20230033433A (en) * 2021-09-01 2023-03-08 주식회사 한글과컴퓨터 Electronic apparatus that performs parallel processing-based document format conversion and operating method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109801174B (en) * 2018-12-26 2023-11-17 平安科技(深圳)有限公司 Method, device, equipment and computer readable storage medium for processing claim data
CN114509986B (en) * 2022-01-20 2024-04-05 武汉朗宇智能科技有限公司 Cross-platform HMI configuration system and method based on xml file

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120041733A1 (en) 2010-08-10 2012-02-16 Nigel James Brock System and method for analyzing data

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783614B2 (en) * 2003-02-13 2010-08-24 Microsoft Corporation Linking elements of a document to corresponding fields, queries and/or procedures in a database
US20070061699A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Named object view of electronic data report
US9053083B2 (en) * 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
US10664652B2 (en) * 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
US20160026616A1 (en) * 2014-07-28 2016-01-28 Microsoft Corporation Presenting dataset of spreadsheet in form based view

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120041733A1 (en) 2010-08-10 2012-02-16 Nigel James Brock System and method for analyzing data

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200016579A (en) * 2018-08-07 2020-02-17 캐릭터테크 주식회사 Apparatus for processing 3 dimension modelling data based on multi thread and operating method thereof
KR102110760B1 (en) 2018-08-07 2020-05-15 매트릭스테크 주식회사 Apparatus for processing 3 dimension modelling data based on multi thread and operating method thereof
KR102266073B1 (en) * 2020-02-03 2021-06-17 주식회사 한글과컴퓨터 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
KR20230033433A (en) * 2021-09-01 2023-03-08 주식회사 한글과컴퓨터 Electronic apparatus that performs parallel processing-based document format conversion and operating method thereof
KR102566934B1 (en) * 2021-09-01 2023-08-14 주식회사 한글과컴퓨터 Electronic apparatus that performs parallel processing-based document format conversion and operating method thereof

Also Published As

Publication number Publication date
WO2018216920A1 (en) 2018-11-29

Similar Documents

Publication Publication Date Title
KR101774265B1 (en) Multi thread based spreadsheet document providing apparatus and operating method thereof
US10977438B2 (en) Latency reduction in collaborative presentation sharing environment
US8176081B2 (en) Forms integration of an external data model not implemented through a document object model (DOM) accessible application programming interface (API)
CN102739770B (en) Method and system for scheduling resource based on cloud computing
US10572581B2 (en) System and method for web content presentation management
US20150089382A1 (en) Application context migration framework and protocol
JP5042693B2 (en) Optimize storage and transmission of markup language files
KR20120128357A (en) Method and apparatus for splitting of media file
KR101805959B1 (en) Serializing document editing commands
US10310716B2 (en) Apparatus for supporting cooperation for joint editing of electronic document, and method of operating the same
EP4131054A1 (en) Document editing method and apparatus, computer device and storage medium
US10733361B2 (en) Content reproducing apparatus
US9483493B2 (en) Method and system for accessing a distributed file system
AU2016202576B2 (en) Techniques for evaluating applications through use of an auxiliary application
US11093705B2 (en) Apparatus and method of verifying simultaneous edit match for markup language-based document
KR102087280B1 (en) Server for editing electronic document based on message including edit command and operating method thereof
KR102013620B1 (en) Web based document editing server for changing template of web based document and operating method thereof
KR101965722B1 (en) Apparatus for ensuring editing reliability in respect of web document according to whether to edit single or edit simultaneously and operation method thereof
JP2011008753A (en) Method and system for executing file stored in hidden storage area of storage device
CN115981614B (en) Modular processing method for project engineering, electronic equipment and computer storage medium
KR102004975B1 (en) Apparatus for editing web based document by remote accessing each of web based document storage servers and operating method thereof
KR102017293B1 (en) Client terminal apparatus for performing transmission processing of an efficient editing command in a document collaborative editing environment and operating method thereof
KR101965718B1 (en) Apparatus for ensuring editing reliability in respect of web document and operation method thereof
KR20210144513A (en) Method and system for sharing contents among a plirality of devices
JP5294352B2 (en) Thin client system, session management apparatus, session management method and program

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant