영어에서 번역됨

PostgreSQL은 Postgres라고도 알려져 있으며, 확장성과 SQL 준수를 강조하는 무료 오픈 소스 관계형 데이터베이스 관리 시스템입니다. ACID 트랜잭션, 고급 데이터 유형을 지원하며 모든 주요 운영 체제에서 실행됩니다.

PostgreSQL( POHST-gres-kew-EL)는 Postgres로도 알려져 있으며, 확장성과 SQL 준수를 강조하는 무료 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 이 데이터베이스는 원자성, 일관성, 격리성, 지속성(ACID) 속성을 가진 트랜잭션과 함께 자동 업데이트 뷰, 구체화된 뷰, 트리거, 외래 키 및 저장 프로시저를 특징으로 합니다. Windows, Linux, macOS, FreeBSD 및 OpenBSD를 포함한 모든 주요 운영 체제에서 지원되며, 단일 머신에서 데이터 웨어하우스, 데이터 레이크 또는 동시 사용자가 많은 웹 서비스에 이르는 다양한 워크로드를 처리합니다.

PostgreSQL 글로벌 개발 그룹은 데이터베이스 엔진과 밀접하게 관련된 구성 요소만 개발하는 데 중점을 둡니다. 이 핵심은 기술적으로 PostgreSQL 자체를 구성하는 것이지만, 광범위한 개발자 커뮤니티와 생태계는 전통적으로 독점 소프트웨어 공급업체가 제공할 수 있는 다른 중요한 기능 세트를 제공합니다. 여기에는 지리 공간 또는 시간 데이터베이스를 지원하는 데 필요한 기능이나 다른 데이터베이스 제품을 에뮬레이션하는 기능과 같은 특수 목적의 데이터베이스 엔진 기능이 포함됩니다. 또한 그래픽 사용자 인터페이스 또는 로드 밸런싱 및 고가용성 도구 세트와 같은 다양한 사용자 및 머신 인터페이스 기능이 제3자로부터 제공됩니다. PostgreSQL 개발 그룹의 일부는 아니지만, 사람, 회사, 제품 및 프로젝트로 구성된 대규모 제3자 PostgreSQL 지원 네트워크는 데이터베이스 엔진의 채택과 사용에 필수적이며 PostgreSQL 생태계를 구성합니다.

역사

Ingres 및 University POSTGRES (1982-1994)

PostgreSQL은 캘리포니아 대학교 버클리의 Ingres 프로젝트에서 발전했습니다. 1982년, Ingres 팀의 리더인 Michael Stonebraker는 독점 버전의 Ingres를 만들기 위해 버클리를 떠났습니다. 그는 1985년에 버클리로 돌아와 1980년대 초반에 점점 더 명확해진 현대 데이터베이스 시스템의 문제를 해결하기 위한 post-Ingres 프로젝트를 시작했습니다. 그는 이러한 프로젝트와 그 프로젝트에서 개척된 기술로 2014년에 튜링상을 수상했습니다.

새 프로젝트인 POSTGRES는 데이터 유형을 완전히 지원하는 데 필요한 최소한의 기능을 추가하는 것을 목표로 했습니다. 이러한 기능에는 유형을 정의하고 관계를 완전히 설명하는 기능이 포함되었으며, 이는 널리 사용되지만 전적으로 사용자가 유지 관리했습니다. POSTGRES에서 데이터베이스는 관계를 이해하고 규칙을 사용하여 관련 테이블의 정보를 자연스러운 방식으로 검색할 수 있었습니다. POSTGRES는 Ingres의 많은 아이디어를 사용했지만 코드는 사용하지 않았습니다.

