Ubuntu 26.04에 PostgreSQL 설치

발행: (2026년 5월 14일 AM 06:43 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

개요

PostgreSQL은 확장성, 표준 준수, JSON 및 배열과 같은 고급 데이터 타입 지원으로 유명한 강력한 오픈소스 관계형 데이터베이스입니다. 이 가이드는 공식 PostgreSQL Global Development Group(PGDG) APT 저장소에서 PostgreSQL을 설치하고, 설치를 보안 설정한 뒤, 전용 사용자를 가진 데이터베이스를 생성하는 과정을 안내합니다.

PGDG APT 저장소 추가

  1. APT 패키지 인덱스 업데이트

    sudo apt update
  2. PostgreSQL 공통 패키지 설치

    sudo apt install postgresql-common -y
  3. 저장소 설정 스크립트 실행

    sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
  4. PostgreSQL 설치

    sudo apt install postgresql -y
  5. 설치된 버전 확인

    psql --version

서비스 활성화 및 관리

# 부팅 시 PostgreSQL 자동 시작 및 지금 바로 시작
sudo systemctl enable postgresql
sudo systemctl start postgresql

# 서비스 상태 확인
sudo systemctl status postgresql

# 필요에 따라 중지하거나 재시작
sudo systemctl stop postgresql
sudo systemctl restart postgresql

설치 보안 강화

postgres 슈퍼유저 비밀번호 설정

sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'your_strong_password';
\q

애플리케이션 사용자 생성

CREATE USER example_admin WITH PASSWORD 'secure_password';

인증 설정 (pg_hba.conf)

파일을 편집합니다(PostgreSQL 버전에 따라 경로가 다를 수 있음):

sudo nano /etc/postgresql/18/main/pg_hba.conf

로컬 연결에 대한 인증 방식을 peer에서 scram-sha-256으로 변경합니다:

local   all             postgres                                scram-sha-256
local   all             all                                     scram-sha-256

변경 사항을 적용하려면 PostgreSQL을 재시작합니다:

sudo systemctl restart postgresql

애플리케이션 사용자가 소유한 데이터베이스 생성

sudo -u postgres psql
CREATE DATABASE example_store OWNER example_admin;
GRANT ALL PRIVILEGES ON DATABASE example_store TO example_admin;
\q

접근 확인 및 샘플 테이블 생성

psql -U example_admin -d example_store -h localhost
CREATE TABLE products (
    product_id SERIAL PRIMARY KEY,
    product_name VARCHAR(100) NOT NULL,
    category VARCHAR(100),
    price NUMERIC(10, 2)
);

INSERT INTO products (product_name, category, price) VALUES
    ('Widget A', 'Hardware', 9.99),
    ('Widget B', 'Software', 29.99),
    ('Widget C', 'Services', 49.99);

SELECT * FROM products;
\q

쿼리 결과에 삽입된 세 행이 표시되어야 하며, 이는 데이터베이스, 사용자 및 테이블이 정상적으로 동작함을 확인하는 것입니다.

다음 단계

  • Django나 Rails와 같은 웹 프레임워크에서 데이터베이스 계층으로 PostgreSQL 사용
  • 고가용성을 위한 스트리밍 복제 설정
  • pg_dump와 cron 작업을 이용한 백업 자동화

추가 팁과 보다 상세한 가이드는 Vultr Docs의 원본 글을 참고하세요.

0 조회
Back to Blog

관련 글

더 보기 »

클릭 (2016)

Article Click 2016https://clickclickclick.click/ Discussion Hacker News threadhttps://news.ycombinator.com/item?id=48187054 – 194 points, 41 comments...