Postgres 18

Libsodium 라이브러리: 현대적인 암호화의 솔루션

개요Libsodium은 현대적이고 사용하기 쉬운 암호화 라이브러리로, NaCl(Networking and Cryptography library)을 기반으로 설계되었다. 높은 수준의 보안성과 사용 편의성을 목표로 하며, 크로스 플랫폼 지원, 메모리 보안, 그리고 다양한 암호화 작업을 위한 API를 제공한다. 이 라이브러리는 웹 애플리케이션, 데스크톱 소프트웨어, 모바일 앱 등 다양한 환경에서 데이터 보안을 위해 널리 사용되고 있다.설명Libsodium은 NaCl 라이브러리의 이식성 있는 포크(fork)로, Daniel J. Bernstein, Tanja Lange, Peter Schwabe 등이 개발한 원본 NaCl의 장점을 계승하면서 추가 기능과 개선사항을 도입했다. NaCl이 '소금'을 의미하는 화학 ..

Postgres/Extension 2025.05.25

PostgreSQL의 PL/Proxy: 데이터베이스 샤딩과 원격 프로시저 호출을 위한 도구

개요PL/Proxy는 PostgreSQL 데이터베이스에서 원격 프로시저 호출과 수평적 샤딩을 가능하게 하는 절차적 언어 핸들러(Procedural Language handler)이다. 이 도구는 다수의 PostgreSQL 데이터베이스 간 함수 호출을 처리할 수 있으며, 데이터베이스 분산 환경에서 효율적인 데이터 관리와 처리를 지원한다. PL/Proxy를 사용하면 데이터베이스 클러스터 구성, 로드 밸런싱, 데이터 샤딩 등의 복잡한 작업을 상대적으로 간단하게 처리할 수 있다.설명PL/Proxy는 PostgreSQL의 확장 기능으로, 여러 데이터베이스 간의 통신을 효율적으로 처리하기 위한 메커니즘을 제공한다. 이 도구는 PostgreSQL 함수 호출을 원격 데이터베이스로 전달하고, 그 결과를 원래 함수 호출자..

Postgres/Extension 2025.05.24

PostgreSQL의 View와 Materialized View 비교 분석

개요데이터베이스 시스템에서 뷰(View)는 사용자가 테이블처럼 사용할 수 있는 가상 테이블로, 하나 이상의 테이블에서 파생된 데이터의 논리적 표현이다. PostgreSQL에서는 일반 View와 Materialized View 두 가지 유형의 뷰를 제공한다. 이 두 유형은 구현 방식과 성능 특성에서 중요한 차이점을 가지고 있다. 본 글에서는 두 뷰 유형의 개념, 특성, 성능 차이 및 적합한 사용 사례를 살펴본다.설명View (일반 뷰)일반 뷰는 데이터베이스에 저장된 쿼리다. 사용자가 뷰를 조회할 때마다 해당 뷰에 정의된 쿼리가 실행되며, 결과는 물리적으로 저장되지 않는다. 즉, 뷰는 데이터를 직접 저장하지 않고 데이터에 대한 접근 방법만을 정의한다.CREATE VIEW comedies AS SELEC..

Postgres/Features 2025.05.22

pgcrypto의 단방향 암호화 알고리즘

개요단방향 암호화(One-Way Encryption)는 암호화는 가능하지만 복호화는 불가능한 암호화 방식이다. 주로 암호화 해시 함수를 이용한 Hash 암호화 방식을 사용하며, 사용자 비밀번호 저장, 데이터 무결성 검증, 디지털 서명 등 다양한 보안 분야에서 활용된다. 본 글에서는 단방향 암호화의 개념, 주요 알고리즘, PostgreSQL의 pgcrypto 모듈을 통한 구현 방법 등을 살펴본다.설명단방향 암호화는 입력 데이터를 고정된 길이의 해시값으로 변환하는 과정이다. 해시 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 변환시켜 주는 함수로, 동일한 입력에 대해 항상 동일한 출력을 보장한다. 중요한 특징은 일방향성으로, 해시값으로부터 원본 데이터를 복원하는 것이 수학적으로 불가능하거나 매우 어렵..

Postgres/Extension 2025.05.21

pgindent의 정의 및 사용법

개요PostgreSQL 개발에서 중요한 역할을 담당하는 pgindent는 코드 포맷팅 도구로, PostgreSQL 소스 코드의 일관된 스타일을 유지하기 위해 사용된다. 이 도구는 PostgreSQL 개발자들이 코드베이스의 통일성을 보장하고 가독성을 높이는 데 필수적인 요소이다.설명pgindent는 PostgreSQL 프로젝트에서 C 언어로 작성된 소스 코드의 형식을 일관되게 유지하기 위한 도구이다. 이 도구는 기본적으로 BSD indent를 기반으로 하며, PostgreSQL 프로젝트의 코드 스타일 가이드라인에 맞게 수정된 버전이다. PostgreSQL 소스 트리의 src/tools/pgindent 디렉토리에 위치하며, 코드 들여쓰기, 괄호 배치, 줄 바꿈 등의 포맷팅 규칙을 적용한다.PostgreSQL..

