PostgreSQL
The world's most advanced open source database.
www.postgresql.org
PostgreSQL์ ์ธ๊ณ์์ ๊ฐ์ฅ ์ง๋ณด๋ ์คํ ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ํ์ฅ์ฑ๊ณผ ์์ ์ฑ์ ๊ฐ์ถ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ค์ํ ํ๋ซํผ์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ๋ณต์กํ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ์ ๋ฐ์ด๋ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. MySQL์ด ์๋์ ๋จ์ํจ์, Oracle์ด ๊ณ ๊ธ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ์กฐํ๋ ๋ฐ๋ฉด, PostgreSQL์ ์คํ ์์ค์์๋ ์ํฐํ๋ผ์ด์ฆ๊ธ ๊ธฐ๋ฅ๊ณผ ์ปค๋ฎค๋ํฐ ์ง์์ผ๋ก ๋ฐ์ด๋ ํ์ฅ์ฑ๊ณผ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด PostgreSQL์ ๋ค์ํ ํ๊ฒฝ์์ ์ ๋ขฐ์ฑ๊ณผ ์ฑ๋ฅ์ ๋ชจ๋ ๊ฐ์ถ ์ต์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฃจ์ ์ผ๋ก ์๋ฆฌ ์ก๊ณ ์์ต๋๋ค.๐
1๏ธโฃ PostgreSQL ์ค์น
EnterpriseDB์์ PostgreSQL ์ค์น ํ์ผ์ ๋ค์ด๋ก๋ํ ํ ์ค์น๋ฅผ ์งํํฉ๋๋ค. ์ค์น ํ์ผ์ ๋ค์ด๋ก๋ํ ๋, ์ฌ์ฉํ PostgreSQL ๋ฒ์ ์ ์ ํํด์ผ ํฉ๋๋ค. ํ๋ก์ ํธ์ ๋ง๋ ์ ์ ํ ๋ฒ์ ์ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ฉฐ, ๊ฐ ๋ฒ์ ์ ํน์ง์ ์๋์ ๊ฐ์ต๋๋ค.
- 17 (RC1) : ์ต์ ๋ฒ ํ ๋ฒ์ , ํ ์คํธ ๋ชฉ์ ์ ์ ํฉํ๋ ์์ ์ฑ ๋ณด์ฅ ์ด๋ ค์.
- 16.4 : ์ต์ ์์ ๋ฒ์ , ์ฑ๋ฅ ๋ฐ ๊ธฐ๋ฅ ๊ฐ์ , ์ฅ๊ธฐ์ ์ฌ์ฉ์ ์ ํฉ.
- 15.8 : ์์ ์ฑ๊ณผ ์ฑ๋ฅ ๊ท ํ ์กํ ๋ฒ์ , ์๋ก์ด ๊ธฐ๋ฅ ํ์ ์๋ ๊ฒฝ์ฐ ์ ํฉ.
- 14.13 : ์์ ์ ์ธ ๊ตฌ๋ฒ์ , ๋ณด์์ ์ ๊ทธ๋ ์ด๋ ์ ๋ต์ ์ ํฉ.
๋ํ, ์ค์น ์ค๊ฐ์ ๊ด๋ฆฌ์(superuser) ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํด์ผ ํ๋ฉฐ, ์ด ๋น๋ฐ๋ฒํธ๋ ๋์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ณ ๊ด๋ฆฌํ ๋ ํ์์ ์ด๋ฏ๋ก ๊ผญ ๊ธฐ์ตํด์ผ ํฉ๋๋ค.
์ค์น๊ฐ ์๋ฃ๋ ํ pgAdmin 4๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ๋ฅผ ํ ์ ์์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ Stack Builder๋ก ์ถ๊ฐ์ ์ธ ํ์ฅ ๊ธฐ๋ฅ์ ์ค์นํ ์ ์์ต๋๋ค.
2๏ธโฃ pgAdmin 4 ์คํํ๊ธฐ
pgAdmin์ PostgreSQL์ ๊ด๋ฆฌํ ์ ์๋ GUI ํด๋ก, MySQL์ ์ํฌ๋ฒค์น๋ Oracle์ SQL Developer์ฒ๋ผ ํ ์ด๋ธ ๋ฐ ์ฌ์ฉ์ ์์ฑ ๋ฑ์ ์์ ์ ์ฝ๊ฒ ์ํํ ์ ์์ต๋๋ค.
PostgreSQL ์ค์น ์ ํจ๊ป ์ค์น๋๋ฏ๋ก ์์ ๋ฉ๋ด์์ pgAdmin 4๋ฅผ ๊ฒ์ํ์ฌ ๋ฐ๋ก ์คํํฉ๋๋ค.
* ์ค์น๊ฒฝ๋ก : C:\Program Files\PostgreSQL\14\pgAdmin 4\runtime\pgAdmin4.exe
ํ๋ก๊ทธ๋จ ์คํ ์, ์ค์น ๊ณผ์ ์์ ์ค์ ํ PostgreSQL ๊ด๋ฆฌ์(superuser) ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํด์ผ ํฉ๋๋ค. ์ด ๋น๋ฐ๋ฒํธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์ ํ์์ ์ ๋๋ค.
3๏ธโฃ ์ฌ์ฉ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ ์ด๋ธ ์์ฑ ๋ฐ ์ฟผ๋ฆฌ ์คํ ๋ฐฉ๋ฒ
โ๏ธ ์ฌ์ฉ์ ์์ฑ
- pgAdmin 4์์ [Login/Group Roles] ์ฐํด๋ฆญ > [Create] > [Login/Group Role...]์ ํด๋ฆญํ์ฌ ์ ์ฌ์ฉ์๋ฅผ ์์ฑํฉ๋๋ค.
- General ํญ : ์ฌ์ฉ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
- Definition ํญ : ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- Privileges ํญ : ์ฌ์ฉ์์ ๊ถํ์ ์ค์ ํฉ๋๋ค.
- Can login : ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ ์ ์๋ ๊ถํ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒดํฌ๋์ด ์์ง ์์ผ๋ฏ๋ก ๋ฐ๋์ ์ฒดํฌํด์ผ ๋ก๊ทธ์ธ ๊ฐ๋ฅํฉ๋๋ค.
- Inherit : ์ฌ์ฉ์๊ฐ ์ํ ๊ทธ๋ฃน์ ๊ถํ์ ์์๋ฐ์์ง ์ฌ๋ถ๋ฅผ ์ค์ ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒดํฌ๋์ด ์์ต๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒดํฌ๋์ง ์์ ๊ถํ๋ค : Superuser, Create DB, Create Role, Replication, Bypass RLS ๋ฑ์ ํ์์ ๋ฐ๋ผ ์๋์ผ๋ก ์ฒดํฌํด์ผ ํฉ๋๋ค.
โ๏ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
- [Databases] ์ฐํด๋ฆญ > [Create] > [Database...]๋ฅผ ํด๋ฆญํ์ฌ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์๋ฅผ ์๋ก ๋ง๋ ์ฌ์ฉ์๋ก ์ค์ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ทธ ์ฌ์ฉ์๊ฐ ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ๊ด๋ฆฌํ ์ ์๋ ๊ถํ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
โ๏ธ ํ ์ด๋ธ ์์ฑ
- ์์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ ํ [Schemas] > [public] > [Tables] ์ฐํด๋ฆญ > [Create] > [Table...]์ ์ ํํฉ๋๋ค.
- ํ ์ด๋ธ ์ด๋ฆ๊ณผ ์ปฌ๋ผ๋ค์ ์ ์ํ ํ Save๋ฅผ ํด๋ฆญํ์ฌ ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค.
โ๏ธ ์ฟผ๋ฆฌ ์คํ
- ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ค๋ฉด, ์์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ๊ณ ์๋จ ๋ฉ๋ด์์ Query Tool ์์ด์ฝ์ ํด๋ฆญํฉ๋๋ค.
- ์ฟผ๋ฆฌ ์ฐฝ์ SQL ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅํ ํ Run(F5) ๋ฒํผ์ ํด๋ฆญํ์ฌ ์คํํฉ๋๋ค.
๐ก ์๋์ฐ ์๋ฒ์์ PostgreSQL ์ธ๋ถ ์ ์ ํ์ฉํ๊ธฐ
โ๏ธ pg_hba.conf ํ์ผ ์ค์
- C:\Program Files\PostgreSQL\14\data\pg_hba.conf ํ์ผ์ ์ฝ๋๋ค. (๋ฉ๋ชจ์ฅ ๋ฑ)
(PostgreSQL์ Host-Based Authentication ์ค์ ํ์ผ) - "IPv4 local connections:" ์น์
์๋์ ๋ค์ ์ค์ ์ถ๊ฐํฉ๋๋ค. (87๋ฒ ๋ผ์ธ)
host all all 0.0.0.0/0 md5
- ์ด ์ค์ ์ ๋ชจ๋ IP ์ฃผ์์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด MD5 ์ธ์ฆ์ ํตํด ์ ๊ทผ์ ํ์ฉํฉ๋๋ค.
โ๏ธ Windows ๋ฐฉํ๋ฒฝ ์ค์
- "Windows Defender ๋ฐฉํ๋ฒฝ"์ ์ด๊ณ (์์๋ฉ๋ด ๊ฒ์), ์ผ์ชฝ ์ฌ์ด๋๋ฐ์์ ๊ณ ๊ธ ์ค์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
- "์ธ๋ฐ์ด๋ ๊ท์น"์ ํด๋ฆญํ๊ณ "์ ๊ท์น"์ ์ ํํฉ๋๋ค.
- ๊ท์น ์ ํ์ "ํฌํธ"๋ก ์ ํํ ํ, TCP ๋ฐ ํฌํธ 5432๋ฅผ ์ ๋ ฅํฉ๋๋ค. (PostgreSQL์ด ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ํฌํธ)
- "์ฐ๊ฒฐ ํ์ฉ"์ ์ ํํ๊ณ , ์ ์ฉํ ๋คํธ์ํฌ๋ฅผ ์ ํํ ๋ค, ๊ท์น ์ด๋ฆ์ ์ ๋ ฅํ๊ณ "๋ง์นจ"์ ํด๋ฆญํฉ๋๋ค.
โ๏ธ ์ค์ ์๋ฃ ํ PostgreSQL ์๋ฒ๋ฅผ ์ฌ์์ํ๊ฑฐ๋ ํด๋น ์๋ฒ๋ฅผ ์ฐํด๋ฆญํ์ฌ Reload Configuration์ ์ ํํฉ๋๋ค.
๐ก ํด๋ผ์ด์ธํธ์์ PostgreSQL ์๋ฒ์ ์ธ๋ถ ์ ์ํ๊ธฐ
- pgAdmin์์ Servers๋ฅผ ์ฐํด๋ฆญํ ํ Register > Server๋ฅผ ์ ํํฉ๋๋ค. Connection ํญ์์ ์ธ๋ถ ์๋ฒ์ IP ์ฃผ์(๋๋ ๋๋ฉ์ธ), ํฌํธ(๊ธฐ๋ณธ 5432), ์ฌ์ฉ์ ์ด๋ฆ, ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๊ณ Save๋ฅผ ํด๋ฆญํ์ฌ ์๋ฒ์ ์ฐ๊ฒฐํฉ๋๋ค. ๋ฑ๋ก๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์ํํ ์ ์์ต๋๋ค.