KR102122956B1 - Apparatus and method for installing program - Google Patents

Apparatus and method for installing program Download PDF

Info

Publication number
KR102122956B1
KR102122956B1 KR1020180003947A KR20180003947A KR102122956B1 KR 102122956 B1 KR102122956 B1 KR 102122956B1 KR 1020180003947 A KR1020180003947 A KR 1020180003947A KR 20180003947 A KR20180003947 A KR 20180003947A KR 102122956 B1 KR102122956 B1 KR 102122956B1
Authority
KR
South Korea
Prior art keywords
file
compressed
program
compressed file
information
Prior art date
Application number
KR1020180003947A
Other languages
Korean (ko)
Other versions
KR20190085726A (en
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 KR1020180003947A priority Critical patent/KR102122956B1/en
Publication of KR20190085726A publication Critical patent/KR20190085726A/en
Application granted granted Critical
Publication of KR102122956B1 publication Critical patent/KR102122956B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

프로그램 설치 장치 및 방법을 제시하며, 프로그램 설치 장치는 프로그램이 압축된 압축 파일을 수신하는 통신부, 수신된 압축 파일의 일부가 저장되는 메인 메모리, 프로그램이 저장되는 보조 메모리, 및 메인 메모리에 저장된 압축 파일의 일부에 대해 압축을 해제하여 보조 메모리에 저장하며, 동시에 압축 파일의 다른 일부를 수신하여 메인 메모리에 저장하는 제어부를 포함한다.A program installation apparatus and a method are provided, and the program installation apparatus is a communication unit for receiving a compressed file in which a program is compressed, a main memory in which a part of the received compressed file is stored, a secondary memory in which the program is stored, and a compressed file stored in the main memory It includes a control unit that decompresses a portion of the data and stores it in the auxiliary memory, and simultaneously receives another portion of the compressed file and stores it in the main memory.

Description

프로그램 설치 장치 및 방법{APPARATUS AND METHOD FOR INSTALLING PROGRAM}Program installation device and method{APPARATUS AND METHOD FOR INSTALLING PROGRAM}

본 명세서에서 개시되는 실시예들은 프로그램 설치 장치 및 방법에 관한 것으로, 보다 상세하게는 프로그램 설치에 사용되는 메모리 용량을 최소화하는 프로그램 설치 장치 및 방법에 관한 것이다.Embodiments disclosed herein relate to a program installation apparatus and method, and more particularly, to a program installation apparatus and method for minimizing the memory capacity used for program installation.

최근 들어, 사용자는 다양한 전자 단말기를 사용하고 있다. 기존에 사용되던 개인 컴퓨터(PC)와 같은 기기뿐만 아니라 스마트폰, 태블릿, 및 탭과 같은 소형화되고 휴대 가능한 전자 단말기까지 사용이 확대되고 있다. 이와 같은 기기의 발전으로 인해, 기기에서 사용되는 다양한 프로그램에 대한 수요도 증가하고 있다. 이로 인해, 출시되는 프로그램의 종류와 개수는 급속도로 증가하고 있는 추세에 있다. 이로 인해, 사용자는 필요에 따라 하루에도 여러 개의 프로그램을 자신의 전자 단말기에 설치하거나 삭제하고 있다.Recently, users have used various electronic terminals. The use is expanding not only to devices such as personal computers (PCs) that have been used in the past but also to miniaturized and portable electronic terminals such as smartphones, tablets, and tabs. Due to the development of such devices, demand for various programs used in devices is also increasing. For this reason, the types and number of programs to be released are rapidly increasing. For this reason, the user installs or deletes several programs in his/her electronic terminal even if necessary for one day.

관련하여 선행기술문헌 제10-2008-0056522호를 살펴보면, 사용자 단말기에서 프로그램의 설치 파일을 다운로드하여 저장한 후에 다운로드된 설치 파일을 실행하여 프로그램을 설치하는 방법을 기재하고 있다. 이러한 선행기술 문헌에서는 사용자가 프로그램을 설치하기 위해 설치 파일을 모두 다운로드 한 후에 설치 파일을 실행시켜 프로그램을 설치하기 때문에 메모리에는 설치 파일이 저장될 영역과 설치 파일이 설치될 영역을 모두 필요로 한다.Referring to related art document 10-2008-0056522, a method of installing a program by executing a downloaded installation file after installing and saving an installation file of a program in a user terminal is described. In this prior art document, since the user installs the program by executing the installation file after downloading all the installation files in order to install the program, the memory requires both an area in which the installation file is to be stored and an area in which the installation file is to be installed.

그러므로, 메모리 영역이 충분히 확보되지 못하는 경우, 프로그램이 설치되기 어려우며, 소형화된 기기는 메모리 용량이 제한되기 때문에 프로그램의 설치에 사용되는 메모리 용량이 확보되지 못하면 프로그램을 설치할 수 없는 문제점이 있었다.Therefore, if the memory area is not sufficiently secured, the program is difficult to install, and since the memory capacity of the miniaturized device is limited, there is a problem that the program cannot be installed if the memory capacity used for the installation of the program is not secured.

또한, 프로그램은 설치 파일을 다운로드 한 후에 설치 파일을 실행시켜 프로그램을 설치하기 때문에, 프로그램의 용량이 점차 증가하고 있는 현재 프로그램의 설치에 소모되는 시간도 프로그램의 용량에 따라 함께 증가하는 문제점이 있었다.In addition, since the program installs the program by executing the installation file after downloading the installation file, there is a problem in that the time consumed for installation of the current program in which the capacity of the program is gradually increasing also increases according to the capacity of the program.

따라서, 상술된 문제점을 해결하기 위한 기술이 필요하게 되었다.Therefore, there is a need for a technique for solving the above-mentioned problems.

한편, 전술한 배경 기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.On the other hand, the above-mentioned background technology is the technical information acquired by the inventor for the derivation of the present invention or acquired in the derivation process of the present invention, and is not necessarily a known technology disclosed to the general public before filing the present invention. .

본 명세서에서 개시되는 실시예들은, 프로그램 설치에 사용되는 메모리 용량을 최소화하는 프로그램 설치 장치 및 방법을 제시하는데 목적이 있다.The embodiments disclosed herein are intended to provide a program installation apparatus and method for minimizing the memory capacity used for program installation.

본 명세서에서 개시되는 실시예들은, 프로그램 설치에 소모되는 시간을 감소시킨 프로그램 설치 장치 및 방법을 제시하는데 목적이 있다.The embodiments disclosed herein have an object to provide a program installation apparatus and a method for reducing time spent on program installation.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 프로그램 설치 장치는 프로그램이 압축된 압축 파일을 수신하는 통신부, 수신된 압축 파일의 일부가 저장되는 메인 메모리, 상기 프로그램이 저장되는 보조 메모리, 및 상기 메인 메모리에 저장된 압축 파일의 일부에 대해 압축을 해제하여 상기 보조 메모리에 저장하며, 동시에 상기 압축 파일의 다른 일부를 수신하여 상기 메인 메모리에 저장하는 제어부를 포함한다.As a technical means for achieving the above technical problem, according to an embodiment, the program installation apparatus is a communication unit for receiving a compressed file in which a program is compressed, a main memory in which a part of the received compressed file is stored, and in which the program is stored And a control unit that decompresses a portion of a compressed file stored in the main memory and stores it in the auxiliary memory, and simultaneously receives another portion of the compressed file and stores it in the main memory.

다른 실시예에 따르면, 프로그램 설치 방법은 프로그램이 압축된 압축 파일의 일부를 수신하여 메인 메모리에 저장하는 단계, 및 상기 메인 메모리에 저장된 압축 파일의 일부에 대해 압축을 해제하여 보조 메모리에 저장하며, 동시에 상기 압축 파일의 다른 일부를 수신하여 상기 메인 메모리에 저장하는 단계를 포함한다.According to another embodiment, the program installation method includes receiving a part of a compressed file in which a program is compressed and storing it in main memory, and decompressing a part of the compressed file stored in the main memory and storing it in auxiliary memory, And simultaneously receiving another part of the compressed file and storing it in the main memory.

또 다른 실시예에 따르면, 프로그램 설치 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체로서, 프로그램이 압축된 압축 파일의 일부를 수신하여 메인 메모리에 저장하는 단계, 및 상기 메인 메모리에 저장된 압축 파일의 일부에 대해 압축을 해제하여 보조 메모리에 저장하며, 동시에 상기 압축 파일의 다른 일부를 수신하여 상기 메인 메모리에 저장하는 단계를 포함한다.According to another embodiment, a computer-readable recording medium on which a program for performing a program installation method is recorded, the program receiving a portion of a compressed compressed file and storing it in main memory, and the compressed file stored in the main memory And extracting and compressing a portion of the data in a secondary memory, and simultaneously receiving another portion of the compressed file and storing it in the main memory.

또 다른 실시예에 따르면, 프로그램 설치 장치에 의해 수행되며, 프로그램 설치 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램으로서, 프로그램이 압축된 압축 파일의 일부를 수신하여 메인 메모리에 저장하는 단계, 및 상기 메인 메모리에 저장된 압축 파일의 입루에 대해 압축을 해제하여 보조 메모리에 저장하며, 동시에 상기 압축 파일의 다른 일부를 수신하여 상기 메인 메모리에 저장하는 단계를 포함한다.According to another embodiment, a computer program performed by a program installation apparatus and stored in a medium to perform a program installation method, the program receiving a portion of a compressed compressed file and storing it in a main memory, and the main And decompressing the entry of the compressed file stored in the memory and storing it in the auxiliary memory, and simultaneously receiving another part of the compressed file and storing the compressed file in the main memory.

전술한 과제 해결 수단 중 어느 하나에 의하면, 프로그램 설치에 사용되는 메모리 용량을 최소화하는 프로그램 설치 장치 및 방법을 제시할 수 있다.According to any one of the above-described problem solving means, a program installation apparatus and method for minimizing the memory capacity used for program installation can be provided.

또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 프로그램 설치에 소모되는 시간을 감소시킨 프로그램 설치 장치 및 방법을 제시할 수 있다.In addition, according to any one of the problem solving means of the present invention, it is possible to propose a program installation apparatus and method that reduces the time spent on program installation.

도 1은 일 실시예에 따른 프로그램 설치 장치를 도시한 블록도이다.
도 2는 일 실시예에 따른 프로그램 설치 장치에서 압축 파일을 사용하여 프로그램을 설치하는 동작을 설명하기 위한 블록도이다.
도 3은 일 실시예에 따른 프로그램 설치 동작을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 프로그램 설치 장치에서 수행되는 프로그램 설치 방법을 도시한 순서도이다.
도 5는 일 실시예에 따른 프로그램 설치에 따른 압축 해제 동작의 검증을 위한 정보 파일을 도시한 도면이다.
도 6은 일 실시예에 따른 압축 파일의 구조를 도시한 도면이다.
도 7은 일 실시예에 따른 압축 파일에 포함되는 헤더들의 구조를 도시한 도면이다.
도 8은 일 실시예에 따른 설치 중단에 따른 설치 재개를 위해 저장되는 파일을 도시한 도면이다.
도 9는 일 실시예에 따른 프로그램 설치 장치에서 복수개의 제어 모듈을 사용한 프로그램 설치를 설명하기 위한 도면이다.
1 is a block diagram showing a program installation apparatus according to an embodiment.
2 is a block diagram illustrating an operation of installing a program using a compressed file in the program installation apparatus according to an embodiment.
3 is a view for explaining a program installation operation according to an embodiment.
4 is a flowchart illustrating a program installation method performed in a program installation apparatus according to an embodiment.
5 is a diagram illustrating an information file for verifying a decompression operation according to program installation according to an embodiment.
6 is a diagram illustrating the structure of a compressed file according to an embodiment.
7 is a diagram illustrating a structure of headers included in a compressed file according to an embodiment.
8 is a diagram illustrating a file stored for resuming installation according to an installation interruption according to an embodiment.
9 is a view for explaining a program installation using a plurality of control modules in the program installation apparatus according to an embodiment.

아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, various embodiments will be described in detail with reference to the accompanying drawings. The embodiments described below may be embodied in various different forms. In order to more clearly describe the features of the embodiments, detailed descriptions of the items well known to those of ordinary skill in the art to which the following embodiments pertain are omitted. In the drawings, parts irrelevant to the description of the embodiments are omitted, and like reference numerals are assigned to similar parts throughout the specification.

명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.Throughout the specification, when a component is "connected" to another component, this includes not only a case of'directly connecting', but also a case of'connecting other components in between'. In addition, when a configuration is said to "include" a configuration, this means that, unless specifically stated otherwise, it may mean that other configurations may be included as well.

이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings.

다만 이를 설명하기에 앞서, 아래에서 사용되는 용어들의 의미를 먼저 정의한다.However, before explaining this, the meanings of terms used below are defined first.

'메인 메모리'는 주기억장치(main memory unit)로서, 프로그램이나 자료를 이동시켜 실행시킬 수 있는 메모리이다. 메인 메모리는 예를 들어, 전원이 끊어져도 내용이 보존되는 롬(ROM)과 전원이 꺼지면 모든 내용이 지워지는 휘발성 메모리 타입의 램(RAM)을 포함할 수 있다. 또한, 램은 에스램(SRAM)과 디램(DRAM)을 포함할 수도 있다.'Main memory' is a main memory unit, and is a memory that can be executed by moving programs or data. The main memory may include, for example, a ROM (ROM) in which contents are preserved even when the power is turned off and a volatile memory type RAM (RAM) in which all contents are erased when the power is turned off. In addition, the RAM may include SRAM and DRAM.

'보조 메모리'는 보조기억장치(secondary memory unit)로서, 컴퓨터의 프로세서가 아닌 외부에서 프로그램이나 데이터를 보관하기 위한 기억장치를 의미한다. 주기억 장치보다 다소 속도가 느리지만, 많은 자료의 영구 보관에 사용된다. 보조 메모리는 예를 들어, 하드디스크드라이브(HDD), 솔리드스테이트드라이브(SSD), 플로피디스크, 씨디롬(CD-ROM)을 포함할 수 있다. 또한, 보조 메모리는 자기를 이용하는 자기테이프 또는 자기 디스크, 빛을 이용하는 레이저디스크, 빛과 자기를 모두 이용하는 광자기 디스크를 포함할 수도 있다.'Secondary memory' refers to a secondary memory unit, which is a storage device for storing programs or data outside the computer's processor. It is somewhat slower than main memory, but it is used for permanent storage of many data. The auxiliary memory may include, for example, a hard disk drive (HDD), a solid state drive (SSD), a floppy disk, or a CD-ROM. In addition, the auxiliary memory may include a magnetic tape or magnetic disk using magnetism, a laser disk using light, and a magneto-optical disk using both light and magnetism.

'압축 파일'은 전자 단말기 등에서 구동되는 프로그램을 압축한 파일이다. 압축 파일은 프로그램을 압축하거나, 프로그램을 두 개 이상으로 분할되어 압축한 파일들의 집합이다. 여기서, 프로그램이 두 개 이상으로 분할 압축된 '압축 분할 파일'을 정의할 수 있는데, 즉, '분할 압축 파일'은 프로그램이 분할되어 압축된 파일 또는 압축 후에 분할된 파일일 수 있다.A'compressed file' is a file compressed by a program running on an electronic terminal or the like. A compressed file is a set of files that compress a program or split a program into two or more compressed files. Here, it is possible to define a'compressed divided file' in which a program is divided and compressed into two or more, ie, a'split compressed file' may be a file in which a program is divided and compressed or a file divided after compression.

여기서, 압축 파일과 압축 분할 파일은 데이터의 단위를 설명하기 위해 정의된 것으로, 압축 파일과 압축 분할 파일 각각은 1비트 이상의 데이터의 집합을 의미할 수 있다. 만약, 압축 파일이 1비트로 구성될 경우, 압축 파일에 대한 압축 분할 파일은 별도로 존재하지 않을 수도 있다.Here, the compressed file and the compressed divided file are defined to describe a unit of data, and each of the compressed file and the compressed divided file may mean a set of data of 1 bit or more. If the compressed file is composed of 1 bit, the compressed split file for the compressed file may not exist separately.

예를 들어, 압축 파일은 게임 프로그램을 압축한 파일일 수 있으나, 다른 기능을 갖는 다른 모든 프로그램들을 압축한 파일일 수 있다.For example, the compressed file may be a compressed file of a game program, but may be a compressed file of all other programs having different functions.

위에 정의한 용어 이외에 설명이 필요한 용어는 아래에서 각각 따로 설명한다.In addition to the terms defined above, terms that require explanation will be described separately below.

도 1은 일 실시예에 따른 프로그램 설치 장치를 도시한 블록도이다.1 is a block diagram showing a program installation apparatus according to an embodiment.

도 1에 도시된 바와 같이, 프로그램 설치 장치(100)는 프로그램의 설치가 가능한 장치이며, 설치된 프로그램이 구동될 수 있는 장치이다. 프로그램 설치 장치(100)는 프로그램의 설치를 위한 메모리를 구비할 수 있다.As illustrated in FIG. 1, the program installation device 100 is a device capable of installing a program, and is a device capable of driving an installed program. The program installation device 100 may include a memory for installing a program.

프로그램 설치 장치(100)는 프로그램을 압축 파일의 형태로 수신할 수 있다. 프로그램 설치 장치(100)는 프로그램을 설치하기 위하여 수신된 압축 파일의 압축을 해제하며, 압축 파일로부터 압축이 해제된 순서로 프로그램을 바로 설치할 수 있다.The program installation apparatus 100 may receive a program in the form of a compressed file. The program installation device 100 decompresses the compressed file received in order to install the program, and may install the program in the order in which the compressed file is decompressed.

프로그램 설치 장치(100)는 프로그램이 설치되고, 설치된 프로그램이 구동되는 전자단말기로 구현되거나, 서버-클라이언트 시스템으로 구현될 수 있다.The program installation apparatus 100 may be implemented as an electronic terminal in which a program is installed and an installed program is driven, or may be implemented as a server-client system.

프로그램 설치 장치(100)가 서버-클라이언트 시스템으로 구현된다면 프로그램 설치 장치(100)는 유저와의 인터랙션을 위한 클라이언트가 설치된 전자단말기를 포함할 수 있다.If the program installation apparatus 100 is implemented as a server-client system, the program installation apparatus 100 may include an electronic terminal in which a client for interaction with a user is installed.

이때 전자단말기는, 유저와의 인터랙션이 가능한 인터페이스를 포함할 수 있는 컴퓨터나 휴대용 단말기, 텔레비전, 웨어러블 디바이스(Wearable Device) 등으로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop)등을 포함하고, 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant),GSM(Global System for Mobile communications), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet), 스마트폰(Smart Phone), 모바일WiMAX(Mobile Worldwide Interoperability for Microwave Access) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다. 또한, 텔레비전은 IPTV(Internet Protocol Television), 인터넷 TV(Internet Television), 지상파 TV, 케이블 TV 등을 포함할 수 있다. 나아가 웨어러블 디바이스는 예를 들어, 시계, 안경, 액세서리, 의복, 신발 등 인체에 직접 착용 가능한 타입의 정보처리장치로서, 직접 또는 다른 정보처리장치를 통해 네트워크를 경유하여 원격지의 서버에 접속하거나 타 단말과 연결될 수 있다.In this case, the electronic terminal may be implemented as a computer, a portable terminal, a television, a wearable device, or the like, which may include an interface capable of interacting with a user. Here, the computer includes, for example, a laptop equipped with a web browser (WEB Browser), a desktop (desktop), a laptop (laptop), and the like, and the portable terminal is, for example, a wireless communication device that guarantees portability and mobility. , PCS(Personal Communication System), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant),GSM(Global System for Mobile communications), IMT(International Mobile Telecommunication)-2000, CDMA(Code All kinds of handhelds such as Division Multiple Access (2000), W-Code Division Multiple Access (W-CDMA), Wireless Broadband Internet (Wibro), Smart Phone, Mobile Worldwide Interoperability for Microwave Access (WiMAX), etc. (Handheld)-based wireless communication device. In addition, the television may include Internet Protocol Television (IPTV), Internet Television (TV), terrestrial TV, and cable TV. Furthermore, the wearable device is a type of information processing device that can be directly worn on the human body, for example, a watch, glasses, accessories, clothing, shoes, etc., to connect to a remote server or other terminal through a network directly or through another information processing device. And can be connected.

그리고 서버-클라이언트 시스템의 서버는, 클라이언트가 설치된 전자단말기와 네트워크를 통해 통신이 가능한 컴퓨팅장치로 구현될 수 있으며, 데이터를 저장할 수 있는 저장장치가 포함될 수 있거나 또는 제 3 의 서버(미도시)를 통해 데이터를 저장할 수도 있다.In addition, the server of the server-client system may be implemented as a computing device capable of communicating through a network with an electronic terminal where a client is installed, and a storage device capable of storing data may be included, or a third server (not shown) may be used. You can also store data through.

프로그램 설치 장치(100)는, 입출력부(110), 통신부(120), 메모리(130), 및 제어부(140)를 포함할 수 있다.The program installation apparatus 100 may include an input/output unit 110, a communication unit 120, a memory 130, and a control unit 140.

입출력부(110)는 유저로부터 입력을 수신하기 위한 입력부와, 작업의 수행 결과 또는 프로그램 설치 장치(100)의 상태 등의 정보를 표시하기 위한 출력부를 포함할 수 있다. 예를 들어, 입출력부(110)는 유저 입력을 수신하는 조작 패널(operation panel) 및 화면을 표시하는 디스플레이 패널(display panel) 등을 포함할 수 있다.The input/output unit 110 may include an input unit for receiving input from a user, and an output unit for displaying information such as a result of performing a job or a state of the program installation apparatus 100. For example, the input/output unit 110 may include an operation panel for receiving user input, a display panel for displaying the screen, and the like.

구체적으로, 입력부는 키보드, 물리 버튼, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 유저 입력을 수신할 수 있는 장치들을 포함할 수 있다. 또한, 출력부는 디스플레이 패널 또는 스피커 등을 포함할 수 있다. 다만, 이에 한정되지 않고 입출력부(110)는 다양한 입출력을 지원하는 구성을 포함할 수 있다.Specifically, the input unit may include devices capable of receiving various types of user input, such as a keyboard, a physical button, a touch screen, a camera, or a microphone. Also, the output unit may include a display panel or a speaker. However, the present invention is not limited thereto, and the input/output unit 110 may include a configuration supporting various input/output.

한편, 통신부(120)는 다른 디바이스 또는 네트워크와 유무선 통신을 수행할 수 있다. 이를 위해, 통신부(120)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태로 구현될 수 있다.Meanwhile, the communication unit 120 may perform wired/wireless communication with other devices or networks. To this end, the communication unit 120 may include a communication module supporting at least one of various wired and wireless communication methods. For example, the communication module may be implemented in the form of a chipset.

통신부(120)가 지원하는 무선 통신은, 예를 들어 Wi-Fi(Wireless Fidelity), Wi-Fi Direct, 블루투스(Bluetooth), UWB(Ultra Wide Band) 또는 NFC(Near Field Communication) 등일 수 있다. 또한, 통신부(120)가 지원하는 유선 통신은, 예를 들어 USB 또는 HDMI(High Definition Multimedia Interface) 등일 수 있다. 상술된 통신은 예시일 뿐이며, 프로그램 설치 장치(100)가 통신을 수행할 수 있도록 하는 각종 통신 기법이 가능하다.The wireless communication supported by the communication unit 120 may be, for example, Wi-Fi (Wireless Fidelity), Wi-Fi Direct, Bluetooth (Bluetooth), UWB (Ultra Wide Band) or NFC (Near Field Communication). In addition, the wired communication supported by the communication unit 120 may be, for example, USB or HDMI (High Definition Multimedia Interface). The above-described communication is only an example, and various communication techniques enabling the program installation device 100 to perform communication are possible.

한편, 메모리(130)에는 파일, 애플리케이션 및 프로그램 등과 같은 다양한 종류의 데이터가 설치 및 저장될 수 있다. 메모리(130)에 저장된 데이터는 후술될 제어부(140)에 의해 액세스되어 이용되거나, 또는 제어부(140)에 의해 새로운 데이터가 저장될 수 있다. 또한, 메모리(130)는 제어부(140)에 의해 실행될 수 있는 프로그램을 저장할 수 있다.Meanwhile, various types of data such as files, applications, and programs may be installed and stored in the memory 130. Data stored in the memory 130 may be accessed and used by the control unit 140 to be described later, or new data may be stored by the control unit 140. Also, the memory 130 may store a program that can be executed by the controller 140.

메모리(130)는 메인 메모리(131)와 보조 메모리(132)를 포함할 수 있다. 메인 메모리(131)는 주기억장치로서, 메인 메모리(131)에는 통신부(120)로부터 수신된 압축 파일이 저장된다. 보조 메모리(132)에는 메인 메모리(131) 내 압축 파일의 압축을 해제한 프로그램이 설치될 수 있다. 이를 통해, 보조 메모리(131)에는 프로그램이 저장될 수 있다.The memory 130 may include a main memory 131 and an auxiliary memory 132. The main memory 131 is a main memory device, and the compressed file received from the communication unit 120 is stored in the main memory 131. A program that decompresses a compressed file in the main memory 131 may be installed in the auxiliary memory 132. Through this, a program may be stored in the auxiliary memory 131.

한편, 제어부(140)는 프로그램 설치 장치(100)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 제어부(140)는 입출력부(110)를 통해 수신한 유저 입력에 대응되는 동작을 수행하도록 프로그램 설치 장치(100)에 포함된 다른 구성들을 제어할 수 있다.Meanwhile, the control unit 140 controls the overall operation of the program installation apparatus 100 and may include a processor such as a CPU. The control unit 140 may control other components included in the program installation apparatus 100 to perform an operation corresponding to a user input received through the input/output unit 110.

예를 들어, 제어부(140)는 메모리(130)에 저장된 프로그램을 실행시키거나, 메모리(130)에 저장된 데이터를 읽어오거나, 새로운 데이터를 메모리(130)에 저장할 수도 있다.For example, the control unit 140 may execute a program stored in the memory 130, read data stored in the memory 130, or store new data in the memory 130.

일 실시예에 따른, 제어부(140)는 프로그램을 설치하기 위해 메인 메모리(131)에 압축 파일을 수신하여 저장하고, 저장된 압축 파일의 압축을 해제할 수 있다. 제어부(140)는 압축 해제된 프로그램을 보조 메모리(132)에 설치하도록 제어할 수 있다.According to an embodiment, the control unit 140 may receive and store a compressed file in the main memory 131 to install a program, and decompress the stored compressed file. The control unit 140 may control the decompressed program to be installed in the auxiliary memory 132.

예를 들어, 제어부(140)는 통신부(120)를 통해 수신된 압축 파일의 일부인 제 1 단위 압축 파일을 메인 메모리(131)에 저장할 수 있다. 이후, 제어부(140)는 메인 메모리(131)에 저장된 단위 압축 파일의 압축을 해제하여 프로그램을 보조 메모리(132)에 저장할 수 있다. 이와 동시에, 제어부(140)는 압축 파일의 다른 일부인 제 2 단위 압축 파일을 수신하여 메인 메모리(131)에 저장할 수 있다. 여기서, 보조 메모리(132)에 저장되는 제 1 단위 압축 파일과 동시에 메인 메모리(131)에 저장되는 제 2 단위 압축 파일은 1비트 이상의 크기를 가질 수 있으며, 동일한 크기를 갖거나 서로 다른 크기를 가질 수도 있다. 또한, 제 1 단위 압축 파일과 제 2 단위 압축 파일은 압축 파일에서 압축의 해제가 가능한 데이터의 최소 단위를 나타낸다.For example, the controller 140 may store the first unit compressed file, which is a part of the compressed file received through the communication unit 120, in the main memory 131. Thereafter, the controller 140 may decompress the unit compressed file stored in the main memory 131 and store the program in the auxiliary memory 132. At the same time, the control unit 140 may receive the second unit compressed file which is another part of the compressed file and store it in the main memory 131. Here, the first unit compressed file stored in the auxiliary memory 132 and the second unit compressed file stored in the main memory 131 may have a size of 1 bit or more, and have the same size or different sizes. It might be. In addition, the first unit compressed file and the second unit compressed file represent a minimum unit of data that can be decompressed in the compressed file.

또한, 제어부(140)는 압축 파일의 압축 해제 시, 두 개 이상으로 분할된 압축 파일, 즉, 압축 분할 파일 단위로 압축을 해제할 수 있으며, 압축이 해제된 압축 분할 파일은 보조 메모리(132)에 설치될 수 있다.In addition, when decompressing a compressed file, the control unit 140 may decompress the compressed file divided into two or more units, that is, the compressed divided file unit, and the compressed compressed divided file is the auxiliary memory 132. Can be installed on.

예를 들어, 압축 파일 내 프로그램이 게임 프로그램 내지는 게임 설치 프로그램인 경우, 제어부(140)는 보조 메모리(132)에 게임을 설치하고, 설치된 게임을 실행시켜 게임을 제공할 수도 있다. For example, when the program in the compressed file is a game program or a game installation program, the controller 140 may install the game in the auxiliary memory 132 and execute the installed game to provide the game.

상술된 바에 따른 제어부(140)에서 압축 파일을 사용하여 프로그램을 설치하는 동작을 도 2를 참조하여 보다 상세히 후술된다.The operation of installing the program using the compressed file in the control unit 140 as described above will be described later in more detail with reference to FIG. 2.

도 2는 일 실시예에 따른 프로그램 설치 장치에서 압축 파일을 사용하여 프로그램을 설치하는 동작을 설명하기 위한 블록도이다.2 is a block diagram illustrating an operation of installing a program using a compressed file in the program installation apparatus according to an embodiment.

도 2에 도시된 바와 같이, 통신부(120)는 프로그램을 압축한 압축 파일을 수신할 수 있다. 통신부(120)는 수신된 압축 파일의 압축을 해제하기 위해 메인 메모리(131)에 압축 파일을 저장할 수 있다. 압축 파일은 복수의 단위 압축 파일 또는 복수의 압축 분할 파일로 구성될 수 있다. 또한, 압축 분할 파일은 병렬 처리, 예를 들어, 압축 파일의 수신과 동시에 압축 파일의 압축을 해제하여 프로그램을 설치하기 위해 서로 동일한 파일 구조를 가질 수 있으며, 개별적으로 완결성, 즉, 완전한 하나의 파일 형태를 가질 수 있다. 그러므로, 통신부(120)는 압축 분할 파일을 순차적으로 수신하여 메인 메모리(131)에 저장할 수 있다.As illustrated in FIG. 2, the communication unit 120 may receive a compressed file compressed with a program. The communication unit 120 may store the compressed file in the main memory 131 to decompress the received compressed file. The compressed file may be composed of a plurality of unit compressed files or a plurality of compressed divided files. In addition, compressed split files can have the same file structure for each other to install programs by parallel processing, for example, decompressing the compressed files simultaneously with the reception of the compressed files, and individually complete, i.e., a complete single file It can take the form. Therefore, the communication unit 120 may sequentially receive the compressed split file and store it in the main memory 131.

메인 메모리(131)는 압축 파일이 저장되는 메모리이다. 또한, 메인 메모리(131)에는 제어부(140)에 의해 압축이 해제된 프로그램이 보조 메모리(132)에 저장되기 전에 일시적으로 저장될 수도 있다.The main memory 131 is a memory in which compressed files are stored. In addition, the program decompressed by the control unit 140 may be temporarily stored in the main memory 131 before being stored in the auxiliary memory 132.

제어부(140)는 메인 메모리(131)에 저장된 압축 파일의 압축을 해제할 수 있다. 제어부(140)는 압축을 해제하여 획득한 프로그램을 보조 메모리(132)에 직접 설치할 수 있다.The control unit 140 may decompress the compressed file stored in the main memory 131. The control unit 140 may directly install the program obtained by decompressing it in the auxiliary memory 132.

한편, 제어부(140)는 메인 메모리(131) 내에서 압축 해제 동작을 수행할 수 있다. 또한, 제어부(140)는 압축을 해제한 프로그램을 보조 메모리(132)에 저장하기 전에 메인 메모리(131)에 일시 저장한 후에 보조 메모리(132)에 설치하도록 제어할 수도 있다. 상술한 동작들은 도면 내에서 점선으로 도시되어 있으며, 메인 메모리(131)의 처리 속도는 보조 메모리(132)의 처리 속도보다 빠르기 때문에, 상술한 동작들을 통해 프로그램 설치에 따른 메모리들(131, 132) 간의 처리 속도 차이를 극복할 수 있다.Meanwhile, the controller 140 may perform a decompression operation in the main memory 131. In addition, the control unit 140 may control to install the decompressed program in the auxiliary memory 132 after temporarily storing it in the main memory 131 before storing it in the auxiliary memory 132. Since the above-described operations are illustrated by dotted lines in the drawing, and the processing speed of the main memory 131 is faster than the processing speed of the auxiliary memory 132, the memories 131 and 132 according to the program installation through the above-described operations The difference in the processing speed of the liver can be overcome.

제어부(140)는 압축 파일의 압축을 해제하는 경우, 소정 단위로 압축을 해제할 수도 있다. 예를 들어, 제어부(140)는 소정 단위의 제 1 단위 압축 파일을 수신하여 메인 메모리(131)에 저장하며, 동시에 메인 메모리(131)에 저장된 소정 단위의 제 2 단위 압축 파일의 압축을 해제하여 보조 메모리(132)에 저장한다. 여기서, 제 1 단위 압축 파일과 제 2 단위 압축 파일은 1비트 이상의 크기를 가질 수 있으며, 동일한 크기를 갖거나 다른 크기를 가질 수 있다. 예를 들어, 압축 파일에서 제 2 단위의 압축 파일 다음에 제 1 단위의 압축 파일이 이어서 위치할 수 있다.When decompressing the compressed file, the controller 140 may decompress the compressed file in a predetermined unit. For example, the controller 140 receives the first unit compressed file of a predetermined unit and stores it in the main memory 131, and simultaneously decompresses the second unit compressed file of the predetermined unit stored in the main memory 131. It is stored in the auxiliary memory 132. Here, the first unit compressed file and the second unit compressed file may have a size of 1 bit or more, and may have the same size or different sizes. For example, in the compressed file, the compressed file of the first unit may be located after the compressed file of the second unit.

제어부(140)는 압축 파일의 압축을 해제하는 경우, 압축 분할 파일 단위로 압축을 해제할 수도 있다. 이를 통해, 제어부(140)는 압축 분할 파일에 대해 압축을 해제하고, 압축을 해제하여 획득한 프로그램을 설치할 수 있다. 이때, 메인 메모리(131)에는 제어부(140)에서 압축을 해제한 압축 분할 파일 다음의 압축 분할 파일이 수신될 수 있다.When decompressing the compressed file, the controller 140 may decompress the compressed file in units of compressed files. Through this, the controller 140 may decompress the compressed partition file and install a program obtained by decompressing. At this time, the main memory 131 may receive a compressed split file after the compressed split file that has been decompressed by the controller 140.

이와 같이 프로그램을 설치하는 경우, 제어부(140)는 단위 압축 파일 또는 압축 분할 파일을 이용하여 압축 파일의 수신과 동시에 압축 파일의 압축을 해제한 프로그램을 설치할 수 있다.When installing the program as described above, the control unit 140 may install a program that decompresses the compressed file at the same time as receiving the compressed file using a unit compressed file or a compressed divided file.

이를 통해, 제안된 프로그램 설치 장치(100)는 보조 메모리(132)에 전체 프로그램을 수신, 즉 압축 파일을 모두 수신한 후에 압축을 해제하여 프로그램을 설치하는 방식에 비하여, 압축 해제를 위해 보조 메모리(132)를 사용할 필요가 없어 프로그램 설치에 사용되는 메모리 용량을 최소화할 수 있으며, 프로그램 설치 속도가 향상될 수 있다.Through this, the proposed program installation apparatus 100 receives the entire program in the auxiliary memory 132, that is, after receiving all the compressed files, decompresses and installs the program in order to decompress the auxiliary memory ( 132), there is no need to use, and the memory used for program installation can be minimized, and the program installation speed can be improved.

도 3은 일 실시예에 따른 프로그램 설치 동작을 설명하기 위한 도면이다.3 is a view for explaining a program installation operation according to an embodiment.

도 4에 도시된 바와 같이, 메인 메모리(131)에는 프로그램의 압축 파일(210)이 저장될 수 있다. 여기서, 압축 파일(210)은 프로그램(220)을 두 개 이상으로 압축하여 분할하거나 분할하여 압축한 제 1 내지 제 3 단위 압축 파일(C1, C2, C3)로 구분될 수 있고, 프로그램(220)은 제 1 내지 제 3 프로그램(P1, P2, P3)으로 구분될 수 있다.As illustrated in FIG. 4, a compressed file 210 of a program may be stored in the main memory 131. Here, the compressed file 210 may be divided into first to third unit compressed files C1, C2, and C3 compressed by splitting or dividing and compressing the program 220 into two or more, and the program 220 May be divided into first to third programs P1, P2, and P3.

그러므로, 설치를 위한 프로그램은 제 1 내지 제 3 단위 압축 파일 각각으로 분할되어 개별적으로 압축되어 통신부(120)로부터 수신될 수 있다.Therefore, the program for installation may be divided into each of the first to third unit compressed files, individually compressed, and received from the communication unit 120.

제 1 구간(t1)에서, 제 1 단위 압축 파일(C1)이 수신되며, 메인 메모리(131)에 제 1 단위 압축 파일(C1)이 저장된다.In the first section t1, the first unit compressed file C1 is received, and the first unit compressed file C1 is stored in the main memory 131.

제 2 구간(t2)에서, 제 1 단위 압축 파일(C1) 이후의 제 2 단위 압축 파일(C2)이 수신되며, 메인 메모리(131)에 제 2 단위 압축 파일(C2)이 저장된다.In the second section t2, the second unit compressed file C2 after the first unit compressed file C1 is received, and the second unit compressed file C2 is stored in the main memory 131.

이때, 제어부(140)는 메인 메모리(131)에 제 1 단위 압축 파일(C1)의 저장이 완료되면, 제 1 단위 압축 파일(C1)의 압축을 해제할 수 있다. 또한, 제어부(140)는 제 1 단위 압축 파일(C1)의 압축을 해제하여 획득한 제 1 프로그램(P1)을 보조 메모리(132)에 설치할 수 있다.At this time, when the storage of the first unit compressed file C1 in the main memory 131 is completed, the controller 140 may decompress the first unit compressed file C1. In addition, the control unit 140 may install the first program P1 obtained by decompressing the first unit compressed file C1 in the auxiliary memory 132.

제 3 구간(t3)에서, 제 2 단위 압축 파일(C2) 이후의 제 3 단위 압축 파일(C3)이 수신되며, 메인 메모리(131)에 제 3 단위 압축 파일(C3)이 저장된다.In the third section t3, the third unit compressed file C3 after the second unit compressed file C2 is received, and the third unit compressed file C3 is stored in the main memory 131.

이때, 제어부(140)는 메인 메모리(131)에 제 2 단위 압축 파일(C2)의 저장이 완료되면, 제 2 단위 압축 파일(C2)의 압축을 해제할 수 있다. 또한, 제어부(140)는 제 2 단위 압축 파일(C2)의 압축을 해제하여 획득한 제 2 프로그램(P2)을 보조 메모리(132)에 설치할 수 있다.At this time, when the storage of the second unit compressed file C2 in the main memory 131 is completed, the controller 140 may decompress the second unit compressed file C2. In addition, the control unit 140 may install the second program P2 obtained by decompressing the second unit compressed file C2 in the auxiliary memory 132.

제 4 구간(t4)에서, 제어부(140)는 메인 메모리(131)에 제 3 단위 압축 파일(C3)의 저장이 완료되면, 제 3 단위 압축 파일(C3)의 압축을 해제할 수 있다. 또한, 제어부(140)는 제 3 단위 압축 파일(C3)의 압축을 해제하여 획득한 제 3 프로그램(P3)을 보조 메모리(132)에 설치할 수 있다.In the fourth section t4, when the storage of the third unit compressed file C3 in the main memory 131 is completed, the controller 140 may decompress the third unit compressed file C3. In addition, the control unit 140 may install the third program P3 obtained by decompressing the third unit compressed file C3 in the auxiliary memory 132.

한편, 단위 압축 파일(C1, C2, C3) 각각은 모두 동일하거나 상이한 단위로 구성될 수 있으며, 적어도 일부가 다른 단위로 설정될 수도 있다.Meanwhile, each of the unit compressed files C1, C2, and C3 may be configured in the same or different units, and at least some of them may be set in different units.

도 3에서는 설명의 편의를 위하여 단위 압축 파일(C1, C2, C3)를 기준으로 설명하지만, 단위 압축 파일(C1, C2, C3) 대신에 압축 분할 파일을 이용하여 프로그램(220)을 설치하는 경우에도 동일한 형태로 적용될 수 있다.In FIG. 3, for convenience of description, the description is based on the unit compressed files C1, C2, and C3, but when the program 220 is installed using a compressed split file instead of the unit compressed files C1, C2, and C3, The same can be applied to.

여기서, 제 1 내지 제 3 프로그램(P1, P2, P3)는 하나의 프로그램이 분할된 것으로, 제 1 내지 제 3 프로그램(P1, P2, P3)은 보조 메모리(132)에 순차적으로 설치될 수 있다.Here, the first to third programs P1, P2, and P3 are divided into one program, and the first to third programs P1, P2, and P3 may be sequentially installed in the auxiliary memory 132. .

이와 같이, 프로그램 설치 장치(100)는 제 2 구간(t2)과 제 3 구간(t3)에서 살펴본 바와 같이, 단위 압축 파일 또는 압축 분할 파일을 이용하여 압축 파일을 메인 메모리(131)로 다운받으면서, 압축 파일의 압축을 해제하여 보조 메모리(132)에 압축 해제된 프로그램을 설치할 수 있다.As described above, as described in the second section t2 and the third section t3, the program installation apparatus 100 downloads the compressed file to the main memory 131 using a unit compressed file or a compressed divided file, The compressed program may be installed in the auxiliary memory 132 by decompressing the compressed file.

이와 같이, 프로그램 설치 장치(100)는 압축 데이터를 수신과 동시에 압축을 해제할 수 있으므로, 전체 압축 파일을 수신 완료한 후에, 압축 파일을 해제하여 프로그램을 설치하는 방식에 비해 메모리 용량을 최소로 사용하게 된다. 예를 들어, 기존에 8기가바이트(GB)의 프로그램을 설치하는 경우, 두 배의 보조 메모리 영역 16GB의 메모리 영역을 사용하지만, 프로그램 설치 장치(100)는 메인 메모리(131)만을 이용하여 게임을 보조 메모리(132)에 직접 설치하기 때문에 보조 메모리(132)에서 프로그램의 설치될 영역 이외의 영역을 별도로 필요로 하지 않는다.As described above, since the program installation apparatus 100 can receive compressed data and decompress it at the same time, after receiving the entire compressed file, the compressed file is released and the memory capacity is minimized compared to the method of installing the program. Is done. For example, when 8 GB (GB) of an existing program is installed, the double auxiliary memory area uses 16 GB of memory area, but the program installation device 100 uses only the main memory 131 to play the game. Since it is directly installed in the auxiliary memory 132, an area other than the area to be installed of the program in the auxiliary memory 132 is not required.

참고로, 메인 메모리(131), 제어부(140), 및 보조 메모리(132) 간에는 데이터의 이동에 따른 소정 지연 시간, 예를 들어, 제어부(140)에서 메인 메모리(131)에 저장된 압축 분할 파일의 로드에 소요되는 시간 등이 존재할 수도 있으나, 여기서는 설명의 편의를 위하여 도시하지 않는다.For reference, a predetermined delay time according to movement of data between the main memory 131, the control unit 140, and the auxiliary memory 132, for example, of the compressed split file stored in the main memory 131 by the control unit 140 There may be a time required for loading, etc., but is not shown here for convenience of explanation.

도 4는 일 실시예에 따른 프로그램 설치 장치에서 수행되는 프로그램 설치 방법을 도시한 순서도이다.4 is a flowchart illustrating a program installation method performed in a program installation apparatus according to an embodiment.

도 4에 도시된 바와 같이, 프로그램 설치 장치(100)는 압축 파일을 수신하여 메인 메모리에 저장할 수 있다(S310). 프로그램 설치 장치(100)는 압축 파일의 일부를 수신하고, 수신된 압축 파일의 일부를 내부의 메인 메모리에 저장할 수 있다.As illustrated in FIG. 4, the program installation apparatus 100 may receive the compressed file and store it in the main memory (S310). The program installation apparatus 100 may receive a part of the compressed file and store a part of the received compressed file in the internal main memory.

프로그램 설치 장치(100)는 압축 파일의 압축을 해제하여 보조 메모리에 저장과 동시에 압축 파일을 수신하여 메인 메모리에 저장할 수 있다(S320).The program installation device 100 may decompress the compressed file and store it in the auxiliary memory, and simultaneously receive the compressed file and store it in the main memory (S320).

이때, 프로그램 설치 장치(100)는 압축 파일을 일부씩만 메인 메모리로 다운로드를 진행하면서, 동시에 압축을 해제할 수 있다. 그러므로, 압축 파일 또는 압축 분할 파일의 최대 크기는 메모리 용량과 무관하게 설정될 수도 있다.At this time, the program installation apparatus 100 may decompress simultaneously while downloading the compressed file only partially to the main memory. Therefore, the maximum size of the compressed file or the compressed divided file may be set regardless of the memory capacity.

프로그램 설치 장치(100)는 수신된 압축 파일의 일부에 대해 압축을 해제하여 보조 메모리에 저장하며, 동시에 압축 파일의 다른 일부를 메인 메모리에 저장할 수 있다. 프로그램 설치 장치(100)는 압축 파일을 단위 압축 파일 또는 압축 분할 파일의 형태로 메인 메모리에 수신과 동시에 압축을 해제하여 보조 메모리에 저장하는 병렬 처리를 수행할 수 있다.The program installation device 100 decompresses a portion of the received compressed file and stores it in the auxiliary memory, and simultaneously stores another portion of the compressed file in the main memory. The program installation apparatus 100 may perform parallel processing of receiving a compressed file in the form of a unit compressed file or a compressed divided file and simultaneously decompressing and storing the compressed file in a secondary memory.

다음으로, 프로그램 설치 장치(100)는 프로그램의 설치가 완료되었는지 판단한다(S330). Next, the program installation apparatus 100 determines whether the installation of the program is completed (S330).

S330단계의 판단결과, 프로그램의 설치가 완료되지 않은 경우, 프로그램 설치 장치(100)는 S310단계로 진행하여, 수신된 압축 파일의 압축을 해제하여 프로그램 설치 동작을 계속하여 수행하거나 새로운 압축 파일을 수신할 수 있다. 하지만, S330단계의 판단결과, 프로그램의 설치가 완료된 경우, 프로그램 설치 장치(100)는 프로그램의 설치 동작을 종료한다.As a result of the determination in step S330, if the installation of the program is not completed, the program installation device 100 proceeds to step S310 to decompress the received compressed file to continue the program installation operation or receive a new compressed file. can do. However, as a result of the determination in step S330, when the installation of the program is completed, the program installation apparatus 100 ends the installation operation of the program.

한편, 프로그램 설치 장치(100)는 압축 파일 내에 압축 해제를 위한 정보가 압축 파일의 맨 처음, 예를 들어, 헤더에 위치할 수 있다. 이와 같이, 프로그램 설치 장치(100)는 압축 해제를 위한 정보를 사용하여 압축 해제 동작 내지는 압축 해제된 프로그램을 검증할 수 있다. 또한, 프로그램 설치 장치(100)는 압축 해제를 위한 정보를 미리 확인할 수 있어, 압축 파일 내지는 프로그램의 저장을 위한 메모리 영역을 할당할 수 있다. 이때, 프로그램 설치 장치는 메인 메모리에 압축 파일의 수신을 위한 영역을 할당하거나 보조 메모리에 프로그램의 설치를 위한 영역을 할당할 수 있다.Meanwhile, the program installation apparatus 100 may include information for decompression in a compressed file at the beginning of the compressed file, for example, in a header. In this way, the program installation apparatus 100 may verify the decompression operation or the decompressed program using the information for decompression. In addition, the program installation apparatus 100 may check information for decompression in advance, and allocate a memory area for storing a compressed file or a program. At this time, the apparatus for installing a program may allocate an area for receiving a compressed file in the main memory or an area for installing a program in the auxiliary memory.

이와 유사하게, 프로그램 설치 장치(100)는 별도의 파일 형태로 수신된 정보 파일을 이용하여 추가적으로 압축 해제 동작 내지는 압축 해제된 프로그램을 검증할 수도 있다.Similarly, the program installation apparatus 100 may additionally verify the decompression operation or the decompressed program using the information file received in the form of a separate file.

도 5는 일 실시예에 따른 프로그램 설치에 따른 압축 해제 동작의 검증을 위한 정보 파일을 도시한 도면이다.5 is a diagram illustrating an information file for verifying a decompression operation according to program installation according to an embodiment.

도 5에 도시된 바와 같이, 프로그램 설치 장치(100)는 압축 파일과 별도로 구분된 정보 파일을 수신할 수 있다. 여기서, 정보 파일(400)은 압축 파일에 대한 압축의 해제 시에 사용될 수 있으며, 압축이 완료된 이후에 압축 동작을 검증하기 위해 사용될 수 있다.As shown in FIG. 5, the program installation device 100 may receive an information file separately classified from a compressed file. Here, the information file 400 may be used when decompressing the compressed file, and may be used to verify the compression operation after compression is completed.

정보 파일(400)은 버전(version), 타임스탬프(timestamp), 원본크기(original size), 압축크기(compressed size), 압축파일이름(compressed file name), 및 압축파일개수(compressed file count) 중 적어도 하나의 정보를 포함할 수 있다.The information file 400 includes a version, a timestamp, an original size, a compressed size, a compressed file name, and a compressed file count. It may include at least one piece of information.

버전은 압축(sting) 파일의 포맷에 대한 버전 정보이다. 타임스탬프는 압축 파일의 생성 시간 정보이며, 압축 파일이 유효한지에 대한 검증을 위해 사용되는 정보이다. 원본크기는 원본 파일 크기, 즉 프로그램 파일의 크기를 나타내며, 설치 용량을 확보하기 위해 사용될 수 있다. 압축크기는 압축 파일의 크기를 나타내며, 설치 중인 사용자 인터페이스(UI)에서 보여주기 위해 사용될 수 있다. 압축파일이름은 다운받을 압축 파일의 이름을 나타내며, 압축파일개수는 다운받을 압축 파일의 개수, 즉 압축 분할 파일들의 개수를 나타낸다.The version is version information for the format of a sting file. The time stamp is information on the creation time of the compressed file, and is used to verify whether the compressed file is valid. The original size indicates the original file size, that is, the size of the program file, and can be used to secure the installation capacity. Compressed size indicates the size of the compressed file and can be used to show in the user interface (UI) being installed. The compressed file name indicates the name of the compressed file to be downloaded, and the number of compressed files indicates the number of compressed files to be downloaded, that is, the number of compressed divided files.

도 6은 일 실시예에 따른 압축 파일의 구조를 도시한 도면이다.6 is a diagram illustrating the structure of a compressed file according to an embodiment.

도 6에 도시된 바와 같이, 프로그램 설치 장치(100)는 압축 파일을 수신할 수 있다. 여기서, 압축 파일은 복수의 압축 분할 파일들(510, 520)로 구분될 수 있다.As illustrated in FIG. 6, the program installation device 100 may receive a compressed file. Here, the compressed file may be divided into a plurality of compressed divided files 510 and 520.

제 1 압축 분할 파일(510)과 제 2 압축 분할 파일(520)은 동일한 구조를 가질 수 있으며, 헤더부(511, 521), 디렉토리부(512, 522), 및 멤버부(513, 523)를 차례로 포함할 수 있다.The first compressed divided file 510 and the second compressed divided file 520 may have the same structure, and include the header portions 511, 521, the directory portions 512, 522, and the member portions 513, 523. In turn.

헤더부(511, 512)는 파일 헤더(file header)를 포함할 수 있으며, 디렉토리부(512, 522)는 디렉토리 헤더(directory header)와 디렉토리 데이터(directory data)를 포함할 수 있으며, 복수의 디렉토리 헤더와 복수의 디렉토리 데이터가 존재하는 경우 디렉토리 헤더와 디렉토리 데이터는 서로 쌍을 이루어 반복되는 구조를 가질 수 있다. 멤버부(513, 523)는 멤버 헤더와 멤버 데이터를 포함할 수 있으며, 디렉토리부(512, 522)와 같이 복수의 멤버 헤더와 복수의 멤버 데이터가 존재하는 경우 멤버 헤더와 멤버 데이터는 서로 쌍을 이루어 반복되는 구조를 가질 수 있다.The header units 511 and 512 may include a file header, and the directory units 512 and 522 may include a directory header and directory data, and a plurality of directories When a header and a plurality of directory data exist, the directory header and the directory data may have a repeating structure in pairs. The member parts 513 and 523 may include a member header and member data, and when a plurality of member headers and a plurality of member data exist as in the directory parts 512 and 522, the member header and the member data pair each other. It can have a repeating structure.

이와 같이, 압축 분할 파일들(510, 520)은 분할되더라도 병렬 처리를 위해 동일한 파일 구조를 가질 수 있도록 분할되어 압축될 수 있다.As described above, even if the compressed divided files 510 and 520 are divided, they may be divided and compressed to have the same file structure for parallel processing.

따라서, 압축 분할 파일은 파일들 간에 동일한 파일 구조를 가지며, 헤더, 디렉토리부, 멤버부와 같은 형태로 특정한 파일 구조를 갖는 구조일 수 있으나, 단위 압축 파일은 프로그램 설치 장치(100)에 의해 압축 파일에서 압축의 해제가 가능한 최소 단위를 의미할 수 있다. 따라서, 단위 압축 파일의 크기가 압축 분할 파일의 크기에 비해 상대적으로 작은 크기 또는 적은 비트수로 구성될 수 있다. 도 7은 일 실시예에 따른 압축 파일에 포함되는 헤더들의 구조를 도시한 도면이다.Therefore, the compressed partitioned file has the same file structure among files, and may be a structure having a specific file structure in a form such as a header, a directory portion, and a member portion, but the unit compressed file is a compressed file by the program installation device 100 In can mean the minimum unit that can decompress. Therefore, the size of the unit compressed file may be composed of a relatively small size or a small number of bits compared to the size of the compressed divided file. 7 is a diagram illustrating a structure of headers included in a compressed file according to an embodiment.

도 7에 도시된 바와 같이, 압축 분할 파일 내에 포함된 헤더들(610, 620, 630)은, 예를 들어, 파일 헤더(610), 디렉토리 헤더(620), 및 멤버 헤더(630)로 구분될 수 있으며, 프로그램 설치 장치(100)는 헤더들(610, 620, 630)을 이용하여 압축 파일의 압축을 해제할 수 있는 다양한 정보를 추출할 수 있다.As shown in FIG. 7, the headers 610, 620, and 630 included in the compressed split file are divided into, for example, a file header 610, a directory header 620, and a member header 630. The program installation apparatus 100 may extract various information capable of decompressing the compressed file using the headers 610, 620, and 630.

파일 헤더(610)는 서명(signature), 타임스탬프(timestamp), 압축방법(compression method), 압축파일개수(compress file count), 인덱스(index), 및 크기(size)를 포함할 수 있다.The file header 610 may include a signature, a timestamp, a compression method, a compressed file count, an index, and a size.

여기서, 서명은 4바이트로 구성될 수 있고, 압축(sting) 파일의 포맷 고유의 서명 정보를 나타낸다. 타임스탬프는 8바이트로 구성될 수 있고, 파일 생성시간 정보를 나타내며, 게임 설명이 기록된 텍스트 파일인 'nfo' 내에 포함된 타임 스탬프 정보와 비교하여 동기화가 정상적인지 검증하는데 사용될 수 있다. 압축방법은 2바이트로 구성될 수 있고, 압축 알고리즘에 대한 정보를 나타내며, 압축 해제를 위한 알고리즘의 선택에 사용될 수 있다.Here, the signature may be composed of 4 bytes, and indicates signature information unique to the format of a sting file. The timestamp may be composed of 8 bytes, indicates file creation time information, and may be used to verify whether synchronization is normal by comparing timestamp information included in'nfo', a text file in which the game description is recorded. The compression method can be composed of 2 bytes, indicates information about the compression algorithm, and can be used to select an algorithm for decompression.

압축파일개수는 2바이트로 구성될 수 있고, 압축 결과로 생성된 파일의 개수를 나타낸다. 인덱스는 2바이트로 구성되고, 현재 파일이 분할 압축된 파일의 몇 번째 파일인지 나타내는 인덱스 정보이다. 크기는 8바이트로 구성될 수 있고, 현재 파일 즉, 압축 분할 파일의 크기 정보를 나타내며, 압축 해제할 때 완료되는 오프셋을 구하는데 사용될 수 있다.The number of compressed files may be composed of 2 bytes, and indicates the number of files generated as a result of compression. The index is composed of 2 bytes and is index information indicating the number of files of the currently compressed file. The size can be composed of 8 bytes, indicates the size information of the current file, that is, the compressed split file, and can be used to obtain an offset that is completed when decompressing.

예를 들어, 파일 헤더의 크기 정보는 프로그램 설치 장치(100)의 64비트 응용 프로그램을 고려하여 8바이트로 고정할 수 있다.For example, the size information of the file header may be fixed to 8 bytes in consideration of the 64-bit application program of the program installation device 100.

디렉토리 헤더(620)는 서명(signature), 경로길이(path length), 및 경로(path)를 포함할 수 있다.The directory header 620 may include a signature, a path length, and a path.

여기서, 서명은 4바이트로 구성될 수 있고, 디렉토리 헤더 영역의 서명 정보를 나타낸다. 경로길이는 2바이트로 구성될 수 있고, 원본 디렉토리 이름의 길이를 나타낸다. 경로는 원본 디렉토리 이름의 길이(경로길이(path length))에 대응되는 바이트로 구성될 수 있고, 원본 디렉토리 이름을 나타낸다.Here, the signature may be composed of 4 bytes, and indicates signature information in the directory header area. The path length can be composed of 2 bytes and represents the length of the original directory name. The path may consist of bytes corresponding to the length (path length) of the original directory name, and indicates the original directory name.

다음으로, 멤버 헤더(630)는 서명(signature), 압축크기(compressed size), 원본크기(original size), 순환중복검사(crc)-32, 마지막쓰기시간(last write time), 경로길이(pathlength), 및 경로(path)를 포함할 수 있다.Next, the member header 630 includes signature, compressed size, original size, cyclic redundancy check (crc)-32, last write time, and path length ), and paths.

