고속 압축 알고리즘 비교 테스트: LZO/Snappy/SynLZ/LZ4/QuickLZ/Zlib

LzoSnappy

통상적인 시각으로는 파일 압축이란 가급적 작은 크기로 줄이는 압축률을 우선으로 따지지만, 그런 용도 외에 아주 빠른 압축 알고리즘이 필요할 때가 있습니다. 그런 경우는 주로, 전체 프로세싱 작업 구간들중에서 메모리 속도보다 훨씬 느릴 수밖에 없는 네트워크 전송 구간이나 디스크 저장 구간의…

FireDAC: FDMemTable vs. ClientDataSet Android 성능 비교

firedac_mobile

Delphi 및 C++Builder의 새로운 데이터 액세스 컴포넌트로 추가된 FireDAC은, 다양한 데이터베이스 서버들을 지원할 뿐만 아니라 기능 면에서도 대단히 강력합니다. 또한 성능도 매우 뛰어난데요.그런데 성능 면에서의 장점 설명들은 보통 윈도우 플랫폼에 치중되어 있습니다. 최근 저는 Delphi 기반 Android 프로젝트를 진행하던 과정에서, 안드로이드에서 FDMemTable의…

FireDAC에서 DB2 AS/400 네이티브 연결 (수정)

FireDAC connect to AS/400

IBM의 중형 컴퓨터 AS/400 (iSeries, System i)은 역시 IBM의 메인프레임(zSeries, System z)과 마찬가지로 매우 폐쇄적인 시스템으로, OS 자체적으로 데이터베이스 서버도 내장하고 있는 것이 한 특징입니다. AS/400의 OS 자체가 데이터베이스와 완전히 통합되어 있는 구조인데요. AS/400의 데이터베이스를 'DB2'라고 부르기는 하지만 유닉스나 윈도우, 리눅스…

ZXing.Delphi 바코드 스캔 예제 소스

capture_demobarcodereader

앞서 바코드 스캔 라이브러리 ZXing.Delphi에 대한 소개와 버그 수정에 대한 포스트를 올렸는데요. 이번에는 이 라이브러리를 제대로 사용하기 위한 예제 프로젝트에 대해 설명해보겠습니다. 원론적으로 보면, ZXing.Delphi 라이브러리의 사용법 자체는 꽤 간단합니다. 먼저 TScanManager 객체를 생성해놓습니다. 카메라를 액티브시킨 후, TCameraComponent의 OnSampleBufferReady 이벤트가 발생되면 이벤트…

FMX: 바코드 스캔 라이브러리, ZXing.Delphi 소개 및 버그 수정

ZXing.Delphi

저는 현재 공장 자동화 목적의 안드로이드 앱을 개발중인데, 라인/공정별 각 단계마다 라벨에 찍혀있는 QR code를 스캔하는 기능이 필요합니다. (QR code도 바코드의 한 종류로서 2D barcode에 속합니다) 바코드를 스캔하는 방법에는 바코드 스캐너 전용 기기를 사용하는 경우와 스마트폰/태블릿 등의 범용 기기를 이용하는…

FMX: CameraComponent의 Quality 속성 버그

CameraComponent

안드로이드 기반 단말기를 위한 앱을 개발하던 중, Firemonkey 카메라 컴포넌트의 해상도 설정 기능에서 작은(?) 버그를 발견했습니다. 기기의 최고 해상도보다 해상도를 낮춰 설정한 후 카메라를 재구동하면 해상도가 최고 해상도로 강제 설정되어버리는 것입니다. 더 골치아픈 것은, 이것을 막기 위해 카메라 재구동 전에 해상도를…