September 25, 2025: PostgreSQL 18 Released!
This page in: Chinese / English / French / German / Greek / Hebrew / Indonesian / Italian / Japanese / Korean / Portuguese / Russian / Spanish / Thai / Ukrainian

PostgreSQL 18 Press Kit

Contents

Original Press Release

2025년 9월 25일 - PostgreSQL 글로벌 개발 그룹은 세계에서 가장 진보된 오픈 소스 데이터베이스의 최신 버전인 PostgreSQL 18의 출시를 오늘 발표했습니다.

PostgreSQL 18은 새로운 I/O 서브시스템을 통해 모든 규모의 워크로드 성능을 개선해서 스토리지에서 읽을 때 최대 3배의 성능 향상을 보여주었고, 인덱스를 사용할 수 있는 쿼리 수도 늘렸습니다. 이번 릴리스는 메이져 버전 업그레이드 시 발생하는 중단을 줄여 업그레이드 시간을 단축하고, 업그레이드 완료 후 예상 성능에 도달하는 시간을 줄여줍니다. 또한 PostgreSQL 18은 쿼리 시점에 값을 계산하는 가상 미리 계산된 칼럼(virtual generated columns)과 UUID 인덱싱 및 읽기 성능을 향상시키는 uuidv7() 함수 같은 기능을 제공하여 개발자 경험도 향상됩니다. 아울러 OAuth 2.0 인증을 지원하여 통합 인증(Single Sign-On; SSO) 시스템과의 통합도 쉬워졌습니다.

“글로벌 오픈 소스 커뮤니티의 노력은 매번 PostgreSQL 릴리스에 반영되어 사용자가 필요로 하는 기능을 제공합니다.”라고 PostgreSQL 코어 팀의 Jonathan Katz는 말했습니다. “PostgreSQL 18은 신뢰성과 안정성을 갖춘 데이터 관리 경험을 제공해온 프로젝트의 긴 역사 위에 구축되었으며, 지원 가능한 워크로드의 범위를 계속 확장하고 있습니다.”

PostgreSQL은 신뢰성, 견고함, 확장성으로 잘 알려진 혁신적인 데이터 관리 시스템으로, 전 세계 개발자 커뮤니티의 약 30년간의 오픈 소스 개발 성과를 바탕으로 모든 규모의 조직에서 선호하는 오픈 소스 관계형 데이터베이스가 되었습니다.

비동기 I/O 도입

이전 PostgreSQL은 데이터 검색 속도를 높이기 위해 운영체제의 미리 읽기(readahead 시스템 콜) 메커니즘에 의존했습니다. 그러나 운영체제는 데이터베이스 특화된 액세스 패턴을 알 수 없기 때문에 필요한 데이터를 항상 예측하지 못해 많은 워크로드에서 최적의 성능을 내지 못했습니다.

PostgreSQL 18은 이러한 한계를 해결하기 위해 새로운 비동기 I/O(AIO) 서브시스템을 도입했습니다. AIO는 PostgreSQL이 I/O 요청을 순차적으로 기다리는 대신 동시에 여러 개를 발행할 수 있도록 하여 미리 읽기를 확장하고 전체 처리량을 개선합니다. PostgreSQL 18에서 지원되는 AIO 작업에는 순차 스캔, 비트맵 힙 스캔, 그리고 vacuum이 포함됩니다. 벤치마크 결과에 따르면 특정 시나리오에서 최대 3배의 성능 향상이 입증되었습니다.

새로운 환경 설정 매개 변수 io_method 설정을 통해 worker, io_uring 등의 AIO 방식을 선택하거나, 기존 PostgreSQL 동작을 유지하는 sync 모드를 사용할 수 있습니다. AIO와 함께 고려할 수 있는 새로운 파라미터도 추가되었으며, 자세한 내용은 공식 문서를 참고하세요.

더 빠른 업그레이드, 향상된 업그레이드 후 성능

