SQLite 데이터베이스를 10배 빠르게 만드는 방법들

SQLite 데이터베이스를 사용하다보면, 데이터가 많을 경우 처리 속도가 만족스럽지 못한 경우가 생길 수 있습니다. 그럴 때에는 무작정 다른 종류의 데이터베이스를 찾아보거나 다른 기술을 도입하려고 하기보다는, SQLite 데이터베이스를 사용하는 코드를 최적화해볼 필요가 있죠. 그럼 아래에 적용해볼 수 있는 방법들을 정리해보겠습니다. 예제 코드는 SQLite C Library를 기준으로 했습니다. 또 설명을 위한 예제이므로…

LibreOffice Logo

LibreOffice: 무료 오피스 프로그램

LibreOffice? (다운로드 링크) LibreOffice, 한글명 리브레오피스는 대표적인 무료 오피스 프로그램입니다. MacOS, Linux 계열 운영체제를 사용하는 사람들에게는 익숙한 편이지만 Windows 사용자에게는 생소할 수 있죠. 오피스 프로그램은 PC를 사용하면서 한 번쯤은 사용하게되는 흔한 프로그램이지만 개인이 Microsoft 365 Office, 한글과컴퓨터 한컴오피스를 구매해 사용하기엔 가격이 부담스럽습니다.(각각 가정용 기준 179,000원, 63,800원) 그래서 불법 다운로드나 불법…

Windbg C++ 예외(0xe06d7363) 정보 얻기

0xE06D7363 ? 평소 Windbg 를 통해 메모리 덤프를 분석하다보면, 가끔씩 ExceptionCode: e06d7363 (C++ EH exception)을 만나볼 수 있습니다. e06d7363은 Visual C++ 컴파일러가 C++ 예외에 사용하는 예외 코드입니다. 따라서 프로그램이 C++ 예외로 인해 종료되었을 때, 이 코드와 함께 메모리 덤프가 남게 됩니다. 이 경우에는 e06d7363 이라는 예외 코드 외에는 별다른 정보가…

SQLite 데이터베이스 C/C++에서 사용하기 2: 심화 (번역)

SQLite 데이터베이스 심화편 SQLite 데이터베이스 C/C++에서 사용하기 시리즈의 이전 편에서는 기본적인 내용에 대해서 알아봤습니다. SQLite 툴의 사용법과 C 코드로 쿼리를 실행하는 방법 정도만 알아도 사용하는데 큰 문제는 없죠. 이번 편은 약간 심화적인 부분에 대해서 다룹니다. 정확히는 이미지같은 Blob(Binary Large OBject)을 다루는 방법, 메타데이터, 트랜잭션에 대한 내용입니다. 바로 시작합니다. 이미지 데이터…

SQLite 데이터베이스 C/C++에서 사용하기 1: 기본 (번역)

SQLite 는 관계형 데이터베이스 엔진입니다. 개발자는 SQLite 를 자급자족하는, 서버도 필요 없고, 설정도 필요없는 트랜잭셔널 SQL 데이터베이스 엔진이라고 표현합니다. 지금은 전세계에 수십 수백만 개가 사용되고 있을 정도로 유명하죠. SQLite 는 Solaris 10, Mac OS, 안드로이드, 아이폰에도 사용됩니다. Qt4 라이브러리도 파이썬, PHP 와 함께 SQLite 를 내부적으로 지원하죠. 또 파이어폭스, 구글 크롬 등의 아주 유명한 애플리케이션들도 내부적으로 SQLite 를 사용하고 있습니다. 대단하죠!?

C++ Named Constructor Idiom: 이름을 가진 생성자?

Named Constructor Idiom? 다들 아시다시피 C++의 생성자는 특별한 이름을 가질 수 없습니다. 그런데 가끔씩 가독성을 위해서 Self-descriptive한 이름의 생성자를 만들고 싶을 때가 있습니다. 아니면, 문법적 한계 때문에 꼭 필요한 경우도 생각해볼 수 있죠. 이럴 때 사용할 수 있는 것이 Named constructor idiom 입니다. 첫 번째 예로는 Named constructor idiom을 설명할…

우분투(Ubuntu) 18.04 노트북 Fn 키 이상동작 해결하기

LG 노트북에 우분투를 설치한 뒤, 볼륨 음소거, 줄이기, 키우기 키가 제대로 동작하지 않았습니다. 키를 짧게 눌러도 계속 누르고 있는 것처럼 인식하기 때문인데, /lib/udev/hwdb.d/60-keyboard.hwdb 파일을 수정해 해결 할 수 있습니다.