KR20240056278A - Method for data recovery and computing apparatus using the same - Google Patents

Method for data recovery and computing apparatus using the same Download PDF

Info

Publication number
KR20240056278A
KR20240056278A KR1020220136713A KR20220136713A KR20240056278A KR 20240056278 A KR20240056278 A KR 20240056278A KR 1020220136713 A KR1020220136713 A KR 1020220136713A KR 20220136713 A KR20220136713 A KR 20220136713A KR 20240056278 A KR20240056278 A KR 20240056278A
Authority
KR
South Korea
Prior art keywords
data
time
information
history information
application
Prior art date
Application number
KR1020220136713A
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 KR1020220136713A priority Critical patent/KR20240056278A/en
Publication of KR20240056278A publication Critical patent/KR20240056278A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치에 관한 것으로, 본 발명의 일 실시예에 의한 데이터 복구 방법은 어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터들 중에서 중복되는 데이터는 제외하고 기록하여, 히스토리 정보를 생성하는 단계; 및 특정시점을 입력받으면, 상기 히스토리 정보를 기반으로 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 단계를 포함할 수 있다.The present invention relates to a data recovery method and a computing device using the same. The data recovery method according to an embodiment of the present invention is a method of recovering data from data at each detection point when a change in data is detected due to execution of an application. Excluding and recording data to generate history information; And when a specific point in time is input, it may include returning the state of the application to the specific point in time based on the history information.

Description

데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치 {Method for data recovery and computing apparatus using the same}Data recovery method and computing apparatus using the same {Method for data recovery and computing apparatus using the same}

본 발명은 특정 시점으로 데이터를 복구하거나 되돌릴 수 있는 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치에 관한 것이다.The present invention relates to a data recovery method that can restore or revert data to a specific point in time, and a computing device using the same.

문서편집기 등의 어플리케이션의 경우, 사용자의 입력을 되돌리는 실행취소(undo)나, 다시 실행하는 복구(redo) 기능을 지원할 수 있다. 즉, 어플리케이션의 데이터에 변경이 발생한 시점마다 데이터를 저장함으로써, 원하는 시점으로 어플리케이션의 상태를 복구하도록 할 수 있다. In the case of applications such as document editors, they can support undo (undo) functions to return user input or recovery (redo) functions to redo them. In other words, by saving the data whenever a change occurs in the application data, the state of the application can be restored to a desired point in time.

종래에는 각각의 시점마다 전체 데이터들을 저장하는 스냅샷(snapshot) 방식이나, 전체 데이터를 저장하는 대신에 각각의 데이터들에 적용된 각각의 연산들을 저장하는 이벤트 소싱(event sourcing) 방식을 활용하였다.Conventionally, a snapshot method was used to store all data at each point in time, or an event sourcing method was used to store each operation applied to each data instead of storing all data.

그러나, 스냅샷 방식의 경우 각각의 시점마다 전체 어플리케이션의 데이터들을 저장해야하므로 메모리 소모가 크게 발생할 수 있다. 또한, 실행취소(undo)나 재실행(redo) 수행시 대량의 데이터 처리가 필요하므로, 처리시간이 오래걸리는 등의 문제점이 존재한다. However, in the case of the snapshot method, data of the entire application must be stored at each point in time, which can result in significant memory consumption. In addition, since a large amount of data needs to be processed when performing undo or redo, there are problems such as long processing time.

또한, 이벤트 소싱 방식의 경우에는, 현재 시점을 기준으로 저장된 연산의 반대 연산, 즉 역연산을 수행하거나, 처음부터 원하는 시점까지의 모든 연산을 다시 실행할 필요가 있다. 그러나, 이 경우 모든 연산에 대해 역연산을 미리 정의해야하는 불편함이 존재하며, 처음부터 원하는 시점까지의 연산을 다시 실행하는 경우에는 연산량 증가 및 그에 따른 처리시간 증가 등의 문제점이 존재한다.Additionally, in the case of the event sourcing method, it is necessary to perform the opposite operation of the stored operation based on the current time, that is, perform an inverse operation, or re-execute all operations from the beginning to the desired time. However, in this case, there is the inconvenience of having to define inverse operations in advance for all operations, and when re-executing operations from the beginning to a desired point, there are problems such as an increase in the amount of calculations and a corresponding increase in processing time.

대한민국 공개특허공보 제10-2017-0054767호Republic of Korea Patent Publication No. 10-2017-0054767

본 발명은 히스토리 정보를 기반으로 어플리케이션의 상태를 특정시점으로 복구할 수 있는, 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치를 제공하고자 한다.The present invention seeks to provide a data recovery method and a computing device using the same that can restore the state of an application to a specific point in time based on history information.

본 발명은 각각의 감지시점에 저장하는 데이터의 양을 최소화할 수 있는, 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치를 제공하고자 한다.The present invention seeks to provide a data recovery method and a computing device using the same that can minimize the amount of data stored at each detection point.

본 발명은 상대적으로 소량인 변경된 데이터를 활용하여 데이터 복구를 수행할 수 있는 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치를 제공하고자 한다.The present invention seeks to provide a data recovery method capable of performing data recovery using a relatively small amount of changed data and a computing device using the same.

본 발명의 일 실시예에 의한 데이터 복구 방법은, 컴퓨팅 장치 내 프로세서에 의해 수행되는, 데이터 복구 방법에 관한 것으로, 어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터들 중에서 중복되는 데이터는 제외하고 기록하여, 히스토리 정보를 생성하는 단계; 및 특정시점을 입력받으면, 상기 히스토리 정보를 기반으로 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 단계를 포함할 수 있다.The data recovery method according to an embodiment of the present invention relates to a data recovery method performed by a processor in a computing device. When a change in data due to execution of an application is detected, among the data at each detection point, Generating history information by excluding and recording duplicate data; And when a specific point in time is input, it may include returning the state of the application to the specific point in time based on the history information.

본 발명의 일 실시예에 의한 컴퓨팅 장치는, 프로세서를 포함하는 컴퓨팅 장치로서, 상기 프로세서는, 어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터들중에서 중복되는 데이터는 제외하고 기록하여 히스토리 정보를 생성하고, 특정시점을 입력받으면, 상기 히스토리 정보를 기반으로 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 것을 수행할 수 있다.A computing device according to an embodiment of the present invention is a computing device including a processor. When a change in data due to execution of an application is detected, the processor excludes duplicate data from the data at each detection point. and records to generate history information, and when a specific point in time is input, the state of the application can be returned to the specific point in time based on the history information.

덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.Additionally, the means for solving the above problems do not enumerate all the features of the present invention. The various features of the present invention and the resulting advantages and effects can be understood in more detail by referring to the specific embodiments below.

본 발명의 일 실시예에 의한 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치에 의하면, 히스토리 정보 생성시 해당 어플리케이션의 전체 데이터들을 중복하여 저장하지 않고, 감지 시점에서 변경된 데이터만을 추가로 저장하므로, 히스토리 정보 생성을 위한 메모리 소모를 최소화할 수 있다. According to the data recovery method according to an embodiment of the present invention and the computing device using the same, when generating history information, the entire data of the application is not stored redundantly, but only the data that has changed at the time of detection is additionally stored, thereby preventing the generation of history information. Memory consumption can be minimized.

또한, 본 발명의 일 실시예에 의한 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치에 의하면, 데이터 복구시에도 상대적으로 소량인 변경된 데이터만을 처리하면 되므로, 처리속도 면에서도 성능을 향상시키는 것이 가능하다.In addition, according to the data recovery method and the computing device using the same according to an embodiment of the present invention, only a relatively small amount of changed data needs to be processed during data recovery, so it is possible to improve performance in terms of processing speed.

다만, 본 발명의 실시예들에 따른 데이터 복구 방법 및 이를 이용하는 컴퓨팅 장치가 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the effects that can be achieved by the data recovery method and the computing device using the same according to the embodiments of the present invention are not limited to those mentioned above, and other effects not mentioned can be understood from the description below. It will be clearly understandable to those with ordinary knowledge in the technical field.

도1은 본 발명의 일 실시예에 의한 컴퓨팅 장치를 나타내는 블록도이다.
도2는 본 발명의 일 실시예에 의한 히스토리 정보를 나타내는 예시도이다.
도3은 본 발명의 일 실시예에 의한 히스토리 정보를 이용하여 T5 시점에서 T4 시점으로의 데이터 복구를 나타내는 예시도이다.
도4는 본 발명의 일 실시예에 의한 히스토리 정보를 이용하여 T3 시점에서 T4 시점으로의 데이터 복구를 나타내는 예시도이다.
도5는 본 발명의 다른 실시예에 의한 컴퓨팅 장치를 나타내는 블록도이다.
도6은 본 발명의 일 실시예에 의한 데이터 복구 방법을 나타내는 순서도이다.
1 is a block diagram showing a computing device according to an embodiment of the present invention.
Figure 2 is an exemplary diagram showing history information according to an embodiment of the present invention.
Figure 3 is an exemplary diagram showing data recovery from time T 5 to time T 4 using history information according to an embodiment of the present invention.
Figure 4 is an exemplary diagram showing data recovery from time T 3 to time T 4 using history information according to an embodiment of the present invention.
Figure 5 is a block diagram showing a computing device according to another embodiment of the present invention.
Figure 6 is a flowchart showing a data recovery method according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 즉, 본 발명에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.Hereinafter, embodiments disclosed in the present specification will be described in detail with reference to the attached drawings. However, identical or similar components will be assigned the same reference numbers regardless of reference numerals, and duplicate descriptions thereof will be omitted. The suffixes “module” and “part” for components used in the following description are given or used interchangeably only for the ease of preparing the specification, and do not have distinct meanings or roles in themselves. That is, the term 'unit' used in the present invention refers to a hardware component such as software, FPGA, or ASIC, and the 'unit' performs certain roles. However, 'wealth' is not limited to software or hardware. The 'part' may be configured to reside on an addressable storage medium and may be configured to run on one or more processors. Therefore, as an example, 'part' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, procedures, Includes subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functionality provided within the components and 'parts' may be combined into a smaller number of components and 'parts' or may be further separated into additional components and 'parts'.

또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Additionally, in describing the embodiments disclosed in this specification, if it is determined that detailed descriptions of related known technologies may obscure the gist of the embodiments disclosed in this specification, the detailed descriptions will be omitted. In addition, the attached drawings are only for easy understanding of the embodiments disclosed in this specification, and the technical idea disclosed in this specification is not limited by the attached drawings, and all changes included in the spirit and technical scope of the present invention are not limited. , should be understood to include equivalents or substitutes.

도1은 본 발명의 일 실시예에 의한 컴퓨팅 장치를 나타내는 블록도이다.1 is a block diagram showing a computing device according to an embodiment of the present invention.

도1을 참조하면, 본 발명의 일 실시예에 의한 컴퓨팅 장치는, 어플리케이션(A), 메모리(B), 히스토리 관리부(110) 및 데이터 복구부(120)를 포함할 수 있다. Referring to Figure 1, a computing device according to an embodiment of the present invention may include an application (A), a memory (B), a history management unit 110, and a data recovery unit 120.

이하 도1을 참조하여 본 발명의 일 실시예에 의한 컴퓨팅 장치를 설명한다.Hereinafter, a computing device according to an embodiment of the present invention will be described with reference to FIG. 1.

어플리케이션(A)은 컴퓨팅 장치(100) 내에 설치될 수 있으며, 컴퓨팅 장치 내 메모리 상에 실행 파일 등이 로드되어, 프로세서에 의해 실행될 수 있다. 어플리케이션(A)은 컴퓨팅 장치(100) 내에 설치되어 실행될 수 있는 것이면 어떠한 것도 해당할 수 있으며, 실시예에 따라서는 문서편집기(text editor)가 어플리케이션(A)에 해당할 수 있다.The application (A) may be installed in the computing device 100, and an executable file, etc. may be loaded onto the memory of the computing device and executed by the processor. The application (A) may correspond to anything that can be installed and executed in the computing device 100, and depending on the embodiment, a text editor may correspond to the application (A).

컴퓨팅 장치(100) 내에서 어플리케이션(A)이 실행되면, 컴퓨팅 장치(100)는 메모리(M) 상에 해당 어플리케이션(A)을 위한 전용 공간을 할당할 수 있다. 여기서, 어플리케이션(A)의 실행에 따라 생성된 데이터들은 해당 전용 공간 내에 저장될 수 있다.When an application (A) is executed within the computing device 100, the computing device 100 may allocate a dedicated space for the application (A) on the memory (M). Here, data generated according to the execution of application A may be stored in the corresponding dedicated space.