PostgreSQL의 핵심 기능 중 하나는 가장 효율적인 쿼리 계획을 선택하는 데 도움을 주는 통계 정보를 생성 및 저장하는 것입니다. 그러나 PostgreSQL 18 이전에는 메이져 버전 업그레이드 시 이러한 통계가 유지되지 않아, ANALYZE가 완료될 때까지 바쁜 시스템에서는 심각한 성능 저하가 발생할 수 있었습니다. PostgreSQL 18에서는 주요 버전 업그레이드 시에도 실행 계획 통계 정보를 유지할 수 있어 업그레이드된 클러스터가 더 빨리 기대 성능에 도달할 수 있습니다.

또한, 메이져 버전 업그레이드를 수행하는 도구인 pg_upgrade에는 테이블과 시퀀스 같은 객체가 많은 데이터베이스에서 더 빠른 업그레이드를 가능하게 하는 개선이 포함되었습니다. 이번 릴리스에서는 --jobs 플래그를 사용하여 병렬로 검사를 수행할 수 있으며, --swap 플래그를 사용하면 파일 copy, clone, link 대신 디렉터리를 교체하는 방식으로 업그레이드를 처리할 수 있습니다.

쿼리 및 일반 성능 향상

PostgreSQL 18은 워크로드를 자동으로 더 빠르게 만들어주는 기능으로 쿼리 성능을 한층 더 가속화합니다. 이번 릴리스에서는 다중 컬럼 B-tree 인덱스에서 "skip scan" 조회 기능을 도입하여, 접두사 인덱스 컬럼 중 하나 이상에서 = 조건이 없는 쿼리의 실행 시간을 개선합니다. 또한 WHERE 절에서 OR 조건을 사용하는 쿼리를 인덱스를 활용해 최적화할 수 있어 실행 속도가 크게 향상됩니다.

PostgreSQL은 테이블 조인 계획 및 실행 방식에서도 많은 개선을 도입했습니다. 해시 조인의 성능을 향상시키고, 머지 조인이 증분 정렬(incremental sort)을 사용할 수 있도록 했습니다. PostgreSQL 18은 GIN 인덱스의 병렬 빌드도 지원하여, 이미 지원 중인 B-tree와 BRIN 인덱스와 함께 병렬 빌드를 지원하는 인덱스 계열을 확장했습니다.

또한 이번 릴리스는 하드웨어 가속 지원을 강화하여, bit_count 함수와 기타 내부 기능에서 사용되는 popcount 연산에 ARM NEON 및 SVE CPU 명령어 지원을 추가했습니다.

개발자 경험 향상

PostgreSQL 18은 값을 저장하는 대신 쿼리 시점에 계산하는 가상 미리 계산된 칼럼을 도입했습니다. 이는 이제 미리 계산된 칼럼의 기본 옵션이며, 저장된 미리 계산된 칼럼은 논리 복제도 지원합니다.

이번 릴리스에서는 INSERT, UPDATE, DELETE, MERGE 명령에서 RETURNING을 통해 이전(OLD) 값과 현재(NEW) 값을 모두 참조할 수 있는 기능이 추가되었습니다. PostgreSQL 18은 또한 uuidv7() 함수를 통해 UUIDv7 생성을 지원하여, 더 나은 캐싱 전략을 지원할 수 있도록 타임스탬프 순서 기반의 무작위 UUID를 생성할 수 있습니다. PostgreSQL 18에는 gen_random_uuid()의 별칭으로 uuidv4() 함수도 포함되어 있습니다.

PostgreSQL 18은 또한 일시적 제약 조건(temporal constraints) — 구간 제약 — 을 WITHOUT OVERLAPS 절을 통해 PRIMARY KEYUNIQUE 제약 조건에 적용할 수 있으며, PERIOD 절을 통해 FOREIGN KEY 제약 조건에도 적용할 수 있습니다.

마지막으로 PostgreSQL 18은 CREATE FOREIGN TABLE ... LIKE 명령을 통해 로컬 테이블 정의를 기반으로 외부 테이블의 스키마 정의를 더 쉽게 생성할 수 있도록 지원합니다.

