KR20230172354A - Method and system for controlling document using upstream and downstream - Google Patents

Method and system for controlling document using upstream and downstream Download PDF

Info

Publication number
KR20230172354A
KR20230172354A KR1020220073131A KR20220073131A KR20230172354A KR 20230172354 A KR20230172354 A KR 20230172354A KR 1020220073131 A KR1020220073131 A KR 1020220073131A KR 20220073131 A KR20220073131 A KR 20220073131A KR 20230172354 A KR20230172354 A KR 20230172354A
Authority
KR
South Korea
Prior art keywords
document
user
input
data
view
Prior art date
Application number
KR1020220073131A
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 KR1020220073131A priority Critical patent/KR20230172354A/en
Publication of KR20230172354A publication Critical patent/KR20230172354A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2393Updating materialised views
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Abstract

본 개시는 적어도 하나의 프로세서에 의해 수행되는, 문서 제어 방법을 제공한다. 이 방법은, 문서의 편집과 연관된 사용자의 입력을 수신하는 단계, 사용자의 입력이 문서의 텍스트 편집과 연관된 경우, 사용자의 입력과 대응되는 데이터를 문서의 시각화와 연관된 뷰에 반영하는 단계, 사용자의 입력이 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 사용자의 입력과 대응되는 데이터를 문서의 콘텐츠와 연관된 모델에 반영하는 단계 및 모델과 뷰를 동기화하는 단계를 포함한다.The present disclosure provides a document control method performed by at least one processor. The method includes receiving a user's input associated with editing a document, if the user's input is associated with editing text in the document, reflecting data corresponding to the user's input in a view associated with a visualization of the document, and When the input is related to editing of content other than text of the document, the method includes reflecting data corresponding to the user's input to a model associated with the content of the document and synchronizing the model and view.

Description

업스트림과 다운스트림을 이용한 문서 제어 방법 및 시스템{METHOD AND SYSTEM FOR CONTROLLING DOCUMENT USING UPSTREAM AND DOWNSTREAM}Document control method and system using upstream and downstream {METHOD AND SYSTEM FOR CONTROLLING DOCUMENT USING UPSTREAM AND DOWNSTREAM}

본 개시는 문서 제어 방법 및 시스템에 관한 것으로, 구체적으로, 전자 문서의 텍스트 편집을 처리하는 업스트림 방식과 전자 문서의 텍스트가 아닌 콘텐츠의 편집을 처리하는 다운스트림 방식을 이용하여 해당 문서의 편집, 내용 변경, 시각화 등을 제어하는 방법 및 시스템에 관한 것이다.The present disclosure relates to a document control method and system, and specifically, to edit and content of the document using an upstream method for processing text editing of an electronic document and a downstream method for processing editing of non-text content of the electronic document. It relates to methods and systems for controlling changes, visualization, etc.

인터넷의 발달 및 보급의 증가로 인해 인터넷을 이용한 다양한 서비스가 제공되고 있다. 이러한 인터넷 서비스 중 대표적인 것으로 웹메일, 커뮤니티, 블로그, 카페 등과 같은 서비스가 있다. 사용자들은 이러한 인터넷 서비스가 제공하는 다양한 인터페이스를 이용하여 인터넷 상에서 문서(또는, 웹문서)를 작성하거나, 작성된 문서를 편집할 수 있다. 여기서, 문서를 편집하는 것은 인터넷 서비스를 이용하는 과정에서 문서에 포함된 다양한 콘텐츠 또는 객체(예를 들어, 텍스트, 이미지 등)를 변경하는 것을 지칭할 수 있다.Due to the development and increased spread of the Internet, various services using the Internet are being provided. Representative examples of these Internet services include services such as webmail, communities, blogs, and cafes. Users can create documents (or web documents) on the Internet or edit written documents using various interfaces provided by these Internet services. Here, editing a document may refer to changing various contents or objects (eg, text, images, etc.) included in the document in the process of using an Internet service.

이러한 문서의 편집은 대부분 웹기반의 에디터(editor)를 이용하여 수행되었으나, 웹기반의 에디터가 제공하는 기능에는 제한이 있다. 예를 들어, 웹기반의 에디터를 이용하여 텍스트의 크기, 색상, 글꼴 등을 변경하는 경우, 결과물은 HTML 형태의 데이터로 변환된다. 그러나, 웹 브라우저(web browser)마다 동작 방식이 상이하여 해당 웹 브라우저에서 제공하는 에디터의 실행 결과물로서 HTML 문서의 형식이 일관성 있게 생성되지 않으므로, 해당 HTML 문서의 형식이나 내용을 모델링하기 어렵다. 다른 예로, 사용자로부터 수신한 입력에 기초하여 웹기반의 에디터와 연관된 모델링을 통해 문서 편집을 처리하는 경우, 문서와 연관되어 모델링이 구현되지 않은 외국어를 처리하는데 어려움이 있다. 또한, 이 경우, 웹 브라우저에서 문서 편집을 위해 다른 방식의 사용자 입력이 수신되는 경우(예를 들어, 마우스 우클릭을 이용한 복사, 붙여넣기 등과 같은 문서 편집 동작이 실행되는 경우), 해당 사용자 입력을 처리하기 위해 웹 브라우저에 추가적인 확장 프로그램의 설치가 필요할 수 있다.Most of the editing of these documents was performed using web-based editors, but there are limitations to the functions provided by web-based editors. For example, when changing the size, color, font, etc. of text using a web-based editor, the result is converted to HTML format data. However, since each web browser operates differently, the format of the HTML document is not consistently generated as a result of executing the editor provided by the web browser, making it difficult to model the format or content of the HTML document. As another example, when document editing is processed through modeling associated with a web-based editor based on input received from the user, there is difficulty in processing foreign languages for which modeling has not been implemented in association with the document. Additionally, in this case, when other types of user input are received to edit a document in a web browser (for example, when a document editing action such as copying or pasting using a right-click is performed), the corresponding user input is processed. To do this, you may need to install additional extensions on your web browser.

본 개시는 상기와 같은 문제점을 해결하기 위한 전자 문서 제어 방법 및 장치(시스템)를 제공한다.The present disclosure provides an electronic document control method and device (system) to solve the above problems.

본 개시는 방법, 장치(시스템) 또는 판독 가능 저장 매체에 저장된 컴퓨터 프로그램을 포함한 다양한 방식으로 구현될 수 있다.The present disclosure may be implemented in various ways, including as a method, device (system), or computer program stored in a readable storage medium.

본 개시의 일 실시예에 따르면, 문서 제어 방법은, 문서의 편집과 연관된 사용자의 입력을 수신하는 단계, 사용자의 입력이 문서의 텍스트 편집과 연관된 경우, 사용자의 입력과 대응되는 데이터를 문서의 시각화와 연관된 뷰에 반영하는 단계, 사용자의 입력이 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 사용자의 입력과 대응되는 데이터를 문서의 콘텐츠와 연관된 모델에 반영하는 단계 및 모델과 상기 뷰를 동기화하는 단계를 포함할 수 있다.According to an embodiment of the present disclosure, a document control method includes receiving a user's input associated with editing a document, and when the user's input is associated with text editing of the document, data corresponding to the user's input is visualized in the document. reflecting on the view associated with, if the user's input is associated with editing content other than the text of the document, reflecting data corresponding to the user's input into the model associated with the content of the document, and synchronizing the model and the view. May include steps.

본 개시의 일 실시예에 따르면, 문서 제어 방법을 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 제공될 수 있다.According to an embodiment of the present disclosure, a computer program stored in a computer-readable recording medium may be provided to execute a document control method on a computer.

본 개시의 일 실시예에 따르면, 문서 제어 시스템이 제공된다. 문서 제어 시스템은 통신 모듈, 메모리, 디스플레이 및 메모리와 연결되고, 메모리에 포함된 컴퓨터 판독 가능한 적어도 하나의 프로그램을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로그램은, 문서의 편집과 연관된 사용자의 입력을 수신하고, 사용자의 입력이 문서의 텍스트 편집과 연관된 경우, 사용자의 입력과 대응되는 데이터를 문서의 시각화와 연관된 뷰에 반영하고, 사용자의 입력이 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 사용자의 입력과 대응되는 데이터를 문서의 콘텐츠와 연관된 모델에 반영하고, 모델과 뷰를 동기화하기 위한 명령어들을 포함할 수 있다.According to one embodiment of the present disclosure, a document control system is provided. The document control system includes a communication module, a memory, a display, and at least one processor connected to the memory and configured to execute at least one computer-readable program included in the memory, wherein the at least one program is associated with editing the document. Receives user input, and if the user's input is associated with editing text in the document, reflects data corresponding to the user's input in the view associated with the visualization of the document, and reflects the user's input in the view associated with the visualization of the document, and if the user's input involves editing content other than the text of the document. When related, data corresponding to the user's input is reflected in the model associated with the content of the document, and may include commands for synchronizing the model and the view.

본 개시의 다양한 실시예에 따르면, 문서 제어 시스템에서 업스트림 방식을 통해, 문서의 텍스트 편집과 연관된 뷰와 모델의 데이터를 동기화할 수 있다. 또한, 뷰로부터 모델로의 데이터 동기화를 실행하는 업스트림 과정에서 문서 편집 애플리케이션이 제공하는 문서 내에서 마우스 우클릭을 통한 편집(예를 들어, 복사, 붙여넣기 등)을 추가적인 확장 프로그램 없이 실행할 수 있다. 추가적으로, 업스트림 과정에서 문서 편집 애플리케이션을 통해 외국어의 편집 또는 시각화를 처리할 수 있다.According to various embodiments of the present disclosure, data of views and models associated with text editing of a document may be synchronized through an upstream method in a document control system. Additionally, in the upstream process of executing data synchronization from the view to the model, editing (e.g., copy, paste, etc.) by right-clicking within the document provided by the document editing application can be performed without an additional extension program. Additionally, foreign language editing or visualization can be handled through document editing applications in the upstream process.

본 개시의 다양한 실시예에 따르면, 문서 제어 시스템에서 다운스트림 방식을 통해, 문서의 텍스트가 아닌 콘텐츠 편집과 연관된 뷰와 모델의 데이터를 동기화할 수 있다. 또한, 모델에서 뷰로의 데이터 동기화를 실행하는 다운스트림 과정에서 모델의 데이터가 변경된 후 변경된 데이터를 뷰에 반영함으로써, 다양한 문서 편집 애플리케이션들 사이에 동작 방식이 상이하더라도 일관성 있는 HTML 문서를 모델링할 수 있다.According to various embodiments of the present disclosure, a document control system may synchronize data of views and models associated with editing non-text content of a document through a downstream method. In addition, in the downstream process of synchronizing data from the model to the view, after the model data is changed, the changed data is reflected in the view, allowing consistent HTML document modeling even if the operation method is different between various document editing applications. .

본 개시의 다양한 실시예에 따르면, 문서 제어 시스템의 업스트림 방식과 다운스트림 방식 모두를 이용하여 뷰와 모델의 데이터 동기화를 이룰 수 있다. 따라서, 사용자가 문서를 편집함에 있어 업스트림 방식만을 사용하거나 다운스트림 방식만을 사용할 때 존재하는 문제점들을 해결할 수 있다. 또한, 프로그램 개발자들은 업스트림 방식과 다운스트림 방식을 동시에 사용함으로써 얻어지는 유의미한 데이터들(예를 들어, HTML 코드 상 텍스트 등)은 추가적인 프로그램 개발하는 프로그램 개발자들에게 유용할 수 있다.According to various embodiments of the present disclosure, data synchronization of the view and the model can be achieved using both the upstream method and the downstream method of the document control system. Therefore, it is possible to solve problems that exist when a user uses only the upstream method or only the downstream method to edit a document. Additionally, meaningful data (for example, text in HTML code, etc.) obtained by program developers using both upstream and downstream methods simultaneously can be useful to program developers developing additional programs.

본 개시의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 다른 효과들은 청구범위의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자(“통상의 기술자”라 함)에게 명확하게 이해될 수 있을 것이다.The effects of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned are clear to a person skilled in the art (referred to as “a person skilled in the art”) in the technical field to which this disclosure pertains from the description of the claims. It will be understandable.

