Skip to main content

Command Palette

Search for a command to run...

PostgreSQL

Updated
•2 min read•View as Markdown
PostgreSQL
H

Front-End Developer at Autolabs Co., Ltd.

macOS 환경에서 PostgreSQL 18을 설치하고, 터미널(CLI) 환경에서 DB에 접근하는 방법, 그리고 프로시저/함수 작성법까지 정리합니다.


1. Homebrew로 PostgreSQL 설치 및 환경 설정

맥 사용자라면 brew가 가장 빠릅니다.

# PostgreSQL 18 버전 설치
brew install postgresql@18

# PATH 등록 (어느 위치에서든 postgres 명령어를 쓰기 위함)
echo 'export PATH="/opt/homebrew/opt/postgresql@18/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

# 서비스 시작 및 버전 확인
brew services start postgresql@18
postgres --version

2. 사용자(User) 및 데이터베이스 생성

먼저 기본 관리자 계정으로 접속하여 우리 프로젝트에서 사용할 전용 환경을 세팅합니다.

-- 관리자 접속
psql postgres

-- 프로젝트 전용 계정 및 DB 생성
CREATE USER test_user WITH PASSWORD 'test123';
CREATE DATABASE test_db WITH ENCODING='utf-8' OWNER test_user;

-- 접속 종료
\q

3. 데이터베이스 접근 방법

가장 기본이 되는 방법으로, 터미널에서 직접 명령어를 입력합니다.

# psql -U [사용자명] -d [DB이름]
psql -U test_user -d test_db
  • 장점 : 별도의 설치가 필요 없고 가볍습니다. 서버 환경(SSH)에서도 동일하게 사용 가능합니다.

  • 단점 : 테이블이 복잡해지면 가독성이 떨어집니다.


4. Stored Procedure & Function 작성 및 호출

실무에서는 쿼리 보안과 성능을 위해 로직을 DB 내부에 저장하는 Stored Function을 자주 사용합니다.

Stored Function(함수) 생성

아래는 관리자 목록을 커서(refcursor) 형태로 변환하는 함수 예시입니다.

CREATE OR REPLACE FUNCTION public.FN_L_ADMIN(out1 refcursor)
RETURNS SETOF refcursor
LANGUAGE plpgsql
AS \(function\)
BEGIN
  OPEN out1 FOR
    SELECT ADMIN_NO, LOGIN_ID, PASSWD, NICK, EMAIL FROM TB_ADMIN;
  RETURN NEXT out1;
END;
\(function\);

결과 확인하기(Transaction)

PostgreSQL에서 커서 데이터를 확인할 때는 반드시 Transaction을 시작해야 커서가 유지됩니다.

BEGIN;
SELECT fn_l_admin('out1'); -- 함수 실행 (커서명 지정)
FETCH ALL FROM out1;       -- 커서에서 데이터 인출
COMMIT;                    -- 트랜잭션 종료

More from this blog

Process Manager 2 - PM2

PM2란 무엇인가? PM2란 Node.js 기반 프론트엔드 서비스를 운영 환경에서 안정적으로 실행하기 위한 프로세스 관리자이다. 프론트엔드 개발을 하다 보면 보통 이런 단계로 배포를 시작한다. npm run build npm run start 혹은 Next.js라면 npx next start 이 방식은 개발 & 테스트 환경에서는 문제없다. 하지만 이 상태로는 운영 서비스라고 부르기 어렵다. 이 글에서는 아래의 내용을 정리한다. 왜 필요한지 프...

Jan 12, 20263 min read76
Process Manager 2 - PM2

Hwiiron Dev

5 posts