<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Postgresql on Hammer's Blog</title><link>https://lkic1625.github.io/blog/postgresql/</link><description>Recent content in Postgresql on Hammer's Blog</description><generator>Hugo</generator><language>ko-kr</language><copyright>© 조원빈 - All rights reserved</copyright><lastBuildDate>Thu, 05 Nov 2026 15:52:01 +0900</lastBuildDate><atom:link href="https://lkic1625.github.io/blog/postgresql/index.xml" rel="self" type="application/rss+xml"/><item><title>메모리 버퍼풀 사례로 알아보는 데이터베이스 특성(영속성, 원자성 등)</title><link>https://lkic1625.github.io/database-buffer-pools/</link><pubDate>Thu, 05 Nov 2026 15:52:01 +0900</pubDate><guid>https://lkic1625.github.io/database-buffer-pools/</guid><description>&lt;h2 id="개요">개요&lt;/h2>
&lt;p>메모리에 대한 전략을 알아보았고, 실제 사례를 통해 우리가 어떻게 페이지를 교체하는지에 대해서 알아볼 수 있었다. 실제 practical 한 예시를 들기 위해서 현대의 데이터베이스 시스템을 기반으로 이를 정리해보자.&lt;/p>
&lt;h2 id="메모리-계층-개요">메모리 계층 개요&lt;/h2>
&lt;p>그 전에 앞서서, 완벽히 추상화할 수는 없지만 우리는 데이터베이스 시스템에서 쓰이는 메모리 계층을 아래와 같이 분할할 수 있다.&lt;/p>
&lt;ul>
&lt;li>Write Buffer: 쓰기 작업을 일시적으로 보관하거나 데이터 페이지를 수정하는 공간.&lt;/li>
&lt;li>Read Cache: 디스크에서 읽은 데이터를 재사용하기 위한 공간.&lt;/li>
&lt;li>OS Page Cache: 운영체제가 파일 I/O를 위해 관리하는 메모리. &lt;code>write()&lt;/code>가 성공해도 데이터가 여기에만 존재할 수 있음.&lt;/li>
&lt;/ul>
&lt;p>여기서 중요한 것은 이러한 세 개의 계층이 각 구현에 따라 없을 수도 있고, read + write 형식으로 존재할 수도 있다. 이는 각 데이터베이스 시스템이 어떤 것에 “집중”하는 지에 따라 계층 구조가 변경된다.&lt;/p></description></item></channel></rss>