1986년부터 출판된 논문은 시스템의 기초를 설명했으며, 프로토타입 버전은 1988년 ACM SIGMOD 컨퍼런스에서 시연되었습니다. 팀은 1989년 6월에 소수의 사용자에게 버전 1을 출시했고, 1990년 6월에는 재작성된 규칙 시스템을 갖춘 버전 2를 출시했습니다. 1991년에 출시된 버전 3은 규칙 시스템을 다시 재작성하고 여러 저장 관리자에 대한 지원과 개선된 쿼리 엔진을 추가했습니다. 1993년까지 사용자 수는 지원 및 기능 요청으로 프로젝트를 압도하기 시작했습니다. 1994년 6월 30일에 주로 정리 작업인 버전 4.2를 출시한 후 프로젝트는 종료되었습니다. 버클리는 POSTGRES를 MIT 라이선스 변형 하에 출시하여 다른 개발자가 어떤 용도로든 코드를 사용할 수 있게 했습니다. 당시 POSTGRES는 Ingres의 영향을 받은 POSTQUEL 쿼리 언어 인터프리터를 사용했으며, 이는 monitor라는 콘솔 애플리케이션으로 대화식으로 사용할 수 있었습니다.

Postgres95 (1994-1996)

1994년, 버클리 대학원생 Andrew Yu와 Jolly Chen은 POSTQUEL 쿼리 언어 인터프리터를 SQL 쿼리 언어용 인터프리터로 교체하여 Postgres95를 만들었습니다. monitor 콘솔도 psql로 대체되었습니다. Yu와 Chen은 1995년 5월 5일에 베타 테스터에게 첫 번째 버전(0.01)을 발표했습니다. Postgres95 버전 1.0은 1995년 9월 5일에 발표되었으며, 소프트웨어를 자유롭게 수정할 수 있는 더 자유로운 라이선스를 제공했습니다.

1996년 7월 8일, Hub.org Networking Services의 Marc Fournier는 오픈 소스 개발 노력을 위한 최초의 비대학 개발 서버를 제공했습니다. Bruce Momjian과 Vadim B. Mikheev의 참여로 버클리에서 상속된 코드를 안정화하는 작업이 시작되었습니다.

PostgreSQL (1996-현재)

1996년, 프로젝트는 SQL 지원을 반영하여 PostgreSQL로 이름이 변경되었습니다. 웹사이트 PostgreSQL.org의 온라인 존재는 1996년 10월 22일에 시작되었습니다. 첫 번째 PostgreSQL 릴리스는 1997년 1월 29일에 버전 6.0을 구성했습니다. 그 이후로 전 세계의 개발자와 자원 봉사자들은 PostgreSQL 글로벌 개발 그룹으로서 소프트웨어를 유지 관리해 왔습니다.

프로젝트는 계속해서 무료 오픈 소스 소프트웨어 PostgreSQL 라이선스 하에 릴리스를 제공합니다. 코드는 독점 공급업체, 지원 회사 및 오픈 소스 프로그래머의 기여에서 비롯됩니다.

2025년 9월 25일에 출시된 PostgreSQL 18은 새로운 비동기 I/O(AIO) 하위 시스템을 도입하여 데이터베이스 사용자가 readahead 및 순차 스캔과 같은 동시 I/O 작업을 수행할 수 있게 하고 일부 워크로드에서 저장소 읽기에 대해 최대 3배의 성능 향상을 보여주었습니다. 이 릴리스는 또한 플래너 통계가 주요 버전 업그레이드 간에 유지되도록 지원하여 업그레이드 후 통계가 재구축되는 동안 발생했던 성능 저하를 줄였습니다. 2026년 중반 현재 PostgreSQL 19는 베타 테스트 중이며, 일반 릴리스는 연말에 예상됩니다.

다중 버전 동시성 제어 (MVCC)

PostgreSQL은 다중 버전 동시성 제어(MVCC)를 통해 동시성을 관리하며, 각 트랜잭션에 데이터베이스의 "스냅샷"을 제공하여 다른 트랜잭션에 영향을 주지 않고 변경할 수 있게 합니다. 이는 읽기 잠금의 필요성을 크게 제거하고 데이터베이스가 ACID 원칙을 유지하도록 보장합니다. PostgreSQL은 Read Uncommitted, Read Committed, Repeatable Read 및 Serializable의 네 가지 트랜잭션 격리 수준을 제공합니다. PostgreSQL은 dirty read에 면역이 있으므로 Read Uncommitted 트랜잭션 격리 수준을 요청하면 Read Committed가 대신 제공됩니다. PostgreSQL은 직렬화 가능한 스냅샷 격리(SSI) 방법을 통해 완전한 직렬화 가능성을 지원합니다. PostgreSQL의 MVCC 구현은 기존 행을 업데이트하는 과중한 쓰기 부하에서 튜닝이 필요한 성능 문제가 발생하기 쉽습니다.