여기서, 서명은 4바이트로 구성될 수 있고, 멤버 헤더 영역의 서명 정보를 나타낸다. 압축크기는 8바이트로 구성될 수 있고, 압축된 파일 크기를 나타내고, 압축 해제에 사용할 스트림데이터(stream data)의 크기를 측정하는데 사용될 수 있다. 원본크기는 2바이트로 구성될 수 있고, 압축 해제가 완료되었을 때 검증하는데 사용될 수 있다. crc-32는 2바이트로 구성될 수 있고, 원본 파일의 crc-32 정보를 나타낼 수 있으며, 압축 해제가 완료되었을 때 검증하는데 사용될 수 있다. 마지막쓰기시간은 2바이트로 나타낼 수 있고, 파일의 마지막 수정 시간 정보를 나타낼 수 있으며, 압축 해제 완료 이후 마지막 수정 시간 정보를 보정하는데 사용될 수 있다. 경로길이는 8바이트로 나타낼 수 있으며, 원본 파일 이름의 길이를 나타낼 수 있다. 경로는 원본 파일 이름의 길이(경로길이(path length))에 대응되는 바이트로 구성될 수 있고, 파일 이름을 나타내고, 압축 해제를 할 때 만들 파일의 이름으로 사용될 수 있다.Here, the signature may be composed of 4 bytes, and indicates signature information of the member header area. The compressed size can be composed of 8 bytes, indicates the compressed file size, and can be used to measure the size of stream data to be used for decompression. The original size can consist of 2 bytes and can be used to verify when decompression is complete. crc-32 may consist of 2 bytes, may indicate crc-32 information of the original file, and may be used to verify when decompression is completed. The last write time may be represented by 2 bytes, the last modification time information of the file, and may be used to correct the last modification time information after the decompression is completed. The path length can be represented by 8 bytes and the length of the original file name. The path may consist of bytes corresponding to the length (path length) of the original file name, indicate the file name, and may be used as the name of the file to be created when decompressing.

