개발지식/DB

[DB] PostgreSQL 이란 무엇인가?!

우루쾅 2025. 12. 30. 11:09
728x90
반응형
SMALL

안녕하세요!

오늘은 데이터베이스 업계의 '오픈소스 끝판왕'이라 불리는 PostgreSQL에 대해 깊이 있게 알아보려 합니다.

제가 현재 다니고 있는 회사에서도 PostgreSQL 을 사용하는 중인데 여러가지 장점들이 소개하고자 게시글을 작성하게 되었습니다!

단순히 유행이라서가 아니라, 왜 수많은 기업이 기존의 Oracle을 떠나 Postgres로 향하는지 그 이유를 명확히 짚어보겠습니다.

1. PostgreSQL이란 무엇인가?

PostgreSQL은 전통적인 관계형 DB(RDBMS)를 기반으로 하면서,
사용자 정의 타입·함수·확장 모듈을 지원하는 객체-관계형(ORDBMS) 특성을 함께 갖고 있습니다.

 

30년 이상의 역사를 가진 만큼 매우 안정적이며, 오픈소스임에도 불구하고
상용 DB인 Oracle에 버금가는 강력한 기능을 자랑합니다.

  • 핵심 철학: 데이터의 무결성과 표준 준수(Standard Compliance)를 최우선으로 합니다.
  • 확장성: 지리 정보(PostGIS), JSONB(비정형 데이터), 벡터 데이터(AI용) 등 플러그인만 설치하면 못 하는 게 없는 '만능 DB'입니다.

 

2. Oracle vs PostgreSQL, 무엇이 다른가?

Oracle 에서 PG로 넘어가는 기업이 많은 만큼 서로의 장단점 또한 확실한 편입니다.

Oracle 과 PG 를 비교해서 확인해보겠습니다!

비교 항목 Oracle PostgreSQL
비용 매우 고가의 라이선스 & 유지보수 비 무료(오픈 소스)
확장성 제조사가 제공하는 기능 위주 커뮤니티 기반의 무한한 확장 프로그램
표준 준수 독자적인 SQL 문법(PL/SQL) 강력 ANSI SQL 표준을 가장 완벽하게 준수
아키텍처 프로세스 기반 + RAC를 통한 고급 클러스터링 프로세스 기반으로 안정성이 높으나,
대규모 동시 접속 시 커넥션 관리 비용이 발생할 수 있음
데이터 타입 보수적이고 정해진 타입 위주 JSONB, 배열, 범위 등 혁신적 타입 지원

 

💡 Oracle보다 나은 점:

  1. 가성비: 라이선스 비용이 $0입니다. 인프라 비용만 들죠.
  2. 개발 유연성: JSON 데이터를 관계형 데이터처럼 자유롭게 쿼리할 수 있어 현대적인 웹 서비스에 훨씬 유리합니다.
  3. 클라우드 친화적: AWS, Azure, GCP 등 모든 클라우드에서 '선호되는' DB 엔진입니다.
                             (Aurora PostgreSQL 등 특정 환경에서 Auto scale in, out가능)

 

3. DB 구조의 핵심 - User, Database, Schema란?

가장 헷갈려 하시는 계층 구조를 정리해 드릴게요. PostgreSQL의 구조는 아파트 단지에 비유하면 이해가 쉽습니다.

① Instance (인프라)

  • DB 서버 그 자체입니다. 아파트 단지 전체라고 보시면 됩니다.

② Database (데이터베이스)

  • 인스턴스 내의 독립적인 방입니다. (아파트의 101동, 102동)
  • 중요한 건 DB끼리는 서로 데이터를 직접 주고받기 어렵습니다. (Cross-database query가 까다로움)

③ Schema (스키마) 

  • DB 내의 논리적인 폴더입니다. (동 안의 호수 또는 방)
  • 구조: Database > Schema > Table 순서로 들어갑니다.
  • 특징: 하나의 DB 안에 여러 개의 스키마를 만들 수 있고, 스키마 안에 테이블을 정리합니다. 예를 들어 hr.employees, sales.employees처럼 용도별로 테이블을 그룹핑할 때 사용합니다.

④ User (Role)

  • PostgreSQL에서 User는 사실 Role(역할)과 같습니다.
  • 특정 스키마나 테이블에 들어갈 수 있는 열쇠(권한)를 가진 존재입니다.
  • Oracle과의 차이점: Oracle은 User가 곧 Schema인 경우가 많지만, Postgres는 User와 Schema가 완전히 분리되어 있습니다. (한 명의 User가 여러 Schema를 관리할 수 있고, 하나의 Schema를 여러 User가 공유할 수 있음)

 

4. 그러면 어떤 상황에서 Oracle, 언제 PG를 쓰는게 효과적일까요?!

흔히 "규모가 크면 오라클"이라고 생각하기 쉽지만, 최근에는 OpenAI, 인스타그램, 넷플릭스 같은 초거대 서비스들도 PostgreSQL을 주력으로 사용합니다. 이제는 규모보다는 비즈니스 성격과 관리 철학의 차이로 선택해야 합니다.

① 이런 상황이라면 'Oracle'이 정답입니다

