본문 바로가기

PostgreSQL & EPAS

pgday.Seoul 2022 후기

글을 작성하기 전에

해당 포스팅은 개인적으로 참석한 pgday.Seoul 2022 의 후기로 발표 세션들을 들으며 정리한 내용, 개인적으로 생각했던 내용들이 포함되어 있습니다.  http://pgday.postgresql.kr/ 에 발표자료가 상세 세션 정보 및 발표자료들이 공유되어 있습니다. 저는 단순한 참여자로 혹시 Pgday 지침에 어긋나는 내용이 있다면 댓글로 달아주시면 수정 하거나 비공개 처리 하도록하겠습니다.

Pgday란??


세계 여러곳에서 개최되는 PostgreSQL 행사로 PostgreSQL Day에서 따온것으로 추측된다. 우리나라에서는 7년동안 개최되었으며 코로나로 인해 온라인으로 진행하였다가 오프라인으로 진행되었다.  서로 소속된 회사에 관계없이 자유로운 분위기 속에서  PostgreSQL에 이런저런 이야기를 나누는 자리이다.

다른지역의 Pgday에 관해서는 구글링이나 유튜브를 통해 추가적으로 확인 할 수 있으며 추가적인 대표적인 PostgreSQL Conference로는 pgCon이 있다.

 

Pgday.Seoul 2022

선릉역 인근 우아한테크살롱에서 11.12(토)에 진행되었으며 육안으로 약 50명이상의 인원들이 모였다. 준비된 세션은 아래 6개세션이다.

세션 1. PostgreSQL with Google Cloud
세션 2. PostgreSQL 15 New Features
세션 3. 서비스 개편시 PostgreSQL 도입기
세션 4. Postgres에 테스트코드 추가로 기여하는 방법
세션 5. A Cloud Native Database for Disaggregated
세션 6. PostgreSQL의 구조

 

세션 1. PostgreSQL With Google Cloud

GCP에서 제공하는 완전 관리형 데이터베이스 서비스에 대한 세션이였으며, AWS 기준 RDS 포지션의 CloudSQL, Aurora 포지션의 AlloyDB 등에 대한 서비스들에 대한 설명이 진행되었다.

MySQL이 Oracle에 인수되고 나서부터, 아직까지는 크게 문제되지 않지만 라이센스의 문제가 발생할 가능성이 있어 PostgreSQL 엔진기반으로 AlloyDB가 제공된다고 하는 내용을 들었다. 글로벌 CSP에서 제공하는 DB의 내부적인 구조까지는 DB 사용자가 알 수 없는 부분이 아쉬웠는데 AlloyDB도 Aurora처럼 Compute Node와 Storage Node를 분리하므로써 IO성능을 핸들링하고, 구글의 발전된 딥러닝 기술을 활용해 쿼리성능을 향상 시킨다는 점을 확인하였다.

들으면서 성능상의 차이는 있겠지만 AWS에서 제공하는 기능과 거의 동일하게 매칭되는 기능들이 있는 것 같아 사용자가 필요에 맞는 적절한 서비스를 선택하는 것이 중요할 것 같다는 생각이 들었다.

 

세션 2. PostgreSQL 15 New Features

해당 세션은 영어로 진행되어 이해하는데 어려움이 많았지만 15버전의 New Feature에 대한 설명이 진행되었다.

크게 아래 6가지 추가 기능에 대해 설명해주셨으며 질의 응답시간을 통해  PostgreSQL Global Development Group의 창립자로써의 다양한 생각을 들을 수 있는 흥미로운 시간이였다.

 