도 8은 일 실시예에 따른 설치 중단에 따른 설치 재개를 위해 저장되는 파일을 도시한 도면이다.8 is a diagram illustrating a file stored for resuming installation according to an installation interruption according to an embodiment.

도 8에 도시된 바와 같이, 이어설치 메타파일 포맷(710)은 프로그램 설치 장치(100)에서 프로그램의 설치를 중단했다가 다시 설치를 진행할 때 중단된 지점부터 설치를 진행할 수 있도록 정보를 저장한 파일이다. 여기서, 이어설치 메파타일 포맷(710)은 게임 프로그램의 설치를 가정한 경우로서, 게임 코드 메타(game code meta)로 기재되어 있다. 예를 들어, 게임 프로그램의 경우, 게임 코드가 게임 별로 유일하기 때문에 게임 코드를 파일 이름으로 저장할 수 있으며, 게임 매니저 설치 폴더와 동일한 위치에 저장할 수 있다.As illustrated in FIG. 8, the metafile format 710 for the subsequent installation is a file that stores information so that the installation can be performed from the point where it was interrupted when the installation of the program is stopped after the program installation device 100 stops installation. to be. Here, the subsequent installation mepatile format 710 assumes the installation of a game program, and is described as a game code meta. For example, in the case of a game program, since the game code is unique to each game, the game code can be saved as a file name and stored in the same location as the game manager installation folder.

