ServBay에서 PostgreSQL 데이터베이스 설정 변경하기
ServBay는 macOS 개발자를 위한 강력한 로컬 웹 개발 환경을 제공하며, PostgreSQL 데이터베이스를 내장하고 있습니다. 이 문서에서는 ServBay에서 PostgreSQL 설정을 변경하는 방법을 UI(그래픽 환경)와 임시로만 권장되는 수동 파일 편집 방식으로 상세히 안내합니다.
설치된 PostgreSQL 버전에 따라 주요 설정 파일의 경로는 보통 /Applications/ServBay/etc/postgresql/<version>
에 있습니다. 예를 들어, PostgreSQL 16의 설정 파일 경로는 /Applications/ServBay/etc/postgresql/16
입니다.
중요 안내
ServBay는 대부분의 설정을 그래픽 사용자 인터페이스(UI)로 관리하며, 해당 설정에 맞는 파일을 자동으로 생성합니다. 설정은 반드시 ServBay UI를 통해 변경할 것을 강력히 권장합니다. 구성 파일을 직접 수동으로 수정할 경우, ServBay가 차후 설정 변경 혹은 업데이트 시 해당 변경 내용이 덮어쓰일 수 있습니다. 수동 편집은 임시 테스트나 고급 사용자가 내부 구조를 완전히 이해했을 때만 권장되며, 장기 또는 운영 환경에는 적합하지 않습니다.
ServBay UI를 통한 설정 변경 (권장)
ServBay는 직관적인 그래픽 관리 화면을 제공하므로 PostgreSQL 설정을 가장 빠르고 쉽게 수정할 수 있습니다. UI를 통해 변경한 설정은 일반적으로 바로 적용되며(별도의 안내가 없으면) 수동으로 서비스를 재시작할 필요가 없습니다.
설정 방법
- ServBay 앱을 실행합니다.
- 왼쪽 내비게이션에서 **
데이터베이스
**를 선택합니다. - 데이터베이스 목록에서 **
PostgreSQL
**을 찾은 후, 설정하고자 하는 버전을 선택합니다. - PostgreSQL 설정 화면에서 해당 버전에 대한 정보와 구성 옵션을 확인할 수 있습니다.
주요 설정 항목
UI 화면에서 ServBay가 지정한 기본 PostgreSQL 사용자명과 비밀번호(보통 이 화면에 표시됨)를 확인할 수 있습니다. 주요 일반 설정 항목은 다음과 같습니다:
- 리스닝 주소(
listen_addresses
): PostgreSQL이 네트워크의 어떤 인터페이스에서 접속을 허용할지 제어합니다. 기본값은*
로, 모든 네트워크 인터페이스를 의미합니다. - 포트(
port
): 해당 PostgreSQL 서비스가 청취하는 포트 번호입니다. 표준 포트는5432
입니다(참고: MySQL/MariaDB의 3306과 다릅니다). - 최대 접속 수(
max_connections
): 동시에 데이터베이스에 접속 가능한 클라이언트의 최대 수를 지정합니다. - 작업 메모리(
work_mem
): 각 쿼리 프로세스가 정렬 작업이나 해시 연산에 사용할 수 있는 메모리 용량을 설정합니다.
또한 Additional Parameters
영역에서 ServBay UI에서 직접 제공하지 않는 기타 postgresql.conf
파라미터를 추가로 지정하거나 변경할 수 있습니다. 한 줄에 한 개씩, 파라미터 = 값
형식으로 입력하세요.
설정 적용
설정을 변경한 후, 화면 하단의 저장
버튼을 클릭하여 수정 내용을 저장하십시오. ServBay가 자동으로 변경사항을 적용하며, 대부분의 설정은 실시간으로 반영됩니다. 드물게 서비스 재시작이 필요한 경우, ServBay에서 별도로 안내합니다.
수동 구성 파일 편집을 통한 변경 (장기 적용에는 비권장)
앞서 언급했듯이, 기본적으로 수동 파일 편집으로 설정을 변경하는 것은 권장하지 않습니다. ServBay UI를 통한 설정 값이 수동 변경 내용을 덮어쓸 수 있기 때문입니다. 그러나 파일의 경로나 형식을 이해하는 것은 PostgreSQL 내부 구조 파악에 도움이 될 수 있습니다.
WARNING
수동 파일 편집은 오직 임시 테스트나 고급 트러블슈팅에만 활용하세요. ServBay는 반드시 UI를 통한 설정 변경만을 공식적으로 권장합니다. 수동으로 변경한 파일 경로나 내용이 ServBay의 내부 관리 구조에 의해 언제든 초기화될 수 있습니다.
설정 파일 위치
ServBay에서 PostgreSQL의 주요 설정 파일은 postgresql.conf
와 pg_hba.conf
입니다. 이 파일들은 PostgreSQL 버전에 따라 위치가 달라질 수 있는데, 대체로 다음과 같습니다:
postgresql.conf
:/Applications/ServBay/etc/postgresql/<version>/postgresql.conf
pg_hba.conf
:/Applications/ServBay/etc/postgresql/<version>/pg_hba.conf
참고로, 기존 문서에 언급된 /db/postgresql/16/pg_hba.conf
경로는 ServBay의 내부 처리 방식이거나 구버전에서 사용되던 경로일 수 있지만, 최신 ServBay UI에서는 /Applications/ServBay/etc
하위의 파일을 우선적으로 관리합니다. 실제 서비스에 적용된 경로를 확인하는 것이 중요하며, UI와 일관성을 위해 /Applications/ServBay/etc/postgresql/<version>
이 가장 신뢰할 수 있습니다.
대표적인 설정 항목 예시
아래는 postgresql.conf
와 pg_hba.conf
에 자주 등장하는 설정 항목과 예시입니다. 파일을 수정할 때는 텍스트 에디터(VS Code, Sublime Text, Nano 등)로 관리자 권한을 갖고 열어야 합니다.
postgresql.conf
postgresql.conf
는 PostgreSQL 서버의 전반적인 동작을 제어하는 메인 설정 파일입니다.
yaml
# 리스닝 주소: 서버가 어떤 네트워크 인터페이스를 모니터링할지. '*'는 모든 인터페이스 허용.
listen_addresses = '*'
# 포트 번호: 서버가 네트워크 연결을 청취할 포트. PostgreSQL의 기본 포트는 5432.
port = 5432
# 최대 접속 수: DB에 동시에 연결 가능한 최대 클라이언트 수.
max_connections = 100
# 공유 버퍼 크기: PostgreSQL이 DB 데이터를 캐시에 저장하는 메모리 크기.
shared_buffers = 128MB
# 로그 디렉토리: 로그 파일이 저장될 경로 지정.
log_directory = 'log'
# 로그 파일명 형식: 로그 파일의 네이밍 폼 지정.
log_filename = 'postgresql-%Y-%m-%d.log'
# 슬로우 쿼리 로그 활성화: 지정한 시간(ms)보다 오래 걸린 쿼리를 기록.
# 양의 정수로 설정(예: 2000은 2초 초과 쿼리 기록).
# -1로 두면 슬로우 쿼리 로그 비활성화.
log_min_duration_statement = 2000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
pg_hba.conf
pg_hba.conf
(Host-Based Authentication)는 클라이언트 접속 방식과 인증 정책을 제어하는 파일입니다.
sql
# TYPE DATABASE USER ADDRESS METHOD
# 유닉스 도메인 소켓을 통한 로컬 접속 허용, trust(암호 없이 허용) 방식
# "local"은 오직 Unix 도메인 소켓 연결에만 해당
local all all trust
# 모든 IPv4 주소에서 TCP/IP 원격 접속 허용, md5(암호 인증) 방식
# IPv4 local connections:
host all all 0.0.0.0/0 md5
# 특정 IPv4 대역(예: 192.168.1.0/24 서브넷)에서 TCP/IP 원격 접속 허용, md5 방식
# IPv4 local connections from a specific subnet:
# host all all 192.168.1.0/24 md5
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
pg_hba.conf
를 수정할 때는 (TYPE, DATABASE, USER, ADDRESS, METHOD) 각각의 의미를 정확히 이해해야 하며, 잘못 설정할 경우 데이터베이스 연결 불가 혹은 보안 취약점이 발생할 수 있습니다.
수동 설정 변경 사항 적용
설정을 파일에서 직접 변경한 경우, PostgreSQL 서비스를 재시작해야 변경 내용이 적용됩니다.
ServBay 관리 화면을 통한 재시작
- ServBay 앱을 실행합니다.
- 왼쪽 내비게이션에서 **
데이터베이스
**를 선택합니다. - **
PostgreSQL
**을 찾아 원하는 버전을 선택합니다. - 해당 화면 또는 ServBay 메인 화면의 “소프트웨어 패키지”/“서비스” 목록에서 관련 PostgreSQL 서비스를 찾아
재시작
버튼을 클릭하세요.
servbayctl
CLI 명령어로 재시작
ServBay CLI 도구인 servbayctl
을 사용하면 PostgreSQL 등 서비스를 손쉽게 재시작할 수 있습니다.
bash
servbayctl restart postgresql <version>
1
여기서 <version>
은 실제 사용 중인 PostgreSQL 버전(예: 16
)으로 대체해야 합니다.
요약
ServBay는 PostgreSQL 설정을 쉽고 안정적으로 바꿀 수 있는 UI 인터페이스를 제공하며, 이는 수동 파일 편집에 비해 덮어쓰기 등 위험을 방지할 수 있어 최선의 방법입니다. UI 화면에서 리스닝 주소, 포트, 접속 수 등 주요 항목을 직관적으로 수정할 수 있으며, 기본 데이터베이스 계정 정보도 확인 가능합니다. 임시 디버깅 등 수동 편집이 필요한 경우, 주요 설정 파일(postgresql.conf
, pg_hba.conf
)은 /Applications/ServBay/etc/postgresql/<version>
경로에 위치합니다. 어떤 방법을 이용하든 설정 변경 후에는 PostgreSQL 서비스를 재시작해야 하며, 이는 ServBay UI 혹은 servbayctl
명령어로 수행할 수 있습니다.
이러한 설정 방식과 각 항목의 의미를 숙지하면, 개발 환경에서 ServBay 내 PostgreSQL 데이터베이스를 보다 효율적으로 관리할 수 있습니다.