본문 바로가기
C.W.K.
Stream
Lesson 04 of 10 · published

PostgreSQL은 어떻게 표준 선택지가 되었나

~14 min · foundations, history

Level 0스키마 새싹
0 XP0/86 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

화려하지 않아도 오래 이긴다

PostgreSQL은 1995년에 Berkeley의 POSTGRES 연구 프로젝트에서 출발해 공개 공동체가 발전시킨 데이터베이스야. MySQL에는 빠른 성장세가 있었고 Oracle에는 큰 예산이 있었지만, Postgres를 연구실 밖에서 쓰는 사람은 드물었지. 30년이 흐른 지금은 개발자 설문에서 꾸준히 사랑받고, 주요 클라우드가 기본으로 제공하며, Apple·Instagram·Notion 같은 회사가 핵심 엔진으로 써. 비결은 요란한 반전이 아니라 정확성과 확장성, 자유로운 사용권, 꾸준한 출시를 오래 지킨 데 있어.

구조적으로 강했던 세 가지 이유

  1. 편법보다 정확성을 택했어. SQL 표준이 X를 요구하면 PostgreSQL은 X를 구현하려 해. 값을 조용히 잘라내고도 성공한 척하는 놀라움을 남기지 않는 쪽을 고른 거야.
  2. 확장 기능을 정식 인터페이스로 열었어. 엔진을 갈라 만들지 않아도 새 자료형, 연산자, 색인 방식, 질의 기능을 더할 수 있어. PostGIS, TimescaleDB, pgvector가 모두 평범한 확장 기능으로 설치돼.
  3. 한 회사가 아니라 공동체가 소유해. 어느 회사도 사용권을 바꿔 프로젝트를 인질로 잡을 수 없어. 같은 운영 구조로 30년 동안 주요 버전을 이어 온 힘이 여기서 나와.

9월마다 찾아오는 새 버전

PostgreSQL은 해마다 새 주요 버전을 내. 논리 복제, 병렬 질의, JSONB, MERGE, 가상 생성 열, uuidv7처럼 실제로 쓸 기능을 보태면서도 기존 앱을 함부로 깨지 않아. 보통 업그레이드는 한나절 안에 끝낼 수 있어. 미룰수록 절약되는 게 아니라 오래된 버전을 떠받치는 비용이 쌓여.

Code

SQL 표준을 따르는 PostgreSQL·sql
-- spec 그대로의 window function
SELECT name, department, salary,
       RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS dept_rank
FROM   employees;
한 줄로 기능 확장하기·sql
-- 완전한 geospatial 엔진 추가
CREATE EXTENSION postgis;

SELECT name
FROM   restaurants
WHERE  ST_DWithin(location,
                  ST_MakePoint(-73.99, 40.73)::geography,
                  1000);

-- HNSW vector 엔진 추가
CREATE EXTENSION vector;

SELECT id FROM documents
ORDER BY embedding <=> '[0.1, 0.2, ...]'::vector
LIMIT 5;

External links

Exercise

현재 팀이나 자주 쓰는 호스팅이 제공하는 PostgreSQL 주요 버전을 확인해. 최신 버전과 비교하고, 그 사이에 추가된 기능 가운데 실제 프로젝트에 쓸 만한 두 가지를 찾아봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.