Merge - Unique index가 없이도 (Insert into on confilct 머지 구문을 사용할 수 있다.
Logical replication -  여러가지 명령어 추가
Compression - LZ compression ( + zstd 알고리즘 새로운 버전에서 추후 적용 검토)
Granular permissions -  특정명령어를 수행할 수 있는 권한을 관리하는 것이 추가
Memory - 여러가지 성능 개선
copy header - copy header match. 

 

세션 3. 서비스 개편시 PostgreSQL 도입기

배달의민족의 서비스인 배민스토어에서 PostgreSQL의 도입검토 배경에 대한 설명이 진행되었다.

객체지향 코드와 관계를 매핑하는데의 어려움, PostgreSQL 에서 사용될 수 있는 다양한 자료형, 개발 시에  자주 활용되는 PostgreSQL의 SQL 구문들에 대한 내용을 들었다. 개발자 입장에서 DB 선택 사항 및 코드 작성의 어려움에 대해서는 많이 겪어보지 못하였는데 이 세션을 통해 아주 조금 알게 되었다. 사실 꼭 PostgreSQL이 아니더라도 제공하는 기능들이 포함되어 있는 것 같긴 했지만, 또래의 개발자분들이 발표를 밝은 분위기 속에 진행하여 기분이 좋아지는 세션이였다.

 

세션 4. Postgres에 테스트코드 추가로 기여하는 방법

가장 쉽게 PostgreSQL에 기여하는 방법에 대해 설명이 진행되었다. 오픈소스에 기여하는 것은 처음에는 매우 막막하지만 테스트코드를 작성함으로써 기여할 수 있고 그 과정에서 해당 소스의 동작방식에 대해 이해할 수 있다고 하셨다.

PostgreSQL의 테스트 코드는 SQL 테스트, Tap 테스트, SPEC 테스트가 있으며 각각은 다음과 같이 분리 되며 실행된다.

 

SQL 테스트 -  일정한 값이 나올 때 -> make chcke를 통해 수행
Tap 테스트 - 결과값이 변경 될 수 있을 때 , 
SPEC  테스트 - 세션변수를 지정할 때


각각의 케이스들을 어떻게 변경하고 테스트할 수 있는지에 대한 방법들을 시연해주셨으며 오픈소스에 기여하는 방법에 대해 알 수 있는 시간이였다. 매번 DB 운영하면서 소스코드를 분석해보자라는 생각만 하고 있었는데, 테스트 코드 기여를 통해 시작할 수 있다는 정보를 알게되어 뜻깊은 시간이 되었다.

 

세션5. A Cloud Native Database for Disaggregated

클라우드 환경에서의 완전관리형 데이터베이스 서비스에 대한 설명이 진행되었다. pgday 외 CSP에서 제공하는 세션을 들으면 약간 영업당하는 느낌이 들었는데 해당 세션에서는 소속회사와 관계없이 현재의 데이터베이스 시장, 클라우드 데이터베이스의 추세에 대해 들을 수 있어 가장 감명깊은 세션이였다. 해당 세션에 대한 발표자료는 공개되어 있지 않다.

PostgreSQL을 기반으로 개발된 Aurora, AlloyDB, Pola DB, Neon DB에 대한 간단한 내용들을 들었으며 내면에 세계 각 지역별 사용되는 클라우드 생태계에 대한 패권(?) 다툼에 대해 흥미롭게 느껴졌다. 

세션6. PostgreSQL의 구조

PostgreSQL의 기본 아키텍처에 대한 설명이 진행되었다.

기본적으로 수행되어야 하는 프로세스에 대한 상세 내용, 파일시스템 레이아웃($PGDATA)에 대한 내용이 주를 이뤘다.

 

행사 기념품

전부 다 수령하지 않았는데, 양말, 보조배터리, usb, 가방, 필통(?) 등 다양한 회사에서 제공한 기념품들을 지급되었다.

USB가 담겨 있던 가방, 보조배터리(받고서 구석 방치해둬 매우 더러움)

마치면서

개인적으로는 2021년 온라인 참여이후 처음으로 참여한 PostgreSQL 국내 행사이고, PostgreSQL 사용자가 자유롭게 참여하여 세션을 진행하고 다양한 질의응답을 하는 시간이 매우 새롭게 느껴졌다. 비영리 목적에 행사로 기존의 행사에 비해 느낀 것이 많았으며 추후에는 발표자로 참여해 기여하고 싶다는 생각이들었다.