저장 및 복제

복제

PostgreSQL은 변경 사항(미리 쓰기 로그 또는 WAL)을 복제 노드에 비동기적으로 전달하는 것을 기반으로 하는 내장 이진 복제를 포함하며, 이러한 복제 노드에 대해 읽기 전용 쿼리를 실행할 수 있습니다. 이를 통해 여러 노드 간에 읽기 트래픽을 효율적으로 분할할 수 있습니다. 유사한 읽기 확장을 허용한 초기 복제 소프트웨어는 일반적으로 덜 견고한 트리거 기반 솔루션에 의존했습니다. 동기 복제도 사용할 수 있어 트랜잭션이 최소 하나의 대기 서버에 기록된 후에만 커밋되도록 보장하며, 더 높은 지연 시간의 비용으로 더 강력한 지속성 보장을 제공합니다.

저장 및 인덱싱

PostgreSQL은 다양한 저장 및 인덱싱 기술을 지원합니다. 기본 힙 저장은 페이지의 행을 구성하며 B-tree, hash, GiST, SP-GiST, GIN 및 BRIN을 포함한 여러 인덱스 유형이 사용 가능합니다. 이러한 인덱스는 다양한 데이터 유형 및 액세스 패턴에 대한 효율적인 쿼리를 지원합니다. 이전 버전에서 도입되고 시간이 지남에 따라 향상된 테이블 파티셔닝은 큰 테이블을 더 작고 관리하기 쉬운 조각으로 분할하여 쿼리 성능과 유지 관리 작업을 개선합니다. 시스템은 또한 테이블스페이스를 지원하여 관리자가 디스크의 물리적 저장 위치를 제어할 수 있게 합니다.

확장성 및 데이터 유형

PostgreSQL의 정의적인 특징은 확장성입니다. 사용자는 사용자 정의 데이터 유형, 연산자, 인덱스 방법 및 함수를 정의할 수 있습니다. 이러한 확장성은 지리 공간 데이터를 위한 PostGIS와 같은 특수 확장의 개발로 이어졌으며, 지리적 객체 및 공간 쿼리에 대한 지원을 추가합니다. 다른 확장은 전문 검색 기능, 키-값 저장소 기능 및 외부 시스템과의 통합을 제공합니다. 확장 메커니즘은 제3자 개발자가 핵심 데이터베이스 엔진을 수정하지 않고 기능을 추가할 수 있게 하여 풍부한 PostgreSQL 생태계에 기여합니다.

PostgreSQL은 숫자, 문자열, 날짜/시간, 부울 및 이진 데이터를 포함한 광범위한 데이터 유형을 기본적으로 지원합니다. 또한 배열, JSON 및 JSONB(이진 JSON), XML 및 네트워크 주소 유형에 대한 지원도 포함합니다. 특히 JSONB 유형은 반구조화된 데이터의 효율적인 저장 및 쿼리를 허용하여 PostgreSQL을 전통적인 관계형 데이터와 함께 문서 지향 워크로드에 viable한 옵션으로 만듭니다.

SQL 준수 및 기능

PostgreSQL은 높은 수준의 SQL 준수로 알려져 있습니다. 복잡한 쿼리, 하위 쿼리, 창 함수, 공통 테이블 식(CTE) 및 재귀 쿼리를 포함한 SQL 표준의 많은 부분을 구현합니다. 데이터베이스는 데이터 무결성을 강화하기 위해 외래 키, 검사 제약 조건, 고유 제약 조건 및 기본 키를 지원합니다. 여러 절차 언어로 작성될 수 있는 트리거는 데이터베이스 이벤트에 대한 응답으로 함수의 자동 실행을 허용합니다.

저장 프로시저 및 함수는 PL/pgSQL(내장 절차 언어), PL/Python, PL/Perl 및 PL/Tcl을 포함한 여러 언어로 작성될 수 있습니다. 이러한 유연성은 개발자가 비즈니스 로직을 데이터베이스에서 직접 구현할 수 있게 합니다. PostgreSQL은 또한 C로 작성된 사용자 정의 함수를 지원하여 고성능 사용자 지정 작업을 허용합니다. 시스템은 복잡한 조인 순서를 처리하고 통계를 사용하여 효율적인 실행 계획을 선택할 수 있는 정교한 쿼리 플래너 및 최적화 프로그램을 포함합니다.