사용자는 컴퓨팅 장치(100)를 이용하여 어플리케이션(A)을 실행할 수 있으며, 어플리케이션(A)은 전용 공간 내 저장된 데이터를 읽거나(read), 쓰는(write) 등의 동작을 수행할 수 있다.The user can execute the application (A) using the computing device 100, and the application (A) can perform operations such as reading or writing data stored in the dedicated space.

예를 들어, 어플리케이션(A)은 문서편집기일 수 있으며, 사용자는 문서편집기 내에서 문자나 기호, 숫자, 도형, 표 등 다양한 객체들을 입력하거나 삭제하는 등 다양한 작업을 수행할 수 있다. 이 경우, 사용자가 수행한 작업들은 메모리(A) 내 전용 공간에 기록되고, 그에 따라 사용자가 작성한 문서가 저장될 수 있다. For example, the application (A) may be a document editor, and the user can perform various tasks within the document editor, such as entering or deleting various objects such as letters, symbols, numbers, shapes, and tables. In this case, the tasks performed by the user are recorded in a dedicated space within the memory A, and documents written by the user can be stored accordingly.

여기서, 사용자는 어떤 문장을 작성한 후 삭제하였다가, 삭제한 문장을 되돌리고자 하거나, 삭제한 문장을 되돌린 이후 삭제하는 동작을 다시 수행하고자 하는 경우 등이 있을 수 있다. 이와 같이 사용자의 입력을 되돌리는 것을 실행취소(undo), 다시 실행하도록 하는 것을 재실행(redo)이라고 하며, 이를 위해서는 사용자가 입력한 내용들을 문서편집기가 각각의 입력순서에 따라 미리 저장하고 있어야 한다. 즉, 어플리케이션의 데이터에 변경이 발생한 시점마다 데이터를 저장해 두면, 원하는 시점으로 어플리케이션의 상태를 복구하는 것이 가능하다. 이를 통하여, 특정 작업을 수행하기 이전 상태로 어플리케이션을 복구하거나, 다시 해당 특정 작업을 수행한 원래의 상태로 돌아가는 것도 가능하다.Here, there may be a case where the user writes a sentence and then deletes it, and then wants to return the deleted sentence, or wants to perform the deletion operation again after returning the deleted sentence. In this way, reverting the user's input is called undo, and redoing it again is called redo. To do this, the document editor must store the contents entered by the user in advance according to the order of each input. In other words, if you save the data every time a change occurs in the application data, it is possible to restore the application state to the desired point in time. Through this, it is possible to restore the application to the state before performing a specific task, or to return to the original state after performing the specific task.

종래에는 각각의 시점마다 전체 데이터들을 저장하는 스냅샷(snapshot) 방식이나, 전체 데이터를 저장하는 대신에 각각의 데이터들에 적용된 각각의 연산들을 저장하는 이벤트 소싱(event sourcing) 방식을 활용하였다.Conventionally, a snapshot method was used to store all data at each point in time, or an event sourcing method was used to store each operation applied to each data instead of storing all data.

그러나, 스냅샷 방식의 경우 각각의 시점에서의 전체 어플리케이션의 데이터를 저장해야 하므로 메모리 소모가 크고, 저장 및 복구시 대량의 데이터를 처리해야할 수 있으므로, 실행취소나 재실행 수행시 처리시간이 오래걸리는 등의 문제점이 존재하였다. However, in the case of the snapshot method, the data of the entire application at each point must be saved, so memory consumption is large, and a large amount of data may need to be processed during storage and recovery, so undo or redo takes a long time, etc. There was a problem.

또한, 이벤트 소싱 방식의 경우에는, 현재 시점을 기준으로 저장된 연산의 반대 연산, 즉 역연산을 수행하여 이전 상태로 복구하는 역연산 방식과, 저장된 연산들을 처음부터 다시 실행하여 원하는 시점으로 복구하는 리플레이 방식이 존재한다. 여기서, 역연산 방식의 경우 모든 연산에 대한 역연산을 미리 정의해야하는 점에서 어려움이 있고, 리플레이 방식의 경우 처음부터 원하는 시점까지의 모든 연산을 다시 실행해야하므로, 연산량이 증가하고 처리속도가 늦어지는 등의 문제점이 존재하였다.Additionally, in the case of the event sourcing method, there is an inverse operation method that restores the previous state by performing the opposite operation of the stored operation based on the current point in time, that is, an inverse operation, and a replay method that restores the desired point in time by executing the stored operations again from the beginning. There is a way. Here, in the case of the inverse calculation method, there is difficulty in that the inverse calculation for all operations must be defined in advance, and in the case of the replay method, all calculations from the beginning to the desired point must be re-executed, which increases the amount of calculation and slows down the processing speed. There were problems such as:

반면에, 본 발명의 일 실시예에 의한 컴퓨팅 장치(100)에 의하면, 전체 어플리케이션의 데이터를 저장하지 않고, 감지 시점에서 변경된 데이터만을 추가로 저장하므로, 메모리 소모를 적게할 수 있다. 또한, 실행취소나 재실행 수행시 상대적으로 소량인 변경된 데이터만을 처리하면 되므로, 처리속도 면에서도 성능을 향상시키는 것이 가능하다. 이외에도, 이벤트 소싱방식과 달리, 데이터 복구를 위한 역연산을 수행하거나, 특정 시점까지의 연산을 처음부터 다시 수행하지 않으므로, 그에 따른 다양한 문제점들을 해결할 수 있다.On the other hand, according to the computing device 100 according to an embodiment of the present invention, memory consumption can be reduced by additionally storing only data that has changed at the time of detection rather than storing data of the entire application. In addition, since only a relatively small amount of changed data needs to be processed when performing undo or redo, it is possible to improve performance in terms of processing speed. In addition, unlike the event sourcing method, since it does not perform reverse operations for data recovery or perform operations up to a certain point from the beginning, various problems related thereto can be solved.

구체적으로, 히스토리 관리부(110)는 어플리케이션(A)의 실행에 따른 데이터의 변경을 감지할 수 있으며, 각각의 감지시점에서의 데이터들을 기록하여 히스토리 정보를 생성할 수 있다.Specifically, the history management unit 110 can detect changes in data as the application A is executed, and record data at each detection point to generate history information.

