본문 바로가기
PostgreSQL

PostgreSQL을 선택한 이유

by 게으른공장장 2020. 6. 13.

PostgreSQL을 접한지 5년이 되었다.

필자는 DBA는 아니지만 개발자로서 Oracle, MSsql, MySql, Sybase 등의 DB를 사용해 보았고 다른 데이터베이스를 사용하는것에 대한 두려움은 없었다.

하지만 PostgreSQL은 국내 레퍼런스가 많지 않은 DB이다 보니 궁금증은 거의 해외사이트에서 검색을 해야했고,

훌륭한 기능이 있음에도 몰라서 사용하지 못하거나, 간단한 장애에도 허둥지둥 했던 기억이 많다.

자꾸 잊혀져가는 내 기억도 정리할 겸,  처음 PostgreSQL을 사용하는 사람들이 나처럼 헤매지 않고 조금이나마 쉽게 PostgreSQL을 익힐 수 있도록 포스팅을 하기로 결정했다.

이 블로그에서 기본적인 SQL문법까지는 다루지 않을 것이며, Oracle 등을 기준으로 PostgreSQL의

특이점, 또는 특장점만을 다루어보겠다.


5년 전 회사에서 새로운 프로젝트를 받게 되었다.

3~50개 PC에서 사내망에서 사용하는 소규모 패키지 솔루션이었으며, 규모에 비해 제법 방대한 자료를 취급했고, 일단 박리다매의 특성을 가진 사업이었다.

개발언어는 쉽게 정해졌으나, 문제는 데이터베이스 선정이었다.

데이터베이스 선정 시 필요한 기준은 다음과 같았다.

 

- 영구적인 무료 데이터베이스여야 함 (필수)
- 윈도우 기반으로 설치가 가능해야함
- Os 버전에 관계없이(WinXp~Win10) 을 설치가 가능해야함
- 엔지니어가 없이 간편히 설치 및 유지보수가 가능해야함
- 대용량 자료를 취급할 수 있어야 함

 

일단 무료로 운영이 가능한 데이터베이스를 나열했다.

  • MariaDB
  • PostgreSQL
  • MongoDB
  • 큐브리드

등이 선정 대상이 되었다.

필자가 MySql서비스를 운영 시 많은 어려움을 겪었던 지극히 개인적인 견해로 MariaDB는 제외되었고, 보안에 이슈가 있었던 몽고DB를 제외하고 나니 선택의 폭이 좁아졌다.

PostgreSQL은 당시 국내에서 흔히 쓰는 DB는 아니었지만, 해외 레퍼런스에서 심심치않게 눈에 보이던 DB였으며 라이선스 정책에 따라, 영구적 무료라는 점. 특히 일본 및 해외에서는 국가기관에서도 사용하고, Skype, 인스타그램 등에서도 PostgreSQL을 사용한다는 wiki의 글이 내 관심을 사로잡았다.

 

 * 나무위키에 소개된 PostgreSQL 사용자들

  • Yahoo!: 유저 사용형태 분석에 관한 자료를 저장하는 데 쓰이고 있다.
    물론, 다루는 용량이 엄청나게 큰지라(2 페타바이트 정도라 한다) 많이 고쳐서 사용하고 있다고 하는 중.
  • MySpace: 데이타 저장에 쓰이고 있다. Yahoo!처럼 마개조해서 사용하고 있지는 않다.
  • OpenStreetMap
  • Afilias: .org나 .info 도메인 저장에 쓰인다.
  • Sony Online: 멀티플레이 게임용 데이터베이스로 쓰인다.
  • BASF: 웹 쇼핑 데이터베이스 관리용으로 사용된다.
  • hi5.com
  • reddit.com
  • Skype: 중앙 데이터베이스로 사용된다.
  • Sun xVM
  • MusicBrainz: 온라인 음악 백과사전 데이터 수록용으로 쓰인다.
  • International Space Station: 그 우주 정거장 맞다. 천체 관측 자료를 저장하여 지상에서 분석할 때 사용한다.
  • MyYearbook
  • Heroku: 클라우드 서비스용 데이터베이스로 사용된다. 의외로 일본 회사가 아니다.
  • ZOHO ManageEngine: OpManager, SDP 등의 MySQL을 신버전부터 PostgreSQL로 변경.
  • KT: 공개SW 도입을 위한 시범 사업 추진 건으로 CentOS, JBoss EAP 등과 함께 도입되었다.
  • Unity Asset Server : 유니티 엔진의 에셋 버전 관리 시스템 데이터베이스에 사용한다.
  • 인스타그램 참고
  • 끄투의 데이터베이스로도 사용된다.

 

 

 

