PostgreSQL์ด๋ ๋ฌด์์ ๋๊น?
PostgreSQL์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์ ์ง์๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋๋ค. ๊ทธ๊ฒ์ด ์ ๊ณตํ๋ ํํ์ ๋ฌด์์ด๋ผ๊ณ ์๊ฐํฉ๋๊น? ์์ธํ ์์๋ณด๋ ค๋ฉด ๊ณ์ ์ฝ์ด๋ณด์ธ์!

๋ชจ๋ ์ข์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฅผ ์ง์ํ๊ธฐ ์ํด ์๋ฒฝํ ๋ฐฑ์๋๊ฐ ํ์ํฉ๋๋ค. ๋ฐฑ์๋ ๊ฐ๋ฐ์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ ์ค ํ๋๋ ์ข์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ํตํฉํ๋ ๊ฒ์ ๋๋ค. PostgreSQL์ Postgres๋ผ๊ณ ๋ ํ๋ฉฐ PostgreSQL ๊ธ๋ก๋ฒ ๊ฐ๋ฐ ๊ทธ๋ฃน์์ ์ง์ํ๋ ๋๊ท๋ชจ ์ปค๋ฎค๋ํฐ ์ง์๊ณผ ํ์ฅ์ฑ์ผ๋ก ์ ๋ช ํฉ๋๋ค. PostgreSQL์ ๋ฒํด๋ฆฌ ์บ๋ฆฌํฌ๋์ ๋ํ๊ต์์ Ingres ์์คํ ์ ๋์ฒดํ๊ธฐ ์ํด ๋ง๋ค์ด์ก๋ค๋ ์๋ฏธ์์ ์ฒ์์ POSTGRES๋ผ๊ณ ๋ถ๋ ธ์ต๋๋ค.
ํ๋ก์ ํธ์ ์ ๋ชฉ์ SQL ์ง์์ ๋ ์ ๋ํ๋ด๊ธฐ ์ํด 1996๋ ์ PostgreSQL๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ACID ์์ฑ(Atomicity, Consistency, Isolation ๋ฐ Durability)์ ๋ฐ๋ฅด๋ ํธ๋์ญ์ ์ ์ ๊ณตํฉ๋๋ค. ๋ณ๋์ ์ํฌ์คํ ์ด์ ์์ ์ ์ฒด ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค ๋๋ ์ฌ๋ฌ ๋์ ์ฌ์ฉ์๊ฐ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ชจ๋ ๊ฒ์ ํฌํจํ์ฌ ๋ค์ํ ์ํฌ๋ก๋๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค. macOS Server ์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ผ ๋ฟ๋ง ์๋๋ผ Windows, Linux, FreeBSD ๋ฐ OpenBSD ์ ๊ฐ์ ์ด์ ์ฒด์ ์์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
PostgreSQL์ด๋ ๋ฌด์์ ๋๊น?
PostgreSQL์ ๊ฐ๋ ฅํ ๋น์ฆ๋์ค ์์ค์ ์คํ ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ๊ด๊ณํ SQL ๋ฐ ๋น๊ด๊ณํ JSON ๋ฐ์ดํฐ ๋ฐ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. PostgreSQL์๋ ๊ฐ๋ ฅํ ์ปค๋ฎค๋ํฐ๊ฐ ์์ต๋๋ค. PostgreSQL์ ๋ฐ์ด๋ ์์ค์ ์ง์, ๋ณด์ ๋ฐ ์ ํ์ฑ์ ๊ฐ์ถ ๋งค์ฐ ์์ ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ๋๋ค. ์ฌ๋ฌ ๋ชจ๋ฐ์ผ ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ PostgreSQL์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉํฉ๋๋ค. ๋ง์ ์ง๋ฆฌ ๊ณต๊ฐ ๋ฐ ๋ถ์ ์๋ฃจ์ ๋ PostgreSQL์ ์ฌ์ฉํฉ๋๋ค. ์ต์ ๋ฒ์ ์ PostgreSQL 15์ ๋๋ค.

