PostgreSQL 해부 - 설치부터 운영 기초까지
Docker로 PostgreSQL 18을 실행하고 psql 접속, table과 index, transaction, 백업과 복원까지 관계형 데이터베이스의 기본기를 실습하는 입문 단편입니다.
Docker로 PostgreSQL 18을 실행하고 psql 접속, table과 index, transaction, 백업과 복원까지 관계형 데이터베이스의 기본기를 실습하는 입문 단편입니다.

봉사활동 300시간을 채우며 어디서 무엇을 했는지, 시작하려는 분들께 필요한 정보를 정리했습니다.
PostgreSQL과 MySQL의 공통점과 차이를 기본 isolation level, 아키텍처, PRIMARY KEY와 데이터 배치, upsert 문법, replication 기준으로 표로 정리하고 선택 기준을 다룹니다. RDB 밖의 캐시, document DB, warehouse의 위치를 정리하고 시리즈 자가 테스트 체크리스트로 마무리합니다.
pg_dump 논리 백업의 한계와 WAL 기반 PITR 개념, 읽기 전용 계정과 REVOKE, pg_stat_activity와 pg_stat_statements로 실행 중인 쿼리와 느린 쿼리를 찾는 방법을 다룹니다. MVCC가 남긴 dead tuple을 정리하는 VACUUM과 autovacuum, streaming replication과 failover 개념까지 PostgreSQL 운영 기초를 정리합니다.
애플리케이션 코드에서 database를 쓰는 기본기를 다룹니다. Python psycopg 3로 PostgreSQL에 접속하고, parameterized query로 SQL injection을 막고, connection pool 크기를 정하는 원칙을 정리합니다. ORM의 N+1 문제와 migration 도구 개념까지 다룹니다.
텐서 생성부터 속성과 dtype, shape 변경, indexing, 조건 선택, Broadcasting, dim 집계, 결합, 정렬, NumPy 상호 변환, device까지 PyTorch 텐서의 기본 문법을 정리했습니다.
PostgreSQL에서 transaction의 ACID 성질과 isolation을 실습으로 다룹니다. terminal 두 개로 lost update와 deadlock을 재현하고, 원자적 UPDATE와 SELECT FOR UPDATE, MVCC, isolation level 4단계를 정리합니다. MySQL InnoDB와의 기본값 차이도 다룹니다.
PostgreSQL에서 generate_series로 10만 건 실험 데이터를 만들고 EXPLAIN ANALYZE로 실행 계획을 읽습니다. B-tree index의 동작 원리, 복합 index와 column 순서, covering index, index가 쓰이지 못하는 조건과 쓰기 비용까지 정리합니다.
GROUP BY의 SELECT 규칙과 HAVING, WHERE IN과 스칼라 서브쿼리, CTE(WITH), CASE와 COALESCE, ROW_NUMBER 같은 window function 기초를 PostgreSQL 게시판 예제로 실습합니다. MySQL 8.4와의 차이도 정리합니다.
이 시리즈가 누구를 위한 글인지, NumPy, Pandas 기초 및 딥러닝 기초 시리즈와 어떻게 이어지는지, 그리고 텐서부터 autograd, nn.Module, 데이터, 학습 실무까지 여섯 편의 진행 순서를 정리한 0편입니다.