여기서, 히스토리 관리부(110)는 어플리케이션(A)의 데이터 변경이 발생한 시점마다 메모리(M)를 확인하여 데이터의 변경을 감지하거나, 일정한 시간 간격으로 메모리(M)를 확인하여 해당 어플리케이션(A)의 데이터의 변경을 감지하도록 할 수 있다. 예를 들어, 사용자가 문서 편집기 어플리케이션 상에서 문자를 입력하면, 해당 문자의 입력에 따른 메모리(M)의 변경을 감지하거나, 문서 편집기 어플리케이션의 실행 후 일정한 시간 간격(예를 들어, 2-3초 간격)으로 메모리(M)를 확인하여 데이터의 변경여부를 감지하도록 하는 것도 가능하다.Here, the history management unit 110 detects data changes by checking the memory (M) every time a data change of the application (A) occurs, or checks the memory (M) at regular time intervals to detect the data change of the application (A). You can detect changes in data. For example, when a user inputs a character on a text editor application, a change in memory (M) according to the input of the corresponding character is detected, or a certain time interval (for example, every 2-3 seconds) is detected after the text editor application is executed. ), it is also possible to check the memory (M) to detect whether the data has been changed.

또한, 히스토리 관리부(110)는 각각의 감지시점에서의 데이터들을 기록하여 히스토리 정보를 생성할 수 있다. 여기서, 히스토리 정보에는 각각의 감지시점에 대한 감지시점정보와, 해당 감지시점에서의 데이터 또는 데이터가 저장된 메모리 주소가 기록된 데이터 정보가 매칭되어 저장될 수 있다. 실시예에 따라서는, 별도의 스택을 설정한 후, 각각의 감지시점정보와 그때의 데이터 정보를 스택 내에 저장하여 히스토리 정보를 생성하는 것도 가능하다. 문서편집기의 경우, 사용자가 키보드 등으로 직접 입력한 문자나 기호 등이 데이터로 저장될 수 있으며, 실시예에 따라서는 사용자가 입력한 문자나 기호 등의 데이터에 관련된 메타데이터 등도 추가로 저장될 수 있다. 또한, 어플리케이션(A)의 종류에 따라서는, 사용자가 생성한 이미지나, 영상, 음성, 문서, 프로그램 파일 등도 데이터로 저장될 수 있다.Additionally, the history management unit 110 may generate history information by recording data at each detection point. Here, in the history information, detection time information for each detection time and data information recording the data at the corresponding detection time or the memory address where the data is stored may be matched and stored. Depending on the embodiment, after setting up a separate stack, it is possible to generate history information by storing each detection time information and data information at that time in the stack. In the case of a document editor, characters or symbols directly entered by the user using a keyboard, etc. may be stored as data, and depending on the embodiment, metadata related to data such as characters or symbols entered by the user may also be additionally stored. there is. Additionally, depending on the type of application (A), images, videos, voices, documents, program files, etc. created by the user may also be stored as data.

구체적으로, 히스토리 관리부(110)는 새로운 히스토리 정보(H)를 추가하기 위하여, 직전 감지시점의 데이터 정보와 비교할 수 있으며, 새롭게 추가되는 신규 데이터가 존재하면, 신규 데이터를 현재 감지시점의 데이터 정보 내에 기록할 수 있다.Specifically, the history management unit 110 can compare the data information at the previous detection time to add new history information (H), and if there is new data to be added, the new data is stored in the data information at the current detection time. It can be recorded.

도2를 참조하면, T0 시점에는 어플리케이션(A)의 데이터가 없으므로, 데이터 정보 내에 아무런 데이터가 저장되어 있지 않을 수 있다. 이후, 메모리(M) 상에 D0가 추가되면, 히스토리 관리부(110)는 T1 시점에 T0 시점의 데이터 정보와 비교할 수 있다. 여기서, T1 시점에 D0에 해당하는 신규 데이터가 추가되었으므로, T1 시점의 데이터 정보 상에 데이터 D0를 기록할 수 있다. Referring to Figure 2, since there is no data of the application (A) at the time T 0 , no data may be stored in the data information. Thereafter, when D 0 is added to the memory (M), the history management unit 110 can compare the data information at time T 1 with the data information at time T 0 . Here, since new data corresponding to D 0 was added at time T 1 , data D 0 can be recorded on the data information at time T 1 .

한편, 직전 감지시점의 데이터 정보와의 비교결과, 중복되는 데이터들이 존재하는 경우에는, 히스토리 관리부(110)가 중복되는 데이터들을 대신하여, 중복되는 데이터들이 저장된 메모리 주소를 현재 감지시점의 데이터 정보 내에 기록할 수 있다. Meanwhile, as a result of comparison with the data information at the previous detection time, if overlapping data exists, the history management unit 110 replaces the overlapping data and stores the memory address where the overlapping data is stored in the data information at the current detection time. It can be recorded.

즉, 도2를 참조하면, T1 시점 이후에 메모리(M) 상에 D1이 추가될 수 있으며, 히스토리 관리부(110)는 T2 시점에 T1 시점의 데이터 정보와 비교할 수 있다. 여기서, T2 시점에는 D1에 해당하는 신규 데이터가 추가되었으므로, T2 시점의 데이터 정보 상에 데이터 D1을 추가로 기록할 수 있다. 다만, D0는 T1 시점에 포함된 데이터와 중복된 데이터에 해당하므로, T2 시점의 데이터 정보 내에 D0를 중복하여 저장하지 않을 수 있다. 대신에, D0 데이터가 저장된 메모리 주소를 저장함으로써 D0에 대한 중복 저장을 방지할 수 있다. 즉, D0를 T1 시점과 T2 시점의 데이터 정보 내 각각 저장하는 중복 저장을 피할 수 있으므로, 종래의 스냅샷 방식과 비교할 때, 메모리의 저장공간 낭비를 방지할 수 있다.That is, referring to FIG. 2, D 1 may be added to the memory M after time T 1 , and the history management unit 110 may compare the data information at time T 1 with the data information at time T 1 . Here, since new data corresponding to D 1 has been added at time T 2 , data D 1 can be additionally recorded on the data information at time T 2 . However, since D 0 corresponds to data that overlaps with the data included at time T 1 , D 0 may not be stored redundantly in the data information at time T 2 . Instead, duplicate storage of D 0 can be prevented by storing the memory address where D 0 data is stored. In other words, redundant storage of D 0 in the data information at time T 1 and time T 2 can be avoided, and therefore, compared to the conventional snapshot method, waste of memory storage space can be prevented.

