PostgreSQL 교재 · 1편 / 24편

PostgreSQL이란? 우분투·맥·도커로 설치

왜 PostgreSQL 인지·OS 별 5분 설치·첫 접속까지. 24편 교재의 시작.

입문읽는 시간 7분2026-05-16
검은 화면에 파란색 코끼리(PostgreSQL 마스코트) 와 psql 프롬프트가 보이는 일러스트

데이터를 어디에 저장하나요? 엑셀? JSON 파일? 그건 100건까지는 됩니다. 1만 건이 되면 검색이 느려지고, 동시에 두 사람이 쓰면 깨집니다. 관계형 데이터베이스(RDBMS) 가 등장하는 지점이 거기입니다. 1편은 그중에서 가장 강력한 오픈소스 — PostgreSQL 을 내 컴퓨터에 설치하고 psql 로 첫 접속까지 합니다.

이 시리즈의 목표. 24편을 마치면 SELECT 부터 JOIN·트랜잭션·인덱스·성능 튜닝·백업/복구·복제까지 — 작은 서비스의 DB 를 혼자 운영할 수 있는 수준이 됩니다.

1편의 도착점. psql -d postgres 까지 들어가서 SELECT version(); 결과를 보는 것.

왜 PostgreSQL 인가 — MySQL 과의 차이 한 줄

2026년 기준 오픈소스 RDBMS 양대 산맥은 PostgreSQLMySQL/MariaDB 입니다. 둘 다 훌륭하지만 결이 다릅니다.

기준PostgreSQLMySQL
표준 SQL 충실도매우 높음중간 (방언 많음)
JSON·지리·검색 확장jsonb·PostGIS·full-text 표준 내장JSON 지원 있지만 약함
동시성 제어MVCC 정통, 락 거의 안 잡힘InnoDB 도 MVCC 지만 보수적
단순 OLTP 속도비슷매우 빠름 (역사적)
고급 분석 SQL윈도우·CTE·재귀 강력8.0 이후 따라잡는 중

한 줄 요약: "기능 풍부함과 정합성이면 Postgres, 단순한 키-값/조회 위주로 빠름이면 MySQL". 그리고 최근에는 LLM 임베딩(pgvector) 때문에 Postgres 점유율이 빠르게 올라오고 있습니다. 24편에서 다룰 내용도 그 흐름을 따라갑니다.

설치 1 — 우분투 / 데비안 (apt)

가장 흔한 서버 환경입니다. 한 줄이면 끝납니다.

sudo apt update
sudo apt install -y postgresql postgresql-contrib

# 자동으로 systemd 서비스 등록·시작됩니다
systemctl status postgresql
# active (running) 이 보이면 OK

설치하면 자동으로 postgres 라는 OS 사용자와 postgres 데이터베이스가 생깁니다. 첫 접속은:

sudo -u postgres psql
# postgres=# ← 이 프롬프트가 뜨면 들어온 것

설치 2 — macOS (Homebrew)

brew install postgresql@16
brew services start postgresql@16

# psql 명령을 어디서나 쓰려면 PATH 추가 (zsh 기준)
echo 'export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

psql postgres
# postgres=# ← 들어옴

설치 3 — 도커 (가장 빠르고 깨끗)

실제 운영은 도커로 띄우는 경우가 많습니다. 한 줄이면 컨테이너가 뜨고, 끝나면 한 줄로 깨끗하게 지웁니다.

docker run -d \
  --name pg-learn \
  -e POSTGRES_PASSWORD=mysecret \
  -p 5432:5432 \
  -v pg-learn-data:/var/lib/postgresql/data \
  postgres:16

# 접속
docker exec -it pg-learn psql -U postgres

옵션 설명: -e POSTGRES_PASSWORD 가 슈퍼유저 비밀번호, -p 5432:5432 가 호스트 포트, -v pg-learn-data:/var/lib/postgresql/data 가 컨테이너를 지워도 데이터는 살아남게 하는 영구 볼륨입니다.

비밀번호 주의. mysecret 은 학습용입니다. 실제 서버에 띄울 때는 긴 무작위 문자열을 쓰고, 환경변수 파일(.env) 로 분리하세요. 20·23편(백업/복구·튜닝) 에서 보안 권장도 함께 다룹니다.

첫 접속 — SELECT version();

어떤 방식으로 설치했든 psql 로 들어왔다면 다음 3개 명령만 쳐보면 1편의 도착점입니다.

postgres=# SELECT version();
                                          version
─────────────────────────────────────────────────────────────────────────────
 PostgreSQL 16.x on x86_64-pc-linux-gnu, compiled by gcc ...

postgres=# \l            -- 데이터베이스 목록
postgres=# \du           -- 사용자(역할) 목록
postgres=# \q            -- 종료

\ 로 시작하는 건 psql 의 단축 명령(메타 커맨드) 입니다. SQL 표준이 아니라 psql 만의 편의 기능 — 2편에서 자주 쓰는 10개를 정리합니다.

교재 24편 로드맵

파트편수주제끝나면
Part 1 입문1~5설치·psql·DB/스키마·자료형·첫 CRUD테이블 만들고 데이터 INSERT/SELECT
Part 2 SQL 기초6~13WHERE·ORDER·GROUP·JOIN·서브쿼리·CTE·윈도우·jsonb·뷰실무에서 마주치는 90% 의 쿼리
Part 3 중급14~19트랜잭션·락·인덱스·EXPLAIN·함수·트리거성능 문제 진단·인덱스 설계
Part 4 고급20~24백업/복구·복제·파티셔닝·튜닝·확장(pgvector·PostGIS)작은 서비스 DB 단독 운영

2편 — psql 핵심 명령 10개

\l, \dt, \d, \du, \timing, \x, \?, \q, \i, 그리고 쿼리 결과 형식 바꾸기. psql 만 잘 다뤄도 작업 속도가 두 배가 됩니다.

📚 PostgreSQL 배우기 교재
현재: 1편 (입문) · 다음 → 2편 psql 첫 사용 · 진행: 1/24

© 2026 주나이테크(주) @JUNAITECH