PostgreSQL Global Development Group 발표
2025년 5월 8일, PostgreSQL Global Development Group은 PostgreSQL 18의 첫 번째 베타 버전을 발표했습니다. 이 버전은 PostgreSQL 18의 모든 기능을 미리 살펴볼 수 있는 기회를 제공하며, 실제로는 베타 기간 동안 일부 세부 사항이 변경될 수 있습니다. 이 새로운 버전은 성능 개선 및 다양한 기능을 포함하고 있으며, PostgreSQL 18의 공식 출시 전에 여러분의 테스트와 피드백을 통해 안정성을 높이는 데 큰 도움이 될 것입니다.
PostgreSQL 18의 주요 변경사항과 기능은 릴리스 노트에서 확인할 수 있습니다.
PostgreSQL 18의 주요 기능 하이라이트
성능 개선
PostgreSQL 18은 비동기 I/O(AIO) 서브시스템을 도입하여 성능을 획기적으로 개선했습니다. 이 새로운 서브시스템은 I/O 처리 속도를 높이고, I/O 지연 시간을 숨길 수 있습니다. 리눅스에서는 io_uring을 사용한 AIO를 지원하며, 모든 플랫폼에서는 워커 기반의 구현이 가능합니다. 이 초기 버전에서는 파일 시스템 읽기 작업에 대한 성능 향상, 예를 들어 순차 스캔, 비트맵 힙 스캔 및 진공 작업에서 2-3배의 성능 향상을 보여줍니다.
이 성능 향상은 쿼리 최적화와 새로운 인덱싱 기능에도 적용됩니다. PostgreSQL 18에서는 다중 열 B-트리 인덱스에서 "스킵 스캔" 조회를 지원하여, "=" 조건이 없는 쿼리의 실행 시간을 단축시킬 수 있습니다. 또한 WHERE 절에서 OR 및 IN (...) 구문을 포함한 쿼리의 성능을 개선하여, 최근 인덱싱 개선을 최대한 활용할 수 있습니다.
쿼리 최적화 및 새로운 인덱스 기능
PostgreSQL 18에서는 GIN 인덱스의 병렬 빌드를 지원합니다. GIN 인덱스는 JSON 및 전체 텍스트 데이터 검색에 자주 사용되며, 병렬 빌드를 통해 성능을 크게 향상시킬 수 있습니다. 또한, 파티션 키와 물리적 뷰에 대한 고유 인덱스를 정의할 수 있으며, 이는 B-트리 외의 다른 인덱스를 사용할 수 있도록 개선되었습니다.
io_method 설정 및 성능 개선
PostgreSQL 18에서는 io_method라는 새로운 설정을 통해 I/O 처리 방식을 제어할 수 있습니다. 이 설정은 postgresql.conf 파일에서 정의되며, 다음과 같은 옵션을 제공합니다:
- sync: 기존의 동기 방식으로 시스템 호출을 통해 읽기 작업을 처리합니다.
- worker: 백그라운드에서 실행되는 전용 I/O 워커 프로세스를 사용하여 비동기적으로 읽기 요청을 처리합니다.
- io_uring: 리눅스 커널 5.1 이상에서 지원하는 고성능 비동기 I/O 인터페이스인 io_uring을 사용하여 시스템 호출 오버헤드를 최소화합니다.
이러한 개선으로 PostgreSQL은 최대 2-3배의 성능 향상을 보이며, 클라우드 환경에서 특히 유리합니다.
개발자 경험 개선
PostgreSQL 18은 가상 생성 열(Virtual Generated Columns)을 도입하여, 열 값을 저장하는 대신 쿼리 실행 시 점진적으로 계산합니다. 또한, 저장된 생성 열은 이제 논리적 복제를 지원합니다. 이는 더 나은 성능과 효율성을 제공합니다.
새로운 기능으로는 RETURNING 절에서 이전(OLD)과 현재(NEW) 값을 모두 액세스할 수 있는 기능이 추가되었습니다. 이를 통해 INSERT, UPDATE, DELETE, MERGE 명령에서 더 나은 결과를 얻을 수 있습니다.
보안 기능
PostgreSQL 18은 OAuth 인증을 도입하여, OAuth 2.0 메커니즘을 통해 사용자가 인증할 수 있도록 했습니다. 또한, PostgreSQL 18은 FIPS 모드 동작을 검증하고 이를 강제하는 여러 기능을 추가했습니다. md5 비밀번호 인증은 이제 더 이상 사용되지 않으며, SCRAM 인증 방식이 도입되었습니다.
모니터링 및 관측 기능
PostgreSQL 18은 EXPLAIN 유틸리티에 대한 세부 사항을 추가하여 쿼리 실행 계획에 대한 더 많은 정보를 제공합니다. 이제 EXPLAIN ANALYZE는 쿼리 실행 시 얼마나 많은 버퍼가 액세스되었는지, 얼마나 많은 인덱스 조회가 발생했는지 등을 보여줍니다. 또한, pg_stat_subscription_stats 뷰에서 논리적 복제 중 발생한 쓰기 충돌에 대한 정보를 제공합니다.
기타 하이라이트
- 데이터 체크섬: PostgreSQL 18에서는 데이터의 무결성을 검증하는 데이터 체크섬이 기본적으로 활성화됩니다.
- 제약 조건 개선: 외래 키와 체크 제약 조건이 NOT ENFORCED 상태로 설정될 수 있으며, NOT NULL 제약 조건은 SQL 표준에 맞게 이름을 보존합니다.
- pg_createsubscriber 개선: 이제 --all 플래그를 사용하여 모든 데이터베이스에 대해 논리적 복제본을 생성할 수 있습니다.
PostgreSQL 18 베타 테스트
PostgreSQL 18은 아직 베타 버전이므로, 실제 운영 환경에서 사용하기에는 적합하지 않습니다. 하지만, 여러분의 시스템에서 새로운 기능을 테스트해주시기 바랍니다. 여러분의 피드백과 버그 리포트는 PostgreSQL 커뮤니티가 안정적이고 신뢰할 수 있는 최종 버전을 제공하는 데 큰 도움이 됩니다.
결론
PostgreSQL 18은 성능 향상, 새로운 기능 추가, 개발자 경험 개선 등 여러 면에서 큰 변화를 예고합니다. 비동기 I/O, 쿼리 최적화, 인덱싱 기능 개선 등은 특히 고성능 환경에서 큰 효과를 볼 수 있습니다. 또한, 새로운 보안 기능과 모니터링 도구는 시스템 관리 및 운영에 매우 유용할 것입니다.
PostgreSQL 18의 기능을 테스트하고, 여러분의 의견을 공유하여 더 나은 PostgreSQL 18의 완성도를 높이는 데 기여해 주세요.
자세한 내용은 PostgreSQL 18 릴리스 노트에서 확인할 수 있습니다.
'서버인프라 > IT 뉴스' 카테고리의 다른 글
🧠 네트워크 트래픽을 투명하게 파악하자 – eBPF 기반 Qtap 소개 (4) | 2025.05.20 |
---|---|
🎯 AI가 앱을 만들어 준다고? 결국 당신이 알아야 할 것들 (2) | 2025.05.10 |
Pytorch Support for RTX 5000-Series GPU's and CUDA sm_120 (2) | 2025.04.22 |
1Panel들어는 보셨나요? (0) | 2025.04.18 |
FIDO와 DID: 패스워드 없는 인증 vs 탈중앙화 신원 (1) | 2025.04.18 |
댓글