또한, 히스토리 관리부(110)는, 직전 감지시점의 데이터 정보와의 비교결과 수정된 데이터가 존재하면, 기존의 데이터를 수정된 데이터로 치환하여, 현재 감지시점의 데이터 정보 내에 기록할 수 있다. 즉, 도2를 참조하면, T3 시점에 새로운 데이터 D2를 추가한 이후에, T4 시점에 D2를 D2'로 수정한 경우가 있을 수 있다. 여기서, 히스토리 관리부(110)는 T3 시점의 데이터 정보와 T4 시점의 데이터 정보를 비교할 수 있으며, T3 시점의 데이터 정보에서 D2를 D2'로 치환하여 기록할 수 있다. 즉, T4 시점에서 D0, D1은 중복된 데이터에 해당하므로 메모리 주소로 저장하고, D2'은 D2를 수정한 새로운 데이터에 해당하므로 D2를 대신하여 D2'의 데이터를 저장할 수 있다.Additionally, if modified data exists as a result of comparison with the data information at the previous detection time, the history management unit 110 may replace the existing data with the modified data and record it in the data information at the current detection time. That is, referring to FIG. 2, after adding new data D 2 at time T 3 , there may be a case where D 2 is modified to D 2 ' at time T 4 . Here, the history management unit 110 can compare the data information at time T 3 with the data information at time T 4 , and can replace D 2 with D 2 ' in the data information at time T 3 and record it. That is, at the time of T 4 , D 0 and D 1 correspond to duplicate data, so they are stored as memory addresses, and D 2 ' corresponds to new data that modified D 2 , so the data of D 2 ' can be stored instead of D 2. You can.

한편, 직전 감지시점의 데이터 정보와 비교하여 삭제된 데이터가 존재하면, 히스토리 관리부(110)는 삭제된 데이터에 대응하는 데이터 또는 메모리 주소를 데이터 정보에서 제거할 수 있다. 즉, 도2를 참조하면 T5 시점에 D3가 추가되면 데이터 정보 내에 D3를 포함시킬 수 있으며, 이후 T6 시점에서 D3가 삭제되면 T6 시점의 데이터 정보에서 D3를 삭제할 수 있다. 이 경우, T6 시점의 데이터 정보 내에는 각각의 D0, D1, D2'에 대한 메모리 주소들이 저장될 수 있다. 또한, T7 시점에 D2'가 삭제되면, 히스토리 관리부(110)는 D2'의 메모리 주소를 삭제하여 T7 시점의 데이터 정보를 생성할 수 있다.Meanwhile, if deleted data exists compared to the data information at the previous detection time, the history management unit 110 may remove the data or memory address corresponding to the deleted data from the data information. In other words, referring to Figure 2, if D 3 is added at time T 5 , D 3 can be included in the data information, and if D 3 is deleted at time T 6 , D 3 can be deleted from the data information at time T 6 . . In this case, memory addresses for each of D 0 , D 1 , and D 2 ′ may be stored in the data information at time T 6 . Additionally, if D 2 ' is deleted at time T 7 , the history management unit 110 may delete the memory address of D 2 ' to generate data information at time T 7 .

이와 같이, 히스토리 관리부(110)는 각각의 감지시점에 직전의 감지시점에서의 데이터 정보와 현재 메모리에 저장된 데이터들을 비교하여, 변경된 사항들이 반영되도록 데이터 정보를 생성할 수 있다. 이때, 각각의 시점에서의 데이터 전체를 저장하지 않고, 중복되는 데이터들의 경우 해당 데이터가 저장된 메모리 주소를 대신하여 저장하므로, 히스토리 정보 내에 저장되는 데이터의 양을 최소화할 수 있다.In this way, the history management unit 110 may compare the data information at the immediately previous detection time and the data currently stored in the memory at each detection time, and generate data information to reflect the changes. At this time, the entire data at each point in time is not stored, and in case of overlapping data, the memory address where the data is stored is stored instead, so that the amount of data stored in the history information can be minimized.

데이터 복구부(120)는 히스토리 관리부(110)에서 생성한 히스토리 정보를 기반으로 해당 어플리케이션(A) 내의 실행에 대한 실행취소 또는 재실행을 수행할 수 있다. 예를 들어, 데이터 복구부(120)는 사용자 등으로부터 특정시점을 입력받을 수 있으며, 이 경우 히스토리 정보를 기반으로 어플리케이션(A)의 상태를 특정시점으로 되돌릴 수 있다. 즉, 데이터 복구부(120)는 특정시점과 현재 감지시점의 데이터정보를 비교할 수 있으며, 데이터정보 사이의 차이를 반영하여, 어플리케이션의 상태를 특정시점으로 되돌릴 수 있다. 이 경우, 데이터 정보 사이의 차이를 이용하여 특정시점으로 이동할 수 있으므로, 상대적으로 적은 양의 데이터 처리를 통하여 실행취소 또는 재실행 기능을 구현하는 것이 가능하다.The data recovery unit 120 may undo or re-execute execution within the corresponding application (A) based on the history information generated by the history management unit 110. For example, the data recovery unit 120 can receive a specific point in time from a user, etc., and in this case, the state of the application A can be returned to the specific point in time based on history information. That is, the data recovery unit 120 can compare data information at a specific point in time and the current detection point, and reflect the difference between the data information to return the state of the application to the specific point in time. In this case, since the difference between data information can be used to move to a specific point in time, it is possible to implement an undo or redo function through processing a relatively small amount of data.

예를 들어, 도3에 도시한 바와 같이, 실행취소를 수행하여 T5 시점에서 T4 시점으로 되돌리는 경우, 데이터 복구부(120)는 T5 시점의 데이터 정보와 T4 시점의 데이터 정보를 비교할 수 있다. 이 경우, T4 시점에는 T5 시점과 달리 D3가 없음을 확인할 수 있으며, 데이터 복구부(120)는 D3를 제거함으로써 어플리케이션의 상태를 T4 시점으로 되돌릴 수 있다. 여기서, 중복되는 데이터들의 경우, 데이터 정보에 기록된 메모리 주소를 비교하여 신속하게 확인할 수 있으므로, 빠른 시간 내에 T4시점과 T5 시점 사이의 차이를 도출하는 것이 가능하다.For example, as shown in FIG. 3, when undo is performed to return from time T 5 to time T 4 , the data recovery unit 120 restores the data information at time T 5 and the data information at time T 4 . You can compare. In this case, it can be confirmed that there is no D 3 at time T 4 , unlike at time T 5 , and the data recovery unit 120 can return the state of the application to time T 4 by removing D 3 . Here, in the case of overlapping data, it can be quickly confirmed by comparing the memory address recorded in the data information, so it is possible to quickly derive the difference between time T 4 and time T 5 .

