2026.05.08E·97서버리스 환경의 DB Connection Pooling: Supabase Supavisor 설정과 최적화
서버리스 아키텍처에서 발생하는 데이터베이스 커넥션 소진 문제를 해결하기 위한 Supabase의 차세대 커넥션 풀러 Supavisor의 작동 원리와 실무 설정 및 최적화 방법.
DatabaseServerlessSupabase
→2026.02.06F·181SQLite: 서버 없이 DB를 쓴다고? (Turso, Litestream)
SQLite는 모바일에서만 쓰는 줄 알았는데, Turso와 Litestream 덕분에 프로덕션 웹 서비스에서도 진지하게 쓸 수 있게 됐다.
SQLiteTursoLitestream
→2026.02.05F·180무중단 DB 마이그레이션: 운영 중 스키마 변경의 공포
운영 중인 테이블에 컬럼을 추가했다가 서비스가 5분간 멈췄다. 무중단으로 스키마를 변경하는 전략을 배운 이야기.
DatabaseMigrationZero Downtime
→2026.02.04F·179Full-Text Search: DB만으로 검색 기능 구현하기
검색 기능이 필요할 때마다 Elasticsearch를 써야 하나 고민했는데, PostgreSQL의 Full-Text Search만으로도 충분한 경우가 많았다.
Full-Text SearchPostgreSQLDatabase
→2026.02.03F·178PostgreSQL 고급 기능: JSONB, CTE, Window Function
단순 SELECT만 쓰다가 JSONB, CTE, Window Function을 알게 되니 SQL 한 줄로 해결되는 것들이 급격히 늘었다.
PostgreSQLSQLDatabase
→2026.02.02F·177Redis: 캐시 그 이상의 인메모리 데이터 저장소
Redis를 단순 캐시로만 쓰고 있었는데, 세션 관리, 실시간 랭킹, Pub/Sub, Rate Limiting까지 가능한 만능 도구였다.
RedisCacheDatabase
→2026.01.09S·13검색 시스템: Elasticsearch vs 자체 구현
SQL LIKE 검색으로 시작했다가 한계를 느꼈고, Elasticsearch를 도입했다가 운영 비용에 놀랐다. 검색 시스템의 트레이드오프를 정리했다.
System DesignSearchElasticsearch
→2026.01.05S·09URL 단축 서비스 설계: 쉬워 보이지만 함정투성이
URL 줄이는 거 뭐가 어렵겠어? 했는데, 해시 충돌, 만료 정책, 리다이렉트 성능까지 고려하니 시스템 디자인의 축소판이었다.
System DesignArchitectureHashing
→2025.12.14E·28내 무료 DB가 터졌어요 (Supabase Free Plan 한계 돌파하기)
서비스가 조금 잘 되나 싶더니 Supabase에서 경고 메일이 날아옵니다. 'Disk Full', 'CPU 100%'. 무료 플랜(Free Tier)의 진짜 한계와 업그레이드 없이 버티는 최적화 팁.
SupabaseCost OptimizationDatabase
→2025.12.06G·28JOIN을 했는데 데이터가 안 와요 (Foreign Key와 Supabase)
게시글(Post)을 가져올 때 작성자(User) 정보도 같이 보고 싶은데 `null`만 뜹니다. Foreign Key 설정부터 `select(*, users(*))` 문법, 그리고 M:N 관계, Inner Join, Count까지 완벽하게 파헤칩니다.
SupabaseSQLDatabase
→2025.12.05G·27Supabase 데이터가 안 보여요 (RLS의 배신)
DB에 데이터가 분명히 있는데, 프론트엔드에서는 빈 배열(`[]`)만 옵니다. Supabase 초보자가 가장 많이 겪는 RLS(Row Level Security) 정책 위반 문제와 해결법을 정리해봤습니다.
SupabaseRLSDatabase
→2025.09.10B·02ACID: 데이터베이스의 절대 약속
은행이 NoSQL 대신 RDBMS를 쓰는 이유. All or Nothing(원자성)부터 트랜잭션 격리 수준(Isolation Levels), 데드락(Deadlock), 그리고 시니어 개발자가 되는 관점까지 완벽 정리.
CSBackendDatabase
→2025.09.05B·01Redis: 캐시 그 이상의 전략 (Cache-Aside부터 Eviction까지)
Redis를 그냥 '빠른 저장소'로만 쓰고 계신가요? Look-aside, Write-Through 전략의 장단점과 LRU 알고리즘, 그리고 데이터가 날아가지 않게 하는 RDB/AOF 지속성 설정을 정리합니다.
CSBackendRedis
→2025.07.27M·07벡터 DB: AI 시대의 새로운 DB
벡터 데이터베이스의 동작 원리와 활용 방법을 프로젝트 경험을 통해 이해한 과정
vector-dbembeddingai
→2025.07.15Y·06내 DB가 점 하나(') 때문에 털렸다 (SQL Injection)
SQL Injection으로 관리자 권한을 탈취당하고 데이터를 날린 경험담. 왜 Prepared Statement가 유일한 해결책인지, ORM은 정말 안전한지 파헤쳐봤습니다.
SecurityDatabaseBackend
→2025.07.10D·02SQL vs NoSQL: 데이터베이스 전쟁의 승자는? (완벽 가이드)
RDBMS와 NoSQL의 아키텍처(B-Tree vs LSM), CAP 이론, ACID 트랜잭션 격리 수준, 그리고 샤딩 전략과 NewSQL까지.
DatabaseSQLNoSQL
→2025.07.08F·159복제(Replication): 가용성과 읽기 분산
데이터베이스 복제를 통한 고가용성과 읽기 성능 향상을 경험을 통해 이해한 과정
databasereplicationhigh-availability
→2025.07.07F·158샤딩: 수평적 분할
데이터베이스 샤딩의 개념과 대규모 트래픽 처리를 경험을 통해 이해한 과정
databaseshardingscalability
→2025.07.06B·01코드 한 줄이 DB를 죽인다: N+1 문제 완전 정복
기능 하나를 추가했을 뿐인데, DB CPU가 100%를 찍는 상황이 있다. 원인은 ORM의 '지연 로딩'이 만든 N+1 문제다. 1000번의 쿼리를 1번으로 줄인 최적화 과정과, 주니어 개발자가 흔히 저지르는 ORM 실수들을 정리해본다.
DatabaseORMPerformance
→2025.07.05F·155커넥션 풀: DB 연결 재사용
데이터베이스 커넥션 풀의 개념과 성능 최적화를 경험을 통해 이해한 과정
databaseconnection-poolperformance
→2025.07.03F·154트랜잭션: 작업의 원자적 단위
데이터베이스 트랜잭션의 개념과 ACID 특성을 경험을 통해 이해한 과정
databasetransactionACID
→2025.06.30F·153정규화: 데이터 중복 제거
DB 설계의 기초. 데이터를 쪼개고 쪼개서 이상 현상(Anomaly)을 방지하는 과정. 제1, 2, 3 정규형을 쉽게 설명합니다.
CSDatabaseNormalization
→2025.06.18S·08CAP 이론: 분산 시스템의 불가능한 삼위일체 (PACELC 포함)
분산 시스템에서 일관성(C), 가용성(A), 분할 내성(P)을 모두 만족하는 것은 물리적으로 불가능합니다. CP(은행) vs AP(SNS) 시스템의 트레이드오프와 최신 PACELC 이론을 다룹니다.
System DesignDatabaseTheory
→2025.06.10S·06DB 샤딩(Sharding): 10억 건 데이터를 처리하는 유일한 방법
테이블 하나에 10억 개의 행이 쌓이면 인덱스도 소용없습니다. 수직 파티셔닝(Vertical)과 수평 샤딩(Horizontal)의 차이, 일관된 해싱(Consistent Hashing), 그리고 샤딩의 치명적 단점인 JOIN 문제를 분석합니다.
System DesignDatabaseBackend
→2025.06.04A·01MSA의 악몽, 분산 트랜잭션 (Saga 패턴으로 해결하기)
서비스를 MSA로 쪼갰더니 트랜잭션 관리가 지옥이 되었습니다. 주문은 성공했는데 결제는 실패하고, 재고는 이미 차감되었다면? 모놀리식의 ACID가 그리워지는 순간, 분산 환경에서 데이터 일관성을 지키는 Two-Phase Commit(2PC), Saga 패턴(Choreography, Orchestration)을 구체적인 예제와 함께 다뤄봤습니다.
MSAArchitectureDatabase
→2025.05.16D·01DB 인덱스(Index)의 원리: B-Tree를 모르면 쿼리를 튜닝할 수 없다
개발자가 꼭 알아야 할 데이터베이스 인덱스의 핵심 원리. Balanced Tree 구조가 왜 검색 속도를 획기적으로 높이는지, Hash Index와는 무엇이 다른지, 그리고 개발자가 흔히 저지르는 인덱스 실수들을 파헤칩니다.
DatabaseSQLOptimization
→2025.04.18F·79B-Tree: 디스크를 위한 뚱뚱한 트리 (DB 인덱스 원리)
이진 트리는 메모리용입니다. 디스크(SSD/HDD)는 느리니까 트리 키를 낮추고 옆으로 뚱뚱하게 만들어서 디스크 I/O 횟수를 최소화했습니다. B-Tree vs B+Tree 차이와 MySQL 인덱스의 비밀.
CSDataStructureTree
→2025.03.07F·45교착 상태(Deadlock): 멈춰버린 컴퓨터와 철학자들의 침묵 (완전정복)
스레드가 서로를 영원히 기다리는 현상, 데드락. 식사하는 철학자 문제부터 은행원 알고리즘, 리소스 할당 그래프, 분산 시스템에서의 데드락 탐지(Chandy-Misra-Haas)까지 심층 분석합니다.
CSOSDeadlock
→