
- PostgreSQL PostgreSQL은 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템(ORDBMS) 중 하나이다. BSD 허가권으로 배포되며 오픈소스 개발자와 관련 회사가 개발에 참여하고 있다. 데이터베이스 서버로서의 주된 기능은 데이터를 안전하게 저장하고 다른 어플리케이션의 요청에 응답할 때 데이터를 반환하는 것이다. 소규모 단일 머신 애플리케이션부터 수많은 동시접속 사용자가 있는 대형 인터넷 애플리케이션(또는 데이터 웨어하우스용)에 이르기까지 여러 부하를 관리할 수 있으며, macOS 서버의 경우 PostgreSQL은 기본 데이터베이스이다. 마이크로소프트 윈도우, 리눅스(대부분 배포판에서 제공되는)용으로도 이용 가능하다.
- 1) 특징 ① Portable ANSIC으로 개발되었으며 지원하는 플랫폼의 종류로는 Windows, 리눅스, Unix, MacOS 등 다양한 플랫폼을 지원한다.
- ② Reliable 트랜잭션 속성인 ACID에 대한 구현과 MVCC(Multi-Version Concurrency Control, 다중버전 동시성 제어), Low-Level 수준의 록킹(Locking) 등을 구현할 수 있다.
- ③ Scalable 멀티 버전에 대한 사용이 가능하고 대용량 데이터 처리를 위한 테이블 파티셔닝과 테이블 스페이스 기능 구현이 가능하다.
- ④ SecureDB 보안은 데이터 암호화, 접근 제어, 감시로 구성된다. 호스트 기반 액세스 제어, Object-Level 권한, SSL 통신에 의한 클라이언트와 네트워크 구간의 전송 데이터를 암호화하는 기능을 지원한다.
- ⑤ Recovery & Availability Streaming Replication을 기반으로 동기 및 비동기식 Hot Standbt 서버를 구축할 수 있다. 뿐만 아니라 WALLog Archiving 및 핫 Backup을 통한 Pointin Time Recovery 기능 구현도 가능하다.
- 2) 기능 PostgreSQL에서는 추가적으로 다음과 같은 기능을 제공한다. 각 기능에 대한 설명은 다음과 같다.
- (1) Template Database PostgreSQL에서는 “CreateTable” 구문으로 테이블 생성 시 기본적으로 생성된 Template1 Database를 복사하여 생성한다. 즉, Template Database는 표준 시스템 데이터베이스에서 원본 데이터베이스에 해당하는데, 만약 template1에서 프로시저 언어 PL/Perl을 설치할 경우 해당 데이터베이스를 생성할 때 추가적인 작업 없이 사용자 데이터베이스가 자동으로 사용 가능하다.PostgreSQL에는 Template0이라는 2차 표준 시스템 데이터베이스가 있으며, 이 데이터베이스는 Template1의 초기 내용과 동일한 데이터가 포함되어 있다. Template0은 수정하지 않고 원본 그대로 유지하여 무수정 상태의 데이터베이스를 생성할 수 있으며, pg_dump를 복원하는데 유용하게 사용될 수 있다.일반적으로 template1에는 인코딩이나 로케일(locale) 등의 설정을 하고 템플릿을 복사하여 데이터베이스를 생성한다. 따라서 template0을 복사하여 데이터베이스를 생성하려면 아래와 같이 데이터베이스를 생성하면 된다.그 후 SQL 환경에서 다음과 같이 사용해야 한다.(2) 바켐 바켐은 PostgreSQL에만 존재하는 고유 명령어로 오래된 영역을 재사용하거나 정리하는 명령어이다. PostgreSQL에서는 MVCC(Multi-Version Concurrency Control, 다중버전 동시성 제어) 기법을 활용하기 위해 특정 Row를 추가하거나 업데이트할 경우 디스크상의 해당 Row를 물리적으로 업데이트하여 사용하지 않고 새로운 영역을 할당하여 사용한다. 이 경우 업데이트되는 자료의 수만큼 공간이 늘어나게 되며 Update, Delete, Insert가 빈번하게 일어나는 데이터베이스의 경우 물리적인 스토리지가 삭제되지 않고 남게 되므로 주기적으로 삭제해야 한다. 이 경우, Vacuum을 사용하면 어디에서나 참조되지 않고 안전하게 재사용할 수 있는 행을 찾아 FreeSpaceMap이라는 메모리 공간에 그 위치와 크기를 기록한다. Vacuum 명령어에 대한 사용 방법은 다음과 같다.추가적으로 autovacuum도 활용할 수 있는데, PostgreSQL 서버 실행 시 참고할 postgresql.conf 파일 중에 AUTOVACUM 파라미터를 지정하여 활성화할 수 있다. 9.0 이상의 버전부터는 해당 파라미터가 주석 처리(#)되어 있어도 default로 실행되도록 설정되어 있다.
- 2. PostgreSQL을 설치하는 다른 DBMS와 마찬가지로 Postgres도 아래 경로로 설치 파일을 다운로드 받은 후 설치해야 사용이 가능하다. 오픈소스인 만큼 윈도우 이외에 리눅스, Unix, MacOS 등에서도 사용이 가능하며 아래 설명은 윈도우 기준으로 설치 가이드를 작성한 것이다. 최신 버전의 14 버전은 현재 Windows와 MacOS만이 공개되어 있으므로 참고하기 바란다.https://content-www.enterprisedb.com/downloads/postgres-postgresql-downloadsDownload PostgreSQL packages or installers free from EDB.Get PostgreSQL for Windows, Linux and MacOS platforms. Download32-bitor64-bitversions.Downloadopen-sourcePostgreSQLnow.content-www.enterprisedb.com 설치 파일을 실행하면 아래 사진 순으로 설치를 진행하면 된다. 설정 시 고려할 부분은 PostgreSQL 저장 경로, 관리자의 패스워드(관리자 계정은 postgres이다), 실행 포트 등을 설정할 수 있다.








PostgreSQL 설치 방법 설치가 완료되면 추가로 PostGIS 패키지 등을 설치할 수 있는 StackBuilder에 대한 것도 나오는데 필요한 사람에 한해 설치를 진행하면 될 것이다.
3. DBeaver 설치 및 Postgres 연동하는 DBeaver는 MySQL Workbench와 같이 SQL 클라이언트이자 데이터베이스 관리 툴이다. 오픈소스이며 Community Edition을 사용하면 라이선스가 무료이며 자바 개발 툴 중 하나인 이클립스 아이디를 기반으로 만들어진 툴이다. 설치 파일은 다음의 URL에서 다운로드하면 된다. https://dbeaver.io/download/Community Edition 21.2.4 Released on November 1, 2021(Milestones). It is free and open source(license). Also you can get it from the GitHub mirror . Enterprise Edition 21.2 Released on September 6, 2021 EE version web site:dbeaver.com Trial version is available. Windows Windows 64 bit(instal.dbeaver.io설치 방법은 간단한 것에, 이하의 내용에서는 Postgres와 연동하는 방법부터 설명한다. 아래 그림과 같이 DBeaver 왼쪽 상단에 표시되는 “새로운 데이터베이스 연결”을 클릭한다.

위의 버튼을 클릭하면 아래와 같이 접속할 데이터베이스를 설정하는 창이 나온다.

이 중 우리는 Postgre SQL을 사용하기 때문에 가장 먼저 나와 있는 PostgreSQL을 클릭하고 다음 버튼을 클릭한다. 클릭하면 Connection에 필요한 정보를 기입하는 창이 나온다.

상기 내용 중 중요한 것은 PostgreSQL 서버가 동작 중인 서버의 IP 주소를 Host에 기입하고 사용할 데이터베이스 이름, PostgreSQL 서비스가 실행 중인 포트 번호를 기입한다. 기본적으로 PostgreSQL을 설치하면 자동으로 postgres라는 이름의 데이터베이스가 생성되며 포트번호는 432번 포트에서 실행된다. 다음으로 유저명과 패스워드를 기입한다. 현재 생성한 사용자가 없기 때문에 관리자 계정인 postgres에 접속하고 해당 계정의 비밀번호는 먼저 설치할 때 설정한 비밀번호를 입력하면 된다.기입을 완료한 후 왼쪽 하단의 Test Connection을 클릭하여 연결이 정상되었는지 확인한 후 “완료” 버튼을 눌러 DB 연동을 완료하면 된다.