텍스트 처리 개선

PostgreSQL 18은 여러 새로운 기능을 통해 텍스트 처리를 더 쉽고 빠르게 만듭니다. 이번 릴리스에서는 대소문자 변환에 대해 완전한 유니코드를 제공하면서 많은 비교 연산을 가속화하는 PG_UNICODE_FAST 문자 정렬 규칙을 추가했습니다. 여기에는 upper, lower 문자열 비교 함수와 대소문자 구분 없는 비교를 위한 새로운 casefold 함수가 포함됩니다.

또한 PostgreSQL 18은 이제 비결정적 문자 정렬 규칙을 사용하는 텍스트에 대해 LIKE 비교를 지원하여 더 복잡한 패턴 매칭을 간소화합니다.

이번 릴리스에서는 전문 검색(full text search)이 항상 libc를 사용하는 대신 클러스터의 기본 문자 정렬 규칙 제공자를 사용하도록 변경되었습니다. 이로 인해 pg_upgrade 실행 후 모든 전문 검색 인덱스pg_trgm 인덱스를 다시 만들어야 할 수도 있습니다.

복제

PostgreSQL 18에서는 논리적 복제 쓰기 충돌을 로그와 pg_stat_subscription_stats view에서 보고할 수 있습니다. 추가로, CREATE SUBSCRIPTION 은 이제 트랜잭션을 적용할 때 병렬 스트리밍을 기본으로 사용하도록 설정되어, 성능 향상에 도움이 될 수 있습니다. pg_createsubscriber 명령에 이제 --all 옵션을 사용할 수 있어, 하나의 명령으로 인스턴스 내 모든 데이터베이스에 대한 논리적 복제본을 생성할 수 있습니다. PostgreSQL 18에서는 또한 자동으로 유휴 복제 슬롯을 삭제할 수 있어, 발행 서버에 너무 많은 write-ahead log 파일이 저장되는 것을 방지할 수 있습니다.

유지관리 및 모니터링

PostgreSQL 18에서는 vacuum 전략을 개선하여, 정기적인 vacuum 작업을 하는 동안 더 많은 페이지를 영구보관(freezing)함으로써 적극적인 vacuum이 필요한 상황에서 오버헤드를 줄이는데 도움을 줍니다.

PostgreSQL 18은 EXPLAIN에 더 많은 세부 정보를 추가하여 쿼리 계획 실행에 대한 정보를 제공하며, 이번 릴리스부터는 EXPLAIN ANALYZE를 실행할 때 몇 개의 버퍼(데이터 저장의 기본 단위)가 접근되는지도 자동으로 표시합니다. 또한, EXPLAIN ANALYZE는 인덱스 스캔 시 몇 번의 인덱스 조회가 발생하는지도 보여주며, EXPLAIN ANALYZE VERBOSE에는 CPU, WAL, 평균 읽기 통계가 포함됩니다. PostgreSQL 18은 pg_stat_all_tables에 vacuum 및 관련 작업에 소요된 시간, 그리고 연결별 I/O 및 WAL 사용 통계에 대한 추가 정보를 제공합니다.

기타 살펴볼 바뀐점

PostgreSQL 18 initdb로 초기화된 데이터베이스는 이제 기본적으로 페이지 체크섬이 활성화되어 있습니다. 이는 체크섬이 활성화되지 않은 클러스터에서 업그레이드할 때 영향을 미칠 수 있으며, pg_upgrade를 사용할 경우 --no-data-checksums 옵션으로 새로운 PostgreSQL 18 클러스터를 생성해야 합니다.

PostgreSQL 18은 또한 PostgreSQL 클라이언트-서버 통신 프로토콜의 새로운 버전(3.2)을 도입하였으며, 이는 PostgreSQL 7.4(2003) 이후 처음으로 추가된 프로토콜 버전입니다. libpq는 여전히 기본적으로 버전 3.0을 사용하며, 클라이언트(예: 드라이버, 풀러, 프록시)는 새로운 프로토콜 버전에 대한 지원을 추가합니다.

