2,000++억건 데이터를 다루는 실리콘 밸리 AI 개발자의 PostgreSQL
개발 · 프로그래밍 · 데이터베이스
기본 SQL부터 인덱스 튜닝 · 트랜잭션 · pgvector까지
하나의 PostgreSQL로 다루는 강의
이 강의는 PostgreSQL을 기본 SQL부터 인덱스 튜닝, 트랜잭션, JSONB, pgvector까지 실습으로 익히는 입문자용 PostgreSQL 강의입니다. 로그가 쌓이면 저장소를 더 붙이고, 검색이 붙으면 엔진을 하나 더 붙이고, AI 기능에는 벡터 DB를 또 붙이는 흐름을 하나의 데이터베이스 안에서 끊어 냅니다.
- 난이도 입문
- 실습 중심
- Docker 환경
- 수강기한 무제한
- 기초 → 분산관계형 개념에서 분산 환경까지 한 흐름
- 기초에서 분산까지기본 SQL에서 시작해 샤딩·스케줄링으로 끝납니다
- pgvector · JSONB외부 의존 없이 한 DB에서
2,000++억건 규모의 데이터를 다뤄 온 실리콘밸리 AI 스타트업 현직 서버 개발자가 함께 구성한 커리큘럼
실습 환경은 macOS(Apple M3) · Docker 하나면 됩니다
이 강의가 시작된 이유
실리콘밸리 개발자가 먼저 제안했습니다
아래는 실제 대화 내용입니다. 합류해 있던 실리콘밸리 개발자가 직접 다루고 싶은 주제로 PostgreSQL을 꺼냈습니다.
그렇게 이 강의가 만들어졌습니다. 실리콘밸리에서 PostgreSQL을 실제로 쓰고 있는 개발자가 "이건 꼭 다뤄야 한다"고 먼저 말한 내용이에요.
지금 겪고 있는 일
기능을 만드는 게 아니라, 시스템을 유지보수하고 있습니다
처음에는 단순하게 시작합니다. MySQL 하나로 충분하고 CRUD만 잘 돌아가면 문제가 없어요. 그런데 서비스가 조금만 커지면 상황이 달라집니다.
- 로그를 쌓기 시작하면서 별도의 저장소를 고민하게 되고
- 검색 기능이 붙으면서 Elasticsearch를 붙이고
- 실시간 처리를 위해 Redis를 추가하고
- AI 기능을 붙이려고 보니 또 Vector DB를 붙여야 합니다
"나는 지금 기능을 만드는 게 아니라, 시스템을 유지보수하고 있구나"
AI 시대의 데이터베이스
AI 시대에 PostgreSQL이 왜 각광받나요
이전까지의 데이터베이스는 주로 정형 데이터를 저장하고 조회하는 역할에 치중해 있었습니다. 지금은 다릅니다. AI 서비스가 등장하면서 단순한 테이블 데이터만 다루지 않게 됐어요.
- JSON 형태의 비정형 데이터
- 계속 쌓이는 로그 데이터
- 임베딩 기반의 벡터 데이터
이 셋을 함께 다뤄야 하는 환경이 이미 만들어져 있습니다. PostgreSQL은 JSONB로 유연한 스키마를 구성하고, 인덱싱으로 대규모 데이터셋에서도 성능을 유지하며, pgvector 같은 확장으로 AI 기반 유사도 검색까지 처리합니다. 추가 의존성 없이 PostgreSQL 하나로요.
여러 시스템을 따로 두지 않아도, 하나의 PostgreSQL로 AI 시대에 필요한 데이터 처리 요구사항을 대응할 수 있습니다.
인덱스 지도
PostgreSQL 인덱스는 언제 무엇을 쓰나요
PostgreSQL이 여러 종류의 인덱스를 제공하는 이유는 데이터의 모양이 저마다 다르기 때문입니다. 인덱스와 성능 최적화를 다루면서 이 선택 기준을 실습으로 짚습니다.
B-Tree
PostgreSQL의 기본 인덱스입니다. 등호와 부등호 비교, 범위 조회, 정렬처럼 값의 순서를 따지는 조건에 씁니다. 대부분의 컬럼에는 이것으로 충분합니다.GIN
하나의 값 안에 여러 요소가 들어 있는 컬럼에 씁니다. JSONB의 키·값 검색이나 배열, 전문 검색처럼 "안에 무엇이 들어 있는가"를 묻는 조건에 맞습니다.GiST
기하 데이터나 범위 타입처럼 값이 겹치는지, 포함하는지를 따져야 하는 조건에 씁니다. 위치 기반 데이터를 다룰 때 자주 등장합니다.
실제 강의 내용 맛보기
이런 장면을 다룹니다
설명보다 화면이 빠릅니다. 실제 강의 일부를 그대로 잘라 왔습니다.
Search Extension을 활용한 토크나이저검색 확장으로 텍스트를 토큰으로 쪼개는 과정
cron & 분산 샤딩을 활용한 종합 실습스케줄링과 분산 구성을 한 번에 엮는 마무리 실습
분산 환경에서 쿼리 분석해 보기노드가 나뉜 상태에서 쿼리가 어떻게 도는지 확인
격리 수준에 따른 세션별 스냅샷 실습세션을 나눠 두고 격리 수준이 만드는 차이를 직접 확인
붙이는 대신, 하나를 깊게 쓰는 선택
기본 SQL에서 시작해 분산 환경까지 순서대로 이어집니다.
지금 시작하기Why PostgreSQL
PostgreSQL은 어떤 특징을 가지고 있나요
PostgreSQL은 MySQL, Oracle과 함께 널리 쓰이는 관계형 데이터베이스 관리 시스템(DBMS/RDBMS)입니다. 같은 관계형 database이지만, 아래 특징들이 PostgreSQL을 고르는 이유가 됩니다.
ACID
PostgreSQL은 ACID 트랜잭션을 지원해 데이터 정합성을 보장합니다. 금융·결제처럼 정확성이 중요한 시스템에서도 안정적으로 씁니다.MVCC
PostgreSQL의 MVCC(다중 버전 동시성 제어)는 읽기와 쓰기가 서로를 막지 않게 해 높은 동시성과 성능을 확보합니다.인덱스
PostgreSQL은 B-Tree, GIN, GiST 등 다양한 인덱스를 지원해 복잡한 쿼리도 효율적으로 처리합니다. JSONB 같은 비정형 컬럼에는 GIN 인덱스를 걸어 키·값 검색을 빠르게 만들 수 있습니다.확장성
PostgreSQL은 사용자 정의 함수·타입·확장 모듈을 통해 데이터베이스 자체를 유연하게 확장할 수 있습니다.표준 SQL
PostgreSQL은 표준 SQL에 충실하면서도 실무에서 필요한 기능을 폭넓게 제공합니다.JSONB · GIS
PostgreSQL은 관계형 데이터를 넘어 JSONB 같은 반정형 데이터와 위치 기반(GIS) 데이터까지 하나의 데이터베이스로 처리합니다.생태계
PostgreSQL은 pgvector, PostGIS 같은 확장을 상황에 맞게 얹어 쓰는 확장 생태계를 갖추고 있습니다.
공식 문서는 PostgreSQL을 이렇게 설명합니다.
PostgreSQL is a powerful, open source object-relational database system with a strong reputation for reliability, feature robustness, and performance.
PostgreSQL은 강력한 오픈소스 객체-관계형 데이터베이스 시스템으로, 높은 신뢰성과 풍부한 기능, 뛰어난 성능으로 잘 알려져 있습니다.
같은 테이블이라도 어떤 인덱스를 걸어 두느냐에 따라 쿼리 응답이 갈리고, 격리 수준 한 줄에 따라 다른 세션이 보는 데이터가 달라집니다. 기능을 아는 것과 지금 상황에서 무엇을 고를지 아는 건 다른 일이에요.
이 강의가 특별한 이유
왜 이 PostgreSQL 강의인가요
실리콘밸리 현직 개발자의 관점으로 구성했습니다
실리콘밸리에서 AI 관련 개발을 하고 있는 13년차 서버 개발자와 함께 만든 강의입니다. PostgreSQL을 실제로 쓰면서 쌓인 견해와 판단 기준을 그대로 담았습니다.
강의 대부분이 실습과 쿼리로 이어집니다
모든 강의에 실제 PostgreSQL 쿼리가 제공되고, 개념 설명이 실습과 붙어 있습니다. 대부분의 강의가 직접 쿼리를 실행하며 진행됩니다.
단순 저장소가 아니라 시스템의 중심으로 다룹니다
기본 SQL에서 끝나지 않습니다. 인덱스와 성능, 트랜잭션과 동시성, 분산 환경과 스케줄링까지 이어지며 데이터베이스를 서비스 설계의 중심 컴포넌트로 바라보게 됩니다.
AI 시대에 PostgreSQL이 하는 역할을 직접 확인합니다
pgvector로 임베딩 벡터 검색 쿼리를 직접 실행해 봅니다. 별도의 벡터 DB 없이 PostgreSQL 안에서 유사도 검색이 도는 것을 눈으로 확인할 수 있어요.
이런 분께 추천해요
이 PostgreSQL 강의는 누구를 위한 강의인가요
- PostgreSQL 기본부터 탄탄히 다지고 싶은 초·중급 개발자단순 CRUD를 넘어 INSERT·UPDATE·DELETE의 여러 패턴, SELECT 튜닝, 인덱스 활용을 구조적으로 배우고 싶은 분
- PostgreSQL을 어떻게 활용하는지 궁금한 백엔드 개발자DDL·DML 같은 기본 개념부터 실무에 바로 적용할 수 있는 관점까지 한 번에 정리하고 싶은 분
- 면접 대비가 필요한 백엔드 취준생 · 주니어 개발자트랜잭션·무결성·인덱스·FK처럼 자주 나오는 주제를 실무 기준으로 정리하고 싶은 분
- PostgreSQL을 시스템의 핵심 구조로 바라보고 싶은 시니어 지향 개발자저장소가 아니라 서비스 설계의 중심 컴포넌트로 이해하고, 스키마 리팩토링과 진화하는 DB 구조에 관심 있는 분
- AI 시대에 데이터베이스가 할 역할이 궁금한 개발자pgvector로 임베딩 벡터 검색 쿼리를 직접 돌려 보고 싶은 분
반대로 JSONB 설계와 인덱스 선택, 격리 수준의 차이를 지금 바로 설명할 수 있다면 이 강의는 필요하지 않습니다.
커리큘럼
PostgreSQL 강의 커리큘럼
PostgreSQL을 처음 배우는 개발자를 위한 순서로 구성돼 있습니다. 데이터베이스 기초에서 시작해 기본 SQL, 쿼리 설계, 인덱스와 성능, 트랜잭션, Extension, 분산까지 순서대로 이어집니다. 앞이 뒤의 전제가 되도록 잡았습니다.
섹션 1. 강의 소개
- AI 시대에 가장 떠오르는 Database PostgreSQL!!
- Hong과 함께하는 KakaoTalk 커뮤니티!
섹션 2. 데이터베이스 기초와 PostgreSQL 소개
- 데이터베이스와 관계형 개념
- PostgreSQL 특징 및 Docker 환경 구성
- DB 연결 설정
섹션 3. 테이블 관계와 기본 SQL
- 데이터 타입
- 테이블 생성과 제약 조건
- INSERT와 SELECT
- UPDATE와 DELETE
- WHERE 연산자들
- UPSERT 쿼리 패턴
섹션 4. 정렬 · 집계 · JOIN 설계
- 정렬과 집계, 여러 테이블을 엮는 JOIN 설계를 다룹니다.
섹션 5. 고급 SQL 쿼리 패턴
- 기본 문법을 넘어선 고급 쿼리 패턴을 실습으로 익힙니다.
섹션 6. 인덱스 및 성능 최적화
- B-Tree·GIN·GiST 인덱스와 성능 최적화 관점을 다룹니다.
섹션 7. 트랜잭션 · 동시성 · 확장성
- 트랜잭션과 격리 수준, MVCC 기반 동시성과 확장성을 다룹니다.
섹션 8. Extension 기능
- pgvector·검색 확장 등 PostgreSQL 생태계의 확장 기능을 다룹니다.
섹션 9. Distributed 환경과 Scheduling
- 분산 환경 구성과 cron 기반 스케줄링을 종합 실습으로 마무리합니다.
다루는 기술 · 실습 환경
무엇으로 실습하나요
- PostgreSQL
- JSONB
- B-Tree · GIN · GiST
- MVCC · 격리 수준
- pgvector
- Search Extension
- cron · 분산 샤딩
- Docker
- macOS (Apple M3)
- DBMS/RDBMS
- database
Apple M3 Air 환경에서 진행하며, 경량화와 폐쇄적인 환경 구성을 위해 Docker를 활용합니다. 로컬에서 컨테이너 하나 띄우면 바로 따라올 수 있어요.
커리큘럼까지 다 보셨다면
수강기한은 무제한입니다. 필요할 때 다시 꺼내 볼 수 있어요.
지금 등록하고 실습 시작하기누가 만들었나요
이 강의를 함께 준비한 실리콘밸리 개발자
실리콘밸리 · AI 스타트업 서버 개발자
Waddy
13년차 백엔드 서버 개발자로 국내 여러 기업에서 개발하다가, 최근 실리콘밸리로 이직해 AI 관련 개발을 하고 있습니다. 토스 개발자 친구와의 인연으로 합류했고, 알고 있는 지식을 최대한 쉽고 편하게 전달하려 합니다.
- [現] 실리콘밸리 AI 스타트업 서버 개발자
- [前] 카카오 본사 서버 개발자
- [前] 국내 스타트업 2~3곳 서버 개발자
- [前] 해외 컴퓨터공학 전공
자주 묻는 질문
PostgreSQL 강의 자주 묻는 질문
PostgreSQL은 어떤 데이터베이스인가요?
PostgreSQL은 오픈소스 객체-관계형 데이터베이스입니다. 관계형 테이블을 다루면서도 ACID 트랜잭션과 MVCC 동시성, B-Tree·GIN·GiST 인덱스, 사용자 정의 함수·타입·확장 모듈을 기본으로 갖추고 있어, 정형 데이터와 JSON·벡터 같은 비정형 데이터를 한 데이터베이스에서 함께 다룰 수 있습니다. 이 강의는 그 기능들을 기초 SQL → 인덱스 → 트랜잭션 → Extension 순서로 실습하며 익힙니다.
AI 시대에 PostgreSQL이 왜 주목받나요?
다뤄야 할 데이터가 정형 테이블만이 아니게 됐기 때문입니다. JSON 형태의 비정형 데이터, 계속 쌓이는 로그, 임베딩 기반 벡터 데이터를 함께 처리해야 하는데, PostgreSQL은 JSONB로 유연한 스키마를, 인덱싱으로 대규모 데이터셋의 성능을, pgvector 확장으로 유사도 검색을 한 곳에서 처리합니다. 시스템을 여러 개 붙이지 않아도 된다는 게 핵심입니다.
pgvector가 무엇인가요?
pgvector는 PostgreSQL에 벡터 타입과 유사도 거리 연산자를 더해 주는 확장(Extension)입니다. 임베딩을 컬럼에 저장해 두면 일반 SELECT 문에서 정렬 조건만으로 가장 유사한 항목을 찾을 수 있어, 별도의 벡터 DB를 두지 않고도 AI 기능을 붙일 수 있습니다. Extension 기능을 다루면서 이 쿼리를 직접 실행해 봅니다.
PostgreSQL의 JSONB 컬럼에도 인덱스를 걸 수 있나요?
네. JSONB 컬럼에는 GIN 인덱스를 걸어 특정 키나 값으로 검색할 때도 전체를 훑지 않고 조회할 수 있습니다. 비정형 데이터를 넣어 두고도 관계형 테이블처럼 빠르게 찾을 수 있다는 뜻이에요. 인덱스와 성능 최적화를 다루면서 B-Tree·GIN·GiST 인덱스를 다룹니다.
PostgreSQL과 MySQL · Oracle 같은 다른 RDBMS는 무엇이 다른가요?
셋 다 관계형 DBMS(RDBMS)라 테이블·SQL·트랜잭션이라는 뼈대는 같습니다. PostgreSQL이 갈리는 지점은 인덱스와 확장 구조예요. PostgreSQL은 B-Tree 외에 GIN·GiST 인덱스를 기본으로 제공해 JSONB나 배열 같은 비정형 컬럼에도 인덱스를 걸 수 있고, pgvector 같은 확장을 설치해 벡터 검색을 데이터베이스 안에서 바로 추가할 수 있습니다. 그래서 서비스가 커질 때 로그 저장소·검색 엔진·벡터 DB를 하나씩 붙이는 흐름을 줄일 수 있어요. 이 강의는 그 선택 기준과 한계를 함께 다룹니다.
PostgreSQL(포스트그레SQL) 입문자도 따라갈 수 있나요?
네. 난이도 입문 강의로, 데이터베이스와 관계형 개념부터 시작해 데이터 타입·제약 조건·기본 SQL 순서로 올라갑니다. 기본적인 SQL 사용 경험이 있으면 충분하고, 뒤쪽의 인덱스·트랜잭션·분산 환경은 실무 경력자에게도 새로운 내용입니다.
PostgreSQL 트랜잭션 격리 수준은 어떻게 다루나요?
PostgreSQL은 Read Committed·Repeatable Read·Serializable 격리 수준을 지원하고 기본값은 Read Committed입니다. 트랜잭션·동시성·확장성을 다루면서 세션을 나눠 두고 격리 수준을 바꿔 가며, 같은 시점에 각 세션이 보는 스냅샷이 어떻게 달라지는지 직접 확인합니다.
실습 환경은 어떻게 구성하나요?
Apple M3 Air 환경에서 진행하며, 경량화와 폐쇄적인 환경 구성을 위해 Docker를 사용합니다. PostgreSQL 특징과 함께 Docker 환경 구성, DB 연결 설정을 다루므로 그대로 따라오면 됩니다.
어떤 Extension을 다루나요?
Extension 기능을 다루면서 pgvector를 활용한 임베딩 벡터 검색과 Search Extension을 활용한 토크나이저를 다룹니다. 이어지는 cron과 분산 샤딩을 엮은 종합 실습으로 마무리합니다.
이미 실무에서 PostgreSQL을 쓰고 있는데도 들을 이유가 있나요?
PostgreSQL은 Read Committed·Repeatable Read·Serializable 격리 수준을 지원하고 기본값은 Read Committed입니다. 격리 수준에 따라 다른 세션이 커밋한 변경이 내 트랜잭션에서 보이는 시점이 달라집니다. 쿼리를 쓰는 것과 이 차이를 설명하는 건 다른 일이에요. 세션을 나눠 두고 격리 수준별 스냅샷이 실제로 어떻게 달라지는지 실습으로 확인하고, 인덱스 선택 기준과, 분산 환경에서 쿼리가 도는 방식을 다룹니다.
공식 문서로 혼자 공부해도 되지 않나요?
공식 문서는 각 기능이 무엇인지 정확하게 설명합니다. 다만 지금 이 테이블에 어떤 인덱스를 걸어야 하는지, 격리 수준을 바꾸면 내 서비스에서 무엇이 달라지는지는 문서가 대신 판단해 주지 않습니다. 이 강의는 그 판단을 쿼리를 직접 돌려 확인하는 데 시간을 씁니다.
난이도가 입문인데 다루는 범위는 어디까지인가요?
시작은 데이터베이스와 관계형 개념이지만, 끝은 인덱스와 성능 최적화, 트랜잭션·동시성, Extension, 분산 환경과 스케줄링입니다. 전체가 이 흐름으로 이어지고, 수강기한은 무제한이라 필요한 대목만 다시 꺼내 볼 수도 있습니다.
PostgreSQL 강의 커리큘럼은 어떤 순서인가요?
데이터베이스와 관계형 개념, Docker 환경 구성으로 시작해 데이터 타입과 제약 조건, 기본 SQL, 정렬·집계·JOIN 설계, 고급 쿼리 패턴, 인덱스와 성능 최적화, 트랜잭션·동시성·확장성, Extension, 분산 환경과 스케줄링 순으로 이어집니다. 수강기한은 무제한입니다.
인덱스를 왜 그렇게 고르는지, 격리 수준을 바꾸면 뭐가 달라지는지
기본 SQL에서 시작해 인덱스와 성능, 트랜잭션, pgvector 벡터 검색까지 전부 실습으로 확인합니다.
강의 시작하기함께 성장해요
개발자 오픈 채팅방
커리어와 현업 상황, 기술을 나누는 개발자 오픈 채팅방을 운영하고 있어요. 강의를 들으며 궁금한 점이나 실무 고민을 편하게 나눠 보세요.