Postgres/Features 2025.05.03

PL/SQL

개요PL/SQL(Procedural Language extension to SQL)은 Oracle 데이터베이스 시스템에서 사용되는 프로시저 언어로, 표준 SQL에 절차적 프로그래밍 기능을 확장한 것이다. 1991년 Oracle 6에서 처음 도입되었으며, 현재 Oracle 데이터베이스 환경에서 주요 프로그래밍 언어로 사용되고 있다.설명PL/SQL은 SQL의 기능을 확장하여 변수 선언, 조건문, 반복문과 같은 프로그래밍 구조를 제공한다. SQL만으로는 구현하기 어려운 복잡한 비즈니스 로직을 데이터베이스 내에서 직접 처리할 수 있게 해 준다. PL/SQL은 블록 구조로 되어 있으며, 각 블록은 선언부(DECLARE), 실행부(BEGIN), 예외 처리부(EXCEPTION)로 구성된다.데이터베이스 서버 내에서 실..

Postgres/Features 2025.05.02

PostgreSQL 쿼리문의 작은따옴표와 큰따옴표 차이

개요PostgreSQL에서 작은따옴표(')와 큰따옴표(")는 서로 다른 목적으로 사용된다. 이 글에서는 두 따옴표의 차이점과 각각의 올바른 사용법을 살펴본다. 쿼리 작성 시 발생할 수 있는 오류를 방지하고 효율적인 데이터베이스 관리를 위해 이 차이점을 이해하는 것이 중요하다.설명PostgreSQL에서 작은따옴표(Single Quotation, ')와 큰따옴표(Double Quotation, ")는 명확히 구분된 용도로 사용된다. 작은따옴표는 문자열 값(string values)을 나타내는 데 사용되며, 큰따옴표는 식별자(identifiers)를 나타내는 데 사용된다. 이러한 구분은 SQL 표준을 따르는 것이며, PostgreSQL의 문법 규칙에 따라 정확히 적용되어야 한다.특징작은따옴표(Single Qu..

Postgres/Features 2025.04.30

PostGraphile: PostgreSQL과 GraphQL의 완벽한 조화

개요PostGraphile은 PostgreSQL 데이터베이스를 기반으로 한 GraphQL API를 자동으로 생성해주는 도구이다. 이 도구는 개발자들이 데이터베이스 스키마를 기반으로 빠르게 GraphQL API를 구축할 수 있도록 도와준다. PostGraphile은 특히 데이터 중심의 애플리케이션을 개발할 때 유용하다.PostGraphile의 주요 기능PostGraphile은 여러 가지 유용한 기능을 제공한다. 첫째, 데이터베이스의 테이블, 뷰, 함수 등을 자동으로 GraphQL 스키마로 변환해준다. 둘째, GraphQL 쿼리와 뮤테이션을 통해 데이터베이스와 상호작용할 수 있는 API를 제공한다. 셋째, 인증 및 권한 관리 기능을 통해 보안성을 높일 수 있다. 마지막으로, GraphQL의 실시간 기능을 지..

Postgres/Features 2025.03.14

Flex와 Bison을 이용한 쿼리문 파싱 예제 만들기

개요Postgres에는 쿼리 파싱을 위해 사용되는 두 가지 주요 툴체인이 존재한다: flex와 bison이다. 이들은 각각 문자열 파싱을 위한 문법을 제공하며, 그에 맞게 특정 문자열을 파싱 하는 데 사용된다. 본 문서에서는 flex와 bison을 활용하여 SQL의 SELECT 문을 파싱하는 예제를 제시함으로써 PG 내부 쿼리 파서를 보다 쉽게 이해할 수 있도록 한다.gram.y 파일 생성쿼리 파싱을 위한 토큰을 정의하고, 각 토큰에 올 수 있는 다른 토큰들을 규정한다.// C code block between '%{' and '%}'%{#include #include #include // prototype of creating token functionint yylex();// prototype of ..

pgpool 4.5 빌드 변경사항

개요pgpool 4.5 버전부터 pgpool의 빌드방식이 변경되었다. 기존과 가장 달라진 점은 configure 파일이 사라진 것이다. configure 파일을 직접 사용하는 대신 autoconf/autoreconf 와 같은 커맨드 툴을 사용하여 configure 파일을 생성하여 빌드를 진행해야 한다.빌드 방법기존의 빌드 방식에서 autoconf/autoreconf 를 사용한 configure 파일 생성 과정이 선행되어야 한다.결국 pgpool 4.5 빌드를 위해서는 아래와 같은 tool chain이 필요하다.autoconf 2.69automake 1.14.1libtool 2.4.2위 tool chain이 없다면 이를 반드시 설치해야 한다.1. autoconf(또는 autoreconf)로 configur..

Postgres/Features 2025.02.18
728x90
반응형