검색어를 입력하세요.

PostgreSQL 14

PostgreSQL 논리복제와 FDW로 운영 서버를 두 번 죽여본 개발자의 실시간 데이터 동기화 생존기

현기증 난단 말이에요... 분산 환경에서 살아남기 위한 처절한 기록서론 : 서버가 죽었다, 그것도 두 번이나개발자의 심장을 가장 빠르게 뛰게 하는 것은 무엇일까? 연봉 협상? 코드 리뷰? 갑자기 날아오는 기획 변경? 아니다. 단연코 "서버가 죽었습니다"라는 알림이다. 나는 최근 이 경험을 두 번이나 했다. 그것도 같은 목적을 위해 다른 기술을 사용하다가. PostgreSQL의 논리복제(Logical Replication)로 한 번, FDW(Foreign Data Wrapper)로 또 한 번. 같은 실수를 두 번 하면 그건 실수가 아니라 실력이라던데... 그래, 인정한다. 이건 내 실력이다. 😇🧑‍💻 "어? 서버 왜 이렇게 느려요?"👨‍💻 "잠깐만... 뭐지?"🖥️ Connection refus..

DEVELOPMENT 2026.01.24

PostgreSQL FDW

PostgreSQL 15 · Windows 환경 · FDW 실무 적용 · 이종 DB 연동PostgreSQL의 Foreign Data Wrapper(FDW)는 외부 데이터베이스를 로컬 테이블처럼 사용할 수 있도록 지원하는 기능입니다. 본 글에서는 PostgreSQL 15 Windows 환경을 기준으로 Postgres 간 연동부터 Oracle, MySQL, SQL Server 등 이종 데이터베이스를 실제 운영 환경에서 연결하고 활용하는 방법을 정리합니다.FDW 개요 및 Oracle DB Link와의 차이Foreign Data Wrapper(FDW)는 PostgreSQL에서 외부 데이터 소스를 외부 테이블(Foreign Table) 형태로 정의하여 SELECT, INSERT, UPDATE, DELETE를 수행..

DEVELOPMENT 2026.01.18

PostgreSQL과 Python의 만남, PL/Python 활용부터 pg_cron 스케줄링까지

단순한 SMTP 전송을 넘어, 데이터 분석부터 오라클 DB Job 대체까지이전 포스팅(https://odinbox.co.kr/562)에서 우리는 PostgreSQL에서 Python을 연동하여 SMTP 메일을 발송하는 방법을 다루었습니다. 하지만 이것은 PL/Python이 가진 잠재력의 극히 일부에 불과합니다.많은 분이 "Python으로 만든 함수의 결과값을 SQL 쿼리 내에서 바로 사용할 수 있는가?", "외부 API와 통신하여 데이터를 가져와 DB에 넣을 수 있는가?", 그리고 "오라클의 DB Job처럼 스케줄링이 가능한가?"에 대해 궁금합니다.이번 글에서는 PostgreSQL의 확장 기능인 PL/Python을 활용하여 Python의 방대한 라이브러리 생태계를 DB 내부로 가져오는 방법과, pg_cro..

DEVELOPMENT 2026.01.11

PostgreSQL 파이썬 연동방법

들어가며 : SQL의 한계를 넘어서PostgreSQL은 강력한 관계형 데이터베이스이지만 순수 SQL만으로는 복잡한 비즈니스 로직이나 문자열 처리를 구현하는 데 한계가 있습니다. 이때 사용할 수 있는 가장 강력한 도구가 바로 PL/Python입니다. 이는 데이터베이스 내부에서 파이썬 언어를 사용하여 함수나 프로시저를 작성할 수 있게 해주는 절차적 언어 핸들러입니다. 본 글에서는 윈도우 운영체제에서 PL/Python을 사용하기 위한 설치 방법과 환경 설정 그리고 실무에서 활용 가능한 예제 코드를 상세하게 정리해 드립니다.윈도우 환경 설치 및 설정 방법윈도우에서 PostgreSQL과 파이썬을 연동할 때 가장 주의해야 할 점은 버전 호환성입니다. 리눅스 패키지 관리자와 달리 윈도우 인스톨러는 특정 파이썬 버전에..

DEVELOPMENT 2025.12.10

Oracle & PostgreSQL, SMTP 관련 가이드

Oracle vs PostgreSQL 가이드시스템 운영 환경에서 데이터베이스가 직접 이메일을 발송해야 하는 요구사항은 꾸준히 존재합니다. 배치 작업 결과의 즉각적인 보고나 치명적인 데이터 오류 발생 시 관리자 알림을 위해, WAS(Web Application Server)를 거치지 않고 DB 레벨에서 SMTP 프로토콜을 직접 제어하는 것이 효율적일 때가 많습니다. 본 문서에서는 엔터프라이즈의 표준인 Oracle의 UTL_SMTP 방식과 오픈소스의 강자 PostgreSQL의 PL/Python 구현 방식을 비교 분석하고, 실무 적용 시 반드시 마주하게 되는 보안 설정 및 오류 해결 방법까지 상세히 기술합니다.1. Oracle : UTL_SMTP 패키지 활용 및 ACL 보안Technical ContextOra..

IT 2025.12.06

SQL 재귀 쿼리 완전 정리

SQL · 계층형 데이터SQL 재귀 쿼리 완전 정리PostgreSQL · Oracle · MySQL 8.0 기준으로 재귀 CTE와 CONNECT BY를 조직도 예제로 설명하며 무한 재귀 원인과 방지 전략, 경로·깊이·상하위 탐색 패턴을 자세히 정리합니다. 목차재귀 쿼리재귀 쿼리가 필요한 이유재귀 CTE 동작 모델무한 재귀 원인과 방지예제 스키마와 데이터PostgreSQL 작성법Oracle 작성법MySQL 8.0 작성법실전 패턴 모음마무리참조 문서재귀 쿼리재귀 쿼리는 자기 자신을 참조하여 계층 구조를 단계적으로 확장하는 질의 방식입니다. 반복적인 자기 조인을 줄이고, 깊이가 달라져도 동일 패턴으로 전체 트리를 탐색합니다. 표준 SQL에서는 WITH RECURSIVE CTE 형태로 제공되며, Oracle은..

DEVELOPMENT 2025.10.25

PostgreSQL, 논리복제 실무 가이드

FEMS 사례를 바탕으로 개념을 충분히 풀어 설명하고, 옵션의 의미와 설정 방법, 재동기화, 트리거, 모니터링, Tailscale 네트워크 구성까지 단계별로 정리합니다.빠른 이동개념과 원리구성 절차재동기화모니터링체크리스트1. 개념 심화와 동작 원리1) 비유로 이해합니다논리 복제는 신문 구독과 비슷합니다. 신문사가 오늘자 기사 목록을 만들어 두고, 구독자에게 순서대로 배달합니다. 구독자가 부재중이어도 배달부는 어디까지 전달했는지 기록합니다. PostgreSQL에서는 이 기록이 복제 슬롯입니다.2) 내부 동작을 단계로 설명합니다게시자는 커밋 시 변경을 WAL에 기록합니다.논리 디코더가 WAL을 테이블/컬럼/값 이벤트로 변환합니다.복제 슬롯이 읽은 위치를 저장해 재시작 시 이어갑니다.구독자 워커가 이벤트를 수..

DEVELOPMENT 2025.10.18

오라클 DBLINK 사용방법

DBLINK의 개념과 필요성 이해하기오라클 DBLINK에 대해서 알아봅시다!실무에서 단일 오라클 데이터베이스만 사용하는 경우보다 여러 종류의 DBMS(ORACLE, MYSQL, POSTGRESQL 등)을 함께 사용하는 경우가 많습니다. 예를 들어, 현재 시스템에서 타 시스템과 연계하여 자료를 보여주어야 하는 경우가 흔히 많이 있습니다. 이때 DBLINK(Database Link)기능과 게이트웨이(Database Gateway, ODBC 연동)을 활용하면 서로 다른 DB간에도 데이터를 연계할 수 있습니다.이번에는 오라클 DBLINK 개념과 설정 방법을 설명한 후 연결하는 방법등을 알아보려고 합니다.목차DBLINKDBLINK란?오라클 DB에서 원격 DB(SQL 실행대상)에 접근할 수 있게 해주는 객체입니다...

DEVELOPMENT 2025.08.23

Oracle vs PostgreSQL, STRING_AGG(LISTAGG) 가이드

Oracle과 PostgreSQL에서 문자열 집계를 손쉽게 처리하는 STRING_AGG(LISTAGG) 함수의 개념과 활용법STRING_AGG(LISTAGG) 이 글 하나면 끝!SQL을 쓰다 보면 여러 행의 값을 한 줄로 모아야 할 때가 많습니다. 예를 들어, 한 부서의 직원 이름을 콤마로 연결하거나, 여러 제품 코드를 한 칸에 모아 보여주고 싶을 때가 그렇습니다. 이럴 때 유용한 함수가 Oracle의 LISTAGG와 PostgreSQL의 STRING_AGG입니다. 두 함수 모두 여러 행의 문자열을 하나로 합쳐주는 집계 함수로, 보고서 작성이나 데이터 요약에 자주 활용됩니다.목차SQL - STRING_AGG소개STRING_AGG는 여러 행의 문자열 값을 하나의 문자열로 결합해 주는 집계 함수로, Orac..

DEVELOPMENT 2025.07.27

PostgreSQL, 자세히 알아보기

PostgreSQL 도입을 위한 기술적 기준과 실무 적용 사례 총정리PostgreSQL에 대해서 자세히 알아봅시다. 개발을 하다보면 꼭 마주하게 되는 기술이 있는데 그것이 바로 데이터베이스(DB)입니다, 그리고 그중에서도 많이 듣게 되는 이름 중 하나가 이번에 소개하는 PostgreSQL입니다. 오픈소스임에도 불구하고 상용 데이터베이스와 비교해도 뒤쳐지지 않는 성능과 기능을 가지고 있습니다. PostgreSQL에 대해서 자세히 알아보시죠! 목차PostgreSQL소개PostgreSQL은 1986년 미국 UC버클리에서 시작된 POSTGRES 프로젝트를 기반으로 만들어진 오픈소스 데이터베이스이며, 1996년부터 현재의 이름으로 불리기 시작했고 지금은 전세계적으로 널리 사용되는 대표적인 관계형 데이터베이스이며 ..

DEVELOPMENT 2025.04.11