우리 API를 느리게 만든 N+1 Insert Loop
‘The N+1 Insert Loop That Slowed Our API to a Crawl’의 커버 이미지 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/...
‘The N+1 Insert Loop That Slowed Our API to a Crawl’의 커버 이미지 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/...
대부분의 개발자는 SQL 인젝션에 대해 알고 있습니다. 검색_path 하이재킹에 대해 아는 사람은 거의 없습니다. 이것도 똑같이 위험합니다. search_path란 무엇일까요? PostgreSQL의 search_path는 …
최근에 Docker를 배우기 시작했고, 실제로 어떻게 작동하는지—Docker Engine이 어떻게 동작하는지, 컨테이너가 어떻게 격리되는지 등을 이해하려고 하고 있습니다—...
Problem js // ❌ 위험함: 풀에서 트랜잭션 async function transferFundsfrom, to, amount { await pool.query'BEGIN'; await pool.query'UPDATE accounts SET bal...
새벽 3시였다. PagerDuty가 나를 깨웠다. 우리 API가 500 오류를 반환하고 있었다. 데이터베이스는 정상이었다. CPU도 정상이었다. 메모리도 정상이었다. 하지만 모든 쿼리가 타임아웃되고 있었다. FATAL...
빠른 설치 bash npm install --save-dev eslint-plugin-pg Flat Config js // eslint.config.js import pg from 'eslint-plugin-pg'; export default pg.configs.reco...
번역할 텍스트를 제공해 주시겠어요? 텍스트를 알려주시면 한국어로 번역해 드리겠습니다.
문제: Full Table Scan 1백만 권의 책이 있는 도서관을 상상해 보세요. 찾고 싶은 책이 ‘위대한 개츠비’인데 책들이 정리되지 않았다면, …
데이터베이스는 Academic Suite의 기본 기반입니다. 온라인 시험 시스템에서 부적절한 데이터베이스 스키마 설계는 심각한 병목 현상을 초래할 수 있으며, 특히...
무슨 일인가요? 귀중한 데이터가 가득한 organizations 라는 테이블이 있다고 상상해 보세요. 새 열인 plan을 추가하기로 합니다. 만약 이를 NOT NULL 로 추가한다면, …
솔로 개발자로서의 요구 사항 - 빠른 MVP 개발 - 관계형 데이터 모델링 - SQL 유연성 - 깔끔한 auth + role‑based access - Open‑source‑friendly...
고트래픽 애플리케이션을 위한 PostgreSQL 스케일링 지난 2년 동안 우리는 쿼리 시간을 15초 이상에서 = '2024-01-01' ORDER BY o.created_at D... 로 줄였습니다.