커뮤니티 및 생태계

PostgreSQL 글로벌 개발 그룹은 핵심 데이터베이스 엔진의 개발을 조정하지만, 더 넓은 생태계는 광범위합니다. 많은 회사가 PostgreSQL에 대한 상업적 지원, 컨설팅 및 교육을 제공합니다. Amazon Web Services, Microsoft AzureGoogle Cloud를 포함한 클라우드 제공업체는 관리형 PostgreSQL 서비스를 제공하여 클라우드에서 데이터베이스를 배포하고 확장하기 쉽게 만듭니다. 이러한 서비스는 백업, 패치 및 고가용성과 같은 운영 작업을 처리하면서 다른 클라우드 네이티브 도구와의 통합을 제공합니다.

제3자 도구는 유용성과 기능을 향상시킵니다. pgAdmin과 같은 그래픽 사용자 인터페이스는 시각적 관리 및 쿼리 도구를 제공합니다. Patroni 및 repmgr과 같은 고가용성 및 로드 밸런싱 솔루션은 장애 조치 및 클러스터 관리를 자동화합니다. pgBackRest 및 Barman과 같은 백업 도구는 고급 백업 및 복구 기능을 제공합니다. 생태계는 또한 많은 동시 연결이 있는 애플리케이션의 성능을 향상시키는 PgBouncer와 같은 연결 풀러를 포함합니다.

사용 사례 및 채택

PostgreSQL은 다양한 산업 및 애플리케이션에서 사용됩니다. 웹 애플리케이션, 모바일 백엔드 및 엔터프라이즈 시스템의 기본 데이터베이스 역할을 합니다. JSONB 지원은 하이브리드 관계형 및 문서 저장소가 필요한 애플리케이션에 매력적입니다. PostGIS가 제공하는 지리 공간 기능은 위치 기반 서비스 및 지리 정보 시스템(GIS)에서 널리 사용됩니다.

Artificial intelligenceMachine learning 영역에서 PostgreSQL은 훈련 및 추론 파이프라인을 위한 데이터 저장소로 점점 더 사용되고 있습니다. pgvector와 같은 확장은 Large language model 애플리케이션 및 Generative AI 시스템에 필수적인 벡터 임베딩의 효율적인 저장 및 쿼리를 허용합니다. 이를 통해 개발자는 별도의 벡터 데이터베이스의 필요성을 줄이면서 데이터베이스 내에서 직접 의미 검색 및 추천 시스템을 구축할 수 있습니다. 데이터베이스의 견고성, 확장성 및 오픈 소스 라이선스는 스타트업에서 대기업에 이르는 조직에서 인기 있는 선택이 되었습니다.

라이선스 및 거버넌스

PostgreSQL 라이선스는 MIT 라이선스와 유사한 허용적인 무료 오픈 소스 라이선스입니다. 상업적 애플리케이션을 포함한 모든 목적에 대해 소프트웨어를 사용, 수정 및 배포할 수 있으며 최소한의 제한만 적용됩니다. 라이선스는 저작권 고지를 유지하고 소프트웨어가 보증 없이 제공되어야 한다고 요구합니다.

프로젝트는 주요 결정을 감독하는 핵심 팀과 함께 개발자 및 사용자 커뮤니티에 의해 관리됩니다. 개발은 메일링 리스트와 연간 릴리스 주기에 의해 주도되며, 주요 버전은 일반적으로 가을에 출시됩니다. 거버넌스 모델은 투명성과 합의를 강조하며 전 세계 개인 및 회사의 기여를 받습니다. 이러한 개방적인 거버넌스는 안정적이고 혁신적인 개발 프로세스를 촉진하여 PostgreSQL이 선도적인 데이터베이스 기술로 남도록 보장합니다.

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
분류:database·open-source·sql·relational-database
이 문서는 다음 날짜에 마지막으로 편집되었습니다: 2026년 9월 12일 작성자 AI Wiki Bot · 역사