또한, 도4에 도시한 바와 같이, 재실행을 통하여 T3 시점에서 T4 시점으로 이동하고자 하는 경우도 있을 수 있다. 이때, 데이터 복구부(120)는 T4 시점의 데이터 정보와 T3 시점의 데이터 정보를 비교할 수 있다. 이 경우, T4 시점의 D2' 데이터와 T3 시점의 D2 데이터가 상이함을 확인할 수 있다. 따라서, 데이터 복구부(120)는 T3 시점의 D2 데이터는 제거하고, D2' 데이터를 추가함으로써, 어플리케이션의 상태를 T4 시점으로 변경할 수 있다.Additionally, as shown in FIG. 4, there may be cases where it is desired to move from time T 3 to time T 4 through re-execution. At this time, the data recovery unit 120 may compare the data information at time T 4 and the data information at time T 3 . In this case, it can be confirmed that the D 2 'data at time T 4 and the D 2 data at time T 3 are different. Accordingly, the data recovery unit 120 can change the state of the application to time T 4 by removing the D 2 data at time T 3 and adding D 2 'data.

여기서, 도3 및 도4에 도시한 바와 같이, 히스토리 정보 내 T4 시점에서의 데이터 정보가 저장되어 있을 수 있다. 따라서, 실행취소를 통하여 T5 시점에서 T4 시점으로 되돌리거나, 재실행을 통하여 T3 시점에서 T4 시점으로 이동하고자 하는 경우, T5 시점이나 T3 시점과의 데이터 정보 비교없이, T4 시점의 데이터 정보만으로 데이터를 로드하여 T4 시점으로 이동하는 것도 가능하다. 다만, 이 경우 T4 시점에서의 데이터 전체를 로드하여야 하므로, 처리해야하는 데이터의 양이 증가하게 되고, 그에 따라 처리속도가 느려지는 등의 문제가 발생할 수 있다. 따라서, 데이터 복구부(120)는 각각의 시점에서의 데이터 정보들을 비교한 후, 차이나는 부분만을 반영하도록 함으로써, 처리해야하는 데이터의 양을 줄일 수 있으며, 그에 따라 실행취소나 재실행의 처리속도를 향상시킬 수 있다.Here, as shown in FIGS. 3 and 4, data information at time T4 may be stored in the history information. Therefore, if you want to return from T5 to T4 through undo, or move from T3 to T4 through re-execution, load the data only with the data information at T4 without comparing the data with T5 or T3. It is also possible to move to point T4. However, in this case, since the entire data at time T4 must be loaded, the amount of data to be processed increases, which may cause problems such as slower processing speed. Therefore, the data recovery unit 120 can reduce the amount of data to be processed by comparing the data information at each point in time and only reflecting the differences, thereby improving the processing speed of undo or redo. You can do it.

도5는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 환경(10)을 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.Figure 5 is a block diagram illustrating a computing environment 10 suitable for use in example embodiments. In the illustrated embodiment, each component may have different functions and capabilities in addition to those described below, and may include additional components in addition to those described below.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 데이터 복구를 위한 컴퓨팅 장치(100)일 수 있다.The illustrated computing environment 10 includes a computing device 12 . In one embodiment, computing device 12 may be computing device 100 for data recovery.

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.Computing device 12 includes at least one processor 14, a computer-readable storage medium 16, and a communication bus 18. Processor 14 may cause computing device 12 to operate in accordance with the example embodiments noted above. For example, processor 14 may execute one or more programs stored on computer-readable storage medium 16. The one or more programs may include one or more computer-executable instructions, which, when executed by the processor 14, cause computing device 12 to perform operations according to example embodiments. It can be.

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information. The program 20 stored in the computer-readable storage medium 16 includes a set of instructions executable by the processor 14. In one embodiment, computer-readable storage medium 16 includes memory (volatile memory, such as random access memory, non-volatile memory, or an appropriate combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash It may be memory devices, another form of storage medium that can be accessed by computing device 12 and store desired information, or a suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communication bus 18 interconnects various other components of computing device 12, including processor 14 and computer-readable storage medium 16.

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.Computing device 12 may also include one or more input/output interfaces 22 and one or more network communication interfaces 26 that provide an interface for one or more input/output devices 24. The input/output interface 22 and the network communication interface 26 are connected to the communication bus 18. Input/output device 24 may be coupled to other components of computing device 12 through input/output interface 22. Exemplary input/output devices 24 include, but are not limited to, a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touchpad or touch screen), a voice or sound input device, various types of sensor devices, and/or imaging devices. It may include input devices and/or output devices such as display devices, printers, speakers, and/or network cards. The exemplary input/output device 24 may be included within the computing device 12 as a component constituting the computing device 12, or may be connected to the computing device 12 as a separate device distinct from the computing device 12. It may be possible.

도6은 본 발명의 일 실시예에 의한 데이터 복구 방법을 나타내는 순서도이다. 여기서, 도6의 각 단계들은 컴퓨팅 장치에 의하여 수행될 수 있다.Figure 6 is a flowchart showing a data recovery method according to an embodiment of the present invention. Here, each step of FIG. 6 may be performed by a computing device.

도6을 참조하면, 컴퓨팅 장치는 어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터을 기록하여, 히스토리 정보를 생성할 수 있다(S10). 여기서, 컴퓨팅 장치는 어플리케이션의 데이터 변경이 발생한 시점마다 메모리를 확인하거나, 일정한 시간 간격으로 메모리를 확인하여 해당 어플리케이션의 데이터의 변경을 감지하도록 할 수 있다. 예를 들어, 문서 편집기 어플리케이션의 경우, 사용자의 문자 입력시 메모리의 변경을 감지하거나, 문서 편집기 어플리케이션의 실행 후 일정한 시간 간격(예를 들어, 2-3초 간격)으로 메모리를 확인하도록 할 수 있다.Referring to Figure 6, when a change in data due to the execution of an application is detected, the computing device may record the data at each detection point and generate history information (S10). Here, the computing device can check the memory every time a change in data of the application occurs, or check the memory at regular time intervals to detect a change in the data of the application. For example, in the case of a text editor application, changes in memory can be detected when the user inputs text, or the memory can be checked at regular time intervals (for example, every 2-3 seconds) after running the text editor application. .

또한, 컴퓨팅 장치는 각각의 감지시점에서의 데이터들을 기록하여 히스토리 정보를 생성할 수 있다. 여기서, 히스토리 정보에는 각각의 감지시점에 대한 감지시점정보와, 해당 감지시점에서의 어플리케이션 데이터를 나타내는 데이터 정보가 매칭되어 순차적으로 포함될 수 있다. 데이터 정보에는 해당 감지시점에서 추가, 삭제, 수정된 데이터가 포함될 수 있으며, 중복되는 데이터들이 존재하는 경우에는 해당 데이터가 저장된 메모리 주소가 대신 포함될 수 있다.Additionally, the computing device can generate history information by recording data at each detection point. Here, the history information may sequentially include detection time information for each detection time and data information representing application data at the corresponding detection time. Data information may include data added, deleted, or modified at the relevant detection point, and if overlapping data exists, the memory address where the data is stored may be included instead.

구체적으로, 컴퓨팅 장치는 새로운 히스토리 정보를 추가하기 위하여, 직전 감지시점의 데이터 정보와 비교할 수 있으며, 새롭게 추가되는 신규 데이터가 존재하면, 신규 데이터를 현재 감지시점의 데이터 정보 내에 기록할 수 있다. 여기서, 직전 감지시점의 데이터 정보와의 비교결과, 중복되는 데이터들이 존재하는 경우에는, 중복되는 데이터들을 대신하여, 중복되는 데이터들이 저장된 메모리 주소를 현재 감지시점의 데이터 정보 내에 기록하도록 할 수 있다.Specifically, in order to add new history information, the computing device can compare data information at the previous detection time, and if there is new data to be added, the new data can be recorded in the data information at the current detection time. Here, if there is overlapping data as a result of comparison with the data information at the previous detection time, the memory address where the overlapping data is stored can be recorded in the data information at the current detection time instead of the overlapping data.

또한, 직전 감지시점의 데이터 정보와 비교결과, 수정된 데이터가 존재하면, 기존의 데이터를 수정된 데이터로 치환하여, 현재 감지시점의 데이터 정보 내에 기록하고, 비교결과 삭제된 데이터가 존재하는 경우에는, 삭제된 데이터에 대응하는 데이터 또는 메모리 주소를 데이터 정보에서 제거할 수 있다.In addition, if modified data exists as a result of comparison with the data information at the previous detection time, the existing data is replaced with the modified data and recorded in the data information at the current detection time, and if deleted data exists as a result of comparison, , the data or memory address corresponding to the deleted data can be removed from the data information.

이와 같이, 컴퓨팅 장치는 각각의 감지시점에 직전의 감지시점에서의 데이터 정보와 현재 메모리에 저장된 데이터들을 비교하여, 변경된 사항들이 반영되도록 데이터 정보를 생성할 수 있다. 이때, 컴퓨팅 장치는, 각각의 시점에서의 어플리케이션 데이터 전체를 저장하지 않고, 중복되는 데이터들은 해당 데이터가 저장된 메모리 주소를 저장하므로, 히스토리 정보 내에 저장되는 데이터의 양을 최소화하는 것이 가능하다.In this way, at each detection time, the computing device can compare data information from the immediately preceding detection time with data currently stored in the memory, and generate data information to reflect changes. At this time, the computing device does not store all of the application data at each point in time, but stores the memory address where the data is stored for overlapping data, making it possible to minimize the amount of data stored in the history information.

이후, 컴퓨팅 장치는 사용자 등으로부터 특정시점을 입력받으면, 히스토리 정보를 기반으로 어플리케이션의 상태를 특정시점으로 되돌릴 수 있다(S20). 컴퓨팅 장치는 특정시점과 현재 감지시점의 데이터정보를 비교할 수 있으며, 데이터정보 사이의 차이를 반영하여, 어플리케이션의 상태를 특정시점으로 되돌릴 수 있다. 이 경우, 데이터 정보 사이의 차이를 이용하여 특정시점으로 이동할 수 있으므로, 상대적으로 적은 양의 데이터 처리를 통하여 실행취소 또는 재실행 기능을 구현하는 것이 가능하다. 이때, 컴퓨팅 장치는 데이터 정보에 기록된 메모리 주소를 비교하여, 중복되는 데이터들을 신속하게 확인할 수 있으므로, 빠른 시간 내에 특정시점과 현재 감지시점 사이의 차이를 도출하는 것이 가능하다.Afterwards, when the computing device receives a specific point in time from a user, etc., the computing device can return the state of the application to the specific point in time based on history information (S20). The computing device can compare data information at a specific point in time and the current sensing point, and can return the state of the application to a specific point in time by reflecting the difference between the data information. In this case, since the difference between data information can be used to move to a specific point in time, it is possible to implement an undo or redo function through processing a relatively small amount of data. At this time, the computing device can quickly check overlapping data by comparing the memory addresses recorded in the data information, so it is possible to quickly derive the difference between the specific point in time and the current detection point.

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The above-described present invention can be implemented as computer-readable code on a program-recorded medium. A computer-readable medium may continuously store a computer-executable program or temporarily store it 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. Accordingly, the above detailed description should not be construed as restrictive in all respects and should be considered illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.The present invention is not limited to the above-described embodiments and attached drawings. For those skilled in the art to which the present invention pertains, it will be clear that components according to the present invention can be replaced, modified, and changed without departing from the technical spirit of the present invention.

100: 컴퓨팅 장치 110: 히스토리 관리부
120: 데이터 복구부
100: computing device 110: history management unit
120: Data recovery unit

Claims (9)

