[swift] 파일 압축 포맷 설정하기

앱 개발 과정에서 파일을 압축하여 저장하고 싶을 때가 있을 수 있습니다. Swift에서는 다양한 압축 포맷을 지원하며, 파일을 압축하기 위해서는 해당 압축 포맷을 설정해주어야 합니다. 이번 포스트에서는 Swift에서 파일 압축 포맷을 설정하는 방법을 알아보겠습니다.

1. Zip 압축 포맷 설정하기

Swift에서 Zip 압축 포맷을 사용하기 위해서는 ZipArchive 라이브러리를 사용할 수 있습니다. ZipArchive 라이브러리는 파일을 압축하고 압축을 해제하는 기능을 제공합니다.

먼저, 프로젝트에 ZipArchive 라이브러리를 추가해야 합니다. Podfile에 다음과 같이 추가합니다:

pod 'ZipArchive'

그리고 터미널에서 다음 명령어를 실행하여 라이브러리를 설치합니다:

$ pod install

ZipArchive 라이브러리를 설치한 후, 다음과 같이 Zip 압축 포맷 설정을 할 수 있습니다:

import SSZipArchive

func createZipFile(directoryPath: String, zipFilePath: String) {
    SSZipArchive.createZipFile(atPath: zipFilePath, withContentsOfDirectory: directoryPath)
}

위의 코드에서 directoryPath는 압축할 파일들이 위치한 폴더 경로이고, zipFilePath는 압축 파일을 저장할 경로입니다.

2. GZip 압축 포맷 설정하기

Swift에서 GZip 압축 포맷을 사용하기 위해서는 Gzip 라이브러리를 사용할 수 있습니다. Gzip 라이브러리는 파일을 GZip 압축 형식으로 압축하고 해제하는 기능을 제공합니다.

먼저, 프로젝트에 Gzip 라이브러리를 추가해야 합니다. Podfile에 다음과 같이 추가합니다:

pod 'Gzip'

그리고 터미널에서 다음 명령어를 실행하여 라이브러리를 설치합니다:

$ pod install

Gzip 라이브러리를 설치한 후, 다음과 같이 GZip 압축 포맷 설정을 할 수 있습니다:

import UIKit
import Gzip

func compressFile(atPath path: String, toDestination destinationPath: String) {
    guard let inputStream = InputStream(fileAtPath: path),
        let outputStream = OutputStream(toFileAtPath: destinationPath, append: false) else {
        return
    }
    do {
        try inputStream.gzipped().write(to: outputStream)
    } catch let error {
        print("File compression failed: \(error.localizedDescription)")
    }
}

위의 코드에서 path는 압축할 파일 경로이고, destinationPath는 압축 파일을 저장할 경로입니다.

마무리

이번 포스트에서는 Swift에서 파일 압축 포맷을 설정하는 방법을 알아보았습니다. Zip 압축 포맷은 ZipArchive 라이브러리를 사용하고, GZip 압축 포맷은 Gzip 라이브러리를 사용하여 설정할 수 있습니다. 파일 압축은 데이터를 효율적으로 저장하고 전송하는데 유용한 방법이므로 앱 개발에서 자주 사용되는 기능입니다.

참고 자료: