본문 바로가기
Developer/Spring & Backend

📌 PostgreSQL 기초 개념 정리 – 개발자를 위한 핵심 이해

by 르무엘 2025. 11. 26.

PostgreSQL는 대표적인 오픈소스 관계형 데이터베이스(RDBMS)로,
정확성·안정성·표준 SQL 준수율 때문에 최근 공공, 금융, SI 프로젝트에서도 빠르게 도입되고 있습니다.
이 글에서는 PostgreSQL의 핵심 개념을 실무 개발자 관점에서 쉽게 정리합니다.


1. PostgreSQL란?

PostgreSQL는 객체-관계형 DBMS(ORDBMS) 로 분류되며,
강력한 SQL 기능, 확장성, 고도화된 트랜잭션 처리(MVCC)를 기반으로 동작합니다.

특징 요약:

  • 표준 SQL 준수율 최고 수준
  • 트랜잭션 안정성 우수 (MVCC)
  • JSONB 기반 반-NoSQL 기능 제공
  • 확장 기능(TimescaleDB, PostGIS 등) 강력
  • 상용 DB에 필적하는 기능을 무료로 제공

2. 트랜잭션 처리의 핵심: MVCC

MVCC(Multi-Version Concurrency Control)는
읽기와 쓰기 작업이 서로 락 충돌 없이 동시에 진행되도록 하는 기술입니다.

동작 원리

  • UPDATE/DELETE 시 기존 row를 바로 덮어쓰지 않고, 새 버전(row version) 을 생성
  • SELECT는 자신의 트랜잭션 시작 시점의 버전을 읽음
  • 덕분에 SELECT는 읽기 락 없이 안정적으로 동작
  • 오래된 버전은 이후 Vacuum이 정리

장점

  • 동시성(concurrency) 우수
  • OLTP 환경에서 안정적 성능
  • 일관된 읽기(consistent read) 제공

3. WAL(Write-Ahead Logging)

PostgreSQL는 데이터 변경 전에 로그(WAL) 를 먼저 기록합니다.
WAL은 Postgres의 안정성과 복구 능력을 결정하는 핵심 구조입니다.

WAL의 역할

  • 장애(crash) 발생 시 WAL을 재생(replay) 하여 마지막 정상 상태로 복구
  • Streaming Replication 등 복제 기능의 기반
  • ACID 중 ‘D(Durability)’ 보장

간단 요약:

“데이터 반영 전에 먼저 기록하는 블랙박스 로그.
장애가 나도 WAL을 가지고 복구 가능.”


4. Vacuum과 Analyze

4.1 Vacuum

MVCC로 인해 테이블에 남는 오래된 row 버전(dead tuple) 을 정리하는 작업.

  • INSERT/UPDATE/DELETE가 많으면 dead tuple 증가
  • Vacuum이 이를 제거해 테이블을 정리
  • autovacuum이 자동 수행

즉,

“PostgreSQL는 버전이 쌓이기 때문에
성능 유지하려면 Vacuum이 필수.”

4.2 Analyze

쿼리 실행계획을 최적화하기 위해
테이블 통계(statistics) 를 갱신하는 작업.

  • 통계가 오래되면 planner가 잘못된 실행계획을 선택
  • INSERT/UPDATE가 많으면 Analyze가 필요

요약:

“Analyze = 통계 최신화 → 쿼리 성능을 위한 기본 작업.”


5. PostgreSQL가 강한 이유

PostgreSQL가 많은 개발자에게 선택되는 이유는 다음 기능들 때문입니다.

강점 요약

  1. 복잡한 SQL에 강함
    • Window Function
    • CTE(Common Table Expression)
    • 서브쿼리 성능 우수
  2. JSONB 지원
    • 검색 가능한 JSON 저장
    • MongoDB 대체 가능할 정도
  3. 확장 기능
    • TimescaleDB (시계열 DB)
    • PostGIS (지도/GIS 표준)
    • 확장 모듈로 기능 추가 가능
  4. 표준 SQL 준수율
    • Oracle, SQL Server와 견줄 만큼 정확함
  5. 무료(open-source)
    • 비용 없이 상용급 기능 사용 가능

6. 개발 관점에서 알아둘 특징

✔ 트랜잭션 구조가 탄탄함

Spring, MyBatis, JPA와 잘 맞음.

✔ JSONB + RDB 조합이 강력

NoSQL과 RDB의 장점을 절충.

✔ 복제/HA 구성 유연

WAL 기반 streaming replication 지원.

✔ 대규모 조인·통계 쿼리 강함

업무 시스템(SI, ERP류)에서 특히 유리.


7. 마무리

PostgreSQL는 기존 오픈소스 DB가 갖고 있던
한계를 넘어선 “실무 친화적인 RDBMS”입니다.
특히 공공/기관 시스템, 대규모 트랜잭션, 복잡한 SQL을 다루는 환경이라면 PostgreSQL는 매우 강력한 선택입니다.

 

LIST