본 개시의 실시예들은, 이하 설명하는 첨부 도면들을 참조하여 설명될 것이며, 여기서 유사한 참조 번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.
도 1은 본 개시의 일 실시예에 따라 업스트림 방식과 다운스트림 방식을 이용한 문서 제어 시스템의 프로세스를 나타낸다.
도 2는 본 개시의 일 실시예에 따른 사용자 단말의 내부 구성을 나타내는 블록도이다.
도 3은 본 개시의 일 실시예에 따른 프로세서의 내부 구성을 나타내는 블록도이다.
도 4는 본 개시의 일 실시예에 따른 문서의 텍스트가 편집된 경우 업스트림 방식을 통한 문서 제어 방법을 설명하기 위한 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 문서의 텍스트가 아닌 콘텐츠가 편집된 경우 다운스트림 방식을 통한 문서 제어 방법을 설명하기 위한 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 문서의 텍스트를 선택 영역으로 설정한 경우 업스트림 방식을 통한 문서 제어 방법을 설명하기 위한 흐름도이다.
도 7은 본 개시의 일 실시예에 따른 문서의 텍스트가 아닌 콘텐츠를 선택 영역으로 설정한 경우, 다운스트림 방식을 통한 문서 제어 방법을 설명하기 위한 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 업스트림 방식과 다운스트림 방식을 모두 이용한 문서 제어 방법의 예시를 나타내는 흐름도이다.
Embodiments of the present disclosure will be described with reference to the accompanying drawings described below, in which like reference numerals indicate like elements, but are not limited thereto.
Figure 1 shows a process of a document control system using an upstream method and a downstream method according to an embodiment of the present disclosure.
Figure 2 is a block diagram showing the internal configuration of a user terminal according to an embodiment of the present disclosure.
Figure 3 is a block diagram showing the internal configuration of a processor according to an embodiment of the present disclosure.
FIG. 4 is a flowchart illustrating a method of controlling a document through an upstream method when the text of a document is edited according to an embodiment of the present disclosure.
FIG. 5 is a flowchart illustrating a method of controlling a document through a downstream method when content other than text of a document is edited according to an embodiment of the present disclosure.
FIG. 6 is a flowchart illustrating a method of controlling a document through an upstream method when text of a document is set as a selection area according to an embodiment of the present disclosure.
FIG. 7 is a flowchart illustrating a method of controlling a document through a downstream method when non-text content of a document is set as a selection area according to an embodiment of the present disclosure.
Figure 8 is a flowchart showing an example of a document control method using both upstream and downstream methods according to an embodiment of the present disclosure.

이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, specific details for implementing the present disclosure will be described in detail with reference to the attached drawings. However, in the following description, detailed descriptions of well-known functions or configurations will be omitted if there is a risk of unnecessarily obscuring the gist of the present disclosure.

첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응되는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.In the accompanying drawings, identical or corresponding components are given the same reference numerals. Additionally, in the description of the following embodiments, overlapping descriptions of identical or corresponding components may be omitted. However, even if descriptions of components are omitted, it is not intended that such components are not included in any embodiment.

개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 통상의 기술자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments and methods for achieving them will become clear by referring to the embodiments described below in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are merely provided to ensure that the present disclosure is complete and that the present disclosure does not convey the scope of the invention to those skilled in the art. It is provided only for complete information.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. 본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail. The terms used in this specification are general terms that are currently widely used as much as possible while considering the function in the present disclosure, but this may vary depending on the intention or precedent of a technician working in the related field, the emergence of new technology, etc. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the relevant invention. Accordingly, the terms used in this disclosure should be defined based on the meaning of the term and the overall content of the present disclosure, rather than simply the name of the term.

본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.In this specification, singular expressions include plural expressions, unless the context clearly specifies the singular. Additionally, plural expressions include singular expressions, unless the context clearly specifies plural expressions. When it is said that a certain part includes a certain element throughout the specification, this does not mean excluding other elements, but may further include other elements, unless specifically stated to the contrary.

또한, 명세서에서 사용되는 '모듈' 또는 '부'라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, '모듈' 또는 '부'는 어떤 역할들을 수행한다. 그렇지만, '모듈' 또는 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈' 또는 '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서, '모듈' 또는 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 또는 변수들 중 적어도 하나를 포함할 수 있다. 구성요소들과 '모듈' 또는 '부'들은 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈' 또는 '부'들로 결합되거나 추가적인 구성요소들과 '모듈' 또는 '부'들로 더 분리될 수 있다.Additionally, the term 'module' or 'unit' used in the specification refers to a software or hardware component, and the 'module' or 'unit' performs certain roles. However, 'module' or 'unit' is not limited to software or hardware. A 'module' or 'unit' may be configured to reside on an addressable storage medium and may be configured to run on one or more processors. Thus, as an example, a 'module' or 'part' refers to components such as software components, object-oriented software components, class components and task components, processes, functions and properties. , procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, or variables. Components and 'modules' or 'parts' may be combined into smaller components and 'modules' or 'parts' or further components and 'modules' or 'parts'. Could be further separated.