이어설치 메타파일 포맷(710)은 타임스탬프(timestamp), 타겟경로(target path), 압축 파일 개수(compressed file count), 파일 헤더 서명(file header signature), 및 압축 방법(compression method), 및 제 1 파일데이터(file data #1), 및 제 2 파일데이터(file data #2)를 포함할 수 있다. Subsequent installation metafile format 710 includes a timestamp, a target path, a compressed file count, a file header signature, and a compression method, and It may include one file data (file data #1), and a second file data (file data #2).

여기서, 타임스탬프는 설치 중이었던 파일의 타임스탬프 정보이고, 게임 설명이 기록된 텍스트 파일인 'nfo' 내에 포함된 타임 스탬프 정보와 비교하여 이어받기가 가능한지 확인하는데 사용할 수 있다. 타겟경로는 설치 중인 경로를 나타내고, 이어받기 진행 시 설치 경로로 이용될 수 있다. 압축파일개수는 압축 결과로 생성된 파일 개수를 나타내며, 추가로 다운받을 파일들을 찾기 위해 사용될 수 있다. 파일헤더서명은 설치 중이었던 파일의 압축 포맷 버전 정보를 확인하기 위한 서명 정보이다. 압축방법은 설치 중이었던 파일의 압축 알고리즘 정보를 나타내고 이어받을 때 압축 알고리즘의 선택에 이용될 수 있다. 제 1파 일 데이터와 제 2 파일 데이터는 설치 중이었던 파일의 정보를 나타낸다.Here, the timestamp is the timestamp information of the file that was being installed, and can be used to check whether it is possible to take over by comparing the timestamp information included in the text file'nfo' where the game description is recorded. The target path indicates the path being installed, and may be used as an installation path when the download is in progress. The number of compressed files indicates the number of files created as a result of compression, and can be used to find additional files to download. The file header signature is signature information for checking the compressed format version information of the file being installed. The compression method indicates information on the compression algorithm of the file being installed and can be used to select the compression algorithm when receiving. The first file data and the second file data indicate information of a file that was being installed.

파일데이터(file data)(720)는 병렬 작업을 고려하여 복수 개를 가질 수 있도록 설계할 수 있다.The file data 720 may be designed to have multiple pieces in consideration of parallel operations.

파일데이터(720)는 압축파일인덱스(compress file index), 로컬파일헤더오프셋(local file header offset), 로컬파일이름(local file name), 일시정지오프셋(paused offset), 및 압축해제크기(decompressed size), 일시정지순환중복검사(paused crc)를 포함할 수 있다.The file data 720 includes a compressed file index, a local file header offset, a local file name, a paused offset, and a decompressed size. ), may include a paused cyclic redundancy test (paused crc).

