ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ PostgreSQL๋ก ์์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ: ์ด๋ก ๊ณผ ์ค์ต - PostgreSQL ์ค์น ๋ฐ ํ๊ฒฝ ์ค์
octo54 2025. 3. 7. 10:33๐ PostgreSQL๋ก ์์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ: ์ด๋ก ๊ณผ ์ค์ต
1.2 PostgreSQL ์ค์น ๋ฐ ํ๊ฒฝ ์ค์
PostgreSQL์ ํ์ตํ๊ฑฐ๋ ์ค๋ฌด์์ ํ์ฉํ๋ ค๋ฉด ๋จผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์นํ๊ณ , ๊ธฐ๋ณธ์ ์ธ ํ๊ฒฝ์ ์ค์ ํด์ผ ํฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ PostgreSQL์ Windows, macOS, Linux ํ๊ฒฝ์์ ์ค์นํ๋ ๋ฐฉ๋ฒ๊ณผ Docker ๋ฐ Docker Compose๋ฅผ ํ์ฉํ ์ค์น ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค.
1.2.1 PostgreSQL ์ค์น ๋ฐฉ๋ฒ ๊ฐ์
PostgreSQL์ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ค์นํ ์ ์์ผ๋ฉฐ, ๋ํ์ ์ธ ์ค์น ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โ
์ด์์ฒด์ (OS)๋ณ ํจํค์ง ์ค์น (Windows, macOS, Linux)
โ
์์ค ์ฝ๋ ๋น๋ ์ค์น (๊ณ ๊ธ ์ฌ์ฉ์์ฉ)
โ
Docker ๋ฐ Docker Compose๋ฅผ ์ด์ฉํ ์ค์น (๊ฐ์ฅ ๊ฐํธํ ๋ฐฉ๋ฒ)
์ด์ ๊ฐ๊ฐ์ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1.2.2 Windows ํ๊ฒฝ์์ PostgreSQL ์ค์น
Windows์์๋ ๊ณต์ ์ค์น ํ๋ก๊ทธ๋จ(Installer) ์ ์ด์ฉํ์ฌ PostgreSQL์ ์ฝ๊ฒ ์ค์นํ ์ ์์ต๋๋ค.
๐น Windows ์ค์น ๋จ๊ณ
1๏ธโฃ PostgreSQL ๊ณต์ ๋ค์ด๋ก๋ ํ์ด์ง ์ ์
2๏ธโฃ Windows์ฉ ์ค์น ํ๋ก๊ทธ๋จ(Installer) ๋ค์ด๋ก๋
3๏ธโฃ ์คํ ํ ์ค์น ์ต์
์ ํ (๊ธฐ๋ณธ ๊ตฌ์ฑ ์ ์ง ๊ฐ๋ฅ)
4๏ธโฃ pgAdmin ๋ฐ ๊ธฐ๋ณธ ์๋น์ค ์คํ
5๏ธโฃ ์ค์น ์๋ฃ ํ PostgreSQL์ด ์ ์์ ์ผ๋ก ์คํ๋๋์ง ํ์ธ
๐น Windows์์ PostgreSQL ์คํ ๋ฐ ์ ์
์ค์น ํ psql์ ์ด์ฉํ์ฌ PostgreSQL์ ์ ์ํ ์ ์์ต๋๋ค.
psql -U postgres
- ๊ธฐ๋ณธ์ ์ผ๋ก postgres ์ฌ์ฉ์ ๊ณ์ ์ด ์์ฑ๋ฉ๋๋ค.
- ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ ์ ์์ต๋๋ค.
1.2.3 macOS ํ๊ฒฝ์์ PostgreSQL ์ค์น
macOS์์๋ Homebrew ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ด์ฉํด ์ฝ๊ฒ PostgreSQL์ ์ค์นํ ์ ์์ต๋๋ค.
๐น macOS ์ค์น ๋จ๊ณ
1๏ธโฃ Homebrew๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธ
brew --version
2๏ธโฃ PostgreSQL ์ค์น
brew install postgresql
3๏ธโฃ PostgreSQL ์๋น์ค ์์
brew services start postgresql
4๏ธโฃ PostgreSQL์ด ์ ์์ ์ผ๋ก ์คํ ์ค์ธ์ง ํ์ธ
pg_ctl -D /usr/local/var/postgres status
5๏ธโฃ psql์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ํ ์คํธ
psql -U postgres
1.2.4 Linux ํ๊ฒฝ์์ PostgreSQL ์ค์น
๋ฆฌ๋ ์ค์์๋ ๋ฐฐํฌํ๋ณ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ํ์ฉํด PostgreSQL์ ์ค์นํ ์ ์์ต๋๋ค.
๐น Ubuntu/Debian ๊ณ์ด (APT) ์ค์น ๋ฐฉ๋ฒ
sudo apt update
sudo apt install postgresql postgresql-contrib
- PostgreSQL ์๋น์ค ์์
sudo systemctl start postgresql
sudo systemctl enable postgresql
- PostgreSQL์ด ์ ์ ์คํ ์ค์ธ์ง ํ์ธ
sudo systemctl status postgresql
- ๊ธฐ๋ณธ postgres ๊ณ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์
sudo -u postgres psql
๐น CentOS/RHEL ๊ณ์ด (YUM) ์ค์น ๋ฐฉ๋ฒ
sudo yum install postgresql-server postgresql-contrib
- PostgreSQL ์๋น์ค ์์
sudo systemctl start postgresql
sudo systemctl enable postgresql
- postgres ๊ณ์ ์ผ๋ก ์ ์ ํ psql ์คํ
sudo -u postgres psql
1.2.5 Docker๋ฅผ ํ์ฉํ PostgreSQL ์ค์น
Docker๋ฅผ ์ฌ์ฉํ๋ฉด PostgreSQL์ ๋ณ๋์ ์ค์ ์์ด ์ปจํ ์ด๋ ํ๊ฒฝ์์ ์ฝ๊ฒ ์คํํ ์ ์์ต๋๋ค.
๐น Docker๋ฅผ ์ด์ฉํ PostgreSQL ์คํ
docker run --name postgres-container -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=secret -p 5432:5432 -d postgres
- POSTGRES_USER=admin → ๊ด๋ฆฌ์ ๊ณ์ ์ค์
- POSTGRES_PASSWORD=secret → ๋น๋ฐ๋ฒํธ ์ค์
- -p 5432:5432 → ํธ์คํธ์ ์ปจํ ์ด๋ ๊ฐ ํฌํธ ๋งคํ
๐น ์คํ ์ค์ธ ์ปจํ ์ด๋์ ์ ์
docker exec -it postgres-container psql -U admin
๐ก Docker๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ฆฐ ํ๊ฒฝ์์ PostgreSQL์ ์ฝ๊ฒ ์คํํ ์ ์์ผ๋ฉฐ, ๊ฐ๋ฐ ๋ฐ ํ ์คํธ์ ์ ์ฉํฉ๋๋ค.
1.2.6 Docker Compose๋ฅผ ์ด์ฉํ PostgreSQL ์ค์น
Docker Compose๋ฅผ ์ด์ฉํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ์ปจํ
์ด๋๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ,
PostgreSQL์ ์คํํ ๋ ๋ฐ์ดํฐ ๋ณผ๋ฅจ ์ ์ง ๋ฐ ์ถ๊ฐ ์ค์ ์ด ์ฉ์ดํฉ๋๋ค.
๐น Docker Compose ํ์ผ ์์ฑ
docker-compose.yml ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค.
version: '3.8'
services:
postgres:
image: postgres:latest
container_name: postgres-container
restart: always
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
POSTGRES_DB: mydatabase
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
๐น Docker Compose๋ฅผ ์ด์ฉํ PostgreSQL ์คํ
1๏ธโฃ docker-compose.yml ํ์ผ์ด ์๋ ๋๋ ํฐ๋ฆฌ์์ ๋ค์ ๋ช ๋ น์ด ์คํ
docker-compose up -d
2๏ธโฃ ์คํ๋ ์ปจํ ์ด๋ ํ์ธ
docker ps
3๏ธโฃ PostgreSQL ์ปจํ ์ด๋ ๋ด๋ถ์ ์ ์
docker exec -it postgres-container psql -U admin -d mydatabase
๐ก Docker Compose๋ฅผ ์ฌ์ฉํ๋ฉด PostgreSQL ๋ฐ์ดํฐ๋ฅผ ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋์ด๋ ์ ์งํ ์ ์์ต๋๋ค.
1.2.7 PostgreSQL ์ค์น ํ ๊ธฐ๋ณธ ์ค์
์ค์น ํ ๋ฐ๋์ ํ์ธํด์ผ ํ๋ ๊ธฐ๋ณธ ์ค์ ํ์ผ์ด ์์ต๋๋ค.
๐น ์ฃผ์ ์ค์ ํ์ผ ์์น
- postgresql.conf → PostgreSQL์ ์ฃผ์ ์ค์ (ํฌํธ, ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฑ)
- pg_hba.conf → ํด๋ผ์ด์ธํธ ์ ๊ทผ ์ ์ด
- postgresql.auto.conf → ์๋ ๋ณ๊ฒฝ๋๋ ์ค์ ํ์ผ
๐น ๊ธฐ๋ณธ ์ค์ ํ์ธ ๋ฐฉ๋ฒ
PostgreSQL ์๋น์ค๊ฐ ์คํ ์ค์ด๋ผ๋ฉด, ๋ค์ ๋ช ๋ น์ด๋ก ์ฃผ์ ์ค์ ์ ํ์ธํ ์ ์์ต๋๋ค.
SHOW config_file;
SHOW data_directory;
๐น PostgreSQL ์๋น์ค ํฌํธ ํ์ธ ๋ฐ ๋ณ๊ฒฝ
๊ธฐ๋ณธ์ ์ผ๋ก PostgreSQL์ ํฌํธ 5432๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํฌํธ๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด postgresql.conf์์ ๋ค์ ํญ๋ชฉ์ ์์ ํฉ๋๋ค.
# postgresql.conf ํ์ผ์์ ํฌํธ ๋ณ๊ฒฝ
port = 5433
๋ณ๊ฒฝ ํ PostgreSQL ์๋น์ค๋ฅผ ์ฌ์์ํด์ผ ํฉ๋๋ค.
sudo systemctl restart postgresql
1.2.8 ๊ฒฐ๋ก : PostgreSQL ์ค์น๋ฅผ ๋ง์น๊ณ
โ
PostgreSQL์ Windows, macOS, Linux์์ ์ฝ๊ฒ ์ค์น ๊ฐ๋ฅ
โ
Docker ๋ฐ Docker Compose๋ฅผ ์ด์ฉํ๋ฉด ์์ฝ๊ฒ ํ๊ฒฝ ๊ตฌ์ถ ๊ฐ๋ฅ
โ
์ค์น ํ postgresql.conf์ pg_hba.conf๋ฅผ ๋ฐ๋์ ํ์ธ
โ
ํฌํธ ์ค์ ๋ฐ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ํ์ธ ํ์
์ด์ PostgreSQL์ ์ค์นํ๊ณ ํ๊ฒฝ์ ์ค์ ํ์ผ๋ฏ๋ก,
๋ค์ ๊ธ์์๋ PostgreSQL ๊ธฐ๋ณธ SQL ๋ฌธ๋ฒ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ๋ง์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค! ๐
๐ ๋ค์ ๊ธ ์๊ณ : ๊ธฐ๋ณธ SQL ๋ฌธ๋ฒ๊ณผ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
๐ ๋ค์ ํธ: 2.1 ๊ธฐ๋ณธ SQL ๋ฌธ๋ฒ๊ณผ ํ ์ด๋ธ ์ค๊ณ
์ด์ PostgreSQL ์ค์น์ ๊ธฐ๋ณธ ํ๊ฒฝ ์ค์ ์ ๋ํ ๊ธ์ด ์์ฑ๋์์ต๋๋ค!
๋ค์ ๊ธ์์๋ PostgreSQL์ ํ์ฉํ์ฌ ๊ธฐ๋ณธ SQL ๋ฌธ๋ฒ๊ณผ ํ
์ด๋ธ ์ค๊ณ๋ฅผ ๋ค๋ฃจ๊ฒ ์ต๋๋ค. ๐๐
'study > postgresql' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- Total
- Today
- Yesterday
- fastapi
- AI์ฑ๋ด
- nodejs
- LangChain
- nextJS
- babel
- Next.js
- rag
- ์น๊ฐ๋ฐ
- til
- Project
- ๋ก์ปฌLLM
- Docker
- kotlin
- ๋ฆฌ์กํธ
- llm
- REACT
- ๊ฐ๋ฐ๋ธ๋ก๊ทธ
- Python
- ์ฑ๋ด๊ฐ๋ฐ
- Ktor
- ๋ฐฑ์๋
- PostgreSQL
- ํ์ด์ง
- github
- ๊ด๋ฆฌ์
- Webpack
- ํ๋ก ํธ์๋
- Page
- ๋ฐฑ์๋๊ฐ๋ฐ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |