콘텐츠로 이동
Study NotePostgreSQL

상황별 판단과 학습 마무리

결론부터
문제가 데이터 규칙·쿼리·동시성·운영 중 어디에 있는지 구분하면 다음 확인을 정할 수 있다.

명령을 외우기보다 아래 상황에서 원인과 관찰할 증거를 설명해 본다. 막히는 부분의 링크로 돌아가 예제를 다시 실행하면 된다.

상황먼저 생각할 질문답의 근거
없는 프로젝트의 작업이 저장됐다외래 키가 실제로 선언돼 있는가?데이터 모델링
프로젝트별 작업 수가 예상보다 많다일대다 JOIN이 곱해졌거나 빈 행을 COUNT했는가?JOIN과 집계
같은 트랜잭션의 두 SELECT 결과가 다르다Read Committed에서 문장 사이 다른 변경이 확정됐는가?동시성
인덱스가 있는데 조회가 느리다실제 읽은 행·정렬·잠금·연결 대기는 어디에 있는가?실행 계획
관리자에게는 보이지만 앱에는 0행이다role·GRANT·RLS 정책의 적용 조건이 다른가?권한과 RLS
replica에서도 삭제한 행이 없다DELETE가 정상 복제된 것은 아닌가?복제
백업이 completed인데 PITR이 실패한다목표 이전 백업과 목표까지의 WAL이 모두 있는가?CNPG 복구
primary가 바뀐 뒤 앱이 실패한다기존 연결·미확정 요청·풀의 재연결을 처리하는가?장애 전환

공통 SQL 예제에서는 작업 없는 프로젝트를 포함한 집계를 만들고, 두 연결에서 잠금 대기를 관찰하고, 일반 role의 행 접근과 별도 DB 복원을 확인한다. 예상 결과와 실제 결과가 다른 이유를 설명할 수 있으면 다음 설정을 읽을 기반이 생긴 것이다.

CNPG에서는 실습 환경을 별도로 갖춘 뒤 선언한 인스턴스와 실제 배치, 계획 전환 뒤 앱 연결, 원본과 별도 복원본의 데이터 차이를 확인한다. 문서의 YAML을 읽은 것과 자신의 환경에서 장애·복구를 검증한 것은 구분해 기록한다.

목적연결할 경로
Supabase 앱의 데이터를 제대로 설계하기모델링 → SQL → 트랜잭션 → 권한·RLS → Supabase
CNPG 운영 설정을 판단하기WAL → 복제 → 백업 → CNPG 구조·Cluster → 장애 전환·복원
AWS 관리형 DB로 옮기기연결·권한 → 백업·복원 → 환경 비교 → AWS
일상 장애를 조사하기실행 계획·잠금 → 유지 관리·연결 → CNPG 운영 점검

더 넓은 SQL 문법과 PostgreSQL 기능은 공식 튜토리얼과 SQL 언어 문서에서 확장한다. 이 덱의 예제를 출발점으로 삼되 실행 환경의 버전과 서비스 제약을 함께 확인한다.