PostgreSQL์ ์ ๊ตํ ๋ฐ์ดํฐ ์ ํ์ ์ง์ํฉ๋๋ค. ์ฌ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ง์ ๋ฐ์ดํฐ ์ ํ์ ์ผ๋์ ๋๊ณ ๋ง๋ค์ด์ก์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ Oracle ๋ฐ SQL Server์ ๊ฐ์ ๊ฒฝ์์ ์ฒด์ ์ ์ฌํฉ๋๋ค. AWS ๋ Amazon Relational Database Service๋ฅผ ํตํด PostgreSQL์ฉ์ผ๋ก ์๋ฒฝํ๊ฒ ์ ์ง ๊ด๋ฆฌ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. PostgreSQL์ Amazon Aurora ๊ตฌ์ถ์๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ๊ธฐ์์ PostgreSQL ์ค๋ช ์ ์ ๋ํด ์์ธํ ์์๋ณผ ์ ์์ต๋๋ค.
์ฃผ์ PostgreSQL ๊ธฐ๋ฅ
PostgreSQL์ด ์ธ๊ธฐ ์๋ ์ด์ ์ค ํ๋๋ ๊ธฐ๋ฅ ์ธํธ ๋๋ฌธ์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์ง ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ด๋ฆฌ์๋ ๋ด๊ฒฐํจ์ฑ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค. ๋ํ ๋ค์ํ ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ชจ๋ ๊ณตํต ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋์ค์ ์ด๊ฒ์ ์ ํํ ๋ชฉ๋ก์ ๋ณผ ๊ฒ์ ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ํ ๋งค์ฐ ์ง๋ณด๋ ์ ๊ธ ์์คํ ์ ์ ๊ณตํฉ๋๋ค. ๋ํ ์ฌ๋ฌ ๋ฒ์ ๊ณผ์ ๋์์ฑ ์ ์ด ๊ธฐ๋ฅ์ด ์์ต๋๋ค. PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์๋ ์ฑ์ํ ์๋ฒ ์ธก ํ๋ก๊ทธ๋๋ฐ์ ์ํ ๊ธฐ๋ฅ๋ ์์ต๋๋ค. ANSI SQL ์ฌ์์ ์ค์ํ๋ฉฐ ํด๋ผ์ด์ธํธ-์๋ฒ ๋คํธ์ํฌ ์ํคํ ์ฒ๋ ์๋ฒฝํ๊ฒ ์ง์๋ฉ๋๋ค.
PostgreSQL์๋ ๊ณ ๊ฐ์ฉ์ฑ๊ณผ ๋ฐฑ์ ์๋ฒ๋ ์์ต๋๋ค. ANSI-SQL2008 ๋ฐ ๊ฐ์ฒด ์งํฅ์ ์ค์ํฉ๋๋ค. ๋ค์ค ์ธ์ด ์์คํ ์ ์ํ ํตํฉ ํ๋ธ ์ญํ ์ ํ๋ NoSQL ๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ JSON ์ง์์ ํตํด ๊ฐ๋ฅํฉ๋๋ค. ์ ํํ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ์ ์ ๋ณด๋ ํญ์ ํ๋์ PostgreSQL ์ธ์คํด์ค์ ์ํด ๊ด๋ฆฌ๋ฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋ ํ์ผ ์์คํ ์ ๋์ผํ ์์น์ ๋ณด๊ด๋๋ ๋ ์ฝ๋ ๊ทธ๋ฃน์ ๋๋ค.
SQL๊ณผ์ ์ฐจ์ด์
์ฐ๋ฆฌ๋ PostgreSQL์ด ์ต์ ๋ฒ์ ์ SQL ์ ์ง์ํ๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์ ์ ํํ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์? Oracle Corporation์ ํ์ฌ ์ฌ์ฉ์๊ฐ ๋น์ฉ์ ์ง๋ถํด์ผ ํ๋ ์ฌ๋ฌ ํ๋ฆฌ๋ฏธ์ ๋ฒ์ ์ด ์๋ MySQL ํ๋ก์ ํธ๋ฅผ ์์ ํ๊ณ ์์ต๋๋ค. ๋์์ PostgreSQL์ ๋ฌด๋ฃ ์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. PostgreSQL๊ณผ ๋ฌ๋ฆฌ MySQL์ NDB ๋ฐ InnoDB Cluster Collection ์์ง๊ณผ ํจ๊ป ์ฌ์ฉํ ๋๋ง ์์ ํ ACID์ ํธํ๋ฉ๋๋ค.
MySQL ์ OLAP ๋ฐ OLTP ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐ์ด ์ฝ๊ธฐ ์ฑ๋ฅ์ด ์ ์ผํ ์์์ผ ๋ ์ ์๋ํฉ๋๋ค. ๋์์ PostgreSQL์ ์ฑ๋ฅ์ ์ ๊ตํ ๊ฒ์ ์ฒ๋ฆฌ๊ฐ ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ต์ ์ ๋๋ค. MySQL ์ ์ฝ๊ธฐ ์ด๋ ค์ด ๊ฒฝํฅ์ด ์๋ ๋น์ฆ๋์ค ์ธํ ๋ฆฌ์ ์ค ํ๋ก์ ํธ์ ํจ๊ป ์์ ํ ๋ ๋ ์์กด์ ์ ๋๋ค. ๋ฐ๋ฉด PostgreSQL์ ๋ถ์ ๋ฐ ์จ์ดํ์ฐ์ง ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ ์ ์๋ํฉ๋๋ค.
PostgreSQL์ ๋ฌด์์ ์ฌ์ฉ๋ฉ๋๊น?
์ฌ๋ฌ ์ ๋ช ๋ธ๋๋์ ํ์ฌ์์ PostgreSQL์ ๋ฐฑ์๋์ ์ผ๋ถ๋ก ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์๋ Netflix , Uber, Instagram ๋ฑ๊ณผ ๊ฐ์ ์ด๋ฆ์ด ํฌํจ๋ฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ๋ค์ํ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ๋ง์ ์์ ๋ณต์กํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ํนํ ์ธ๊ธฐ๊ฐ ์์ต๋๋ค. PostgreSQL ์๋ ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋ฌ ์ํํธ์จ์ด ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
๊ธ์ต ๋ถ๋ฌธ
PostgreSQL ์ ๊ธ์ต ๋ถ๋ฌธ์ ์ํ ํ์ํ DBMS ์ ๋๋ค. ์ด์ ์ ์ธ๊ธํ๋ฏ์ด ACID ์ ์์ ํ ํธํ๋๋ฏ๋ก ์จ๋ผ์ธ ํธ๋์ญ์ ์ฒ๋ฆฌ ๋๋ OLTP์ ๊ฐ์ฅ ์ ํฉํ ์ต์ ์ ๋๋ค. ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ถ์์ ์ํํ ์ ์์ผ๋ฉฐ Matlab, R ๊ณผ ๊ฐ์ ์ํ ํ๋ก๊ทธ๋จ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
์ ๋ถ ์ง๋ฆฌ ์ ๋ณด ์์คํ ( GIS) ๋ฐ์ดํฐ ์ ์ฅ
PostgreSQL ์์ ์ ๊ณตํ๋ ๊ฐ๋ ฅํ GIS ๋ PostGIS ๋ก ์๋ ค์ ธ ์์ต๋๋ค. ์ด ๋ชจ๋์๋ ๋ค์ํ ํํ์ ๊ธฐํํ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์๋ง์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค. PostGIS ๋ ๋ง์ SQL ํ์ค์ ์ค์ํฉ๋๋ค. ๋ํ ์คํ ์์ค ์ปค๋ฎค๋ํฐ๋ QGIS ์ GeoServer ๋ฅผ ๋ชจ๋ ํ์ฉํ์ฌ Geodata ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
์กฐ์
์ฐ์ ํ์ฌ๋ ํ์ฌ PostgreSQL์ ์ฌ์ฉํ์ฌ ์ ์ฒด ์ํฌํ๋ก๋ฅผ ๊ฐ์ํํ๊ณ ์์ต๋๋ค. ์ด ์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐ์ดํฐ ๋ฐฑ์๋๋ก ํ์ฉํ๋ฉด ๊ณต๊ธ๋ง์ ํจ์จ์ฑ์ ๋์ฑ ์ต์ ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ธฐ์ ์ ์ด์ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค.
์น์ฌ์ดํธ ๊ฐ๋ฐ ๋ฐ NoSQL
์ฌ์ดํธ์์ ์ด๋น ๋ง์ ์์ ์์ฒญ์ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ ํ์ฅ์ ์์ฌํ ์ฌ์ง ์์ด ์ค์ํ ๋ฌธ์ ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ๊ฐ์ฅ ์ข์ ์ต์ ์ PostgreSQL ์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ Django, Node.js, PHP, Hibernate ๋ฑ์ ํฌํจํ ๋ชจ๋ ์ต์ ์น ํ๋ ์์ํฌ์์ ์๋ํฉ๋๋ค. ๋ํ ์ํ๋ ๋งํผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ํ์ฅํ ์ ์๋ ๋ณต์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๊ณผํ ์ ๋ณด
ํ๋ฌธ์ ๋๋ ๊ณผํ์ ๋ ธ๋ ฅ์ ์ข ์ฌํ๋ ๊ฒฝ์ฐ ํ ๋ผ๋ฐ์ดํธ์ ์ ๋ณด๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฅํ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. PostgreSQL์ ํ์์ ์ธ ๋ถ์ ๊ธฐ๋ฅ๊ณผ ๊ฐ๋ ฅํ SQL ์์ง์ ์ด์ ์ด์์ ์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
PostgreSQL ์ฌ์ฉ์ ์ด์
PostgreSQL ์๋ ์คํ ์์ค ์ปค๋ฎค๋ํฐ์์ ์์ ์ฑ์ ์ด๋ฅด๊ธฐ๊น์ง ์ฌ์ฉ์์๊ฒ ๋งค์ฐ ๋งค๋ ฅ์ ์ธ ๋ช ๊ฐ์ง ์ฃผ์ ์ด์ ์ด ์์ต๋๋ค. ์คํ์์ค ๋ผ์ด์ ์ค๋ฅผ ํตํด PostgreSQL ์ ์์ค์ฝ๋์ ๋ฌด๋ฃ๋ก ์ ๊ทผํ ์ ์๋ค. ์ด ๋๋ฌธ์ ํ์ฌ์์ ์๊ตฌํ๋ ๋๋ก ์ฌ์ฉ, ๋ณ๊ฒฝ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ํ ์ฌ์ฉํ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ PostgresSQL ์ ์ดํดํ๋ ๋ฐ ๋ง์ ์ง์นจ์ด ํ์ํ์ง ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํตํฉ ๋ฐ ๊ธฐ์ ์ฌ์ฉ์ ์ํด ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฝ์ต๋๋ค.
๋ค์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ๊ณตํ๋ ์ฃผ์ ์ด์ ์ค ์ผ๋ถ์ ๋๋ค.
์ข์ PostgreSQL ๊ธฐ๋ฅ
PostgreSQL ์๋ ๋งค์ฐ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ธํธ๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ MVCC ( Multi-Version Concurrency Control) ๊ธฐ๋ฅ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ ๋ค์ ์บก์ฒํ๋ ํน์ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ธ๋ถํ๋ ์ก์ธ์ค ์ ์ด, ํ ์ด๋ธ์คํ์ด์ค ๋ฐ ๋น๋๊ธฐ ์ฌ์ ๊ธฐ๋ฅ๋ ์์ต๋๋ค. ์ฒ๋ฆฌํ ์ ์๋ ์ ๋ณด์ ์๊ณผ ์ง์ํ ์ ์๋ ๋์ ๊ณ ๊ฐ ์ ๋ฉด์์ PostgreSQL ์ ํ์ฅ์ฑ์ด ๋ฐ์ด๋ฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ํ ๊ตญ์ ๋ฌธ์ ์งํฉ, ์ ๋์ฝ๋ ๋ฐ ๋ฉํฐ๋ฐ์ดํธ ๋ฌธ์์ด ์ํธํ๋ฅผ ํ์ฉํฉ๋๋ค. ๋ํ ์ค์ฒฉ๋ ํธ๋์ญ์ , ์จ๋ผ์ธ ๋ฐฑ์ ๋ฐ ๋ฏธ๋ฆฌ ์ฐ๊ธฐ ๋ก๊น ์ ์ํํ ์ ์์ต๋๋ค.
์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค
PostgreSQL์ ์์ค ์ฝ๋๋ ์คํ ์์ค ๋ผ์ด์ ์ค๋ฅผ ํตํด ์ก์ธ์คํ ์ ์์ผ๋ฏ๋ก ์ํ๋ ๋ฐฉ์์ผ๋ก PostgreSQL ์ ์ฌ์ฉ, ๋ณ๊ฒฝ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. PostgreSQL๊ณผ ๊ด๋ จ๋ ๋ผ์ด์ ์ค ๋น์ฉ์ด ์์ผ๋ฏ๋ก ๊ณผ์ ๋ฐฐํฌ์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์ด์ ์ ์ธ PostgreSQL ์ปค๋ฎค๋ํฐ๋ ์์ฃผ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์์ ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณด์์ ๊ฐํํฉ๋๋ค.
๊ท๋ฒ ๋ฐ ์ ๋ขฐ์ฑ ์ค์
์์์ ์ธ๊ธํ๋ฏ์ด PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๊ฐ ์ ๊ณตํ๋ ์ต๊ณ ์ ๊ธฐ๋ฅ ์ค ํ๋๋ ๋ฏธ๋ฆฌ ์ฐ๊ธฐ ๋ก๊น ์ ๋๋ค. ๋ฐ๋ผ์ ์ค๋ฅ์ ๋งค์ฐ ๊ฐํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฉ๋๋ค. ๋ฐฉ๋ํ ์์ ์คํ ์์ค ์ฐธ๊ฐ์ ๋๋ถ์ ๊ฐ๋ ฅํ ์ปค๋ฎค๋ํฐ ์ง์ ์์คํ ์ด ํตํฉ๋์์ต๋๋ค. ๋ํ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ธ๋ ํค, ๊ธฐ๋ณธ ํค, ์กฐ์ธ, ๋ณด๊ธฐ ๋ฑ์ ์ง์ํฉ๋๋ค.
์ด๋ฌํ ์ฉ์ด๋ ์ผ๋ฐ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์์์ ๊ฐ์ ์๋ฏธ์ ๋๋ค. ์๋ฅผ ๋ค์ด PostgreSQL ๊ธฐ๋ณธ ํค๋ ๋ ์ฝ๋๋ฅผ ๋๋ ทํ๊ฒ ์๋ณํ ์ ์๋ ํ๋ ์กฐํฉ์ ํ๋์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ต์ ๋ฒ์ ์ SQL์์ ์ง์ํ๋ ๋๋ถ๋ถ์ ๋ฐ์ดํฐ ์ ํ, ํนํ INTEGER, NUMERIC, BOOLEAN, CHAR ๋ฑ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ์ ํ์ด ํฌํจ๋ฉ๋๋ค. ๋ํ ์ด๋ฏธ์ง, ์ค๋์ค ๋๋ ๋น๋์ค์ ๊ฐ์ ํฐ ๋ฐ์ด๋๋ฆฌ ํญ๋ชฉ์ ์ ์ฅ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
PostgreSQL ์ ์ญ์ฌ
University of California, Berkeley์ Michael Stonebreaker ๊ต์๋ 1986๋ PostgreSQL ํ๋ก๊ทธ๋จ์ ์์์ ๊ฐ๋ ํ์ต๋๋ค. ์ด ํ๋ก์ ํธ์ ์ด๊ธฐ ์ ๋ชฉ์ธ POSTGRES ๋ 1977๋ ์ ์์ฑ๋ Berkeley์ ์ด๊ธฐ Ingres ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ฒฝ์์ ๋๋ค. ํ์ฌ ๋ค์ ์ค ํ๋์ธ POSTGRES ๊ฐ์ฅ ์ ์๋ ค์ง ์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์ํ ๋ฐ์ดํฐ ์ ํ์ ์๋ฒฝํ๊ฒ ์ ๊ณตํ๋ ๋ฐ ํ์ํ ์ต์ํ์ ๊ธฐ๋ฅ์ ํฌํจํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ๋ง์ ๋ฐ์ดํฐ ์ ํ์ ๋ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
PostgreSQL ์ด ์ฌ์ ํ Postgres ๋ผ๊ณ ์์ฃผ ์ธ๊ธ๋์ง๋ง, ์ด ํ๋ก์ ํธ๋ SQL ์ฟผ๋ฆฌ ์ธ์ด์์ ํธํ์ฑ์ ๊ฐ์กฐํ๊ธฐ ์ํด 1996๋ ์ PostgreSQL ๋ก ๋ธ๋๋๋ฅผ ๋ณ๊ฒฝํ์ต๋๋ค. ๋ฌด๋ฃ ๋ฐ ์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ PostgreSQL Global Development Group์ผ๋ก ์๋ ค์ง ํ์ ์ ์ด๊ณ ๋ค๋ฌธํ์ ์ธ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๋ก๋ถํฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์ค์ํ๊ณ ์ฌ์ํ ์ ๋ฐ์ดํธ๋ฅผ ๊ณ์ ๋ฐ๊ณ ์์ต๋๋ค. PostgreSQL ๋ฒ์ 7.2 ~ 8.2๋ ๋น์ฐจ๋จ ๋ฐ ์คํค๋ง ์ง์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ต๋๋ค.
PostgreSQL์ ์ธ๊ธฐ ์ฌ์ฉ ์ฌ๋ก
PostgreSQL ์ ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก ์ค ์ผ๋ถ๋ ์๋์ ์์ธํ ์ค๋ช ๋์ด ์์ต๋๋ค.
OLTP ๋ฐ์ดํฐ๋ฒ ์ด์ค
PostgreSQL ์ ์ธํฐ๋ท ๋ฒ์์์ ์จ๋ผ์ธ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์ฃผ์ ๋ฐ์ดํฐ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋๋ค. ์คํํธ์ ๊ณผ ๊ธฐ์กด ๊ธฐ์ ๋ชจ๋์์ ์ฌ์ฉํ๋ ์๋ฃจ์ ๊ณผ ์ ํ์ ์ฌ์ฉ๋ฉ๋๋ค.
์ง๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
PostgreSQL์ ์ง๋ฆฌ ์ํฐํฐ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ PostGIS ๋ชจ๋( GIS)๊ณผ ๊ฒฐํฉ๋ ๋ ์์น ๊ธฐ๋ฐ ์์ ๋ฐ ์ง๋ฆฌ ์ ๋ณด ์์คํ ์ ์ํ ์ง๋ฆฌ ๊ณต๊ฐ ๋ฐ์ดํฐ ์ ์ฅ์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋๋ ์ด์ ํ๋ธ
PostgreSQL ์ ๋ค๋ฅธ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค, ํนํ NoSQL ๊ณผ ์ฐ๊ฒฐํ ์ ์์ผ๋ฉฐ ์ธ๋ถ ๋ฐ์ดํฐ ๋ํผ ๋ฐ JSON ํธํ์ฑ ๋๋ถ์ ๋ค์ค ์ธ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ์ฐํฉ ์ผํฐ ์ญํ ์ ํฉ๋๋ค.
์คํ ์์ค LAPP ์คํ
LAPP ๋ Linux, Apache, PostgreSQL, PHP, Python ๋ฐ Perl ์ ์ฝ์ด์ ๋๋ค. LAMP ์คํ์ ๋ํ ์์ ์ ์ธ ๋์์ธ PostgreSQL ์ ์ฌ์ฉํ์ฌ ๋์ ์ํํธ์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์น ํ์ด์ง๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
์ธ์ด ์ง์
PostgreSQL ์ C ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ ์ฃผ์ ๋ฐฐํฌํ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋ฉ๋๋ค.
- PL/pgSQL
- PL/Tcl
- PL/Perl
- PL/Python
์ฌ๊ธฐ์ PL ์ ์ ์ฐจ์ ์ธ์ด๋ฅผ ์๋ฏธํฉ๋๋ค.
PostgreSQL ์ ๋ค์๊ณผ ๊ฐ์ด ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋๋ถ๋ถ์ ์ฝ๋ฉ ์ธ์ด ๋ฐ ํ๋กํ ์ฝ์ ์ง์ํฉ๋๋ค.
- Python
- Java
- Perl
- .๊ทธ๋ฌผ
- Go
- Ruby
- C/C++
- Tcl
- ODBC
PostgreSQL ๋ฐ AppMaster
์ฝ๋๊ฐ ์๋ ๊ฐ๋ฐ์ ์ผ๋ฐ ๋์ค์ด ์ํํธ์จ์ด ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ ์ฝ๊ฒ ๋ง๋ค ์ ์๋๋ก ํ์ต๋๋ค. ํ๋ ์ํํธ์จ์ด ์์ง๋์ด๋ง ํ ์ ์์๋ ์ผ์ด ์ด์ ๋ ํจ์ฌ ๋ ์ฝ๊ฒ ํ์ตํ ์ ์๋ ํ๋ก์ธ์ค๊ฐ ๋์์ต๋๋ค. No-code ๊ฐ๋ฐ์ ํตํด ์ฌ๋๋ค์ ๋ฐ์ํ ์น์ฌ์ดํธ์ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์น ์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค.
AppMaster๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ค ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ ์ํ๋ ๊ฒฝ์ฐ ์์ค ์ฝ๋๋ฅผ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค. AppMaster ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ ์ผ๋ก ๊ทํ์ ํต์ ์ ์์ ๊ถ ๋ด์ ์๋ ๋๋ผ์ด ๋ ธ์ฝ๋ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
AppMaster.io ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋์์ด๋ ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณต์กํ ์ํฐํ๋ผ์ด์ฆ ์์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฝ๊ฒ ๋์์ธํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ณ ๊ธ DBMS ๋ฅผ ์ฌ์ฉํ์ฌ PostgreSQL ์์ ์คํ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค. DBMS ๋ ์คํ ๋ผ์ด์ ์ค๊ฐ ์์ผ๋ฉฐ, ์ฌ์ฉ์ ๋ํด ์ถ๊ฐ ๋น์ฉ์ ์ง๋ถํ ํ์๊ฐ ์์ต๋๋ค.
ํด๋ผ์ฐ๋ ์๋น์ค ๋ฐ PostgreSQL์ ํ๋ก์ ํธ ๋ฐฐํฌ
AppMaster ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ PostgreSQL 13 ์ ์ฌ์ฉํฉ๋๋ค. ์ฆ, AppMaster Cloud ๋ฟ๋ง ์๋๋ผ AWS ๋๋ Azure ์ ๊ฐ์ PostgreSQL ํธํ ํด๋ผ์ฐ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ก๋ํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
PostgreSQL ์ ์์ฌํ ์ฌ์ง ์์ด ๋ฌด๋ฃ์ธ ๊ฐ์ฅ ์ง๋ณด๋ ์คํ ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค ํ๋์ ๋๋ค. ์ฌ๊ธฐ์์ ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ถ์ฒ์ ๊ทธ๊ฒ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข์ ์ ํ์ธ ์ด์ ๋ฅผ ์ดํด๋ณด์์ต๋๋ค. ์ฌ๋ฌ ์์คํ ๊ณผ์ ํธํ์ฑ ๋ฐ ๋ง์ ์ธ๊ธฐ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ๋ฏธ๋ค์จ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ ๋ง์ ์ด์ ์ค ํ๋์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฌด๋ฃ์ด๊ธฐ ๋๋ฌธ์ ๋งค๋ ฅ์ ์ ๋๋ค. ๋ํ ํน์ ํ๋ก์ ํธ์ ํ์ํ ์ ์๋ JSON ๋ฐ์ดํฐ๋ฅผ ์ง์ํฉ๋๋ค.
๋ํ PostgreSQL ์ ์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํญ์ ๋ฐ์ ํ๊ณ ์์์ ๋ณด์ฅํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ ์์ ์์๋ ๋งํ ๊ฒฝ์ฐ ๋ค์ ์๋ ๋๊ท๋ชจ ์ปค๋ฎค๋ํฐ๋ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ต์ ์ค์์ ์ ํํ๋ ๊ฒฝ์ฐ PostgreSQL์ ์ง์งํ๊ฒ ๊ณ ๋ คํด์ผ ํ๋ ์ต์ ์ ๋๋ค.


