C.W.K.
Stream
Lesson 04 of 10 · published

PostgreSQL 이 어쩌다 default 가 됐나

~14 min · foundations, history

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

조용히 끈질긴 승자

1995 년에 PostgreSQL 은 Berkeley 학술 사이드 프로젝트였어. MySQL 한테 모멘텀 있고, Oracle 한텐 예산 있고, "Postgres" 는 연구실 밖에선 아무도 안 쓰는 DB. 30 년 후 모든 개발자 서베이에서 가장 사랑받는 DB, 모든 메이저 클라우드의 default offering, Apple/Instagram/Notion 같은 회사들의 엔진. 화려한 일 없이 — Postgres 는 그냥 계속 정확했고, 계속 확장 가능했고, 계속 무료였고, 계속 출시했어.

이긴 구조적 이유 셋

  1. 지름길보다 정확성. SQL 표준이 X 라고 하면 Postgres 는 X 를 해. MySQL 은 수십 년치 '실은 우리가 조용히 truncate 함' surprise 가 있고, Postgres 는 없어.
  2. Extensibility 가 first-class API. 엔진을 fork 안 하고도 커스텀 데이터 타입, operator, 인덱스 메서드, 쿼리 언어까지 추가 가능. PostGIS, TimescaleDB, pgvector — 다 extension, 아무것도 special build 안 필요.
  3. 커뮤니티 소유. 한 회사가 relicensing 으로 프로젝트를 인질 잡을 수 없어. 같은 거버넌스 모델로 30 년 연속 메이저 릴리스.

매년 릴리스 cadence

9 월마다 새 메이저. 매 릴리스마다 실질적인 기능 (logical replication, parallel queries, JSONB, MERGE, virtual generated columns, uuidv7 등) 이 기존 앱 안 깨고 추가돼. 보통 한나절이면 업그레이드 — 업그레이드 안 하는 비용이 누적돼.

Code

PostgreSQL 은 SQL 표준 따름·sql
-- spec 그대로의 window function
SELECT name, department, salary,
       RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS dept_rank
FROM   employees;
한 줄짜리 extensibility·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

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

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