{"product_id":"140397","title":"막힘없이 PostgreSQL","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jYGWl4ZRXeGDDT8mhJFh2Z7UqBqJv.png?v=1765079635\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\u003ccenter\u003e\n\u003cdiv style=\"width:95%\"\u003e\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003e막힘없이 PostgreSQL\u003c\/div\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/141892324\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003eDescription\u003c\/div\u003e\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\u003cdiv\u003e \u003ch5\u003e\u003cb\u003e책소개\u003c\/b\u003e\u003c\/h5\u003e \u003c\/div\u003e \u003cdiv\u003e \u003cdiv\u003e \u003cdiv\u003e  PostgreSQL 초·중급 독자를 대상으로 성능 관리를 위해 반드시 알아야 할 핵심 주제들로 구성되어 있다.\u003cbr\u003e아키텍처, 트랜잭션, MVCC, Vacuum, 락(Lock), SQL 실행 계획 등 PostgreSQL의 핵심 기능을 심도 있게 다루었다.\u003cbr\u003e단순히 이론만 서술하는 것을 넘어, 다양한 테스트와 검증을 통해 내부 작동 원리를 명확히 이해할 수 있도록 집필하였다.\u003cbr\u003e이러한 구성 덕분에 막힘없이 PostgreSQL에 도전할 수 있기를 기대하며 책 제목을 “막힘없이 PostgreSQL”로 정하게 되었다.\u003cbr\u003e특히 기술적으로 어렵다고 생각되는 내용을 독자들이 쉽게 이해할 수 있도록 다양한 그림과 시각 자료를 활용하였으며, 원리를 직접 체험해 볼 수 있도록 실습 예제와 스크립트도 함께 제공하였다.\u003cbr\u003e참고로 모든 테스트는 PostgreSQL 14 버전 이상에서 수행할 수 있도록 구성했다.\u003cbr\u003e \u003c\/div\u003e \u003c\/div\u003e \u003c\/div\u003e \u003cbr\u003e\u003cdiv\u003e \u003ch5\u003e\u003cb\u003e목차\u003c\/b\u003e\u003c\/h5\u003e \u003c\/div\u003e \u003cdiv\u003e \u003cdiv\u003e  \u003cb\u003eCHAPTER 01 PostgreSQL 아키텍처\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e1.\u003cbr\u003e주요 프로세스 \u003cbr\u003e 1.1 Postmaster 프로세스 \u003cbr\u003e 1.2 Backend 프로세스 \u003cbr\u003e 1.3 Background 프로세스 \u003cbr\u003e\u003cbr\u003e2.\u003cbr\u003e메모리 \u003cbr\u003e 2.1 공유 메모리(Shared Memory) \u003cbr\u003e 2.2 로컬 메모리(Local Memory) \u003cbr\u003e\u003cbr\u003e3.\u003cbr\u003ePostgreSQL 구조 \u003cbr\u003e 3.1 논리 구조(Logical Structure) \u003cbr\u003e 3.2 물리 구조(Physical Structure) \u003cbr\u003e\u003cbr\u003e4.\u003cbr\u003eShared Buffer\u003cbr\u003e 4.1 Shared Buffer 구성 요소 \u003cbr\u003e 4.2 Shared Buffer에서 데이터 읽기 \u003cbr\u003e 4.3 Clock Sweep \u003cbr\u003e 4.4 PostgreSQL IO 전략 \u003cbr\u003e\u003cbr\u003e5. WAL(Write-Ahead Log) \u003cbr\u003e 5.1 WAL 세그먼트 파일 \u003cbr\u003e 5.2 체크포인트(Checkpoint) \u003cbr\u003e 5.3 WAL 세그먼트 파일관리 \u003cbr\u003e 5.4 WAL 레코드 기록하기 \u003cbr\u003e 5.5 WAL 파일을 이용한 데이터 복구 \u003cbr\u003e\u003cbr\u003e\u003cb\u003eCHAPTER 02 트랜잭션과 MVCC\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e1.\u003cbr\u003e트랜잭션 격리 수준(Transaction Isolation Level)\u003cbr\u003e 1.1 PostgreSQL에서의 격리 수준 \u003cbr\u003e\u003cbr\u003e2.\u003cbr\u003e데이터 저장 구조\u003cbr\u003e 2.1 페이지 구조 \u003cbr\u003e 2.2 Transaction ID \u003cbr\u003e 2.3 튜플 구조 \u003cbr\u003e 2.4 튜플 버전 \u003cbr\u003e 2.5 인덱스와 튜플 \u003cbr\u003e\u003cbr\u003e3.\u003cbr\u003e스냅샷(Snapshot)\u003cbr\u003e 3.1 스냅샷이란? \u003cbr\u003e 3.2 스냅샷과 튜플 가시성 \u003cbr\u003e 3.3 스냅샷과 데이터베이스 Horizon \u003cbr\u003e 3.4 Exporting Snapshot \u003cbr\u003e 3.5 Snapshot too old \u003cbr\u003e\u003cbr\u003e4.\u003cbr\u003e단일 페이지 정리와 HOT 업데이트\u003cbr\u003e 4.1 Fillfactor \u003cbr\u003e 4.2 단일 페이지 정리(Single Page Cleanup) \u003cbr\u003e 4.3 HOT(Heap Only Tuple) Update \u003cbr\u003e\u003cbr\u003e5. MVCC(Multi Version Concurrency Control)\u003cbr\u003e 5.1 MVCC란? \u003cbr\u003e 5.2 XID 순환 구조와 Frozen XID \u003cbr\u003e 5.3 Age \u003cbr\u003e\u003cbr\u003e6.\u003cbr\u003eVacuum and Autovacuum\u003cbr\u003e 6.1 Vacuum \u003cbr\u003e 6.2 Autovacuum \u003cbr\u003e\u003cbr\u003e\u003cb\u003eCHAPTER 03 락(LOCK)\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e1.\u003cbr\u003e객체 레벨 락(Object Level Lock)\u003cbr\u003e 1.1 객체 타입 \u003cbr\u003e 1.2 객체 락 모드 \u003cbr\u003e\u003cbr\u003e2.\u003cbr\u003e행 레벨 락(Row Level Lock)\u003cbr\u003e 2.1 행 레벨 락 모드 \u003cbr\u003e 2.2 다중 트랜잭션(Multitransactions) \u003cbr\u003e 2.3 튜플 락 대기 \u003cbr\u003e 2.4 Dead Lock \u003cbr\u003e\u003cbr\u003e3.\u003cbr\u003e메모리 레벨 락(Memory Level Lock)\u003cbr\u003e 3.1 Light-Weight Lock(LWLocks) \u003cbr\u003e 3.2 Spinlocks \u003cbr\u003e 3.3 Buffer Pin Lock \u003cbr\u003e 3.4 WAL Buffer Lock \u003cbr\u003e 3.5 메모리 락 모니터링 \u003cbr\u003e\u003cbr\u003e\u003cb\u003eCHAPTER 04 SQL Execution\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e1.\u003cbr\u003eCost Based Optimizer\u003cbr\u003e 1.1 CBO Cost \u003cbr\u003e\u003cbr\u003e2.\u003cbr\u003ePostgreSQL 통계정보 \u003cbr\u003e 2.1 수동 통계정보 수집 \u003cbr\u003e 2.2 통계정보 관리 \u003cbr\u003e\u003cbr\u003e3.\u003cbr\u003e실행 계획 \u003cbr\u003e 3.1 실행계획 추출 방법 \u003cbr\u003e 3.2 실행계획 분석 \u003cbr\u003e\u003cbr\u003e4. SQL처리 과정 \u003cbr\u003e 4.1 SQL 처리 프로세스 \u003cbr\u003e 4.2 Prepare Statement \u003cbr\u003e\u003cbr\u003e5.\u003cbr\u003e스캔 방법(Scan Method) \u003cbr\u003e 5.1 Sequential Scan \u003cbr\u003e 5.2 Index Scan \u003cbr\u003e 5.3 Bitmap Index Scan \u003cbr\u003e 5.4 Index Only Scan \u003cbr\u003e 5.5 Covering Index \u003cbr\u003e\u003cbr\u003e6.\u003cbr\u003e조인 방법(Join Method) \u003cbr\u003e 6.1 Nested Loop Join \u003cbr\u003e 6.2 Hash Join \u003cbr\u003e 6.3 Sort-Merge Join \u003cbr\u003e\u003cbr\u003e\u003cb\u003eAppendix\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e1.\u003cbr\u003e격리 수준에 따른 이상 현상\u003cbr\u003e 1.1 Read Committed \u003cbr\u003e 1.2 Repeatable Read \u003cbr\u003e 1.3 Serializable \u003cbr\u003e\u003cbr\u003e2.\u003cbr\u003e테이블 팽창(Bloating) 모니터링 \u003cbr\u003e\u003cbr\u003e3. SQL 모니터링\u003cbr\u003e 3.1 pg_stat_statements \u003cbr\u003e 3.2 pg_stat_monitor \u003c\/div\u003e \u003cdiv\u003e\u003c\/div\u003e \u003c\/div\u003e \u003cbr\u003e\u003cdiv\u003e \u003ch5\u003e\u003cb\u003e출판사 리뷰\u003c\/b\u003e\u003c\/h5\u003e \u003c\/div\u003e \u003cdiv\u003e \u003cdiv\u003e  데이터 읽기 일관성을 위해 튜플의 버전은 어떻게 관리 되지?\u003cbr\u003eVacuum은 왜 필요하고 데이터베이스 성능과 무슨 관계가 있지?\u003cbr\u003e테이블과 튜플의 Lock은 어떻게 구현되지?\u003cbr\u003e옵티마이져가 sql 실행 비용을 어떻게 계산하지?\u003cbr\u003e쿼리 성능을 위해 새롭게 소개된 조인 방식을 알고 싶은데?\u003cbr\u003e\u003cbr\u003e\u003cb\u003e(서문)\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e처음 PostgreSQL을 접한 것은 5년 전 회사 솔루션에 오픈소스 데이터베이스로 Post greSQL을 도입하게 된 것이 계기였습니다.\u003cbr\u003e당시에는 성능 문제가 발생할 때마다 해결 방안을 찾기 위해 간헐적으로 PostgreSQL을 살펴보는 수준에 그쳤습니다.\u003cbr\u003e그러나 “목마른 사람이 우물을 판다.”는 말처럼 문제를 해결하고자 깊이 탐구하다 보니 결국 책까지 쓰게 되었습니다.\u003cbr\u003e\u003cbr\u003e최근 클라우드 환경이 확산되면서 PostgreSQL에 대한 관심이 점점 높아지고, 이를 기반으로 한 오픈소스 데이터베이스도 다양하게 출시되고 있습니다.\u003cbr\u003ePostgreSQL은 오픈소스 환경임에도 불구하고 다양한 성능 통계를 활용하여 성능 분석과 튜닝을 할 수 있는 강력한 기능을 제공합니다.\u003cbr\u003e게다가 지속적인 버전 업그레이드를 통해 옵티마이져가 개선되고 있으며, 성능 분석에 유용한 확장 팩도 꾸준히 개발되고 있습니다.\u003cbr\u003e\u003cbr\u003e이 책은 PostgreSQL 초·중급 독자를 대상으로 성능 관리를 위해 반드시 알아야 할 핵심 주제들로 구성되어 있습니다.\u003cbr\u003e아키텍처, 트랜잭션, MVCC, Vacuum, 락(Lock), SQL 실행 계획 등 PostgreSQL의 핵심 기능을 심도 있게 다루었습니다.\u003cbr\u003e단순히 이론만 서술하는 것을 넘어, 다양한 테스트와 검증을 통해 내부 작동 원리를 명확히 이해할 수 있도록 집필하였습니다.\u003cbr\u003e이러한 구성 덕분에 막힘없이 PostgreSQL에 도전할 수 있기를 기대하며 책 제목을 “막힘없이 PostgreSQL”로 정하게 되었습니다.\u003cbr\u003e특히 기술적으로 어렵다고 생각되는 내용을 독자들이 쉽게 이해할 수 있도록 다양한 그림과 시각 자료를 활용하였으며, 원리를 직접 체험해 볼 수 있도록 실습 예제와 스크립트도 함께 제공하였습니다.\u003cbr\u003e참고로 모든 테스트는 PostgreSQL 14 버전 이상에서 수행할 수 있도록 구성했습니다.\u003cbr\u003e\u003cbr\u003e이 책이 세상에 나오기까지 많은 분들의 도움이 있었습니다.\u003cbr\u003e평소 “기술자는 지식을 나누어야 한다.”는 철학을 강조하시며 지식 공유의 가치를 일깨워 주신 조종암 회장님께 깊이 감사드립니다.\u003cbr\u003e또한, 책이 출간되기를 응원하며 기다려 주신 고평석 사장님과 집필을 결심하도록 용기를 준 정동기 본부장님께도 감사의 인사를 전합니다.\u003cbr\u003e컨설팅 업무를 병행하며 책을 집필하는 일은 결코 쉽지 않았습니다.\u003cbr\u003e그럼에도 불구하고 밤잠을 줄이고 주말도 반납하며 묵묵히 책임을 다해준 김철환 이사님, 박관규 수석님, 김규민 책임님께 진심으로 감사드립니다.\u003cbr\u003e아울러, 디자인과 편집에 열정을 다해 준 송유림 수석님께도 깊은 감사의 마음을 전합니다.\u003cbr\u003e\u003cbr\u003e어느 분야에서나 지속 가능한 역량을 유지하는 길은 결국 배움에 있다고 믿습니다.\u003cbr\u003e\u003cbr\u003e배움의 길에는 끝이 없기에, 이 책도 ‘배워서 남 주자’는 마음으로 집필하였습니다.\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e비록 더 많은 내용을 담지 못해 아쉬움이 남지만 독자 여러분께 조금이라도 도움이 되기를 희망합니다.\u003cbr\u003e\u003cbr\u003e2024년 12월 \u003cbr\u003e저자 대표 임경석 \u003c\/div\u003e \u003cdiv\u003e\u003c\/div\u003e \u003c\/div\u003e \u003c\/div\u003e\n\u003c\/div\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003eGOODS SPECIFICS\u003c\/div\u003e\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e- \u003cstrong\u003e발행일 : \u003c\/strong\u003e2025년 01월 23일\u003c\/div\u003e\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e- \u003cstrong\u003e쪽수, 무게, 크기 : \u003c\/strong\u003e397쪽 | 1,001g | 183*258*20mm\u003c\/div\u003e\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e- \u003cstrong\u003eISBN13 : \u003c\/strong\u003e9791188427222\u003c\/div\u003e\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e- \u003cstrong\u003eISBN10 : \u003c\/strong\u003e1188427229\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ccenter\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003cspan\u003e\u003c\/span\u003e\n\u003c\/center\u003e\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893419638826,"sku":"140397","price":46.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/6d4cd86825bdc9e21a29ba0c41c90434.jpg?v=1765401225","url":"https:\/\/librairie.coreenne.fr\/ko\/products\/140397","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}