ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

๐Ÿ“Œ 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 ๋ฌธ๋ฒ•๊ณผ ํ…Œ์ด๋ธ” ์„ค๊ณ„๋ฅผ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿš€๐Ÿ˜Š

๋ฐ˜์‘ํ˜•
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2025/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ
๋ฐ˜์‘ํ˜•