컴퓨팅 장치 내 프로세서에 의해 수행되는, 데이터 복구 방법에 있어서,
어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터들 중에서 중복되는 데이터는 제외하고 기록하여, 히스토리 정보를 생성하는 단계; 및
특정시점을 입력받으면, 상기 히스토리 정보를 기반으로 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 단계를 포함하는 데이터 복구 방법.
In a data recovery method performed by a processor in a computing device,
When a change in data due to execution of an application is detected, generating history information by excluding duplicate data from the data at each detection point and recording the data; and
A data recovery method comprising, when a specific point in time is input, returning the state of the application to the specific point in time based on the history information.
제1항에 있어서, 상기 히스토리 정보를 생성하는 단계는
각각의 감지시점에 대한 감지시점정보와, 상기 감지시점에서의 데이터 또는 상기 중복되는 데이터가 저장된 메모리 주소가 기록된 데이터정보를 매칭하여, 상기 히스토리 정보를 생성하는 것인, 데이터 복구 방법.
The method of claim 1, wherein the step of generating the history information is
A data recovery method that generates the history information by matching detection time information for each detection time and data information in which the data at the detection time or the memory address where the overlapping data is stored is recorded.
제2항에 있어서, 상기 히스토리 정보를 생성하는 단계는
직전 감지시점의 데이터 정보와 비교하여 새롭게 추가되는 신규 데이터가 존재하면, 상기 신규 데이터를 현재 감지시점의 데이터 정보 내에 기록하는 것인, 데이터 복구 방법.
The method of claim 2, wherein the step of generating the history information is
A data recovery method, wherein if there is new data newly added compared to the data information at the previous detection time, the new data is recorded in the data information at the current detection time.
제2항에 있어서, 상기 히스토리 정보를 생성하는 단계는
직전 감지시점의 데이터 정보와 비교하여 중복되는 데이터가 존재하면, 상기 중복되는 데이터들을 대신하여, 상기 중복되는 데이터들이 저장된 메모리 주소를 현재 감지시점의 데이터 정보 내에 기록하는 것인, 데이터 복구 방법.
The method of claim 2, wherein the step of generating the history information is
A data recovery method that, when there is overlapping data compared to the data information at the previous detection point, records the memory address where the overlapping data is stored in the data information at the current detection point in place of the overlapping data.
제2항에 있어서, 상기 히스토리 정보를 생성하는 단계는
직전 감지시점의 데이터 정보와 비교하여 수정된 데이터가 존재하면, 상기 수정된 데이터로 치환하여, 현재 감지시점의 데이터 정보 내에 기록하는 것인, 데이터 복구 방법.
The method of claim 2, wherein the step of generating the history information is
A data recovery method in which, if there is data that has been modified compared to the data information at the previous detection time, the modified data is replaced and recorded in the data information at the current detection time.
제2항에 있어서, 상기 히스토리 정보를 생성하는 단계는
직전 감지시점의 데이터 정보와 비교하여 삭제된 데이터가 존재하면, 상기 삭제된 데이터에 대응하는 데이터 또는 메모리 주소를 상기 데이터 정보에서 제거하는 것인, 데이터 복구 방법.
The method of claim 2, wherein the step of generating the history information is
A data recovery method, wherein if there is deleted data compared to the data information at the previous detection point, the data or memory address corresponding to the deleted data is removed from the data information.
제2항에 있어서, 상기 되돌리는 단계는
상기 특정시점과 현재 감지시점의 데이터정보를 비교하고, 상기 데이터정보 사이의 차이를 반영하여, 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 것인, 데이터 복구 방법.
The method of claim 2, wherein the reverting step is
A data recovery method that compares data information at the specific point in time and the current detection point, reflects the difference between the data information, and returns the state of the application to the specific point in time.
하드웨어와 결합되어 제1항 내지 제7항 중 어느 한 항의 데이터 복구 방법을 수행하기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program combined with hardware and stored on a medium to perform the data recovery method of any one of claims 1 to 7.
프로세서를 포함하는 컴퓨팅 장치로서,
상기 프로세서는,
어플리케이션의 실행에 따른 데이터의 변경이 감지되면, 각각의 감지시점에서의 데이터들중에서 중복되는 데이터는 제외하고 기록하여 히스토리 정보를 생성하고,
특정시점을 입력받으면, 상기 히스토리 정보를 기반으로 상기 어플리케이션의 상태를 상기 특정시점으로 되돌리는 것을 수행하는, 컴퓨팅 장치.
A computing device comprising a processor,
The processor,
When a change in data due to the execution of an application is detected, duplicate data is excluded from the data at each detection point and recorded to create history information.
A computing device that, upon receiving a specific point in time, returns the state of the application to the specific point in time based on the history information.
KR1020220136713A 2022-10-21 2022-10-21 Method for data recovery and computing apparatus using the same KR20240056278A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220136713A KR20240056278A (en) 2022-10-21 2022-10-21 Method for data recovery and computing apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220136713A KR20240056278A (en) 2022-10-21 2022-10-21 Method for data recovery and computing apparatus using the same

Publications (1)

Publication Number Publication Date
KR20240056278A true KR20240056278A (en) 2024-04-30

Family

ID=90884845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220136713A KR20240056278A (en) 2022-10-21 2022-10-21 Method for data recovery and computing apparatus using the same

Country Status (1)

Country Link
KR (1) KR20240056278A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170054767A (en) 2015-11-10 2017-05-18 엘지전자 주식회사 Database management system and method for modifying and recovering data the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170054767A (en) 2015-11-10 2017-05-18 엘지전자 주식회사 Database management system and method for modifying and recovering data the same

Similar Documents

Publication Publication Date Title
US9910735B1 (en) Generating an application-consistent snapshot
JP5039891B2 (en) Apparatus and method for generating a replica of a database
US10067835B2 (en) System reset
JP4419884B2 (en) Data replication apparatus, method, program, and storage system
EP3769224B1 (en) Configurable recovery states
US9146928B1 (en) Techniques for storing metadata of a filesystem in persistent memory
CN109542682B (en) Data backup method, device, equipment and storage medium
US9916211B2 (en) Relational database recovery
JP4298700B2 (en) Method and computer-readable recording medium for inspecting and storing electronic documents
US11099765B2 (en) Data protection of container persistent storage with changed block tracking
KR20170054767A (en) Database management system and method for modifying and recovering data the same
KR20160002109A (en) Method and apparatus of journaling by block group unit for ordered mode journaling file system
US7725507B1 (en) Dynamic directories
EP3769225B1 (en) Free space pass-through
KR20240056278A (en) Method for data recovery and computing apparatus using the same
US8819657B1 (en) Method and apparatus for maintaining data consistency in a virtualized application during software update installation
KR100501414B1 (en) Method of and apparatus for logging and restoring the meta data in file system
KR102316198B1 (en) Method for accessing file, computer, and executable software product stored on computer-readable medium
JP4833653B2 (en) Method and computer-readable recording medium for loading the contents of a data file
Lomet High speed on-line backup when using logical log operations
Silberschatz et al. Recovery system
KR20140110366A (en) Apparatus and method for data backup
CN116466878A (en) Method, device, equipment and medium for guaranteeing snapshot data integrity of clone volume
CN118259936A (en) Operating system updating method, device, computing equipment and storage medium
KR101375794B1 (en) Method and device for improving performance of database