압축파일인덱스는 설치 중이었던 압축 파일의 인덱스 정보를 나타내며, 이어받을 파일을 찾기 위해 사용될 수 있다. 로컬파일헤더오프셋은 압축 해제 중이었던 로컬파일(local file)의 헤더오프셋(header offset) 정보를 나타내고, 이어받을 때, 로컬파일헤더(local file header)의 정보를 얻기 위해 사용될 수 있다. 로컬파일이름은 압축 해제 중이었던 로컬파일의 이름 정보를 나타내고, 이어받을 때 로컬파일헤더정보를 검증하는데 사용할 수 있다. 일시정지오프셋은 압축 해제 중이었던 마지막 오프셋 정보를 나타내고, 이어받을 위치로 사용될 수 있다. 압축해제크기는 이어받기를 시작할 때 설치 사용자 인터페이스(UI)에 노출되는 정보를 나타낸다. 일시정지순환중복검사는 압축 해제 중이었던 마지막 순환중복검사(crc) 정보를 나타내고, 이어받을 때 로컬파일의 crc를 검증하는데 사용될 수 있다.The compressed file index indicates the index information of the compressed file that was being installed and can be used to find the file to be taken over. The local file header offset indicates header offset information of a local file that was being decompressed and may be used to obtain information of a local file header when receiving. The local file name indicates the name information of the local file that was being decompressed, and can be used to verify the local file header information when downloading. The pause offset indicates the last offset information during decompression and may be used as a position to take over. The decompression size indicates information exposed to the installation user interface (UI) when it starts to take over. The temporary stop cyclic redundancy check indicates the last cyclic redundancy check (crc) information that was being decompressed and can be used to verify the crc of the local file when it is taken over.

