온라인 레이싱 게임 비동기 워커 GitOps 배포 노트
레이싱 게임 점수 정산·보상·알림을 처리하는 백엔드 워커의 ArgoCD+Kustomize 배포 관찰 문서
이 프로젝트에서의 PostgreSQL 활용
점수/보상 결과 반영 및 UNIQUE 제약을 통한 중복 지급 방지
프로젝트 5개에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.
관계형 데이터를 안정적으로 저장·조회하는 오픈소스 객체-관계형 데이터베이스
PostgreSQL은 SQL 표준을 폭넓게 지원하는 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)이다. 트랜잭션 무결성과 동시성 제어를 보장하면서도, JSON, 배열, 사용자 정의 타입 등 비정형 데이터까지 다룰 수 있도록 확장성을 갖춘 것이 특징이다. 단순 CRUD 저장소를 넘어 LISTEN/NOTIFY 같은 메시징 기능, materialized view 같은 분석 도구, 제약 조건 기반 정합성 보장까지 하나의 엔진 안에서 제공하려는 목적으로 발전해왔다. 그 결과 트랜잭션 처리, 분석 쿼리, 이벤트 기반 워커의 상태 저장소 등 다양한 용도로 널리 쓰인다.
UNIQUE 제약과 ON CONFLICT 구문을 활용해 동일 이벤트에 대한 중복 처리를 DB 레벨에서 막는 예시이다.
-- 보상 지급 결과를 저장하는 테이블
CREATE TABLE reward_payouts (
id BIGSERIAL PRIMARY KEY,
round_id BIGINT NOT NULL,
user_id BIGINT NOT NULL,
amount NUMERIC NOT NULL,
paid_at TIMESTAMPTZ DEFAULT now(),
UNIQUE (round_id, user_id)
);
-- 동일 라운드에 같은 유저가 두 번 지급되면 에러 발생
INSERT INTO reward_payouts (round_id, user_id, amount)
VALUES (1001, 55, 250)
ON CONFLICT (round_id, user_id) DO NOTHING;위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.
위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.
레이싱 게임 점수 정산·보상·알림을 처리하는 백엔드 워커의 ArgoCD+Kustomize 배포 관찰 문서
이 프로젝트에서의 PostgreSQL 활용
점수/보상 결과 반영 및 UNIQUE 제약을 통한 중복 지급 방지
NFT 프로젝트 백엔드 API를 ArgoCD와 Kustomize로 dev/qa/prod 배포하는 패턴을 정리한 관찰 문서
이 프로젝트에서의 PostgreSQL 활용
분석 데이터 및 holder 정보 캐시
블록체인/webhook 이벤트 리스너 워커를 ArgoCD+Kustomize로 배포할 때의 패턴과 함정을 정리한 기술 문서
이 프로젝트에서의 PostgreSQL 활용
이벤트 처리 offset/cursor 영속 저장소 옵션
PostgreSQL LISTEN/NOTIFY 워커를 ArgoCD+Kustomize+Jenkins로 dev/qa/prod 배포하는 GitOps 파이프라인 노트
이 프로젝트에서의 PostgreSQL 활용
LISTEN/NOTIFY 채널을 통해 워커가 폴링하는 이벤트 소스
materialized view 갱신, wei 단위 거래량 집계, soft hide 등 NFT 마켓 운영 SQL 패턴과 함정을 정리한 문서
이 프로젝트에서의 PostgreSQL 활용
거래 이력, materialized view 등 분석 쿼리의 대상 DB
위 프로젝트들에서 같이 쓰인 다른 기술입니다.