
주 단위 데이터 분석, DATE_TRUNC로 해결하기
일 단위는 되는데 주 단위가 안 된다 대시보드 작업을 하다가 “이번 주, 저번 주 가입자 수 추이”를 보여줘야 하는 상황이 있었습니다. 일 단위 집계는 GROUP BY created_at::date로 간단했는데, 주 단위가 문제였습니다. 처음엔 애플리케이션 코드에서 날짜를 받아 직접 주차를 계산해서 그룹핑했는데, 코드가 지저분해지고 경계 처리에서 버...
키워드가 정확히 일치하지 않아도 의미로 글을 찾아줍니다. 모든 처리는 브라우저 안에서 일어나며 — 서버·API 키·외부 전송이 없습니다. (검색 모델은 처음 한 번만 받고 이후 캐시됩니다.)
매일 자동으로 바뀌는 복습 6선 — Network · OS · Algorithm · Database 각 1편 + 랜덤 2편.

일 단위는 되는데 주 단위가 안 된다 대시보드 작업을 하다가 “이번 주, 저번 주 가입자 수 추이”를 보여줘야 하는 상황이 있었습니다. 일 단위 집계는 GROUP BY created_at::date로 간단했는데, 주 단위가 문제였습니다. 처음엔 애플리케이션 코드에서 날짜를 받아 직접 주차를 계산해서 그룹핑했는데, 코드가 지저분해지고 경계 처리에서 버...
MyBatis foreach로 IN 절을 만들 때 바인드 변수 개수가 매번 달라져 실행계획 캐시가 깨지는 문제와, 개수 상한·임시테이블 대안.
앞뒤 공백, 대소문자, 전각/반각, 한글 자모 분리 같은 입력 변형이 검색 누락을 만드는 이유와 서버단 검색어 정규화 파이프라인 설계.

인덱스를 왜 거는 걸까? 처음 백엔드를 시작했을 때, 인덱스는 그냥 “검색 빠르게 해주는 마법” 정도로만 알고 있었습니다. 그런데 운영 중인 테이블에 데이터가 수백만 건 쌓이고 나서 특정 조회 API가 점점 느려지는 걸 보면서, “왜 느린지”, “어떤 컬럼에 인덱스를 걸어야 하는지”를 제대로 이해할 필요가 생겼습니다. 🤔 PostgreSQL에서 C...

UDP를 쓰는 이유와 8바이트 헤더, TCP의 HOL blocking 문제, QUIC이 UDP 위에서 TLS 1.3 통합·0-RTT·스트림 독립·연결 이동성으로 TCP를 넘어서는 방법(HTTP/3)을 설명합니다.
공백·대소문자·포맷이 들쭉날쭉한 입력이 만드는 중복과 검색 누락, 그리고 저장 직전 입력을 표준형으로 다듬는 정규화 계층 설계.
DB 저장과 외부 메시지 발행을 함께 처리할 때 생기는 이중 쓰기 불일치, 그리고 트랜잭셔널 아웃박스 패턴으로 정합을 보장하는 방법.
연관 데이터를 지연 로딩할 때의 N+1과 즉시 로딩의 과다 조회 사이에서, 화면별로 최적의 페치 전략을 고르는 법.
스테일 캐시를 운영 중 직접 비우는 관리 도구. 운영 레디스에서 KEYS가 왜 위험한지, SCAN으로 안전하게 순회하는 법, 도구에 권한을 거는 이유를 정리한다.