도 5 내지 도 8에 도시된 파일 구조와 파일 내 정보들은 예시적으로 설명된 것으로, 파일 구조는 다른 파일 구조를 가질 수 있으며 파일 내 정보들은 상술한 정보들 이외의 다른 정보를 추가로 포함하거나 다른 정보들로 변경될 수 있다.The file structure and the information in the file illustrated in FIGS. 5 to 8 are illustratively described, and the file structure may have a different file structure, and the information in the file additionally includes other information other than the above-described information or is different. Information can be changed.

도 9는 일 실시예에 따른 프로그램 설치 장치에서 복수개의 제어 모듈을 사용한 프로그램 설치를 설명하기 위한 도면이다.9 is a view for explaining a program installation using a plurality of control modules in the program installation apparatus according to an embodiment.

도 9에 도시된 바와 같이, 프로그램 설치 장치(100)내 제어부(140)는 두 개의 제어 모듈(141, 142)를 포함할 수 있다. 예를 들어, 두 개의 제어 모듈(141, 142)은 멀티코어 내지는 쿼드코어와 같은 하나의 프로세서 내에서 각각 구분된 모듈일 수 있으며, 제 1 제어 모듈(141)은 중앙처리장치(CPU)이고, 제 2 제어 모듈(142)은 그래픽처리장치(GPU)일 수도 있다.As illustrated in FIG. 9, the control unit 140 in the program installation apparatus 100 may include two control modules 141 and 142. For example, the two control modules 141 and 142 may be modules separated in one processor such as multi-core or quad-core, and the first control module 141 is a central processing unit (CPU), The second control module 142 may be a graphics processing unit (GPU).