본 개시의 일 실시예에 따르면, '모듈' 또는 '부'는 프로세서 및 메모리로 구현될 수 있다. '프로세서'는 범용 프로세서, 중앙 처리 장치(CPU), 마이크로프로세서, 디지털 신호 프로세서(DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서, '프로세서'는 주문형 반도체(ASIC), 프로그램가능 로직 디바이스(PLD), 필드 프로그램가능 게이트 어레이(FPGA) 등을 지칭할 수도 있다. '프로세서'는, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다. 또한, '메모리'는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. '메모리'는 임의 액세스 메모리(RAM), 판독-전용 메모리(ROM), 비-휘발성 임의 액세스 메모리(NVRAM), 프로그램가능 판독-전용 메모리(PROM), 소거-프로그램가능 판독 전용 메모리(EPROM), 전기적으로 소거가능 PROM(EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.According to an embodiment of the present disclosure, a 'module' or 'unit' may be implemented with a processor and memory. 'Processor' should be interpreted broadly to include general-purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, etc. In some contexts, 'processor' may refer to an application-specific integrated circuit (ASIC), programmable logic device (PLD), field programmable gate array (FPGA), etc. 'Processor' refers to a combination of processing devices, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in combination with a DSP core, or any other such combination of configurations. You may. Additionally, 'memory' should be interpreted broadly to include any electronic component capable of storing electronic information. 'Memory' refers to random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable-programmable read-only memory (EPROM), May also refer to various types of processor-readable media, such as electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, etc. A memory is said to be in electronic communication with a processor if the processor can read information from and/or write information to the memory. The memory integrated into the processor is in electronic communication with the processor.

본 개시에서, '시스템'은 서버 장치와 클라우드 장치 중 적어도 하나의 장치를 포함할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 시스템은 하나 이상의 서버 장치로 구성될 수 있다. 다른 예로서, 시스템은 하나 이상의 클라우드 장치로 구성될 수 있다. 또 다른 예로서, 시스템은 서버 장치와 클라우드 장치가 함께 구성되어 동작될 수 있다.In the present disclosure, 'system' may include at least one of a server device and a cloud device, but is not limited thereto. For example, a system may consist of one or more server devices. As another example, a system may consist of one or more cloud devices. As another example, the system may be operated with a server device and a cloud device configured together.

본 개시에서, '디스플레이'는 컴퓨팅 장치와 연관된 임의의 디스플레이 장치를 지칭할 수 있는데, 예를 들어, 컴퓨팅 장치에 의해 제어되거나 컴퓨팅 장치로부터 제공된 임의의 정보/데이터를 표시할 수 있는 임의의 디스플레이 장치를 지칭할 수 있다.In this disclosure, 'display' may refer to any display device associated with a computing device, e.g., any display device capable of displaying any information/data controlled by or provided by the computing device. can refer to.

본 개시에서, '복수의 A의 각각' 또는 '복수의 A 각각'은 복수의 A에 포함된 모든 구성 요소의 각각을 지칭하거나, 복수의 A에 포함된 일부 구성 요소의 각각을 지칭할 수 있다.In the present disclosure, 'each of a plurality of A' or 'each of a plurality of A' may refer to each of all components included in a plurality of A, or may refer to each of some components included in a plurality of A. .

본 개시에서, '문서'는 일반적으로 인터넷과 같은 네트워크 상에서 제공되는 전자 문서를 지칭할 수 있습니다. 예를 들어, 문서는 웹 브라우저를 통해 제공되는 '웹문서'를 포함할 수 있다. 또한, '웹문서'는 인터넷 익스플로러, 크롬 등과 같은 웹 브라우저 프로그램을 직접적으로 또는 간접적으로 이용하여 월드와이드웹(World Wide Web)을 통하여 열람할 수 있는 수동 또는 능동적인 문서 형식을 모두 포함할 수 있다. 웹문서의 파일 형식(file format)으로서 일반적으로 HTML(Hyper Text Markup Language)이 사용될 수 있으나, 이에 한정되지 않고, XML(eXtensible Markup Language), SGML(Standard Generalized Markup Language)를 포함하여, 웹 브라우저 프로그램 (플러그인이나 기타 별도의 프로그램과 연결되는 경우도 포함)을 이용하여 열람할 수 있는 임의의 문서 형식을 포함할 수 있다. 본 개시에서, 문서에 포함되는 컨텐츠는 특정 형식에 제한되지 않는다. 예를 들어, 문서에 포함되는 컨텐츠는 일반적인 텍스트에 한정되지 않고, 이미지, 음악, 동영상, 또는 이들의 결합 등과 같은 다양한 형태의 데이터를 포함할 수 있다. 또한, 문서는 일반적인 웹문서 뿐만 아니라, 이메일, 사전, 블로그, 웹사이트, 뉴스, 전자 책, 전자 지도, 오디오, 이미지 또는 동영상 등과 같은 멀티미디어 데이터를 포함하는 전자 문서 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.In this disclosure, 'document' may generally refer to an electronic document provided on a network such as the Internet. For example, a document may include a 'web document' provided through a web browser. In addition, 'web document' may include both passive and active document formats that can be viewed through the World Wide Web using web browser programs such as Internet Explorer, Chrome, etc. directly or indirectly. . HTML (Hyper Text Markup Language) can generally be used as a file format for web documents, but is not limited to this, and includes XML (eXtensible Markup Language) and SGML (Standard Generalized Markup Language), as well as web browser programs. It can include any document format that can be viewed using (including cases where it is connected to a plug-in or other separate program). In the present disclosure, the content included in the document is not limited to a specific format. For example, content included in a document is not limited to general text, but may include various types of data such as images, music, videos, or combinations thereof. In addition, documents may include not only general web documents, but also electronic documents containing multimedia data such as e-mail, dictionaries, blogs, websites, news, e-books, e-maps, audio, images, or videos, etc., but are limited to this. It doesn't work.

본 개시에서, '뷰(view)'는 문서 제어 시스템에서 사용자 단말의 디스플레이를 통해 표출 또는 시각화되는 문서의 내용을 나타내는 데이터 구조를 지칭할 수 있다. 뷰는 웹 브라우저와 같은 문서 편집 애플리케이션에서 제공되는 기능을 이용하여 편집된 문서에 포함된 객체(예를 들어, 텍스트 등)의 데이터를 반영할 수 있다. 예를 들어, 사용자가 웹 브라우저에 의해 시각화된 문서에 텍스트를 입력하는 경우, 뷰는 웹 브라우저에 의해 시각화된 텍스트의 데이터를 저장할 수 있다. 추가적으로, 뷰는 문서의 콘텐츠 중에서 수정된 부분에 대응하는 데이터를 문서의 DOM에 반영할 수 있다. 예를 들어, 뷰는 HTML 문서의 DOM 노드에 해당 문서의 수정된 부분에 대응하는 데이터를 반영하고, 웹 브라우저는 수정된 DOM에 기초하여 문서를 렌더링하여 수정된 문서를 사용자에게 제공할 수 있다.In the present disclosure, 'view' may refer to a data structure representing the contents of a document displayed or visualized through a display of a user terminal in a document control system. The view may reflect data of objects (e.g., text, etc.) included in the edited document using functions provided by a document editing application such as a web browser. For example, when a user enters text into a document visualized by a web browser, the view can store data of the text visualized by the web browser. Additionally, the view can reflect data corresponding to the modified portion of the content of the document to the DOM of the document. For example, the view reflects data corresponding to the modified part of the document in the DOM node of the HTML document, and the web browser can render the document based on the modified DOM and provide the modified document to the user.

본 개시에서, '모델(model)'은 문서 제어 시스템에서 편집된 문서의 내용 또는 콘텐츠(contents)의 구성을 나타내는 데이터 구조를 지칭할 수 있다. 문서의 내용 또는 콘텐츠의 구성을 나타내는 데이터는, 문서와 관련한 사용자 입력 행위를 나타내는 액션(action)을 통해 모델에 수신될 수 있다. 모델의 데이터는 뷰에 반영 또는 업데이트될 수 있으며, 이 경우 해당 데이터를 포함하는 문서가 사용자 단말의 디스플레이 상에 표출될 수 있다.In the present disclosure, 'model' may refer to a data structure representing the content of a document edited in a document control system or the configuration of the contents. Data representing the content of the document or the composition of the content may be received in the model through an action representing user input behavior related to the document. Data in the model may be reflected or updated in the view, and in this case, a document containing the data may be displayed on the display of the user terminal.

본 개시에서, '문서의 객체'는 문서에 포함된 텍스트와 같은 콘텐츠 또는 텍스트가 아닌 콘텐츠(예를 들어, 이미지, 동영상, 오디오, 테이블 등)을 포함할 수 있다. 여기서, 문서의 객체가 웹 브라우저 또는 에디터 프로그램을 통해 표현, 표출 또는 시각화되는 서식 또는 형식 정보는, 객체의 위치, 색상, 굵기, 크기 등을 포함할 수 있다. 또한, 문서의 객체가 텍스트인 경우, 해당 객체의 서식 또는 형식 정보는 텍스트의 글꼴 등을 더 포함할 수 있다.In the present disclosure, a 'document object' may include content such as text included in the document or content other than text (eg, image, video, audio, table, etc.). Here, the format or format information in which the object of the document is expressed, expressed, or visualized through a web browser or editor program may include the location, color, thickness, size, etc. of the object. Additionally, when the object of the document is text, the format or format information of the object may further include the font of the text.

본 개시에서, 'DOM(Document Object Model)' 또는 '문서 객체 모델'은 문서의 콘텐츠 또는 구조를 분석 또는 파싱(parsing)하여 해당 문서의 구성요소들을 나타내는 객체들의 구조에 관한 정보를 포함하는 모델을 지칭할 수 있다. DOM은 문서가 HTML(Hyper Text Markup Language) 형식으로 표현되는 경우 해당 문서의 HTML 요소 등을 제어할 수 있는 인터페이스를 제공할 수 있다. 또한, DOM은 프로그래밍 언어(예를 들어, 자바 스크립트(Java Script))를 통해 HTML 문서를 편집 또는 시각화하는 웹 브라우저에 접근할 수 있는 방법 및/또는 해당 문서의 구조, 스타일, 내용 등을 변경 또는 편집할 수 있는 방법을 제공할 수 있다.In the present disclosure, 'DOM (Document Object Model)' or 'document object model' refers to a model that analyzes or parses the content or structure of a document and includes information about the structure of objects representing components of the document. It can be referred to. When a document is expressed in HTML (Hyper Text Markup Language) format, DOM can provide an interface that can control the HTML elements of the document. In addition, DOM is a way to access a web browser that edits or visualizes an HTML document through a programming language (e.g., Java Script) and/or changes the structure, style, content, etc. of the document. A method for editing can be provided.

본 개시에서, 문서의 '선택 영역'은 사용자가 마우스, 키보드 등과 같은 입력 장치를 통해 선택한 문서의 객체들의 영역 또는 범위를 지칭할 수 있다. 또한, 선택 영역은 문서 상에서 사용자가 선택할 객체들의 위치를 나타내는 포인터 또는 커서의 위치를 나타낼 수도 있다. 따라서, '선택 영역'은 선택된 문서의 객체의 범위에 대한 정보(예를 들어, 객체들을 나타내는 구조체의 시작 노드, 시작 노드로부터 특정 객체 노드까지의 오프셋(offset) 등)를 포함할 수 있다.In the present disclosure, the 'selection area' of a document may refer to an area or range of objects in the document selected by the user through an input device such as a mouse, keyboard, etc. Additionally, the selection area may indicate the position of a pointer or cursor indicating the positions of objects to be selected by the user on the document. Accordingly, the 'selection area' may include information about the range of objects in the selected document (for example, the start node of a structure representing objects, the offset from the start node to a specific object node, etc.).

본 개시에서, '정제'는 문서에 소정의 처리를 가하여 변경된 문서를 도출해내는 작업을 포함할 수 있다. 예를 들어, 정제는 기존의 문서로부터 특정 단어, 문구 또는 부분을 삭제하는 작업을 의미할 수 있다. 다른 예에서, 정제는, 문서들 내부의 특정 문구 또는 키워드를 추출하고 이를 기반으로 문서들을 인덱싱하여 정렬할 수 있도록 문서 데이터베이스를 재구성하는 작업을 의미할 수도 있다. 또한, 정제는, 디스플레이에 출력된 문서의 내용을 편하게 볼 수 있도록 문서의 내부 구성, 특정 단어 등을 변경하는 작업을 의미할 수도 있으나 이에 한정되는 것은 아니다.In the present disclosure, 'refining' may include the task of applying predetermined processing to a document to derive a changed document. For example, refining may refer to the operation of deleting specific words, phrases, or parts from an existing document. In another example, refining may refer to the task of reconstructing a document database so that specific phrases or keywords within documents can be extracted and documents can be indexed and sorted based on them. In addition, refining may mean, but is not limited to, the task of changing the internal structure of a document, specific words, etc., so that the contents of the document output on the display can be easily viewed.

도 1은 본 개시의 일 실시예에 따라 업스트림 방식(140)과 다운스트림 방식(150)을 이용한 문서 제어 시스템(100)의 프로세스를 나타낸다. 도시된 것과 같이, 사용자는 사용자 단말(110)에서 실행되는 문서 편집 어플리케이션(예를 들어, 웹 브라우저)를 이용하여 인터넷을 통해 제공되는 문서(예를 들어, 웹문서)(112)를 편집할 수 있다. 문서(112)의 편집을 위한 사용자의 입력에 따라, 문서 제어 시스템(100)은 문서의 시각화와 연관된 뷰(View)(120)와 문서의 콘텐츠의 구성과 연관된 모델(Model)(130) 사이의 데이터 동기화를 실행할 수 있다.Figure 1 shows a process of the document control system 100 using an upstream method 140 and a downstream method 150 according to an embodiment of the present disclosure. As shown, a user can edit a document (e.g., web document) 112 provided through the Internet using a document editing application (e.g., web browser) running on the user terminal 110. there is. According to the user's input for editing the document 112, the document control system 100 determines between the View 120 associated with the visualization of the document and the Model 130 associated with the configuration of the content of the document. Data synchronization can be performed.

일 실시예에 따르면, 사용자가 문서(112)를 편집하는 경우, 문서 제어 시스템(100)의 뷰(120)는 사용자 단말의 디스플레이를 통해 표출 또는 시각화되는 문서(112)의 내용을 나타내는 데이터 구조일 수 있다. 여기서, 뷰(120)는 문서 편집 어플리케이션에서 제공되는 기능을 이용하여 편집된 문서에 포함된 객체(예를 들어, 텍스트, 이미지 등)에 관한 데이터를 제공받을 수 있다. 예를 들어, 문서(112)가 HTML 문서이며 해당 문서의 속성이 편집 가능인 경우(즉, 편집 가능 여부를 나타내는 변수 'contentEditable'가 'true'로 설정된 경우), 웹 브라우저에 의해 편집된 문서의 데이터는 뷰(120)에 저장될 수 있다.According to one embodiment, when a user edits the document 112, the view 120 of the document control system 100 is a data structure representing the contents of the document 112 displayed or visualized through the display of the user terminal. You can. Here, the view 120 can receive data about objects (eg, text, images, etc.) included in the edited document using functions provided by the document editing application. For example, if the document 112 is an HTML document and the property of the document is editable (i.e., the variable 'contentEditable' indicating whether or not it is editable is set to 'true'), the document edited by the web browser Data may be stored in view 120.

일 실시예에 따르면, 사용자가 문서(112)를 편집하는 경우, 문서 제어 시스템(100)의 모델(130)은 편집된 문서의 내용 또는 콘텐츠(contents)의 구성을 나타내는 데이터 구조일 수 있다. 여기서, 모델(130)의 데이터가 뷰(120)에 반영 또는 업데이트될 때, 해당 데이터를 포함하는 문서(112)가 사용자 단말(110)의 디스플레이 상에 표출될 수 있다. 예를 들어, 모델(130)의 데이터가 Virtual DOM(Document Object Model) 등을 통해 뷰(120)에 반영되고, 뷰(120)가 문서의 DOM 노드에 데이터를 반영한 경우, 웹 브라우저는 수정된 DOM에 기초하여 문서를 렌더링하여 사용자에게 제공할 수 있다.According to one embodiment, when a user edits the document 112, the model 130 of the document control system 100 may be a data structure representing the content of the edited document or the structure of the content. Here, when the data of the model 130 is reflected or updated in the view 120, the document 112 including the corresponding data may be displayed on the display of the user terminal 110. For example, when the data of the model 130 is reflected in the view 120 through the Virtual DOM (Document Object Model), etc., and the view 120 reflects the data in the DOM node of the document, the web browser displays the modified DOM. Based on this, the document can be rendered and provided to the user.

일 실시예에 따르면, 사용자는 사용자 단말(110)에서 문서 편집 애플리케이션을 이용하여 문서(112) 내에 텍스트를 입력 또는 생성할 수 있다. 예를 들어, 문서(112)가 HTML 문서인 경우, 생성된 텍스트는 자바 스크립트를 이용한 HTML 소스로 구성되어, HTML 소스의 형태로 저장, 편집 및 전달될 수 있다. 여기서, HTML 문서의 속성이 편집 가능인 경우(즉, "contentEditable = true"인 경우), 사용자는 HTML 소스의 내용을 수정할 수 있고, 수정된 HTML 소스의 데이터는 뷰(120)에 저장될 수 있다.According to one embodiment, a user may input or create text in the document 112 using a document editing application on the user terminal 110. For example, if the document 112 is an HTML document, the generated text consists of HTML source using JavaScript and can be stored, edited, and transmitted in the form of HTML source. Here, if the attribute of the HTML document is editable (i.e., “contentEditable = true”), the user can modify the content of the HTML source, and the data of the modified HTML source can be saved in the view 120. .

일 실시예에 따르면, 문서 제어 시스템(100)은 뷰(120)에 저장된 데이터를 업스트림(Upstream) 방식(140)을 통해 모델(130)에 반영할 수 있다. 구체적으로, 문서 제어 시스템(100)은 뷰(120)에 저장된 데이터를 액션(Action)을 통해 모델(130)로 전송할 수 있다. 이와 같이, 문서 제어 시스템(100)은 뷰(120)로부터 전송된 데이터를 모델(130)의 적어도 일부에 업데이트함으로써, 뷰(120)와 모델(130)의 데이터를 동기화할 수 있다.According to one embodiment, the document control system 100 may reflect data stored in the view 120 to the model 130 through an upstream method 140. Specifically, the document control system 100 may transmit data stored in the view 120 to the model 130 through an action. In this way, the document control system 100 may synchronize the data of the view 120 and the model 130 by updating data transmitted from the view 120 to at least a portion of the model 130.

일 실시예에 따르면, 사용자는 사용자 단말(110)에서 문서 편집 애플리케이션을 이용하여 문서(112) 내에 이미지를 삽입할 수 있다. 여기서, 문서 제어 시스템(100)은 삽입된 이미지를 액션을 통해 모델(130)에 전송할 수 있다. 또한, 전송된 이미지에 대응하는 데이터는 모델(130)에 저장될 수 있다.According to one embodiment, a user may insert an image into the document 112 using a document editing application on the user terminal 110. Here, the document control system 100 may transmit the inserted image to the model 130 through an action. Additionally, data corresponding to the transmitted image may be stored in the model 130.

일 실시예에 따르면, 문서 제어 시스템(100)은 모델(130)에 저장된 데이터를 다운스트림(Downstream) 방식(150)을 통해 뷰(120)에 반영할 수 있다. 예를 들어, 모델(130)에 저장된 데이터에 기초하여, 문서 제어 시스템(100)은 Virtual DOM을 통해 뷰(120)의 DOM을 수정하거나 바로 뷰(120)의 DOM을 수정함으로써, 모델(130)의 데이터를 뷰(120)에 반영할 수 있다. 이에 따라, 모델(130)의 데이터와 뷰(120)의 데이터는 동기화될 수 있다.According to one embodiment, the document control system 100 may reflect data stored in the model 130 to the view 120 through a downstream method 150. For example, based on data stored in the model 130, the document control system 100 modifies the DOM of the view 120 through Virtual DOM or directly modifies the DOM of the view 120, thereby modifying the model 130. The data can be reflected in the view 120. Accordingly, the data of the model 130 and the data of the view 120 may be synchronized.

이상 설명한 바와 같은 구성을 갖는 문서 제어 시스템(100)은, 업스트림 방식(140)과 다운스트림 방식(150)을 모두 이용하여 문서의 편집 또는 시각화를 실행함으로써, 다양한 웹 브라우저들 사이에 동작 방식이 상이하더라도 일관성 있는 HTML 문서를 모델링할 수 있다. 또한, 본 개시의 문서 제어 시스템(100)은 HTML 문서의 편집 가능 여부를 나타내는 속성(예를 들어, 'contentEditable')을 이용하여 웹 브라우저가 제공하는 문서 내에서 마우스 우클릭을 통한 편집(예를 들어, 복사, 붙여넣기 등)을 추가적인 확장 프로그램 없이 실행할 수 있다. 추가적으로, 본 개시의 문서 제어 시스템(100)은 웹 브라우저가 편집 가능 속성을 이용하여 외국어의 편집 또는 시각화를 처리할 수 있다.The document control system 100, having the configuration described above, edits or visualizes documents using both the upstream method 140 and the downstream method 150, so that the operation method is different among various web browsers. Even so, a consistent HTML document can be modeled. In addition, the document control system 100 of the present disclosure uses an attribute (e.g., 'contentEditable') indicating whether an HTML document is editable (e.g., 'contentEditable') to edit (e.g., right-click) a mouse within a document provided by a web browser. , copy, paste, etc.) can be executed without additional extensions. Additionally, the document control system 100 of the present disclosure can process editing or visualization of foreign languages using the editable attribute of a web browser.

도 2는 본 개시의 일 실시예에 따른 사용자 단말(200)의 내부 구성을 나타내는 블록도이다. 사용자 단말(200)은 메모리(210), 프로세서(220), 통신 모듈(230) 및 입출력 인터페이스(240)를 포함할 수 있다. 도 2에 도시된 바와 같이, 사용자 단말(200)은 통신 모듈(230)을 이용하여 네트워크를 통해 정보 및/또는 데이터를 통신할 수 있도록 구성될 수 있다.Figure 2 is a block diagram showing the internal configuration of the user terminal 200 according to an embodiment of the present disclosure. The user terminal 200 may include a memory 210, a processor 220, a communication module 230, and an input/output interface 240. As shown in FIG. 2, the user terminal 200 may be configured to communicate information and/or data over a network using the communication module 230.

메모리(210)는 비-일시적인 임의의 컴퓨터 판독 가능한 기록매체를 포함할 수 있다. 일 실시예에 따르면, 메모리(210)는 ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 다른 예로서, ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리와는 구분되는 별도의 영구 저장 장치로서 사용자 단말(200)에 포함될 수 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드(예를 들어, 사용자 단말(200)에 설치되어 구동되는 문서의 편집과 연관된 데이터를 뷰와 모델에 동기화하기 위한 코드 등)가 저장될 수 있다.Memory 210 may include any non-transitory computer-readable recording medium. According to one embodiment, the memory 210 may include a non-permanent mass storage device, such as a read only memory (ROM), a disk drive, a solid state drive (SSD), or flash memory. You can. As another example, non-perishable mass storage devices such as ROM, SSD, flash memory, disk drive, etc. may be included in the user terminal 200 as a separate persistent storage device that is distinct from memory. In addition, the memory 210 may store an operating system and at least one program code (e.g., a code for synchronizing data related to editing of a document installed and driven in the user terminal 200 to the view and model, etc.). there is.

이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 이러한 사용자 단말(200)에 직접 연결가능한 기록 매체를 포함할 수 있는데, 예를 들어, 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 예로서, 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(230)을 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템이 통신 모듈(230)을 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램(예를 들어, 문서의 편집과 연관된 데이터를 뷰와 모델에 동기화하기 위한 프로그램 등)에 기반하여 메모리(210)에 로딩될 수 있다.These software components may be loaded from a computer-readable recording medium separate from the memory 210. Recording media readable by such a separate computer may include recording media directly connectable to the user terminal 200, for example, floppy drives, disks, tapes, DVD/CD-ROM drives, memory cards, etc. It may include a computer-readable recording medium. As another example, software components may be loaded into the memory 210 through the communication module 230 rather than a computer-readable recording medium. For example, at least one program is a computer program (e.g., associated with editing a document) installed by files provided through the communication module 230 by developers or a file distribution system that distributes the installation file of the application. It may be loaded into the memory 210 based on a program (such as a program for synchronizing data to views and models).

프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 모듈(230)에 의해 사용자 단말 또는 다른 외부 시스템으로 제공될 수 있다. 예를 들어, 프로세서(220)는 사용자가 문서의 텍스트를 편집한 경우, 문서의 편집과 대응되는 데이터를 뷰에 반영하고, 뷰와 모델을 동기화할 수 있다. 또한, 프로세서(220)는 사용자가 문서의 텍스트가 아닌 콘텐츠를 편집한 경우, 문서의 편집과 대응되는 데이터를 모델에 반영하고, 모델과 뷰를 동기화할 수 있다.The processor 220 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Commands may be provided to a user terminal or other external system by the memory 210 or the communication module 230. For example, when a user edits text in a document, the processor 220 may reflect data corresponding to the editing of the document in the view and synchronize the view and model. Additionally, when the user edits content other than the text of the document, the processor 220 may reflect data corresponding to the editing of the document in the model and synchronize the model and the view.

통신 모듈(230)은 네트워크를 통해 사용자 단말(200)이 외부 시스템(일례로 별도의 클라우드 시스템 등)과 통신하기 위한 구성 또는 기능을 제공할 수 있다. 일례로, 사용자 단말(200)의 프로세서(220)의 제어에 따라 제공되는 제어 신호, 명령, 데이터 등이 통신 모듈(230)과 네트워크를 거쳐 사용자 단말 및/또는 외부 시스템의 통신 모듈을 통해 사용자 단말 및/또는 외부 시스템으로 전송될 수 있다. 예를 들어, 사용자 단말(200)은 수신된 문서의 편집과 연관된 데이터를 뷰와 모델에 동기화하고, 이를 외부 시스템으로 전송할 수 있다.The communication module 230 may provide a configuration or function for the user terminal 200 to communicate with an external system (for example, a separate cloud system, etc.) through a network. For example, control signals, commands, data, etc. provided under the control of the processor 220 of the user terminal 200 pass through the communication module 230 and the network to the user terminal through the communication module of the user terminal and/or an external system. and/or transmitted to an external system. For example, the user terminal 200 may synchronize data related to editing of a received document to the view and model and transmit it to an external system.

또한, 사용자 단말(200)의 입출력 인터페이스(240)는 사용자 단말(200)과 연결되거나 사용자 단말(200)이 포함할 수 있는 입력 또는 출력을 위한 장치와의 인터페이스를 위한 수단일 수 있다. 도 2에서는 입출력 인터페이스(240)가 프로세서(220)와 별도로 구성된 요소로서 도시되었으나, 이에 한정되지 않으며, 입출력 인터페이스(240)가 프로세서(220)에 포함되도록 구성될 수 있다. 사용자 단말(200)은 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다.Additionally, the input/output interface 240 of the user terminal 200 may be connected to the user terminal 200 or may be a means for interfacing with a device for input or output that the user terminal 200 may include. In FIG. 2 , the input/output interface 240 is shown as an element configured separately from the processor 220, but the present invention is not limited thereto, and the input/output interface 240 may be included in the processor 220. The user terminal 200 may include more components than those shown in FIG. 2 . However, there is no need to clearly show most prior art components.

사용자 단말(200)의 프로세서(220)는 복수의 사용자 단말 및/또는 복수의 외부 시스템으로부터 수신된 정보 및/또는 데이터를 관리, 처리 및/또는 저장하도록 구성될 수 있다. 일 실시예에 따르면, 프로세서(220)는 사용자 단말 및/또는 외부 시스템으로부터 문서의 편집과 연관된 데이터를 수신할 수 있다. 이 경우, 프로세서(220)는 문서의 편집과 연관된 데이터를 뷰와 모델에 업데이트하여 동기화할 수 있다.The processor 220 of the user terminal 200 may be configured to manage, process, and/or store information and/or data received from a plurality of user terminals and/or a plurality of external systems. According to one embodiment, the processor 220 may receive data associated with editing a document from a user terminal and/or an external system. In this case, the processor 220 may update and synchronize data associated with document editing in the view and model.

도 3은 본 개시의 일 실시예에 따른 프로세서(220)의 내부 구성을 나타내는 블록도이다. 도시된 바와 같이, 프로세서(220)는 입력 감지부(310), 업스트림 처리부(320), 다운스트림 처리부(330) 및 출력부(340)를 포함할 수 있다. Figure 3 is a block diagram showing the internal configuration of the processor 220 according to an embodiment of the present disclosure. As shown, the processor 220 may include an input detection unit 310, an upstream processing unit 320, a downstream processing unit 330, and an output unit 340.

입력 감지부(310)는 사용자의 문서 편집과 연관된 입력을 감지하여 수신할 수 있다. 일 실시예에서, 입력 감지부(310)는 사용자의 입력이 문서의 텍스트 편집과 연관된 경우, 업스트림 처리부(320)에 사용자의 입력과 대응되는 데이터를 전송할 수 있다. 다른 실시예에서, 입력 감지부(310)는 사용자의 입력이 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 다운스트림 처리부(330)에 사용자의 입력과 대응되는 데이터를 전송할 수 있다.The input detection unit 310 can detect and receive input related to the user's document editing. In one embodiment, the input detection unit 310 may transmit data corresponding to the user's input to the upstream processing unit 320 when the user's input is associated with text editing of a document. In another embodiment, the input detection unit 310 may transmit data corresponding to the user's input to the downstream processing unit 330 when the user's input is related to editing of content rather than text of the document.

업스트림 처리부(320)는 업스트림 방식을 통해 문서의 편집을 제어할 수 있다. 일 실시예에서, 사용자의 입력이 문서의 텍스트 편집과 연관된 경우, 업스트림 처리부(320)는 사용자의 입력과 대응되는 데이터를 데이터베이스(350)의 뷰(352)를 나타내는 데이터로써 저장할 수 있다. 그 후, 업스트림 처리부(320)는 뷰(120)로써 저장된 데이터를 액션을 통해 모델(354)로 전송할 수 있다. 또한, 업스트림 처리부(320)는 전송된 데이터를 모델(354)의 적어도 일부에 업데이트함으로써, 뷰(352)와 모델(354)의 데이터를 동기화할 수 있다. 업스트림 처리부(320)가 업스트림 방식을 통해 뷰(352)와 모델(354)의 데이터를 동기화하는 과정의 예시는 도 4 및 도 6을 참조하여 자세히 후술된다.The upstream processing unit 320 can control editing of documents through an upstream method. In one embodiment, when the user's input is associated with text editing of a document, the upstream processing unit 320 may store data corresponding to the user's input as data representing the view 352 of the database 350. Afterwards, the upstream processing unit 320 may transmit the data stored as the view 120 to the model 354 through an action. Additionally, the upstream processing unit 320 may synchronize the data of the view 352 and the model 354 by updating at least a portion of the model 354 with the transmitted data. An example of a process in which the upstream processing unit 320 synchronizes data of the view 352 and the model 354 through an upstream method will be described in detail later with reference to FIGS. 4 and 6.

다운스트림 처리부(330)는 다운스트림 방식을 통해 문서의 편집을 제어할 수 있다. 사용자의 입력이 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 다운스트림 처리부(330)는 사용자의 입력과 대응되는 데이터를 데이터베이스(350)의 모델(354)에 액션을 통해 전송하여 저장할 수 있다. 그 후, 다운스트림 처리부(330)는 모델(354)에 저장된 데이터를 뷰(352)로 전송할 수 있다. 또한, 다운스트림 처리부(330)는 전송된 데이터를 뷰(352)의 적어도 일부에 업데이트함으로써, 뷰(352)와 모델(354)의 데이터를 동기화할 수 있다. 다운스트림 처리부(330)가 다운스트림 방식을 통해 뷰(352)와 모델(354)의 데이터를 동기화하는 과정의 예시는 도 5 및 도 7을 참조하여 자세히 후술된다.The downstream processing unit 330 can control editing of the document through a downstream method. If the user's input is related to editing content rather than text of the document, the downstream processing unit 330 may transmit and store data corresponding to the user's input to the model 354 of the database 350 through an action. Afterwards, the downstream processing unit 330 may transmit the data stored in the model 354 to the view 352. Additionally, the downstream processing unit 330 may synchronize the data of the view 352 and the model 354 by updating at least a portion of the view 352 with the transmitted data. An example of a process in which the downstream processing unit 330 synchronizes data of the view 352 and the model 354 through a downstream method will be described in detail later with reference to FIGS. 5 and 7.

출력부(340)는 사용자가 편집한 문서를 사용자 단말의 디스플레이 상에 출력할 수 있다. 일 실시예에서, 사용자가 문서를 편집한 경우, 해당 문서 편집에 대응되는 데이터가 뷰(352) 또는 모델(354)로 반영되며, 업스트림 처리부(320) 또는 다운스트림 처리부(330)를 통해 뷰(352)와 모델(354) 사이의 데이터 동기화가 실행될 수 있다. 출력부(340)는 동기화된 뷰(352)의 데이터를 사용자 단말의 디스플레이 상에 출력할 수 있고, 그 결과 사용자는 문서의 편집 상태를 사용자 단말의 디스플레이 상에서 확인할 수 있다.The output unit 340 may output a document edited by the user on the display of the user terminal. In one embodiment, when a user edits a document, data corresponding to the document editing is reflected in the view 352 or model 354, and the view ( Data synchronization between 352) and model 354 may be performed. The output unit 340 can output the data of the synchronized view 352 on the display of the user terminal, and as a result, the user can check the editing status of the document on the display of the user terminal.

도 3에서 도시한 프로세서(220)의 내부 구성은 예시일 뿐이며, 일부 실시예에서는 도시한 내부 구성 외 다른 구성을 추가로 포함할 수 있으며, 일부 구성이 생략될 수도 있으며, 일부 과정이 다른 구성 또는 외부 시스템에 의해 수행될 수 있다. 예를 들어, 다운스트림 처리부(330)가 생략되는 경우, 프로세서(220)는 업스트림 처리부(320)만을 통해 문서의 편집을 제어하고, 출력부(340)를 통해 결과물을 사용자 단말의 디스플레이 상에 출력할 수 있다. 또한, 도 3에서 프로세서(220)의 내부 구성들을 기능별로 구분하여 설명하였으나, 이것은 내부 구성들이 반드시 물리적으로 구분되는 것을 의미하지 않는다.The internal configuration of the processor 220 shown in FIG. 3 is only an example, and in some embodiments, it may additionally include other configurations than the internal configuration shown, some configurations may be omitted, and some processes may be performed in different configurations or configurations. Can be performed by an external system. For example, when the downstream processing unit 330 is omitted, the processor 220 controls editing of the document only through the upstream processing unit 320 and outputs the result on the display of the user terminal through the output unit 340. can do. In addition, although the internal components of the processor 220 are described separately by function in FIG. 3, this does not necessarily mean that the internal components are physically divided.

도 4는 본 개시의 일 실시예에 따른 문서의 텍스트가 편집된 경우 업스트림 방식을 통한 문서 제어 방법을 설명하기 위한 흐름도이다. 일 실시예에서, 사용자가 문서의 텍스트를 편집하는 경우, 편집된 데이터는 뷰(420)에 저장될 수 있다. 또한, 편집된 데이터는 뷰(420)에서 모델(440)로 전송되어 모델(440)에 업데이트될 수 있다. 여기서, 뷰(420)는 피지컬 컴포넌트(Physical Component)(422)를 포함할 수 있고, 이와 대응되도록 모델(440)은 로지컬 컴포넌트(Logical Component)(442)를 포함할 수 있다.FIG. 4 is a flowchart illustrating a method of controlling a document through an upstream method when the text of a document is edited according to an embodiment of the present disclosure. In one embodiment, when a user edits text in a document, the edited data may be stored in view 420. Additionally, edited data may be transmitted from the view 420 to the model 440 and updated in the model 440. Here, the view 420 may include a physical component 422, and the model 440 may include a logical component 442 to correspond thereto.

일 실시예에서, 문서가 HTML 문서이며 편집 가능한 경우(즉, 'contentEditable' 속성이 'true'인 경우), 문서의 텍스트를 편집하기 위한 사용자의 입력(410)은 뷰(420)의 피지컬 컴포넌트(422)에 반영될 수 있다. 여기서, 피지컬 컴포넌트(422)는 문서의 객체와 해당 객체의 서식과 연관된 데이터를 포함할 수 있다. 예를 들어, 피지컬 컴포넌트(422)는 편집된 문서의 텍스트, 텍스트의 크기, 글꼴, 색상 등에 관한 데이터를 포함할 수 있다. 이와 같이 구성되는 피지컬 컴포넌트(422)는 편집된 문서의 텍스트의 구성을 나타내는 데이터를 저장할 수 있다.In one embodiment, if the document is an HTML document and editable (i.e., the 'contentEditable' property is 'true'), the user's input 410 to edit the text of the document is input to the physical component of the view 420 ( 422). Here, the physical component 422 may include data related to the object of the document and the format of the object. For example, the physical component 422 may include data about the text of the edited document, text size, font, color, etc. The physical component 422 configured in this way can store data representing the structure of the text of the edited document.

일 실시예에서, 피지컬 컴포넌트(422)의 데이터는 액션(430)으로 변경되어 모델(440)의 로지컬 컴포넌트(442)로 전송될 수 있고, 프로세서는 전송된 데이터를 로지컬 컴포넌트(442)의 적어도 일부에 업데이트할 수 있다. 또한, 로지컬 컴포넌트(442)는 문서의 객체와 해당 객체의 서식과 연관된 데이터를 포함할 수 있다. 예를 들어, 로지컬 컴포넌트(442)는 편집된 문서의 텍스트, 텍스트의 크기, 글꼴, 색상 등에 관한 데이터를 포함할 수 있다. 따라서, 편집된 문서의 텍스트의 구성을 나타내는 데이터는 로지컬 컴포넌트(442)의 적어도 일부에 업데이트될 수 있다. 이에 따라, 로지컬 컴포넌트(442)와 피지컬 컴포넌트(422)는 데이터 동기화가 이루어질 수 있다.In one embodiment, data of the physical component 422 may be changed into an action 430 and transmitted to the logical component 442 of the model 440, and the processor may convert the transmitted data to at least a portion of the logical component 442. It can be updated. Additionally, the logical component 442 may include data related to the object of the document and the format of the object. For example, the logical component 442 may include data about the text of the edited document, text size, font, color, etc. Accordingly, data representing the structure of the text of the edited document may be updated in at least a portion of the logical component 442. Accordingly, data synchronization between the logical component 442 and the physical component 422 can be achieved.

이와 같은 업스트림 방식을 통해, 문서의 텍스트 편집과 연관된 뷰(420)와 모델(440)의 데이터를 동기화할 수 있다. 또한, 업스트림 과정에서 문서 편집 애플리케이션이 문서의 편집 가능 속성을 이용하여 해당 문서 내에서 마우스 우클릭을 통한 편집(예를 들어, 복사, 붙여넣기 등)을 추가적인 확장 프로그램 없이 실행할 수 있다. 추가적으로, 업스트림 과정에서 문서 편집 애플리케이션이 문서의 편집 가능 속성을 이용하여 해당 문서 내의 사전 모델링 되지 않은 외국어의 편집 또는 시각화를 처리할 수 있다.Through this upstream method, the data of the view 420 and the model 440 related to text editing of the document can be synchronized. Additionally, in the upstream process, a document editing application can use the editable property of the document to perform editing (e.g., copy, paste, etc.) by right-clicking within the document without an additional extension program. Additionally, in the upstream process, a document editing application can use the editable property of the document to process editing or visualization of foreign languages that have not been pre-modeled in the document.

도 5는 본 개시의 일 실시예에 따른 문서의 텍스트가 아닌 콘텐츠가 편집된 경우 다운스트림 방식을 통한 문서 제어 방법을 설명하기 위한 흐름도이다. 일 실시예에서, 사용자가 문서의 텍스트가 아닌 콘텐츠를 편집하는 경우, 편집된 데이터는 모델(530)에 저장될 수 있다. 또한, 편집된 데이터는 모델(530)에서 뷰(540)로 전송되어 뷰(540)에 반영될 수 있다.FIG. 5 is a flowchart illustrating a method of controlling a document through a downstream method when content other than text of a document is edited according to an embodiment of the present disclosure. In one embodiment, when a user edits non-text content of a document, the edited data may be stored in model 530. Additionally, edited data may be transmitted from the model 530 to the view 540 and reflected in the view 540.

일 실시예에서, 문서의 텍스트가 아닌 콘텐츠를 편집하기 위한 사용자의 입력(510)은 액션(520)으로 변경되어 모델(530)의 로지컬 컴포넌트(532)로 전송될 수 있다. 여기서, 텍스트가 아닌 콘텐츠는 텍스트의 서식 정보, 이미지, 동영상 등을 포함할 수 있다. 또한, 로지컬 컴포넌트(532)는 문서의 객체와 해당 객체의 서식과 연관된 데이터를 포함할 수 있다. 따라서, 로지컬 컴포넌트(532)는 편집된 문서의 텍스트 크기, 글꼴, 색상, 이미지, 동영상 등과 연관된 데이터를 저장할 수 있다.In one embodiment, a user's input 510 for editing non-text content of a document may be changed into an action 520 and transmitted to the logical component 532 of the model 530. Here, non-text content may include text format information, images, videos, etc. Additionally, the logical component 532 may include data related to the object of the document and the format of the object. Accordingly, the logical component 532 can store data related to text size, font, color, image, video, etc. of the edited document.

일 실시예에서, 로지컬 컴포넌트(532)에 저장된 데이터는 뷰(540)의 피지컬 컴포넌트(542)로 전송될 수 있다. 이 경우, 프로세서는 피지컬 컴포넌트(542)의 적어도 일부에 전송된 데이터를 업데이트할 수 있다. 예를 들어, 사용자가 문서 편집 애플리케이션을 이용하여 문서의 텍스트 크기, 글꼴, 색상, 이미지 등을 변경한 경우, 피지컬 컴포넌트(542)는 로지컬 컴포넌트(532)를 통해 변경된 내용을 반영할 수 있다. 이에 따라, 로지컬 컴포넌트(532)와 피지컬 컴포넌트(542) 사이의 데이터 동기화가 이루어질 수 있고, 뷰(540)의 피지컬 컴포넌트(542)에 반영된 콘텐츠는 사용자 단말의 디스플레이를 통해 출력될 수 있다.In one embodiment, data stored in the logical component 532 may be transmitted to the physical component 542 of the view 540. In this case, the processor may update data transmitted to at least part of the physical component 542. For example, when a user changes the text size, font, color, image, etc. of a document using a document editing application, the physical component 542 may reflect the changed content through the logical component 532. Accordingly, data synchronization can be achieved between the logical component 532 and the physical component 542, and the content reflected in the physical component 542 of the view 540 can be output through the display of the user terminal.

이와 같은 다운스트림 방식을 통해, 문서의 텍스트가 아닌 콘텐츠 편집과 연관된 뷰(540)와 모델(530)의 데이터를 동기화할 수 있다. 또한, 다운스트림 과정에서 모델(530)의 데이터를 변경한 후 변경된 데이터를 뷰(540)에 반영함으로써, 다양한 문서 편집 애플리케이션들 사이에 동작 방식이 상이하더라도 일관성 있는 문서를 모델링할 수 있다.Through this downstream method, the data of the view 540 and the model 530 related to editing content other than the text of the document can be synchronized. In addition, by changing the data of the model 530 in the downstream process and then reflecting the changed data in the view 540, a consistent document can be modeled even if the operation method is different among various document editing applications.

도 6은 본 개시의 일 실시예에 따른 문서의 텍스트를 선택 영역으로 설정한 경우 업스트림 방식을 통한 문서 제어 방법을 설명하기 위한 흐름도이다. 일 실시예에서, 사용자가 문서 편집 애플리케이션을 이용하여 문서의 일부 텍스트를 선택 영역으로 설정한 경우, 설정된 선택 영역에 대응하는 데이터는 뷰(620)에 저장될 수 있다. 또한, 뷰(620)에 저장된 데이터는 모델(640)로 전송되어 모델(640)에 저장될 수 있다. 여기서, 뷰(620)는 피지컬 셀렉션(Physical Selection)(622)을 포함할 수 있고, 이에 대응하여 모델(640)은 로지컬 셀렉션(Logical Selection)(642)을 포함할 수 있다. 추가적으로, 피지컬 셀렉션(622)은 브라우저 셀렉션(Browser Selection)(624), 및 브라우저 셀렉션(624)의 데이터가 정제된 결과 사용자 단말에 출력되는 선택 영역에 대응하는 데이터를 포함하는 뷰 셀렉션(View Selection)(626)을 포함할 수 있다.FIG. 6 is a flowchart illustrating a method of controlling a document through an upstream method when text of a document is set as a selection area according to an embodiment of the present disclosure. In one embodiment, when a user sets some text in a document as a selection area using a document editing application, data corresponding to the set selection area may be stored in the view 620. Additionally, data stored in the view 620 may be transmitted to the model 640 and stored in the model 640. Here, the view 620 may include a physical selection 622, and correspondingly, the model 640 may include a logical selection 642. Additionally, the physical selection 622 is a browser selection 624, and a view selection including data corresponding to the selection area output to the user terminal as a result of purifying the data of the browser selection 624. It may include (626).

일 실시예에서, 문서의 텍스트를 선택 영역으로 설정하기 위한 사용자의 입력(610)은 브라우저 셀렉션(624)에 저장될 수 있다. 여기서, 브라우저 셀렉션(624)은 문서 편집 애플리케이션(예를 들어, 웹 브라우저)가 내부적으로 관리하는 선택 영역에 대한 데이터를 포함할 수 있다. 예를 들어, 사용자가 문서 편집 애플리케이션을 통해 출력된 문서의 일부 텍스트를 마우스로 드래그 한 경우, 드래그 된 영역에 대한 데이터는 브라우저 셀렉션(624)에 저장될 수 있다.In one embodiment, the user's input 610 to set text in the document as a selection area may be stored in the browser selection 624. Here, the browser selection 624 may include data about the selection area internally managed by the document editing application (eg, web browser). For example, when a user drags some text of a document output through a document editing application with a mouse, data about the dragged area may be stored in the browser selection 624.

일 실시예에서, 브라우저 셀렉션(624)의 데이터는 액션(630)으로 변경되어 모델(640)의 로지컬 셀렉션(642)으로 전송될 수 있고, 전송된 데이터는 로지컬 셀렉션(642)의 적어도 일부에 업데이트될 수 있다. 여기서, 로지컬 셀렉션(642)은 문서의 선택 영역에 대한 데이터를 포함할 수 있다. 예를 들어, 로지컬 셀렉션(642)은, 마우스를 통해 드래그되어 선택된 문서의 객체 또는 그 영역, 문서 상에 표시된 커서 위치 등과 연관된 데이터를 포함할 수 있다. 따라서, 문서 내의 일부 텍스트의 마우스 드래그된 영역에 대응하는 데이터는 로지컬 셀렉션(642)의 적어도 일부에 업데이트될 수 있다.In one embodiment, data in the browser selection 624 may be changed into an action 630 and transmitted to the logical selection 642 of the model 640, and the transmitted data updates at least a portion of the logical selection 642. It can be. Here, the logical selection 642 may include data about the selected area of the document. For example, the logical selection 642 may include data associated with an object or area of a document selected by dragging a mouse, a cursor position displayed on the document, etc. Accordingly, data corresponding to the mouse-dragged area of some text in the document may be updated in at least part of the logical selection 642.

일 실시예에서, 로지컬 셀렉션(642)에 업데이트된 데이터는 뷰 셀렉션(626)으로 전송될 수 있다. 뷰 셀렉션(626)은 전송된 데이터를 뷰 셀렉션(626)의 적어도 일부에 업데이트할 수 있다. 따라서, 로지컬 셀렉션(642), 브라우저 셀렉션(624) 및 뷰 셀렉션(626) 사이의 데이터 동기화가 이루어질 수 있고, 이에 따라 사용자에 의해 선택된 문서 내의 텍스트 영역이 사용자 단말의 디스플레이 상에서 표시될 수 있다.In one embodiment, updated data in logical selection 642 may be transmitted to view selection 626. The view selection 626 may update at least a portion of the view selection 626 with transmitted data. Accordingly, data synchronization can be achieved between the logical selection 642, browser selection 624, and view selection 626, so that the text area in the document selected by the user can be displayed on the display of the user terminal.

도 7은 본 개시의 일 실시예에 따른 문서의 텍스트가 아닌 콘텐츠를 선택 영역으로 설정한 경우 다운스트림 방식을 통한 문서 제어 방법을 설명하기 위한 흐름도이다. 일 실시예에서, 사용자가 문서 편집 애플리케이션을 이용하여 문서의 텍스트가 아닌 콘텐츠를 선택 영역으로 설정하는 경우, 설정된 선택 영역에 대응하는 데이터는 모델(730)에 저장될 수 있다. 또한, 설정된 선택 영역에 대응하는 데이터는 모델(730)에서 뷰(740)로 전송되어 뷰(740)에 저장될 수 있다.FIG. 7 is a flowchart illustrating a method of controlling a document through a downstream method when non-text content of a document is set as a selection area according to an embodiment of the present disclosure. In one embodiment, when a user sets content other than text of a document as a selection area using a document editing application, data corresponding to the set selection area may be stored in the model 730. Additionally, data corresponding to the set selection area may be transmitted from the model 730 to the view 740 and stored in the view 740.

일 실시예에서, 문서의 텍스트가 아닌 콘텐츠를 선택 영역으로 설정하기 위한 사용자의 입력(710)은 액션(720)으로 변경되어 모델(730)의 로지컬 셀렉션(732)로 전송될 수 있다. 예를 들어, 텍스트가 아닌 콘텐츠를 선택 영역으로 설정하는 것은, 키보드 이동으로 커서의 위치를 변경함으로써 텍스트를 선택 영역으로 설정하지 않는 것을 포함할 수 있다. 이 경우, 로지컬 셀렉션(732)은, 문서의 선택 영역에 대한 데이터로써, 로지컬 셀렉션(732)은 키보드 이동으로 인해 변경된 커서의 위치 등과 연관된 데이터를 저장할 수 있다.In one embodiment, the user's input 710 to set non-text content of the document as the selection area may be changed into an action 720 and transmitted to the logical selection 732 of the model 730. For example, setting non-text content as a selection area may include not setting text as a selection area by changing the position of the cursor by moving the keyboard. In this case, the logical selection 732 is data about the selected area of the document, and the logical selection 732 can store data related to the position of the cursor that has changed due to keyboard movement.

일 실시예에서, 로지컬 셀렉션(732)에 저장된 데이터는 뷰(740)의 피지컬 셀렉션(742)으로 전송될 수 있다. 구체적으로, 피지컬 셀렉션(742)의 뷰 셀렉션(744)이 모델(730)의 로지컬 셀렉션(732)로부터 데이터를 수신하여, 뷰 셀렉션(744)의 적어도 일부에 전송된 데이터가 업데이트될 수 있다. 예를 들어, 사용자가 키보드 이동으로 커서의 위치를 변경한 경우, 뷰 셀렉션(744)에 변경된 내용이 업데이트될 수 있다. 그 후, 뷰 셀렉션(744)은 변경된 데이터를 브라우저 셀렉션(746)으로 전송할 수 있고, 브라우저 셀렉션(746)의 적어도 일부에 변경된 데이터가 업데이트될 수 있다. 이에 따라, 로지컬 셀렉션(732), 뷰 셀렉션(744) 및 브라우저 셀렉션(746) 사이에서 데이터 동기화가 이루어질 수 있고, 사용자는 문서 상에서 키보드 이동으로 인해 변경된 커서를 사용자 단말의 디스플레이 상에서 확인할 수 있다.In one embodiment, data stored in logical selection 732 may be transmitted to physical selection 742 of view 740. Specifically, the view selection 744 of the physical selection 742 may receive data from the logical selection 732 of the model 730, and data transmitted to at least a portion of the view selection 744 may be updated. For example, when the user changes the position of the cursor by moving the keyboard, the changed content in the view selection 744 may be updated. Thereafter, the view selection 744 may transmit the changed data to the browser selection 746, and at least a portion of the browser selection 746 may be updated with the changed data. Accordingly, data synchronization can be achieved between the logical selection 732, the view selection 744, and the browser selection 746, and the user can check the cursor that has changed due to keyboard movement on the document on the display of the user terminal.

도 8은 본 개시의 일 실시예에 따른 업스트림 방식과 다운스트림 방식을 모두 이용한 문서 제어 방법(800)의 예시를 나타내는 흐름도이다. 일 실시예에서, 문서 제어 방법(800)은 사용자 단말의 적어도 하나의 프로세서에 의해 수행될 수 있다. 문서 제어 방법(800)은 프로세서가 문서의 편집과 연관된 입력을 수신하는 것으로 개시될 수 있다(S810).FIG. 8 is a flowchart illustrating an example of a document control method 800 using both an upstream method and a downstream method according to an embodiment of the present disclosure. In one embodiment, the document control method 800 may be performed by at least one processor of the user terminal. The document control method 800 may begin with a processor receiving input associated with editing a document (S810).

사용자의 입력이 문서의 텍스트 편집과 연관된 경우, 프로세서는 사용자의 입력과 대응되는 데이터를 문서의 시각화와 연관된 뷰에 반영할 수 있다(S820). 여기서, 사용자의 입력이 문서의 텍스트 편집과 연관된 경우, 사용자의 입력과 대응되는 데이터는, 편집 대상인 문서의 텍스트 및 텍스트의 문서 내의 위치와 연관된 데이터를 포함할 수 있다. 또한, 뷰는 문서의 객체와 해당 객체의 서식과 연관된 정보를 포함하는 피지컬 컴포넌트를 포함할 수 있다. 추가적으로, 뷰는 문서의 선택 영역에 대한 데이터를 포함하는 피지컬 셀렉션을 포함할 수 있다. 또한, 피지컬 셀렉션은, 문서 편집 기능을 갖는 웹 브라우저를 통해 설정된 문서의 선택 영역에 대한 데이터를 포함하는 브라우저 셀렉션, 및 브라우저 셀렉션의 데이터를 정제하여 사용자 단말에 출력되는 선택 영역에 대응하는 데이터를 포함하는 뷰 셀렉션을 포함할 수 있다. 추가로, 뷰는 문서의 텍스트와 연관된 입출력을 제어하는 입력 버퍼(Input Buffer)를 포함할 수 있다. 여기서, 입력 버퍼는 텍스트의 입출력을 처리할 수 있고, 텍스트의 복사 및 붙여넣기 등을 처리할 수 있다.If the user's input is related to text editing of the document, the processor may reflect data corresponding to the user's input to the view associated with the visualization of the document (S820). Here, when the user's input is related to text editing of a document, data corresponding to the user's input may include data associated with the text of the document to be edited and the location of the text within the document. Additionally, the view may include physical components that include information related to the object of the document and the format of the object. Additionally, a view may include a physical selection containing data about a selected area of the document. In addition, the physical selection includes a browser selection that includes data about the selected area of the document set through a web browser with a document editing function, and data corresponding to the selected area that is output to the user terminal by refining the data of the browser selection. It can contain a view selection. Additionally, a view can include an input buffer that controls input and output associated with the document's text. Here, the input buffer can process input and output of text, copy and paste of text, etc.

일 실시예에서, 사용자의 입력이 문서의 텍스트 편집과 연관된 경우, 프로세서는 사용자의 입력과 대응되는 데이터를 피지컬 컴포넌트에 업데이트할 수 있다. 또한, 사용자의 입력이 문서의 텍스트 편집과 연관되고, 문서의 선택 영역과 연관된 경우, 프로세서는 사용자의 입력과 대응되는 데이터를 브라우저 셀렉션에 업데이트할 수 있다.In one embodiment, when the user's input is associated with text editing of a document, the processor may update the physical component with data corresponding to the user's input. Additionally, if the user's input is associated with text editing of the document and is associated with a selection area of the document, the processor may update the browser selection with data corresponding to the user's input.

다른 실시예에서, 사용자의 입력이 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 프로세서는 사용자의 입력과 대응되는 데이터를 문서의 콘텐츠와 연관된 모델에 반영할 수 있다(S830). 여기서, 모델은, 문서의 객체와 객체의 서식과 연관된 정보를 포함하는 로지컬 컴포넌트를 포함할 수 있다. 또한, 모델은 문서의 선택 영역에 대한 데이터를 포함하는 로지컬 셀렉션을 포함할 수 있다.In another embodiment, when the user's input is related to editing of content rather than text of the document, the processor may reflect data corresponding to the user's input to the model associated with the content of the document (S830). Here, the model may include logical components that include information related to the object of the document and the format of the object. Additionally, the model may include a logical selection that includes data about a selected area of the document.

일 실시예에서, 사용자의 입력이 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 사용자의 입력과 대응되는 데이터를 로지컬 컴포넌트에 업데이트할 수 있다. 또한, 사용자의 입력이 문서의 텍스트가 아닌 콘텐츠의 편집과 연관되고, 문서의 선택 영역과 연관된 경우, 프로세서는 사용자의 입력과 대응되는 데이터를 로지컬 셀렉션에 업데이트할 수 있다.In one embodiment, when the user's input is related to editing content rather than text of the document, data corresponding to the user's input may be updated in the logical component. Additionally, if the user's input is associated with editing content other than text of the document and is associated with a selection area of the document, the processor may update data corresponding to the user's input to the logical selection.

그 후, 프로세서는 모델과 뷰를 동기화할 수 있다(S840). 사용자의 입력이 문서의 텍스트 편집과 연관된 경우, 프로세서는 피지컬 컴포넌트에 업데이트된 데이터를 로지컬 컴포넌트로 전송할 수 있고, 전송된 데이터를 로지컬 컴포넌트의 적어도 일부에 업데이트할 수 있다. 또한, 사용자의 입력이 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 프로세서는 로지컬 컴포넌트에 업데이트된 데이터를 피지컬 컴포넌트로 전송할 수 있고, 전송된 데이터를 피지컬 컴포넌트의 적어도 일부에 업데이트할 수 있다.Afterwards, the processor may synchronize the model and view (S840). When the user's input is related to text editing of the document, the processor may transmit updated data to the physical component to the logical component and update the transmitted data to at least a portion of the logical component. Additionally, when the user's input is related to editing content other than text of the document, the processor may transmit updated data to the logical component to the physical component and update the transmitted data to at least a portion of the physical component.

일 실시예에서, 사용자의 입력이 문서의 텍스트 편집과 연관되고, 문서의 선택 영역과 연관된 경우, 프로세서는 브라우저 셀렉션에 업데이트된 데이터를 로지컬 셀렉션으로 전송할 수 있고, 전송된 데이터를 로지컬 셀렉션의 적어도 일부에 업데이트할 수 있다. 추가적으로, 프로세서는 로지컬 셀렉션에 업데이트된 데이터를 뷰 셀렉션으로 전송할 수 있고, 업데이트된 데이터를 뷰 셀렉션의 적어도 일부에 업데이트할 수 있다.In one embodiment, when the user's input is associated with text editing of a document and is associated with a selection area of the document, the processor may transmit updated data to the browser selection to the logical selection and select the transmitted data to at least a portion of the logical selection. It can be updated. Additionally, the processor may transmit updated data in the logical selection to the view selection and update the updated data to at least a portion of the view selection.

일 실시예에서, 사용자의 입력이 문서의 텍스트가 아닌 콘텐츠의 편집과 연관되고, 문서의 선택 영역과 연관된 경우, 프로세서는 로지컬 셀렉션에 업데이트된 데이터를 뷰 셀렉션으로 전송할 수 있고, 업데이트된 데이터를 뷰 셀렉션의 적어도 일부에 업데이트할 수 있다. 추가적으로, 프로세서는 뷰 셀렉션에 업데이트된 데이터를 브라우저 셀렉션으로 전송할 수 있고, 업데이트된 데이터를 브라우저 셀렉션의 적어도 일부에 업데이트할 수 있다.In one embodiment, if the user's input involves editing non-text content of the document and is associated with a selection of the document, the processor may send updated data to the logical selection to the view selection and send the updated data to the view selection. At least part of the selection can be updated. Additionally, the processor may transmit updated data in the view selection to the browser selection and update the updated data in at least a portion of the browser selection.

일 실시예에서, 프로세서는 동기화된 피지컬 컴포넌트의 데이터를 사용자 단말의 디스플레이 상에 출력할 수 있다. 또한, 프로세서는 동기화된 뷰 셀렉션의 데이터를 사용자 단말의 디스플레이 상에 출력할 수 있다.In one embodiment, the processor may output data of the synchronized physical component on the display of the user terminal. Additionally, the processor may output synchronized view selection data on the display of the user terminal.

도 8에서 도시된 흐름도는 예시일 뿐이며, 일부 실시예에서는 다르게 구현될 수 있다. 예를 들면, 일부 단계가 추가 또는 생략되거나, 일부 단계의 순서가 바뀌거나, 일부 단계가 반복 수행될 수 있다.The flowchart shown in FIG. 8 is only an example and may be implemented differently in some embodiments. For example, some steps may be added or omitted, the order of some steps may be changed, or some steps may be performed repeatedly.

상술한 방법은 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램으로 제공될 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록 수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The above-described method may be provided as a computer program stored in a computer-readable recording medium for execution on a computer. Media may be used to continuously store executable programs on a computer, or may be temporarily stored for execution or download. In addition, the medium may be a variety of recording or storage means in the form of a single or several pieces of hardware combined. It is not limited to a medium directly connected to a computer system and may be distributed over a network. Examples of media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and There may be something configured to store program instructions, including ROM, RAM, flash memory, etc. Additionally, examples of other media include recording or storage media managed by app stores that distribute applications, sites or servers that supply or distribute various other software, etc.

본 개시의 방법, 동작 또는 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 통상의 기술자들은 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 대체를 명확하게 설명하기 위해, 다양한 예시적인 구성요소들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능적 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는 지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 요구사항들에 따라 달라진다. 통상의 기술자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안 된다.The methods, operations, or techniques of this disclosure may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. Those skilled in the art will understand that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented in electronic hardware, computer software, or combinations of both. To clearly illustrate this interchange of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and design requirements imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementations should not be interpreted as causing a departure from the scope of the present disclosure.

하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들(digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들(programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들(field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본 개시에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다.In a hardware implementation, the processing units used to perform the techniques may include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs). ), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, and other electronic units designed to perform the functions described in this disclosure. , a computer, or a combination thereof.

따라서, 본 개시와 연계하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 구성의 조합으로서 구현될 수도 있다.Accordingly, the various illustrative logical blocks, modules, and circuits described in connection with this disclosure may be general-purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or It may be implemented or performed as any combination of those designed to perform the functions described in. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, such as a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other configuration.

펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read-only memory; ROM), 비휘발성 RAM(non-volatile random access memory; NVRAM), PROM(programmable read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable PROM), 플래시 메모리, 컴팩트 디스크(compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로서 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본 개시에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다.For firmware and/or software implementations, techniques include random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), and PROM ( on computer-readable media such as programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage devices, etc. It may also be implemented as stored instructions. Instructions may be executable by one or more processors and may cause the processor(s) to perform certain aspects of the functionality described in this disclosure.

소프트웨어로 구현되는 경우, 상기 기법들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독 가능한 매체 상에 저장되거나 또는 컴퓨터 판독 가능한 매체를 통해 전송될 수도 있다. 컴퓨터 판독가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하여 컴퓨터 저장 매체들 및 통신 매체들 양자를 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체들일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다.When implemented in software, the techniques may be stored on or transmitted through a computer-readable medium as one or more instructions or code. Computer-readable media includes both computer storage media and communication media, including any medium that facilitates transfer of a computer program from one place to another. Storage media may be any available media that can be accessed by a computer. By way of non-limiting example, such computer readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or the desired program code in the form of instructions or data structures. It can be used to transfer or store data and can include any other media that can be accessed by a computer. Any connection is also properly termed a computer-readable medium.

예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 본원에서 사용된 디스크(disk) 와 디스크(disc)는, CD, 레이저 디스크, 광 디스크, DVD(digital versatile disc), 플로피디스크, 및 블루레이 디스크를 포함하며, 여기서 디스크들(disks)은 보통 자기적으로 데이터를 재생하고, 반면 디스크들(discs) 은 레이저를 이용하여 광학적으로 데이터를 재생한다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.For example, if the Software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair cable, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, , fiber optic cable, twisted pair, digital subscriber line, or wireless technologies such as infrared, radio, and microwave are included within the definition of medium. As used herein, disk and disk include CD, laser disk, optical disk, digital versatile disc (DVD), floppy disk, and Blu-ray disk, where disks are usually magnetic. It reproduces data optically, while discs reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media.

소프트웨어 모듈은, RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체 내에 상주할 수도 있다. 예시적인 저장 매체는, 프로세가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있도록, 프로세서에 연결될 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서와 저장 매체는 ASIC 내에 존재할 수도 있다. ASIC은 유저 단말 내에 존재할 수도 있다. 대안으로, 프로세서와 저장 매체는 유저 단말에서 개별 구성요소들로서 존재할 수도 있다.A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM, or any other form of storage medium known. An exemplary storage medium may be coupled to the processor such that the processor may read information from or write information to the storage medium. Alternatively, the storage medium may be integrated into the processor. The processor and storage medium may reside within an ASIC. ASIC may exist within the user terminal. Alternatively, the processor and storage medium may exist as separate components in the user terminal.

이상 설명된 실시예들이 하나 이상의 독립형 컴퓨터 시스템에서 현재 개시된 주제의 양태들을 활용하는 것으로 기술되었으나, 본 개시는 이에 한정되지 않고, 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 본 개시에서 주제의 양상들은 복수의 프로세싱 칩들이나 장치들에서 구현될 수도 있고, 스토리지는 복수의 장치들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 장치들은 PC들, 네트워크 서버들, 및 휴대용 장치들을 포함할 수도 있다.Although the above-described embodiments have been described as utilizing aspects of the presently disclosed subject matter in one or more standalone computer systems, the disclosure is not limited thereto and may also be implemented in conjunction with any computing environment, such as a network or distributed computing environment. . Furthermore, aspects of the subject matter of this disclosure may be implemented in multiple processing chips or devices, and storage may be similarly effected across the multiple devices. These devices may include PCs, network servers, and portable devices.

본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 개시의 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present disclosure has been described in relation to some embodiments in this specification, various modifications and changes may be made without departing from the scope of the present disclosure as can be understood by a person skilled in the art to which the invention pertains. Additionally, such modifications and changes should be considered to fall within the scope of the claims appended hereto.

110: 사용자 단말
112: 문서
120: 뷰
130: 모델
140: 업스트림 방식
150: 다운스트림 방식
110: user terminal
112: Document
120: view
130: model
140: Upstream method
150: Downstream method

Claims (19)

적어도 하나의 프로세서에 의해 수행되는, 문서 제어 방법에 있어서,
상기 문서의 편집과 연관된 사용자의 입력을 수신하는 단계;
상기 사용자의 입력이 상기 문서의 텍스트 편집과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터를 상기 문서의 시각화와 연관된 뷰(View)에 반영하는 단계;
상기 사용자의 입력이 상기 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터를 상기 문서의 콘텐츠와 연관된 모델(Model)에 반영하는 단계; 및
상기 모델과 상기 뷰를 동기화하는 단계를 포함하는, 문서 제어 방법.
In a document control method performed by at least one processor,
Receiving user input associated with editing the document;
When the user's input is associated with text editing of the document, reflecting data corresponding to the user's input to a view associated with visualization of the document;
When the user's input is related to editing of content other than text of the document, reflecting data corresponding to the user's input to a model associated with the content of the document; and
A document control method comprising synchronizing the model and the view.
제1항에 있어서,
상기 사용자의 입력이 상기 문서의 텍스트 편집과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터는, 상기 문서의 텍스트 및 상기 텍스트의 상기 문서 내의 위치와 연관된 데이터를 포함하는, 문서 제어 방법.
According to paragraph 1,
When the user's input is associated with editing text of the document, data corresponding to the user's input includes data associated with text of the document and a location of the text within the document.
제1항에 있어서,
상기 모델은, 상기 문서의 객체와 상기 객체의 서식과 연관된 정보를 포함하는 로지컬 컴포넌트(Logical Component)를 포함하고,
상기 뷰는, 상기 문서의 객체와 상기 객체의 서식과 연관된 정보를 포함하는 피지컬 컴포넌트(Physical Component)를 포함하는, 문서 제어 방법.
According to paragraph 1,
The model includes a logical component that includes information related to the object of the document and the format of the object,
The view includes a physical component including information related to the object of the document and the format of the object.
제3항에 있어서,
상기 사용자의 입력이 상기 문서의 텍스트 편집과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터를 상기 문서의 시각화와 연관된 뷰에 반영하는 단계는,
상기 사용자의 입력과 대응되는 데이터를 상기 피지컬 컴포넌트에 업데이트하는 단계를 포함하는, 문서 제어 방법.
According to paragraph 3,
When the user's input is associated with text editing of the document, reflecting data corresponding to the user's input in a view associated with visualization of the document includes,
A document control method comprising updating data corresponding to the user's input to the physical component.
제4항에 있어서,
상기 모델과 상기 뷰를 동기화하는 단계는,
상기 피지컬 컴포넌트에 업데이트된 상기 데이터를 상기 로지컬 컴포넌트로 전송하는 단계; 및
상기 전송된 데이터를 상기 로지컬 컴포넌트의 적어도 일부에 업데이트하는 단계를 포함하는, 문서 제어 방법.
According to paragraph 4,
The step of synchronizing the model and the view is,
transmitting the data updated to the physical component to the logical component; and
A document control method comprising updating at least a portion of the logical component with the transmitted data.
제3항에 있어서,
상기 사용자의 입력이 상기 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터를 상기 문서의 콘텐츠와 연관된 모델에 반영하는 단계는,
상기 사용자의 입력과 대응되는 데이터를 상기 로지컬 컴포넌트에 업데이트하는 단계를 포함하는, 문서 제어 방법.
According to paragraph 3,
When the user's input is related to editing of content other than the text of the document, the step of reflecting data corresponding to the user's input to a model associated with the content of the document includes,
A document control method comprising updating data corresponding to the user's input to the logical component.
제6항에 있어서,
상기 모델과 상기 뷰를 동기화하는 단계는,
상기 로지컬 컴포넌트에 업데이트된 상기 데이터를 상기 피지컬 컴포넌트로 전송하는 단계; 및
상기 전송된 데이터를 상기 피지컬 컴포넌트의 적어도 일부에 업데이트하는 단계를 포함하는, 문서 제어 방법.
According to clause 6,
The step of synchronizing the model and the view is,
transmitting the data updated to the logical component to the physical component; and
A document control method comprising updating at least a portion of the physical component with the transmitted data.
제1항에 있어서
상기 모델은, 상기 문서의 선택 영역에 대한 데이터를 포함하는 로지컬 셀렉션(Logical Selection)을 포함하고,
상기 뷰는, 상기 문서의 선택 영역에 대한 데이터를 포함하는 피지컬 셀렉션(Physical Selection)을 포함하는, 문서 제어 방법.
In paragraph 1
The model includes a logical selection containing data about the selected area of the document,
The view includes a physical selection including data about the selected area of the document.
제8항에 있어서,
상기 피지컬 셀렉션은, 브라우저가 가지는 상기 문서의 선택 영역에 대한 데이터를 포함하는 브라우저 셀렉션(Brower Selection) 및 상기 브라우저 셀렉션의 데이터를 정제하여 사용자 단말에 출력되는 선택 영역에 대응하는 데이터를 포함하는 뷰 셀렉션(View Selection)을 포함하는, 문서 제어 방법.
According to clause 8,
The physical selection includes a browser selection that contains data about the selected area of the document held by the browser, and a view selection that contains data corresponding to the selected area that is output to the user terminal by refining the data of the browser selection. Document control method, including (View Selection).
제9항에 있어서,
상기 사용자의 입력이 상기 문서의 텍스트 편집과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터를 상기 문서의 시각화와 연관된 뷰(View)에 반영하는 단계는,
상기 사용자의 입력이 상기 문서의 선택 영역과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터를 상기 브라우저 셀렉션에 업데이트하는 단계를 포함하는, 문서 제어 방법.
According to clause 9,
When the user's input is associated with text editing of the document, the step of reflecting data corresponding to the user's input to a view associated with visualization of the document includes,
When the user's input is associated with a selection area of the document, updating data corresponding to the user's input to the browser selection.
제10항에 있어서,
상기 모델과 상기 뷰를 동기화하는 단계는,
상기 브라우저 셀렉션에 업데이트된 상기 데이터를 상기 로지컬 셀렉션으로 전송하는 단계; 및
상기 전송된 데이터를 상기 로지컬 셀렉션의 적어도 일부에 업데이트하는 단계를 포함하는, 문서 제어 방법.
According to clause 10,
The step of synchronizing the model and the view is,
transmitting the data updated in the browser selection to the logical selection; and
A document control method comprising updating the transmitted data to at least a portion of the logical selection.
제11항에 있어서,
상기 로지컬 셀렉션에 업데이트된 상기 데이터를 상기 뷰 셀렉션으로 전송하는 단계; 및
업데이트된 상기 데이터를 상기 뷰 셀렉션의 적어도 일부에 업데이트하는 단계를 더 포함하는, 문서 제어 방법.
According to clause 11,
transmitting the updated data to the logical selection to the view selection; and
A document control method further comprising updating at least a portion of the view selection with the updated data.
제9항에 있어서,
상기 사용자의 입력이 상기 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터를 상기 문서의 콘텐츠와 연관된 모델에 반영하는 단계는,
상기 사용자의 입력이 상기 문서의 선택 영역과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터를 상기 로지컬 셀렉션에 업데이트하는 단계를 포함하는, 문서 제어 방법.
According to clause 9,
When the user's input is related to editing of content other than the text of the document, the step of reflecting data corresponding to the user's input to a model associated with the content of the document includes,
When the user's input is associated with a selection area of the document, updating data corresponding to the user's input to the logical selection.
제13항에 있어서,
상기 모델과 상기 뷰를 동기화하는 단계는,
상기 로지컬 셀렉션에 업데이트된 상기 데이터를 상기 뷰 셀렉션으로 전송하는 단계;
업데이트된 상기 데이터를 상기 뷰 셀렉션의 적어도 일부에 업데이트하는 단계;
상기 뷰 셀렉션에 업데이트된 상기 데이터를 상기 브라우저 셀렉션으로 전송하는 단계; 및
업데이트된 상기 데이터를 상기 브라우저 셀렉션의 적어도 일부에 업데이트하는 단계를 포함하는, 문서 제어 방법.
According to clause 13,
The step of synchronizing the model and the view is,
transmitting the updated data to the logical selection to the view selection;
updating at least a portion of the view selection with the updated data;
transmitting the data updated in the view selection to the browser selection; and
A document control method comprising updating at least a portion of the browser selection with the updated data.
제1항에 있어서,
상기 뷰는, 상기 문서의 텍스트와 연관된 입출력을 제어하는 입력 버퍼(Input Buffer)를 포함하는, 문서 제어 방법.
According to paragraph 1,
The view includes an input buffer that controls input and output associated with text of the document.
제3항에 있어서,
상기 동기화된 뷰의 상기 피지컬 컴포넌트의 데이터를 사용자 단말의 디스플레이 상에 출력하는 단계를 더 포함하는, 문서 제어 방법.
According to paragraph 3,
A document control method further comprising outputting data of the physical component of the synchronized view on a display of a user terminal.
제9항에 있어서,
상기 동기화된 뷰의 상기 뷰 셀렉션의 데이터를 사용자 단말의 디스플레이 상에 출력하는 단계를 더 포함하는, 문서 제어 방법.
According to clause 9,
A document control method further comprising outputting data of the view selection of the synchronized view on a display of a user terminal.
제1항 내지 제17항 중 어느 한 항에 따른 방법을 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a computer-readable recording medium for executing the method according to any one of claims 1 to 17 on a computer.
문서 제어 시스템으로서,
통신 모듈;
메모리;
디스플레이; 및
상기 메모리와 연결되고, 상기 메모리에 포함된 컴퓨터 판독 가능한 적어도 하나의 프로그램을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
상기 적어도 하나의 프로그램은,
상기 문서의 편집과 연관된 사용자의 입력을 수신하고,
상기 사용자의 입력이 상기 문서의 텍스트 편집과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터를 상기 문서의 시각화와 연관된 뷰에 반영하고,
상기 사용자의 입력이 상기 문서의 텍스트가 아닌 콘텐츠의 편집과 연관된 경우, 상기 사용자의 입력과 대응되는 데이터를 상기 문서의 콘텐츠와 연관된 모델에 반영하고,
상기 모델과 상기 뷰를 동기화하기 위한 명령어들을 포함하는, 문서 제어 시스템.
As a document control system,
communication module;
Memory;
display; and
At least one processor connected to the memory and configured to execute at least one computer-readable program included in the memory,
The at least one program is,
Receiving user input associated with editing the document,
If the user's input is associated with text editing of the document, reflect data corresponding to the user's input in a view associated with visualization of the document,
If the user's input is related to editing of content other than text of the document, reflecting data corresponding to the user's input in a model associated with the content of the document,
A document control system, comprising instructions for synchronizing the model and the view.
KR1020220073131A 2022-06-15 2022-06-15 Method and system for controlling document using upstream and downstream KR20230172354A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220073131A KR20230172354A (en) 2022-06-15 2022-06-15 Method and system for controlling document using upstream and downstream

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220073131A KR20230172354A (en) 2022-06-15 2022-06-15 Method and system for controlling document using upstream and downstream

Publications (1)

Publication Number Publication Date
KR20230172354A true KR20230172354A (en) 2023-12-22

Family

ID=89309806

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220073131A KR20230172354A (en) 2022-06-15 2022-06-15 Method and system for controlling document using upstream and downstream

Country Status (1)

Country Link
KR (1) KR20230172354A (en)

Similar Documents

Publication Publication Date Title
US20200278774A1 (en) Cached database and synchronization system for providing dynamic linked panels in user interface
Kouzis-Loukas Learning scrapy
US10534830B2 (en) Dynamically updating a running page
US11941344B2 (en) Document differences analysis and presentation
US9727538B2 (en) Editing a fragmented document
US20080263101A1 (en) Data Processing Device and Data Processing Method
US20060015816A1 (en) Framework for development and customization of web services deployment descriptors
US10372792B2 (en) Document transformation performance via incremental fragment transformations
US20130019189A1 (en) Augmented editing of an online document
US20130198092A1 (en) Computer-assisted patent application preparation
US11822615B2 (en) Contextual editing in a page rendering system
EP3418919A1 (en) User interface for managing synchronization between data sources and cache databases
US20080005659A1 (en) Data Processing Device, Document Processing Device, and Document Processing Method
US20110119605A1 (en) Dynamic editors for functionally composed ui
MX2010011403A (en) Techniques to modify a document using a latent transfer surface.
US20090021767A1 (en) Document processing device
US11119896B1 (en) Browser based visual debugging
US20080256092A1 (en) Data Processing Device and Data Processing Method
WO2005098662A1 (en) Document processing device and document processing method
WO2005098661A1 (en) Document processing device and document processing method
US20170371852A1 (en) System and method for in-browser editing
KR20230172354A (en) Method and system for controlling document using upstream and downstream
US11756528B2 (en) Automatic generation of videos for digital products using instructions of a markup document on web based documents
JP2007183849A (en) Document processor
EP2972666B1 (en) Visualization interface for information object system