더 자세한 내용은

PostgreSQL 18에는 다양한 새로운 기능과 개선 사항이 추가되어, 사용 사례에 따라 도움이 될 수 있습니다. 새로운 기능과 변경된 기능의 전체 목록은 릴리즈 노트를 참조하시기 바랍니다.

PostgreSQL은

PostgreSQL은 전 세계 수천 명의 사용자, 기여자, 기업 및 조직이 참여하는 가장 진보된 오픈 소스 데이터베이스입니다. 40년 이상 전 캘리포니아 대학교 버클리에서 시작된 이후, PostgreSQL은 탁월한 개발 속도를 이어왔습니다. PostgreSQL의 성숙한 기능 세트는 상용 데이터베이스 시스템과 맞먹을 뿐만 아니라, 고급 데이터베이스 기능, 확장성, 보안 및 안정성 면에서 이를 능가합니다.

링크들

PostgreSQL은

PostgreSQL은 전 세계 수천 명의 사용자, 기여자, 기업 및 조직이 참여하는 가장 진보된 오픈 소스 데이터베이스입니다. 40년 이상 전 캘리포니아 대학교 버클리에서 시작된 이후, PostgreSQL은 탁월한 개발 속도를 이어왔습니다. PostgreSQL의 성숙한 기능 세트는 상용 데이터베이스 시스템과 맞먹을 뿐만 아니라, 고급 데이터베이스 기능, 확장성, 보안 및 안정성 면에서 이를 능가합니다.

Learn more about PostgreSQL and participate in our community at PostgreSQL.org.

기능에 대해 더 자세히 알고 싶으면

위에서 언급한 기능들에 대해서 보다 자세히 알고 싶으면 아래 링크를 참조하세요:

다운로드

PostgreSQL 18을 다운로드할 수 있는 여러 가지 방법이 있으며, 그 중에는 다음이 포함됩니다:

다른 도구와 확장 기능은 PostgreSQL Extension Network에서 이용할 수 있습니다.

문서

PostgreSQL 18은 HTML 문서와 man 페이지를 함께 제공하며, HTMLPDF 형식으로 온라인에서도 문서를 열람할 수 있습니다.

라이선스

PostgreSQL은 BSD와 유사한 “허용” 라이선스인 PostgreSQL 라이선스를 사용합니다. OSI 인증 라이선스는 상용 및 독점 응용 프로그램에서 PostgreSQL의 사용을 제한하지 않기 때문에 유연하고 비즈니스 친화적인 것으로 널리 인정받고 있습니다. 여러 회사의 지원 및 코드의 공개 소유권과 함께, 이 라이선스는 수수료, 공급업체 종속 또는 라이선스 조건 변경에 대한 우려 없이 자체 제품에 데이터베이스를 내장하고자 하는 공급업체에게 매우 인기가 있습니다.

연락처

웹사이트

이메일

이미지 및 로고

Postgres, PostgreSQL, 그리고 Elephant 로고(Slonik)는 모두 PostgreSQL 커뮤니티 협회의 등록 상표입니다. 이 상표를 사용하려면 상표 정책을 준수해야 합니다.

PostgreSQL Logo

기업 후원 및 기부

PostgreSQL은 개발자를 후원하고, 호스팅 리소스를 제공하며, 재정적으로 지원하는 수많은 기업들의 후원을 받고 있습니다. 일부 후원자는 후원사 페이지에서 확인할 수 있습니다.

또한, PostgreSQL 지원을 제공하는 개인 컨설턴트부터 다국적 기업까지 다양한 커뮤니티도 존재합니다.

PostgreSQL 글로벌 개발 그룹 또는 공식적으로 인정된 커뮤니티 비영리 단체에 재정적 기여를 원하시면, 기부 페이지를 방문하세요.