여기서, 통신부(120)를 통해 수신된 압축 파일은 메인 메모리(131)에 저장될 수 있다. 여기서, 제 1 제어 모듈(141)과 제 2 제어 모듈(142)은 상호 간에 통신이 가능할 수 있다.Here, the compressed file received through the communication unit 120 may be stored in the main memory 131. Here, the first control module 141 and the second control module 142 may communicate with each other.

따라서, 제 1 제어 모듈(141)과 제 2 제어 모듈(142)은 메인 메모리(131) 내에 분할된 압축 파일, 즉 압축 분할 파일을 교번하여 압축 해제하고, 보조 메모리(132)에 설치할 수 있다. 예를 들어, 제 1 제어 모듈(141)은 홀수 번째 순서의 압축 분할 파일의 압축을 해제하고, 제 2 제어 모듈(142)은 짝수 번째 순서의 압축 분할 파일의 압축을 해제할 수 있다. 이를 통해, 제 1 제어 모듈(141)과 제 2 제어 모듈(142)은 압축 해제된 프로그램을 보조 메모리에 설치할 수 있다. 이와 같은 경우, 제어 모듈(141, 142)에서 압축 해제를 병렬로 처리하여, 두 개의 제어 모듈에서 프로그램의 설치와 압축의 해제를 나누어서 수행할 수 있으므로, 프로그램 설치에 소요되는 시간을 더욱 단축 시킬 수 있다.Accordingly, the first control module 141 and the second control module 142 may alternately decompress the compressed files divided in the main memory 131, that is, the compressed divided files, and install them in the auxiliary memory 132. For example, the first control module 141 decompresses the compressed partition file in the odd order, and the second control module 142 decompresses the compressed partition file in the even order. Through this, the first control module 141 and the second control module 142 may install the decompressed program in the auxiliary memory. In this case, since the decompression is processed in parallel by the control modules 141 and 142, the installation and decompression of the program can be performed separately in the two control modules, thereby shortening the time required for program installation. have.

또한, 제 1 제어 모듈(141)과 제 2 제어 모듈(142)은 수행 중인 작업에 따른 프로세서의 처리율을 비교할 수 있다. 이를 통해, 처리율(또는 처리속도)이 상대적으로 높은 하나의 제어 모듈을 선택하고, 선택된 제어 모듈에 의해 압축 해제 및 프로그램 설치 동작을 수행하도록 할 수 있다.In addition, the first control module 141 and the second control module 142 may compare the throughput of the processor according to the operation being performed. Through this, one control module having a relatively high throughput (or processing speed) may be selected, and decompression and program installation operations may be performed by the selected control module.

예를 들어, 제 1 제어 모듈(141)이 제 2 제어 모듈(142) 보다 처리율이 높은 경우, 제 1 제어 모듈(141)에서 압축 파일의 압축을 해제하여 프로그램을 설치할 수도 있다.For example, when the first control module 141 has a higher throughput than the second control module 142, the first control module 141 may decompress the compressed file to install a program.

이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.The term'~unit' used in the above embodiments means software or hardware components such as a field programmable gate array (FPGA) or an ASIC, and'~unit' performs certain roles. However,'~ wealth' is not limited to software or hardware. The'~ unit' may be configured to be in an addressable storage medium or may be configured to reproduce one or more processors. Thus, as an example,'~ unit' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, and procedures. , Subroutines, segments of program patent code, drivers, firmware, microcode, circuitry, data, database, data structures, tables, arrays, and variables.

구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.The functions provided within the components and'~units' may be combined into a smaller number of components and'~units', or separated from additional components and'~units'.

뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.In addition, the components and'~ unit' may be implemented to play one or more CPUs in the device or secure multimedia card.

도 4를 통해 설명된 실시예에 따른 프로그램 설치 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다. The program installation method according to the embodiment described with reference to FIG. 4 may also be implemented in the form of a computer-readable medium that stores instructions and data executable by a computer. At this time, instructions and data may be stored in the form of program code, and when executed by a processor, a predetermined program module may be generated to perform a predetermined operation. In addition, the computer-readable medium can be any available medium that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may be a computer recording medium, which is volatile and non-volatile implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Volatile, removable and non-removable media. For example, the computer recording medium may be a magnetic storage medium such as HDD and SSD, an optical recording medium such as CD, DVD and Blu-ray disk, or a memory included in a server accessible through a network.

또한 도 4를 통해 설명된 실시예에 따른 프로그램 설치 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다. In addition, the program installation method according to the embodiment described with reference to FIG. 4 may be implemented as a computer program (or computer program product) including instructions executable by a computer. The computer program includes programmable machine instructions processed by a processor and may be implemented in a high-level programming language, object-oriented programming language, assembly language, or machine language. . In addition, the computer program may be recorded on a tangible computer-readable recording medium (eg, memory, hard disk, magnetic/optical medium, or solid-state drive (SSD), etc.).

따라서 도 4를 통해 설명된 실시예에 따른 프로그램 설치 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.Therefore, the program installation method according to the embodiment described with reference to FIG. 4 may be implemented by executing a computer program as described above by a computing device. The computing device may include at least some of a processor, a memory, a storage device, a high-speed interface connected to the memory and a high-speed expansion port, and a low-speed interface connected to the low-speed bus and the storage device. Each of these components is connected to each other using various buses, and can be mounted on a common motherboard or mounted in other suitable ways.

여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.Here, the processor is capable of processing instructions within the computing device, such as to display graphical information for providing a graphical user interface (GUI) on an external input or output device, such as a display connected to a high-speed interface. Examples are commands stored in memory or storage devices. In other embodiments, multiple processors and/or multiple buses may be used in conjunction with multiple memories and memory types as appropriate. Also, the processor may be implemented as a chipset formed by chips including a plurality of independent analog and/or digital processors.

또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.Memory also stores information within computing devices. In one example, the memory may consist of volatile memory units or a collection thereof. As another example, the memory may consist of non-volatile memory units or a collection thereof. The memory may also be other forms of computer-readable media, such as magnetic or optical disks.

그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.And the storage device can provide a large storage space for the computing device. The storage device may be a computer-readable medium or a configuration including such a medium, and may include, for example, devices within a storage area network (SAN) or other configurations, and may include floppy disk devices, hard disk devices, optical disk devices, Or a tape device, flash memory, or other similar semiconductor memory device or device array.

상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above-described embodiments are for illustration only, and those having ordinary knowledge in the technical field to which the above-described embodiments belong can easily be modified into other specific forms without changing the technical idea or essential features of the above-described embodiments. You will understand. Therefore, it should be understood that the above-described embodiments are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 명세서를 통해 보호 받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.The scope to be protected through the present specification is indicated by the claims, which will be described later, rather than the detailed description, and should be interpreted to include all modified or modified forms derived from the meaning and scope of the claims and equivalent concepts thereof. .

100: 프로그램 설치 장치 110: 입출력부
120: 통신부 130: 메모리
140: 제어부 210: 블록 관리부
220: 색 변경부 230: 승패 결정부
100: program installation device 110: input and output unit
120: communication unit 130: memory
140: control unit 210: block management unit
220: color change unit 230: win or lose decision unit

Claims (14)