오라클은 단순히 DB 소프트웨어가 아니라, "절대 죽으면 안 되는 대규모 기업용 솔루션" 패키지에 가깝습니다.

  • 금융권/국방/공공기관: "DB가 1초라도 멈추면 수조 원의 손실이 난다"는 곳에 적합합니다. 오라클의 RAC(Real Application Clusters) 기술은 여러 서버를 하나처럼 묶어 한 대가 죽어도 서비스가 중단되지 않게 하는 능력이 독보적입니다.
  • 강력한 기술 지원이 필요할 때: 문제가 생겼을 때 바로 전화를 걸어 책임질 엔지니어를 부를 수 있어야 하는 보수적인 기업 환경에 유리합니다.
  • 복잡한 레거시 시스템과의 연동: 이미 오라클 기반의 전사적 자원관리(ERP) 시스템을 사용 중이라면 오라클을 유지하는 것이 정신 건강에 이롭습니다.
  • 전문 DBA(관리자)가 있을 때: 오라클은 매우 세밀한 튜닝이 가능합니다. 숙련된 DBA가 있다면 성능을 한계치까지 끌어올릴 수 있습니다.

② 이런 상황이라면 'PostgreSQL'이 좋습니다

Postgres는 빠르게 변화하고 확장하는 현대적 서비스의 표준입니다.

  • 스타트업 & 신규 서비스: 라이선스 비용이 없으므로 초기 자본을 아껴 개발에 집중할 수 있습니다.
  • 클라우드 네이티브 환경: AWS(Aurora), Azure, GCP 등 모든 클라우드에서 가장 관리하기 편하고 호환성이 좋습니다. 특정 제조사에 종속(Vendor Lock-in)되지 않습니다.
  • 다양한 데이터 형태 처리: 단순히 표 형태의 데이터뿐만 아니라, JSON(비정형 데이터), 위치 정보(GIS), AI 벡터 데이터 등을 함께 다뤄야 한다면 Postgres가 오라클보다 훨씬 유연하고 강력합니다.
  • 데브옵스(DevOps) 문화: 개발자가 직접 DB를 다루고 자동화하는 환경에서는 복잡한 오라클보다 Postgres가 훨씬 다루기 쉽고 가볍습니다.

③ "큰 서비스는 오라클?" 이 고정관념의 진실

대체로 헷갈려하는 부분이 대형 서비스에서는 오라클이 유리하다고 알고있는 분들(저 포함)이 꽤 있는데 대형 서비스에서의 차이점 또한 비교해보겠습니다!

구분 Oracle PostgreSQL
수직 확장 (Scale-up) 고가의 대형 서버 한 대에서 압도적인 성능 발휘 서버 사양을 높이는데 한계가 오라클보다 빨리 올 수 있음
수형 확장 (Scale-out) RAC 를 통해 여러 서버를 묶는 것이 안정적 기본은 단일 서버이지만, 확장 프로그램 통하여 확장 가능
대규모 트래픽 동시 접속자가 수만 명일 때의
자원 관리가 매우 정밀함
동시 접속 수가 급증할 경우 커넥션 관리 비용이 증가
→ PgBouncer 등 커넥션 풀링을 통해 해결하는 것이 일반적

 

요약하자면:

  • 전통적인 거대 기업(금융, 제조)은 여전히 안정성과 책임 소재 때문에 Oracle을 선호합니다.
  • 글로벌 IT 빅테크 & 유니콘은 비용 절감과 유연한 기능 확장(AI, JSON 등)을 위해
    PostgreSQL로 대규모 서비스를 구현합니다.

 

5. 장단점 요약 및 결론

✅ 장점 (Pros)

  • 비용 절감: 대규모 서비스도 라이선스 비용 없이 운영 가능.
  • 안정성: ACID를 철저히 준수하여 데이터 손실 위험이 극도로 적음.
  • 다양한 데이터: 관계형 데이터와 NoSQL(JSON) 데이터를 한 곳에서 처리.

❌ 단점 (Cons)

  • 설정의 복잡성: 최적의 성능을 내려면 튜닝 설정값이 많아 초보자에게는 다소 어려울 수 있음.
  • 업데이트 부담: 메이저 버전 업데이트 시 데이터 마이그레이션이 필요할 수 있음.

 

결론!

PostgreSQL은 더 이상 ‘오라클의 대안’이 아니라, 현대적인 서비스 아키텍처의 기본 선택지입니다.

 

라이선스 비용이라는 장벽 없이도 엔터프라이즈급 안정성과 표준 SQL, 그리고 JSON·GIS·AI 벡터까지 아우르는 확장성을 동시에 제공하는 데이터베이스는 흔치 않습니다.

 

물론, 절대적인 무중단과 강력한 벤더 지원이 필요한 환경에서는 여전히 Oracle이 유효한 선택일 수 있습니다.
하지만 클라우드 환경, 빠른 서비스 변화, DevOps 중심의 개발 문화를 고려한다면
PostgreSQL은 가장 현실적이고 미래지향적인 선택입니다.

 

복잡해 보이지만, Database → Schema → Table이라는 구조만 이해해도 이미 PostgreSQL의 절반은 이해한 셈입니다.

지금 새로운 서비스를 준비하고 있다면, PostgreSQL을 기본값으로 두고 고민해보는 것부터 시작해도 늦지 않습니다!

 

 

728x90
반응형
LIST