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

Extension: PostgreSQL 의 진짜 슈퍼파워

~12 min · extensions, extensibility

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

Postgres 가 할 수 있는 거 바꾸는 한 줄 설치

Extension 이 Postgres DB 에 새 타입, 함수, 연산자, 인덱스 메서드 추가. CREATE EXTENSION foo; 하면 새 능력 — 별도 서비스 없음, 새 운영 story 없음, 그냥 더 많은 Postgres.

모든 팀이 알아야 할 extension

  • pg_stat_statements — 쿼리별 호출 카운트와 타이밍; 프로덕션에서 가장 먼저 켜는 거.
  • pg_trgm — trigram 퍼지 텍스트 매칭; 오타 허용 LIKE/ILIKE 에 좋음.
  • pgcrypto — 해싱, 암호화, 안전 random byte.
  • pgvector — AI 임베딩 vector 유사도 검색.
  • PostGIS — 완전한 geospatial DB.
  • pg_partman — partition 관리 자동화.
  • pg_cron — DB 안에서 SQL job 스케줄.
  • btree_gist / btree_gin — btree-style 연산자를 GiST/GIN 과 결합 (EXCLUDE 제약 등).

가용한 거 발견하는 법

SELECT * FROM pg_available_extensions; 이 설치가 지원하는 모든 extension 목록. 호스트 서비스 (Supabase, Neon, RDS) 가 플랜별 허용 extension 목록 게시.

Code

Extension 설치 + 사용·sql
CREATE EXTENSION IF NOT EXISTS pg_trgm;

-- 퍼지 유사도 (0 와 1 사이)
SELECT name, similarity(name, 'postgresqul')
FROM   products
ORDER  BY similarity(name, 'postgresqul') DESC
LIMIT  5;

-- ILIKE '%term%' 위한 pg_trgm-backed 인덱스
CREATE INDEX products_name_trgm ON products USING gin (name gin_trgm_ops);

EXPLAIN ANALYZE
SELECT * FROM products WHERE name ILIKE '%postgres%';
-- 이제 Bitmap Heap Scan, Seq Scan 아님.
설치된 거 발견·sql
-- 현재 설치된 거
SELECT * FROM pg_extension;

-- 이 서버에 설치 가능
SELECT name, default_version, installed_version, comment
FROM   pg_available_extensions
WHERE  installed_version IS NULL
ORDER  BY name;

External links

Exercise

위 목록에서 현재 안 쓰는 extension 하나 선택. 샌드박스 DB 에 설치. 기능 하나 사용. 스택의 뭐 대체할지 결정.

Progress

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

댓글 0

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

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