Realm Blog

Realm Cocoa 컨버터: CSV, XLSX 지원

Realm Object-C와 Realm Swift의 부족한 부분을 보완할 수 있는 새로운 오픈소스 라이브러리 Realm Cocoa Converter가 출시되었습니다.

그동안 많은 개발자들로부터 기존의 데이터를 Realm 파일로 변환하고자할 때 시간이 많이 걸린다는 얘기를 들었습니다. Realm Cocoa Converter는 다른 포맷의 파일을 Realm 형식으로 가져오거나, Realm에서 다른 포맷으로 데이터를 내보낼 수 있는 기능을 제공하는 라이브러리입니다.

이 라이브러리는 Swift로 작성되어 있고, 쉽게 사용하실 수 있습니다. Realm 파일을 내보내려면 클래스 하나만 사용하면됩니다. 아래는 Realm 데이터를 CSV파일로 내보내는 예제입니다.

let path = ... // Realm 파일의 절대 경로
let destinationFolder = ... // CSV 파일을 저장 할 폴더의 절대 경로

let exporter = CSVDataImporter(realmFilePath: path)
exporter.exportToFolderAtPath(outputFolderPath: destinationFolder)

Realm에 데이터를 가져오려면 데이터를 내보내는 것보다 조금 더 많은 단계를 거치게됩니다. 그 이유는 Realm은 데이터를 임포트하기 전 파일에 있는 각 데이터 항목의 스키마를 생성해야하기 때문입니다.

이를 위해 Realm Cocoa Converter는 지능적으로 스키마를 생성하는 독립된 클래스를 제공하며, 생성된 스키마는 그대로 저장하거나 또는 데이터를 가져오기 전에 개발자가 수정할 수 있습니다.

생성된 스키마는 임포트 할 때 전달됩니다.

var filePaths = [String]() // Realm에 가져올 파일 경로의 배열

// 스키마 생성을 위한 인스턴스를 생성하고 데이터 파일 내용을 분석합니다.
let generator =  ImportSchemaGenerator(files: filePaths)
let schema = try! generator.generate()

let destinationRealmPath = ... // 데이터를 가져온 Realm 파일의 위치

// 임포터 객체를 생성하고 위에서 생성된 스키마를 사용해 파일을 가져옵니다.
let dataImporter = CSVDataImporter(files: filePaths)
try! dataImporter.importToPath(String(destinationRealmPath), schema: schema)

Realm Cocoa Converter는 Swift로 구현되어 있지만 Object-C에서 사용하는 경우에도 적절한 인터페이스가 제공되도록 설계되어 있습니다.

NSString *path = ... // Realm 파일의 절대 경로
NSString *destinationFolder = ... // CSV 파일을 저장 할 폴더의 절대 경로

RLMCSVDataExporter *exporter = [[RLMCSVDataExporter alloc] initWithRealmFileAtPath:realmFilePath];
[exporter exportToFolderAtPath:destinationFolder withError:nil];

현재는 데이터를 가져올 수 있는 형식으로 CSV와 Excel(XLSX)파일을 지원하고, 데이터를 내보낼 수 있는 형식으로 CSV를 지원하고 있습니다. 곧 JSON과 SQLite를 포함한 다양한 포맷을 지원할 예정입니다.

Realm Cocoa Converter는 이제 막 출시한 라이브러리이기에 더 나은 서비스를 위해 여러분의 도움이 필요합니다! 만약 개발 중 특정 사례나 지원이 필요한 파일 형식이 있다면 언제든 알려주시기 바랍니다!


읽어주셔서 감사합니다. 이제 Realm과 함께 앞으로 나아가 멋진 앱을 만들어 봅시다! 우리는 항상 StackOverflow, GitHub, 와 트위터에 있습니다. 페북에서 운영중인 Realm 한국 사용자 그룹 이나 Realm 한국 사용자 페이지와도 방문해 주십시오. 한국어 연락처는 [email protected] 입니다.


Tim Oliver

호주 퍼스 출신인 Tim Oliver는 6년간 iOS 개발자로 일했으며, 2015년 3월에 Realm에 합류했습니다. iComics라는 앱의 개발자이며 가라오케를 좋아합니다. 가끔 뒷마당에 너무 캥거루가 많이 오는 것이 골칫거리라고 합니다.

이런 개발 뉴스를 더 만나보세요