PostgreSQL C++ 드라이버를 활용한 리눅스 데이터베이스 연동
이 문서는 리눅스 환경에서 PostgreSQL 데이터베이스와 C++ 애플리케이션을 연동하는 방법을 안내합니다. 특히 libpqxx 라이브러리를 활용하여 데이터베이스를 설정하고, 기본적인 데이터 조작(CRUD) 및 스키마 관리(DDL) 작업을 수행하는 C++ 예제 코드를 제공합니다.
PostgreSQL 설치
먼저 리눅스 시스템에 PostgreSQL 데이터베이스 서버를 설치합니다. 주로 Debian/Ub ...
8월 18일 00:56에 게시됨
CentOS 7 환경에서 Patroni 오프라인 설치 및 설정 절차
환경 구성 개요
본 가이드는 CentOS 7.7.1908 (x86_64 아키텍처) 환경에서 외부 네트워크 접근 없이 Patroni 와 PostgreSQL 을 구성하기 위한 단계를 기술합니다. PostgreSQL 의 소스 컴파일을 위해 gcc 및 관련 라이브러리들이 필수적으로 존재해야 합니다.
1. 컴파일 도구 및 기본 의존성 설치
PostgreSQL 소스 컴파일에 필요한 빌드 도구를 먼저 확보해야 합니다. 해당 ...
8월 14일 16:47에 게시됨
재귀 CTE를 이용한 스도쿠 해결 쿼리: PostgreSQL과 DuckDB 성능 특성 비교
SQL의 재귀 CTE(Common Table Expression)는 복잡한 문제 해결에 강력한 도구가 될 수 있습니다. 특히, 스도쿠 퍼즐과 같이 탐색 및 백트래킹이 필요한 문제에 효율적으로 적용될 수 있습니다. 그러나 동일한 로직의 SQL 쿼리가 데이터베이스 시스템에 따라 전혀 다른 성능 특성을 보일 때가 있습니다. 본 글에서는 재귀 CTE를 사용하여 스도쿠를 해결하는 쿼리가 PostgreS ...
8월 12일 01:23에 게시됨
PostgreSQL `CREATE INDEX` 메모리 부족 오류 진단 및 해결
PostgreSQL에서 대용량 테이블에 인덱스를 생성할 때 '메모리 부족' 오류가 발생하는 경우가 있습니다. 특히 shared_buffers나 maintenance_work_mem과 같은 메모리 관련 설정값을 충분히 할당했음에도 불구하고 이러한 문제가 발생하면 혼란스러울 수 있습니다.
다음은 6GB 크기의 테이블에 인덱스를 생성하려다 메모리 부족 오류를 겪은 실제 사례와 해당 오류를 진단하 ...
7월 26일 21:31에 게시됨
ABP 프레임워크 기반 EventHub 솔루션 탐색
이 문서에서는 ABP 프레임워크를 활용한 실제 도메인 기반 애플리케이션인 EventHub의 아키텍처와 실행 방식을 분석합니다. 이는 오픈소스로 공개된 완전한 풀스택 예제이며, openeventhub.com에서 실시간으로 확인 가능합니다. 커뮤니티 기여를 위한 지속적 통합/배포(CI/CD) 파이프라인이 구축되어 있어, 개발 진행 상황에 따라 실시간 업데이트가 이루어집니다.
1. 시 ...
7월 24일 23:48에 게시됨
ASP.NET Core와 SaasKit를 활용한 Citus 기반 다중 테넌트 애플리케이션 구축
다중 테넌시 아키텍처 설계 개요
PostgreSQL 확장인 Citus는 수평적 확장을 통해 대규모 멀티테넌트 애플리케이션을 지원합니다. 본 문서에서는 ASP.NET Core 웹 프레임워크와 SaasKit 미들웨어를 결합하여, Citus 기반 분산 데이터베이스 환경에서 동작하는 다중 테넌트 시스템을 구현하는 방법을 설명합니다.
샘플 애플리케이션: QuestionExchange
StackOverflow의 간소 ...
7월 23일 10:56에 게시됨
Python SQLAlchemy ORM을 활용한 데이터베이스 연동 및 고급 쿼리 가이드
SQLAlchemy는 Python 생태계에서 가장 강력하고 널리 사용되는 ORM(Object-Relational Mapping) 및 SQL 툴킷입니다. 이 가이드에서는 SQLAlchemy의 핵심 아키텍처를 이해하고, 현대적인 2.0 스타일의 쿼리 문법을 사용하여 데이터베이스 스키마 정의, 복잡한 데이터 조작, 그리고 프로덕션 환경에서의 세션 관리 패턴까지 심층적으로 다룹니다.
환경 구성 및 데이터베이스 ...
7월 23일 03:06에 게시됨
데이터베이스 관리 및 복구 기법
특정 시점으로 테이블 데이터 복원
-- 특정 시간대의 데이터 조회
SELECT * FROM target_table AS OF TIMESTAMP TO_TIMESTAMP('2009-12-11 20:53:57', 'YYYY-MM-DD HH24:MI:SS');
-- 특정 시점의 데이터로 새 테이블 생성
CREATE TABLE restored_table AS
SELECT * FROM target_table AS OF TIMESTAMP TO_TIMESTAMP('2009-12-11 20:53:57', 'YYYY-MM-DD HH24:MI:SS');
...
7월 22일 08:11에 게시됨
openGauss 및 PostgreSQL 데이터베이스 성능 모니터링 방법
시스템 리소스와 데이터베이스 상태를 확인하기 위해 과거 고수 엔지니어가 작성한 유용한 스크립트들을 정리해두었다. 필요 시 참고할 수 있도록 기록한다.
CPU 사용률 확인
시스템의 CPU 사용 현황을 확인하려면 sar 명령어를 사용한다:
sar -u -f /var/log/sa/sa27
여기서 sa27은 해당 날짜(예: 27일)에 수집된 로그 파일이다. 실행 결과는 다음과 같다:
15시52분01초 ...
7월 21일 22:53에 게시됨
실시간 대시보드 구축을 위한 분산 PostgreSQL 클러스터(Citus)
Citus는 대용량 데이터 세트에 대해 실시간 쿼리를 제공합니다. Citus에서 자주 처리하는 작업 중 하나는 이벤트 데이터를 기반으로 하는 실시간 대시보드 지원입니다.
예를 들어, 다른 기업들의 HTTP 트래픽을 모니터링하도록 돕는 클라우드 서비스 제공자가 있다고 가정해 보겠습니다. 고객이 하나의 HTTP 요청을 받을 때마다 해당 서비스는 로그 기록을 전달받습니다. ...
7월 20일 22:33에 게시됨