<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Jin's 블로그</title><link>https://jinlog.dev/</link><description>Recent content on Jin's 블로그</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Sun, 27 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jinlog.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>MongoDB 인터널 1: WiredTiger 스토리지 엔진 구조와 캐시</title><link>https://jinlog.dev/posts/mongodb/01-wiredtiger-architecture/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/mongodb/01-wiredtiger-architecture/</guid><description>스토리지 엔진 API, dbPath 파일과 ident, WiredTiger B-tree와 압축, 캐시 크기와 eviction</description></item><item><title>Patroni HA 1: Patroni의 구조와 동작 원리</title><link>https://jinlog.dev/posts/postgresql/patroni-01-architecture/</link><pubDate>Sat, 26 Sep 2026 08:00:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql/patroni-01-architecture/</guid><description>DCS와 leader key, HA loop, failover 판단</description></item><item><title>PostgreSQL 운영 1: 진단 도구상자</title><link>https://jinlog.dev/posts/postgresql-ops/01-diagnostic-toolkit/</link><pubDate>Sat, 26 Sep 2026 08:00:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/01-diagnostic-toolkit/</guid><description>미리 켜 둘 로그 설정, pg_stat_activity와 wait event, pg_stat_statements, pg_stat_io</description></item><item><title>PostgreSQL 인터널 1: 프로세스 구조</title><link>https://jinlog.dev/posts/postgresql/01-process-architecture/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/01-process-architecture/</guid><description>postmaster, backend, 백그라운드 프로세스들의 역할</description></item><item><title>MongoDB 인터널 2: 체크포인트와 저널</title><link>https://jinlog.dev/posts/mongodb/02-checkpoint-and-journal/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/mongodb/02-checkpoint-and-journal/</guid><description>60초 체크포인트, journal의 WiredTiger 로그, j 옵션과 journal flush, kill -9 뒤 복구, PostgreSQL WAL과의 차이</description></item><item><title>PostgreSQL 운영 2: 세션들이 멈춰 있다</title><link>https://jinlog.dev/posts/postgresql-ops/02-blocked-sessions/</link><pubDate>Sat, 26 Sep 2026 18:00:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/02-blocked-sessions/</guid><description>락 대기, DDL이 만드는 락 큐, deadlock, lock_timeout</description></item><item><title>Patroni HA 2: 3노드 클러스터 구성하기</title><link>https://jinlog.dev/posts/postgresql/patroni-02-setup/</link><pubDate>Sat, 26 Sep 2026 08:00:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql/patroni-02-setup/</guid><description>etcd, patroni.yml, HAProxy, switchover와 failover</description></item><item><title>PostgreSQL 인터널 2: 메모리 구조</title><link>https://jinlog.dev/posts/postgresql/02-memory-architecture/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/02-memory-architecture/</guid><description>shared buffers, work_mem, WAL buffers</description></item><item><title>MongoDB 인터널 3: WiredTiger의 MVCC와 스냅샷</title><link>https://jinlog.dev/posts/mongodb/03-mvcc-and-snapshot/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/mongodb/03-mvcc-and-snapshot/</guid><description>update chain, 트랜잭션 스냅샷과 timestamp, WriteConflict, history store, minSnapshotHistoryWindowInSeconds, transactionLifetimeLimitSeconds</description></item><item><title>PostgreSQL 운영 3: 쿼리가 갑자기 느려졌다</title><link>https://jinlog.dev/posts/postgresql-ops/03-sudden-slow-query/</link><pubDate>Sat, 26 Sep 2026 19:00:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/03-sudden-slow-query/</guid><description>plan 변경, 통계, generic plan, auto_explain</description></item><item><title>Patroni HA 3: 운영할 때 주의할 점</title><link>https://jinlog.dev/posts/postgresql/patroni-03-operations/</link><pubDate>Sat, 26 Sep 2026 08:00:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql/patroni-03-operations/</guid><description>설정 변경, DCS 장애, 데이터 유실, split-brain, slot</description></item><item><title>PostgreSQL 인터널 3: 데이터 저장 구조</title><link>https://jinlog.dev/posts/postgresql/03-storage-layout/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/03-storage-layout/</guid><description>페이지 레이아웃, 튜플 구조, TOAST</description></item><item><title>MongoDB 인터널 4: 인덱스 구조와 쿼리 플래너의 계획 선택 방식</title><link>https://jinlog.dev/posts/mongodb/04-index-and-query-planner/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/mongodb/04-index-and-query-planner/</guid><description>KeyString과 RecordId, 후보 계획의 trial 실행과 점수, plan cache의 inactive/active와 replan, ESR, 커버링 쿼리, classic과 SBE</description></item><item><title>PostgreSQL 운영 4: 긴 트랜잭션과 idle in transaction</title><link>https://jinlog.dev/posts/postgresql-ops/04-long-transactions/</link><pubDate>Sat, 26 Sep 2026 19:05:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/04-long-transactions/</guid><description>xmin horizon이 멈추는 원인과 찾는 법</description></item><item><title>PostgreSQL 인터널 4: MVCC</title><link>https://jinlog.dev/posts/postgresql/04-mvcc/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/04-mvcc/</guid><description>xmin/xmax, 스냅샷, 튜플 가시성 판단</description></item><item><title>MongoDB 인터널 5: oplog와 레플리카셋 복제</title><link>https://jinlog.dev/posts/mongodb/05-oplog-and-replication/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/mongodb/05-oplog-and-replication/</guid><description>oplog 엔트리의 구조와 멱등성, OplogFetcher에서 OplogApplier까지의 복제 파이프라인, 복제 지연, oplog 크기와 window</description></item><item><title>PostgreSQL 운영 5: 테이블과 인덱스가 계속 커진다</title><link>https://jinlog.dev/posts/postgresql-ops/05-table-bloat/</link><pubDate>Sat, 26 Sep 2026 19:20:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/05-table-bloat/</guid><description>bloat 측정, autovacuum 튜닝, REINDEX CONCURRENTLY</description></item><item><title>PostgreSQL 인터널 5: VACUUM과 Autovacuum</title><link>https://jinlog.dev/posts/postgresql/05-vacuum/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/05-vacuum/</guid><description>dead tuple, FSM, Visibility Map</description></item><item><title>MongoDB 인터널 6: Primary 선출 과정</title><link>https://jinlog.dev/posts/mongodb/06-election/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/mongodb/06-election/</guid><description>heartbeat와 election timeout, dry run과 term, 투표 규칙, stepDown과 election handoff, priority takeover, 네트워크 분할</description></item><item><title>PostgreSQL 운영 6: 디스크가 찬다</title><link>https://jinlog.dev/posts/postgresql-ops/06-disk-full/</link><pubDate>Sat, 26 Sep 2026 19:24:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/06-disk-full/</guid><description>pg_wal 증가, temp file, 디스크가 가득 찼을 때의 동작</description></item><item><title>PostgreSQL 인터널 6: 트랜잭션 ID wraparound</title><link>https://jinlog.dev/posts/postgresql/06-xid-wraparound/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/06-xid-wraparound/</guid><description>왜 생기고 어떻게 막는가</description></item><item><title>MongoDB 인터널 7: 샤딩 구조</title><link>https://jinlog.dev/posts/mongodb/07-sharding/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/mongodb/07-sharding/</guid><description>mongos와 config server, shard key와 chunk, balancer와 chunk migration, 쿼리 라우팅, shard version과 StaleConfig, orphan과 range deleter</description></item><item><title>PostgreSQL 운영 7: wraparound 경고가 떴다</title><link>https://jinlog.dev/posts/postgresql-ops/07-wraparound-warning/</link><pubDate>Sat, 26 Sep 2026 19:31:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/07-wraparound-warning/</guid><description>경고 단계와 쓰기 거부, 강제 VACUUM 대응</description></item><item><title>PostgreSQL 인터널 7: WAL</title><link>https://jinlog.dev/posts/postgresql/07-wal/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/07-wal/</guid><description>LSN, full page writes, WAL 레코드 구조</description></item><item><title>MongoDB 인터널 8: Read/Write Concern이 실제로 보장하는 것</title><link>https://jinlog.dev/posts/mongodb/08-read-write-concern/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/mongodb/08-read-write-concern/</guid><description>write concern 대기와 majority commit point, 8.0의 기본 write concern, read concern별 읽기 시점, causal consistency, rollback과 rollback 파일</description></item><item><title>PostgreSQL 운영 8: standby가 뒤처진다</title><link>https://jinlog.dev/posts/postgresql-ops/08-standby-lag/</link><pubDate>Sat, 26 Sep 2026 19:35:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/08-standby-lag/</guid><description>write/flush/replay lag, hot standby 충돌</description></item><item><title>PostgreSQL 인터널 8: 체크포인트와 장애 복구 과정</title><link>https://jinlog.dev/posts/postgresql/08-checkpoint-and-recovery/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/08-checkpoint-and-recovery/</guid><description>체크포인트가 하는 일과 장애 후 복구가 진행되는 순서, PITR의 원리</description></item><item><title>PostgreSQL 운영 9: 접속이 안 된다</title><link>https://jinlog.dev/posts/postgresql-ops/09-connection-failures/</link><pubDate>Sat, 26 Sep 2026 19:39:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/09-connection-failures/</guid><description>too many clients, 예약 슬롯, 인증 실패</description></item><item><title>PostgreSQL 인터널 9: 스트리밍 복제와 Replication Slot</title><link>https://jinlog.dev/posts/postgresql/09-streaming-replication/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/09-streaming-replication/</guid><description>walsender와 walreceiver, 동기 복제, hot standby 충돌, replication slot</description></item><item><title>PostgreSQL 운영 10: 주기적으로 I/O가 튄다</title><link>https://jinlog.dev/posts/postgresql-ops/10-checkpoint-io/</link><pubDate>Sat, 26 Sep 2026 19:45:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/10-checkpoint-io/</guid><description>잦은 체크포인트, pg_stat_checkpointer, bgwriter</description></item><item><title>PostgreSQL 인터널 10: 쿼리 처리 과정</title><link>https://jinlog.dev/posts/postgresql/10-query-processing/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/10-query-processing/</guid><description>파서, 분석기, 리라이터, 플래너, 실행기와 통계 정보</description></item><item><title>PostgreSQL 운영 11: 메모리가 모자란다</title><link>https://jinlog.dev/posts/postgresql-ops/11-out-of-memory/</link><pubDate>Sat, 26 Sep 2026 19:53:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/11-out-of-memory/</guid><description>work_mem, OOM으로 backend가 죽을 때의 크래시 재시작</description></item><item><title>PostgreSQL 운영 12: 데이터 손상이 의심된다</title><link>https://jinlog.dev/posts/postgresql-ops/12-data-corruption/</link><pubDate>Sat, 26 Sep 2026 19:56:00 +0900</pubDate><guid>https://jinlog.dev/posts/postgresql-ops/12-data-corruption/</guid><description>checksum 오류, amcheck, 손상 범위 파악</description></item><item><title>PostgreSQL extension은 어떻게 동작하는가</title><link>https://jinlog.dev/posts/postgresql/extension-internals/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/postgresql/extension-internals/</guid><description>공유 라이브러리와 fork 같은 OS 배경지식부터 CREATE EXTENSION, 라이브러리 로드, hook, shared_preload_libraries, 업그레이드까지</description></item><item><title>블로그를 시작합니다</title><link>https://jinlog.dev/posts/hello/</link><pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate><guid>https://jinlog.dev/posts/hello/</guid><description>PostgreSQL 인터널과 MongoDB 인터널, 두 연재를 소개합니다</description></item><item><title>개인정보처리방침</title><link>https://jinlog.dev/privacy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jinlog.dev/privacy/</guid><description>&lt;p&gt;Jin&amp;rsquo;s 블로그(이하 &amp;ldquo;이 블로그&amp;rdquo;, &lt;code&gt;https://jinlog.dev&lt;/code&gt;)는 방문자의 개인정보를 소중히 여기며, 어떤 정보가 어디서 처리되는지 아래와 같이 알려 드립니다.&lt;/p&gt;</description></item><item><title>소개</title><link>https://jinlog.dev/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jinlog.dev/about/</guid><description>&lt;p&gt;PostgreSQL과 MongoDB를 운영하는 DBA입니다.&lt;/p&gt;
&lt;p&gt;이 블로그에서는 데이터베이스가 내부에서 어떻게 동작하는지, 그리고 그 구조가 실제 운영에서 어떤 현상으로 나타나는지를 기록합니다.&lt;/p&gt;</description></item></channel></rss>