PostgreSQL 특장점


PostgreSQL을 검색해서 이 포스팅을 읽는 분들이라면 이미 인터넷의 많은 PostgreSQL 의 소개글과 예찬론들을 보셨으리라 생각한다. 그래서 이 포스팅에서는 5년간 사용한 필자의 지극히 개인적인 느낌을 적겠다.

 

라이선스에 대한 비용문제가 전혀 없음

BSD 라이선스이며,  라이선스의 가장 큰 특징은 소스를 변경하고 그 소스를 숨긴 채 재배포 해도 법적으로 문제가 없다는 점이다. PostgreSQL을 사용하는 기업들의 가장 큰 이유이지 않을까 생각한다.

 

오래된 오픈소스의 안정성

큐브리드와 비교 시 Pg를 선택하게 된 가장 큰 이유이기도 하다. 매우 가볍게 돌아가는 데이터베이스지만, 대용량 데이터의 처리에도 큰 문제점이 발견되지 않았고, 표준SQL 잘 따르고있다.

Oracle에 버금가는 통계함수들도 지원을 한다. 통계함수에 대해서는 차차 포스팅 하도록 하겠다.

 

여전히 발전중인 데이터베이스

무료 데이터베이스를 선정하면서 가장 걱정되는 문제는 업데이트가 중단되지 않을까 하는 점이었다. 

새로운 OS에 대응하지 못하는 데이터베이스라면 솔루션 판매 및 유지보수에 큰 문제가 발생할 것이 분명했다.

하지만 PostgreSQL은 생각보다 빠른 속도로 업데이트를 지속하고 있다.

필자가 처음 프로젝트를 설계 시 9.3.1 버젼이 최신 릴리즈였으나 5년이 지난 지금 12.3 버전이 배포되었으니 말이다.

 

장점이자 단점인 독창적인 자료형 및 문법

표준SQL 만으로 PG를 사용해도 좋다. 하지만 독창적인 자료형,문법, 함수들을 익힌다면 더욱 효과적이고 파워풀하게 데이터베이스를 활용할 수 있다.

(예를 들자면 ARRAY, JSON, RANGE등의 자료형, ILIKE 등의 문법은 개발자들에게 큰 편의성과 효율성을 제공한다)

물론 개발자 학습비용 및 차후 마이그레이션의 가능성을 고려한다면 단점으로 생각할 수 있겠다.


PostgreSQL를 사용함에 있어서 그간 많은 어려움도 있었고 랜섬웨어에 감염되거나, 디스크의 훼손등의 이유로 장애를 겪은적도 있었다. 최근에는 국내 레퍼런스도 많이 보이지만, 역시 장애 시 참고자료는 국내자료에서는 쉽게 찾아볼 수 없었다. PostgreSQL의 최근 버젼들이 오류메시지를 한글화해서 보여주면서, 한글 오류를 해외 레퍼런스에서 검색하는데 있어 많은 어려움을 겪기도 했다.

하지만 지난 5년을 돌이켜 총평하자면, PostgreSQL을 선정한것은 최고의 선택이었으며, PostgreSQL의 성능 및 기능에 매우 만족하고 있다.

현재는 솔루션 외에도 사내 운영하는 메인서버도 PostgreSQL로 변경한 상태이다.

다음 포스팅에서는 실제로 DB를 설치하는 과정을 담아보도록 하겠다.

 

필자처럼 새로운 서비스를 기획하며 무료 데이터베이스를 선정하고 있는 사람이 있다면, 일단 PostgreSQL을 설치하고

경험해보기를 추천한다.

 

 

댓글