์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ์๊ฐ[ํธ์ง]
The PostgreSQL Global Development Group์์ ๊ฐ๋ฐํ๋ ์คํ ์์ค RDBMS. 1996๋
์ ์ฒซ ์ถ์๋์๋ค. ์ฒ์์๋ BSD ๋ผ์ด์ ์ค์์ผ๋ ์ธ์ ๋ถํฐ์ธ๊ฐ MIT ๋ผ์ด์ ์ค ๋น์ค๋ฌด๋ฆฌํ ๋
์์ ๋ผ์ด์ ์ค[1]๋ฅผ ๋ฐ๋ฅด๊ธฐ ์์ํ๋ค. ๋ฐ์์ 'ํฌ์คํธ๊ทธ๋ ์คํ์'์ด๋ผ๊ณ ํ๋ค.[2]
์ ์ธ๊ณ ์ฌ์ฉ๋ฅ ์ ์์ 3๊ฐ์ DB(Oracle DB, MySQL, Microsoft SQL)์ ์ด์ด 4์์ธ๋ฐ, ๊พธ์คํ ์์นํ๊ณ ์๋ ๊ฒ์ด ํน์ง์ด๋ค. ๋น๊ต์ ์ฌ์ฉ๋ฅ ์ด ๋์ ๊ตญ๊ฐ๋ ๋ถ๋ฏธ์ ์ผ๋ณธ. ๋ถ๋ฏธ์์๋ MySQL๊ณผ ๋ฐ๋๋ก ๊พธ์คํ ๊ตฌ์ธ๋ฅ ์ด ์ฆ๊ฐํ๊ณ ์์ผ๋ฉฐ, ์ผ๋ณธ์์๋ ๊ด๊ณต์์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์์ฉ์ ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ฌด๋ฃ๋ PostgreSQL๋ฅผ ์ฌ์ฉํ๋ค๋ ๋ง์ด ์๋ค. ํนํ ์ผ๋ณธ์ ๊ธฐ์ฑ ์ธ๋ ์์ง๋์ด๋ค์ ์ด๊ธฐ๋ถํฐ PostgreSQL๋ฅผ ์ฌ์ฉํด์ค๊ณ ์์ผ๋ฉฐ ์ ์ ์ธต ๊ฐ๋ฐ์๋ค ์ญ์ 2009๋ ์ ์ฌ ๋ง์ดํฌ๋ก์์คํ ์ฆ๋ฅผ ์ค๋ผํด์ด ์ธ์ํ๋ฉด์ MySQL ์์ ๊ถ์ ๋ํ ์ด์ ๋๋ฌธ์ PostgreSQL์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
MySQL์ ๋นํด์ SQL ํ์ค์ ๋ ์ ์ง์ํ๊ณ ๊ธฐ๋ฅ์ด ๋ ๊ฐ๋ ฅํ๋ฉฐ[3] ์ฟผ๋ฆฌ๊ฐ ๋ณต์กํด์ง์๋ก ์ฑ๋ฅ์ด ๋ ์ ๋์ค๋ ํธ์ด๋ค.[4] ํนํ PostGIS๋ฅผ ํตํ Geospatial query๋ ์ค๋ผํด๋ง์ ์น์ด์ผํค๋ ๊ฐ๋ ฅํจ์ ์๋ํ๋ฉฐ, Citus ์ต์คํ ์ ์ ์ด์ฉํ๋ฉด ๊ทธ๋์ ์ฝ์ ์ผ๋ก ์ง์ ๋ผ์๋ ๋ณ๋ ฌ ์ธ๋ฑ์ฑ๋ ์์ฝ๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅํ๋ค.
์ฌ๋ฌ DBMS ์ค์์๋ ํนํ ๊ฐ๋ฐ์๋ค์ด ์ ํธํ๋ ํธ์ด๋ฉฐ ์ถฉ์ฑ๋๊ฐ ๋์ ํธ์ด๊ณ ์ฌ๋ฌ ๋๋ผ์์ ๊ฐ์ต๋๋ ์ปจํผ๋ฐ์ค๋ ์ธ๋ฏธ๋๋ ๊พธ์คํ ํธ์ด๋ค.
๋์ ๊ธฐ๋ณธ์ ์ธ CRUD ์ฑ๋ฅ์ด MySQL ๋ฑ ๊ฒฝ์ DB์ ๋นํด ์ข์ง ์์ ํธ์ด๋ค. ์ฐ๋ฒ๊ฐ PostgreSQL์ ๋ฉ์ธ์ผ๋ก ์ฐ๋ค๊ฐ ๋จ์ด์ง๋ ์ฑ๋ฅ์ผ๋ก ์ธํ scalability ๋ฌธ์ ๋ฅผ ๊ทน๋ณตํ์ง ๋ชปํ๊ณ MySQL๋ก ์ ํํ๊ธฐ๋ ํ๋ค.
์ต๊ทผ ์ ํ์ MySQL์ด ์ค๋ผํด์ ๋์ด๊ฐ๋ฉด์ ํฅํ ์ผ์ด๋ ์ง๋ ๋ชจ๋ฅผ ์ ์๊ถ ๋ถ์์ ๋ฐฉ์งํ๊ธฐ ์ํด OS X Lion Server ๋ฒ์ ์์๋ MySQL์ ํด์ถ์ํค๊ณ PostgreSQL๋ฅผ ๋์ ํ์๋ค. ์ DB๊ฐ Migration๋ ์ฌ์ด ํธ์ด๋ค.
์ ์ธ๊ณ ์ฌ์ฉ๋ฅ ์ ์์ 3๊ฐ์ DB(Oracle DB, MySQL, Microsoft SQL)์ ์ด์ด 4์์ธ๋ฐ, ๊พธ์คํ ์์นํ๊ณ ์๋ ๊ฒ์ด ํน์ง์ด๋ค. ๋น๊ต์ ์ฌ์ฉ๋ฅ ์ด ๋์ ๊ตญ๊ฐ๋ ๋ถ๋ฏธ์ ์ผ๋ณธ. ๋ถ๋ฏธ์์๋ MySQL๊ณผ ๋ฐ๋๋ก ๊พธ์คํ ๊ตฌ์ธ๋ฅ ์ด ์ฆ๊ฐํ๊ณ ์์ผ๋ฉฐ, ์ผ๋ณธ์์๋ ๊ด๊ณต์์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์์ฉ์ ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ฌด๋ฃ๋ PostgreSQL๋ฅผ ์ฌ์ฉํ๋ค๋ ๋ง์ด ์๋ค. ํนํ ์ผ๋ณธ์ ๊ธฐ์ฑ ์ธ๋ ์์ง๋์ด๋ค์ ์ด๊ธฐ๋ถํฐ PostgreSQL๋ฅผ ์ฌ์ฉํด์ค๊ณ ์์ผ๋ฉฐ ์ ์ ์ธต ๊ฐ๋ฐ์๋ค ์ญ์ 2009๋ ์ ์ฌ ๋ง์ดํฌ๋ก์์คํ ์ฆ๋ฅผ ์ค๋ผํด์ด ์ธ์ํ๋ฉด์ MySQL ์์ ๊ถ์ ๋ํ ์ด์ ๋๋ฌธ์ PostgreSQL์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
MySQL์ ๋นํด์ SQL ํ์ค์ ๋ ์ ์ง์ํ๊ณ ๊ธฐ๋ฅ์ด ๋ ๊ฐ๋ ฅํ๋ฉฐ[3] ์ฟผ๋ฆฌ๊ฐ ๋ณต์กํด์ง์๋ก ์ฑ๋ฅ์ด ๋ ์ ๋์ค๋ ํธ์ด๋ค.[4] ํนํ PostGIS๋ฅผ ํตํ Geospatial query๋ ์ค๋ผํด๋ง์ ์น์ด์ผํค๋ ๊ฐ๋ ฅํจ์ ์๋ํ๋ฉฐ, Citus ์ต์คํ ์ ์ ์ด์ฉํ๋ฉด ๊ทธ๋์ ์ฝ์ ์ผ๋ก ์ง์ ๋ผ์๋ ๋ณ๋ ฌ ์ธ๋ฑ์ฑ๋ ์์ฝ๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅํ๋ค.
์ฌ๋ฌ DBMS ์ค์์๋ ํนํ ๊ฐ๋ฐ์๋ค์ด ์ ํธํ๋ ํธ์ด๋ฉฐ ์ถฉ์ฑ๋๊ฐ ๋์ ํธ์ด๊ณ ์ฌ๋ฌ ๋๋ผ์์ ๊ฐ์ต๋๋ ์ปจํผ๋ฐ์ค๋ ์ธ๋ฏธ๋๋ ๊พธ์คํ ํธ์ด๋ค.
๋์ ๊ธฐ๋ณธ์ ์ธ CRUD ์ฑ๋ฅ์ด MySQL ๋ฑ ๊ฒฝ์ DB์ ๋นํด ์ข์ง ์์ ํธ์ด๋ค. ์ฐ๋ฒ๊ฐ PostgreSQL์ ๋ฉ์ธ์ผ๋ก ์ฐ๋ค๊ฐ ๋จ์ด์ง๋ ์ฑ๋ฅ์ผ๋ก ์ธํ scalability ๋ฌธ์ ๋ฅผ ๊ทน๋ณตํ์ง ๋ชปํ๊ณ MySQL๋ก ์ ํํ๊ธฐ๋ ํ๋ค.
์ต๊ทผ ์ ํ์ MySQL์ด ์ค๋ผํด์ ๋์ด๊ฐ๋ฉด์ ํฅํ ์ผ์ด๋ ์ง๋ ๋ชจ๋ฅผ ์ ์๊ถ ๋ถ์์ ๋ฐฉ์งํ๊ธฐ ์ํด OS X Lion Server ๋ฒ์ ์์๋ MySQL์ ํด์ถ์ํค๊ณ PostgreSQL๋ฅผ ๋์ ํ์๋ค. ์ DB๊ฐ Migration๋ ์ฌ์ด ํธ์ด๋ค.
2. ํ์ฌ ์ฌ์ฉ์๋ค[ํธ์ง]
- 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 : ์ ๋ํฐ ์์ง์ ์์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉํ๋ค.
- ๋ํฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ ์ฌ์ฉ๋๋ค.
์ด๋ ๋ฏ์ด ์ผ๋ณธ ์ธ์๋ ์๊ฐ๋ณด๋ค ๋ง์ ์ฌ์ฉ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
3. ๊ธฐํ[ํธ์ง]
ํฐ๋ฏธ๋ ์ฐฝ์ 'psql'์ ์
๋ ฅํ๋ฉด ๊ธฐ๋ณธ ์ํผ์ ์ ์ธ postgres๋ก ์ ์ํ๋ ๊ฒ ์๋๋ผ ํ์ฌ ๋ก๊ทธ์ธ๋์ด ์๋ ์ด์์ฒด์ ์ ๊ณ์ ์ผ๋ก ์ ์์ ์๋ํ์ฌ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋์ด๋ค. ์ด ์๋ฌ๊ฐ ๋ณด๊ธฐ ์ซ๋ค๋ฉด ์ง์ postgres๋ก ์ ์ํ ํ ํด๋น ๊ณ์ ๋ช
๊ณผ ์ผ์นํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์ ์ ๋ฅผ ์์ฑํด ์ฃผ๋ฉด ๋๋ค.
PostgreSQL ๊ธฐ๋ฐ์ผ๋ก GraphQL ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์ ์๋ hasura๋ผ๋ ๊ธฐ์ ์ด ๋ฑ์ฅํ๋ค. ์๋ฒ ์๋ํฌ์ธํธ๋ฅผ ์์๊ฐ์ ๋ง๋ค ์ ์๋ค.
PostgreSQL ๊ธฐ๋ฐ์ผ๋ก GraphQL ์๋ํฌ์ธํธ๋ฅผ ๋ง๋ค์ ์๋ hasura๋ผ๋ ๊ธฐ์ ์ด ๋ฑ์ฅํ๋ค. ์๋ฒ ์๋ํฌ์ธํธ๋ฅผ ์์๊ฐ์ ๋ง๋ค ์ ์๋ค.
[1] PostgreSQL License http://www.postgresql.org/about/licence/
[2] Post+Gres+Q+L๋ก ๋๋ ์์ด๋ค.
[3] ์๋ฅผ ๋ค๋ฉด MySQL์๋ CTE๋ Check constraint ๋ฑ์ด ์๋ค. CTE๋ ๊ฐ๊ฐ MariaDB 10.2, MySQL 8์์ ๊ตฌํ๋์์ผ๋ฉฐ Check constranints๋ MariaDB 10.2์์ ๊ตฌํ๋์๋ค. MySQL์ ํ์ฌ๊น์ง๋ Check constraints๊ฐ ์๋ค.
[4] Genetic query optimizer๋ผ๊ณ ๋ถ๋ฆฌ๋, ์ ์ ์๊ณ ๋ฆฌ์ฆ์ ํตํ ์ฟผ๋ฆฌ ์ต์ ํ ๊ธฐ์ ์ด ๊ตฌํ๋์ด ์๋ค. MySQL๊ณผ์ ์ฑ๋ฅ ๋น๊ต