본문 바로가기

전체 글

(42)
ORM과 AI가 숨기고 있던 성능 저하의 원인 현재 재직중인 회사는 광고 대행사다. 고객의 사이트의 트래픽을 분석하여 광고성과, 부정유입·클릭, 유입키워드 분석, 사용자 흐름 추적 등 다양한 지표를 제공하여 광고의 성과를 높일 수 있도록 애널리틱스 툴을 제공하고 있다. 그런데 최근 트래픽 로그 자체가 많이 쌓이지 않은 신규 고객사를 조회할 때도 비정상적인 지연이 발생한다는 제보가 들어왔다. 문제의 php 코드Claude Code 분석을 통해 금방 문제 지점을 찾을 수 있었다.// ❌ 기존 코드: 문제의 pluck() -> whereIn() 패턴// 1. 조건에 맞는 세션 ID들을 DB에서 조회해 PHP 배열로 끌어옴$sessionIds = DB::table('page_logs') ->where('created_at', '>=', $star..
SQLite만으로 내구성있는 워크플로우 만들기 원문출처: https://obeli.sk/blog/sqlite-is-all-you-need-for-durable-workflows/ SQLite is All You Need for Durable Workflows - BlogSQLite is All You Need for Durable Workflows 2026-05-29 DBOS recently argued that Postgres is all you need for durable execution: if you already trust your database, you do not need a separate orchestration tier. I agree with the direction, and I think theobeli.sk(해당 글은 ob..
shopify는 왜 재고 예약 시스템을 redis에서 mysql로 바꿨을까? 원문출처: https://news.hada.io/topic?id=30006 (해당 글은 긱뉴스의 글을 개발 초보도 이해하기 쉽도록 재가공 하였습니다. 원문의 내용을 이해하는데 AI의 도움을 받았지만, 이 글은 직접 작성하였습니다.) 재고 예약 시스템에서 결제 처리 중 재고 보다 많이 판매되는 "오버셀(OverSell)"을 방지하는 핵심 인프라로, Shopify는 수년간 Redis를 기반으로 운영해왔다. 이는 기존 Redis의 DECR를 통한 아이템당 수량 컬럼의 "단일 스레드 카운터 감소" 대신MySQL로 판매 단위당 1개 행 구조로 재설계하고 SKIP LOCKED 기능을 통한 "행 잡기"로 대체했다는 얘기이다. 그럼 MySQL의 SKIP LOCKED 를 알기 전, 재고 예약 시스템의 핵심 요구사항..