페이지네이션 UI의 시작·끝 블록 계산을 서버가 책임지는 이유
총건수에서 총페이지, 현재 페이지 블록의 시작·끝을 계산해 서버 DTO로 내려주는 패턴과 off-by-one 함정을 정리한다.
키워드가 정확히 일치하지 않아도 의미로 글을 찾아줍니다. 모든 처리는 브라우저 안에서 일어나며 — 서버·API 키·외부 전송이 없습니다. (검색 모델은 처음 한 번만 받고 이후 캐시됩니다.)
매일 자동으로 바뀌는 복습 6선 — Network · OS · Algorithm · Database 각 1편 + 랜덤 2편.
총건수에서 총페이지, 현재 페이지 블록의 시작·끝을 계산해 서버 DTO로 내려주는 패턴과 off-by-one 함정을 정리한다.

이진 탐색 트리가 한쪽으로 쏠려 O(n)으로 퇴화하는 문제와, AVL·레드블랙 트리가 회전으로 균형을 잡는 원리. TreeMap·HashMap 트리화 사례와 함께.
서로 다른 외부 REST API를 요청 빌드·인증·응답 파싱 전략으로 캡슐화하고 팩토리로 선택하는 구조. OCP를 지키며 새 연동을 무수정으로 추가하는 법.
행위는 HTTP 메서드로, 대상은 명사형 URI로 표현하는 REST 리소스 모델링 원칙과 컬렉션/단건 경로 규칙을 정리한다.
체크박스 다중 선택 필터를 IN 절 동적 SQL로 옮기고, 선택 0개·전체 선택의 의미를 백엔드가 정의하는 법.

위경도를 그냥 숫자 두 개로 저장하다가 지도 기반 기능을 처음 만들 때, 저는 위도/경도를 그냥 latitude, longitude 두 개의 double precision 컬럼에 넣었습니다. “반경 1km 안의 매장”을 찾으려니, 하버사인(Haversine) 공식을 SQL에 직접 박아 넣어야 했고, 쿼리는 길어지고 인덱스도 안 타서 느렸습니다. 😩 ...
선조회-분기 방식의 UPSERT가 동시 요청에서 깨지는 이유와, INSERT ... ON DUPLICATE/MERGE의 원자성으로 경쟁을 제거하는 방법.
고빈도 클릭 이벤트를 세는 두 가지 길 — 카운트 컬럼 UPDATE의 핫로우 경합 vs 이벤트 로그 append와 집계의 트레이드오프를 정리한다.
메시지 문자열에 의존한 에러 처리의 취약함, 그리고 도메인 에러 코드 카탈로그로 클라이언트 분기와 다국어를 안정화하는 설계.