프로그램이 압축된 압축 파일을 수신하는 통신부;
수신된 압축 파일의 일부가 저장되고, 램(RAM)을 이용하여 구현된 메인 메모리;
상기 프로그램이 저장되고, 하드디스크드라이브(HDD)를 이용하여 구현되며, 상기 메인 메모리와 물리적으로 구분되는 보조 메모리; 및
상기 메인 메모리에 저장된 압축 파일의 일부에 대해 압축을 해제하여 상기 보조 메모리에 저장하며, 동시에 상기 압축 파일의 다른 일부를 수신하여 상기 메인 메모리에 저장하되, 상기 압축 파일의 일부를 상기 메인 메모리를 경유하여 압축 해제한 상태로 상기 보조 메모리에 저장하는 제어부를 포함하는 프로그램 설치 장치.
A communication unit for receiving a compressed file in which the program is compressed;
A part of the received compressed file is stored, and a main memory implemented using RAM;
The program is stored, implemented using a hard disk drive (HDD), the auxiliary memory physically separated from the main memory; And
A portion of the compressed file stored in the main memory is decompressed and stored in the auxiliary memory. At the same time, another portion of the compressed file is received and stored in the main memory, but a portion of the compressed file is passed through the main memory. The program installation device including a control unit to store the compressed memory in the decompressed state.
제 1 항에 있어서,
상기 압축 파일은,
상기 프로그램이 두 개 이상으로 분할 압축된 복수의 압축 분할 파일을 포함하는 프로그램 설치 장치.
According to claim 1,
The compressed file,
A program installation apparatus comprising a plurality of compressed divided files in which the programs are divided and compressed into two or more.
제 2 항에 있어서,
상기 제어부는,
압축 분할 파일 각각의 압축을 해제하고, 압축이 해제된 압축 분할 파일 각각을 상기 보조 메모리에 저장하되,
상기 압축 분할 파일 각각을 상기 보조 메모리에 저장하기 이전에 압축을 해제하여 상기 메인 메모리에 일시 저장한 후, 상기 보조 메모리에 저장하는 프로그램 설치 장치.
According to claim 2,
The control unit,
Decompress each compressed compressed file, and store each compressed compressed compressed file in the auxiliary memory,
A program installation device for decompressing and temporarily storing each of the compressed partition files in the auxiliary memory, temporarily storing the main memory in the main memory, and then storing the compressed files in the auxiliary memory.
제 3 항에 있어서,
상기 제어부는,
상기 압축 파일 내 제 1 압축 분할 파일의 압축을 해제하여 상기 보조 메모리에 저장함과 동시에 상기 압축 파일 내 제 2 압축 분할 파일을 상기 메인 메모리에 저장하도록 제어하는 프로그램 설치 장치.
The method of claim 3,
The control unit,
The program installation apparatus for controlling to extract the first compressed divided file in the compressed file and store it in the auxiliary memory while simultaneously storing the second compressed divided file in the compressed file in the main memory.
제 2 항에 있어서,
상기 압축 분할 파일은,
다른 압축 분할 파일들과 동일한 파일 구조를 가지며,
상기 파일 구조는 헤더, 디렉토리 헤더, 디렉토리 데이터, 멤버 헤더, 및 멤버 데이터를 포함하는 구조를 갖는 프로그램 설치 장치.
According to claim 2,
The compressed split file,
Has the same file structure as other compressed split files,
The file structure has a structure including a header, a directory header, directory data, a member header, and member data.
제 1 항에 있어서,
상기 제어부는,
상기 압축 파일에 관련된 정보를 상기 압축 파일과 구분된 별도의 정보 파일을 이용하여 획득하는 프로그램 설치 장치.
According to claim 1,
The control unit,
A program installation device for obtaining information related to the compressed file using a separate information file separated from the compressed file.
제 6 항에 있어서,
상기 정보 파일은,
상기 압축 파일에 대한 상기 압축의 해제 동작을 검증하기 위한 정보를 포함하며,
상기 정보 파일은,
상기 정보 파일의 버전 정보, 상기 압축 파일의 생성 시간 정보, 원본 파일의 크기 정보, 상기 압축 파일의 크기 정보, 상기 압축 파일의 이름 정보, 및 상기 압축 파일 내 분할된 압축 분할 파일들의 개수 정보 중 적어도 하나를 포함하는 프로그램 설치 장치.
The method of claim 6,
The information file,
It includes information for verifying the decompression operation of the compressed file,
The information file,
At least one of version information of the information file, creation time information of the compressed file, size information of the original file, size information of the compressed file, name information of the compressed file, and information on the number of compressed divided files in the compressed file A program installation device comprising one.
제 1 항에 있어서,
상기 제어부는,
상기 압축 파일의 압축을 해제하는 경우, 상기 압축 파일의 헤더로부터 상기 압축을 해제하기 위한 정보를 획득하는 프로그램 설치 장치.
According to claim 1,
The control unit,
When decompressing the compressed file, a program installation apparatus for obtaining information for decompressing the compressed file from a header of the compressed file.
프로그램 설치 장치에 의해 수행되는 프로그램 설치 방법에 있어서,
프로그램이 압축된 압축 파일의 일부를 수신하여, 램(RAM)을 이용하여 구현된 메인 메모리에 저장하는 단계; 및
상기 메인 메모리에 저장된 압축 파일의 일부에 대해 압축을 해제하여, 하드디스크드라이브(HDD)를 이용하여 구현되며 상기 메인 메모리와 물리적으로 구분되는 보조 메모리에 저장하고, 동시에 상기 압축 파일의 다른 일부를 수신하여 상기 메인 메모리에 저장하되, 상기 압축 파일의 일부를 상기 메인 메모리를 경유하여 압축 해제한 상태로 상기 보조 메모리에 저장하는 단계를 포함하는 프로그램 설치 방법.
In the program installation method performed by the program installation device,
Receiving a part of the compressed file in which the program is compressed, and storing it in the main memory implemented using RAM; And
Decompression of a part of the compressed file stored in the main memory is implemented using a hard disk drive (HDD) and stored in a secondary memory physically separated from the main memory, and simultaneously receives another part of the compressed file And storing it in the main memory, and storing a part of the compressed file in the auxiliary memory in a decompressed state via the main memory.
제 9 항에 있어서,
상기 압축 파일의 검증을 위해서, 상기 압축 파일에 관련된 정보 파일을 수신하는 단계; 및
수신된 정보 파일을 이용하여 상기 압축을 해제한 동작을 검증하는 단계를 더 포함하는 프로그램 설치 방법.
The method of claim 9,
Receiving a file related to the compressed file for verification of the compressed file; And
And verifying the decompression operation using the received information file.
제 9 항에 있어서,
상기 압축 파일에 관련된 정보를 상기 압축 파일과 구분된 별도의 정보 파일을 이용하여 획득하는 단계를 더 포함하는 프로그램 설치 방법.
The method of claim 9,
And acquiring information related to the compressed file using a separate information file separated from the compressed file.
제 9 항에 있어서,
상기 보조 메모리에 저장하는 단계는,
상기 압축 파일의 일부로부터 헤더를 검출하는 단계; 및
상기 헤더로부터 상기 압축 파일의 일부를 해제하기 위한 정보를 획득하는 단계, 및
상기 압축 파일의 일부를 상기 획득된 정보로 압축을 해제하여 상기 보조 메모리에 저장하는 단계를 포함하고,
상기 획득된 정보로 압축을 해제하여 상기 보조 메모리에 저장하는 단계는,
상기 압축 파일의 압축을 해제하여 상기 보조 메모리에 저장하기 이전에 상기 메인 메모리에 일시 저장한 후, 상기 보조 메모리에 저장하는 단계를 포함하는 프로그램 설치 방법.
The method of claim 9,
The step of storing in the auxiliary memory,
Detecting a header from a portion of the compressed file; And
Obtaining information for releasing a part of the compressed file from the header, and
Decompressing a part of the compressed file with the obtained information and storing it in the auxiliary memory,
Decompressing the obtained information and storing it in the auxiliary memory comprises:
The method of installing a program comprising decompressing the compressed file and temporarily storing it in the main memory before storing it in the auxiliary memory, and then storing it in the auxiliary memory.
제 9 항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium on which a program for performing the method according to claim 9 is recorded. 프로그램 설치 장치 장치에 의해 수행되며, 제 9 항에 기재된 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램.
A program installed by a device and a computer program stored on a medium for performing the method according to claim 9.
KR1020180003947A 2018-01-11 2018-01-11 Apparatus and method for installing program KR102122956B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180003947A KR102122956B1 (en) 2018-01-11 2018-01-11 Apparatus and method for installing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180003947A KR102122956B1 (en) 2018-01-11 2018-01-11 Apparatus and method for installing program

Publications (2)

Publication Number Publication Date
KR20190085726A KR20190085726A (en) 2019-07-19
KR102122956B1 true KR102122956B1 (en) 2020-06-15

Family

ID=67512034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180003947A KR102122956B1 (en) 2018-01-11 2018-01-11 Apparatus and method for installing program

Country Status (1)

Country Link
KR (1) KR102122956B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102216841B1 (en) * 2020-05-19 2021-02-18 (주)이스트소프트 Apparatus for high-speed decompression based on flexible use of memory, method therefor, and computer recordable medium storing program to perform the method
WO2023017956A1 (en) * 2021-08-07 2023-02-16 김정훈 Data compression method and device
CN116016159A (en) * 2022-12-16 2023-04-25 北京云端智度科技有限公司 Tamper-proof installation method, tamper-proof installation system, tamper-proof installation medium and tamper-proof installation equipment for application system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101074010B1 (en) * 2009-09-04 2011-10-17 (주)이스트소프트 Block unit data compression and decompression method and apparatus thereof
KR101101227B1 (en) * 2009-12-14 2012-01-04 주식회사 이노그리드 A system for installing a program and a method therefor

Also Published As

Publication number Publication date
KR20190085726A (en) 2019-07-19

Similar Documents

Publication Publication Date Title
US10474693B2 (en) Resolving conflicts within saved state data
KR102122956B1 (en) Apparatus and method for installing program
US9819758B2 (en) Remote debugging into mobile web applications across devices
US10860303B2 (en) Selective operating system patching/updating
CN111954051B (en) Method and system for transmitting video and audio data, cloud server and storage medium
CN109614372B (en) Object storage and reading method and device and service server
KR102149854B1 (en) Apparatus and method for providing game
CN105975311B (en) Application starting method and device
US9542461B2 (en) Enhancing performance of extract, transform, and load (ETL) jobs
CN105573734B (en) method and equipment for providing SDK file
KR20200037602A (en) Apparatus and method for selecting artificaial neural network
US20150127955A1 (en) Method and apparatus for inputting/outputting virtual operating system from removable storage device on a host using virtualization technique
TW201440475A (en) Streaming ZIP
US20170212750A1 (en) Compressed binary patching over wireless network
KR20140103347A (en) A radio handheld device and method for starting the radio handheld device
US9471299B1 (en) Updating code within an application
KR102116395B1 (en) Apparatus and method for testing application
WO2020113382A1 (en) Hardware upgrading method, apparatus and device, and storage medium
CN109002710B (en) Detection method, detection device and computer readable storage medium
EP3314560B1 (en) Transmitting application data for on-device demos
CN109313562A (en) Preemptive type for NAND memory device decompresses scheduling
US20180088930A1 (en) Updating code within an application
US10362082B2 (en) Method for streaming-based distributed media data processing
CN109542531B (en) File layout adjustment method and device
US10977119B2 (en) Techniques for utilizing volatile memory buffers to reduce parity information stored on a storage device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant