
이진 탐색 — 반씩 버리는 마법, 그리고 "답을 이분하라"
이진 탐색의 경계 처리(lower/upper bound)와 off-by-one 함정, 정답을 이분하는 매개변수 탐색까지. lo·mid·hi가 절반씩 좁혀가는 과정을 애니메이션으로.
키워드가 정확히 일치하지 않아도 의미로 글을 찾아줍니다. 모든 처리는 브라우저 안에서 일어나며 — 서버·API 키·외부 전송이 없습니다. (검색 모델은 처음 한 번만 받고 이후 캐시됩니다.)
매일 자동으로 바뀌는 복습 6선 — Network · OS · Algorithm · Database 각 1편 + 랜덤 2편.

이진 탐색의 경계 처리(lower/upper bound)와 off-by-one 함정, 정답을 이분하는 매개변수 탐색까지. lo·mid·hi가 절반씩 좁혀가는 과정을 애니메이션으로.
실시간 검색은 키 입력마다 쿼리를 쏟아낸다. 디바운스, 이전 요청 취소, 결과 캐싱으로 클라이언트와 서버 양쪽에서 부하를 막는 설계를 다룬다.

똑같은 객체를 매번 새로 만들고 있었다 코드를 짜다 보면 의식하지 못한 채 같은 기능의 객체를 반복 생성하는 경우가 많습니다. 대부분은 문제없지만, 무거운 객체이거나 반복 횟수가 많으면 성능에 영향을 줍니다. 이펙티브 자바 아이템 6은 “불필요한 객체 생성을 피하라”고 말합니다. String 리터럴 가장 흔한 예시입니다. String a = n...
한글 파일명이 다운로드 시 깨지는 원인은 Content-Disposition 헤더의 인코딩에 있다. RFC 5987의 filename* 파라미터로 브라우저별 차이를 정공법으로 해결한다.
개별 조회를 반복하는 N+1 대신, ID를 모아 IN 절로 한 번에 가져와 맵으로 재배치하는 배치 조회 패턴을 정리한다.

압축이 잘 되게 문자열을 “재배열”한다 BWT(Burrows-Wheeler Transform)는 그 자체로 압축은 아니지만, 압축이 잘 되도록 문자열을 가역적으로 재배열하는 변환입니다. bzip2 같은 압축기와 DNA 서열 검색(FM-index)의 핵심이죠. 신기한 점은 원래 문자열로 되돌릴 수 있다(가역) 는 것입니다. 변환 과정 문자열 끝에 ...
엑셀 임포트에서 행별 검증, 전체 롤백 vs 부분 커밋의 선택, 그리고 오류 행을 사용자에게 돌려주는 리포트 설계를 정리한다.

변수들 사이의 인과/의존을 그래프로 나이브 베이즈는 “모든 특징이 독립”이라고 가정했죠. 하지만 현실의 변수들은 서로 영향을 줍니다. 베이지안 네트워크는 이 조건부 의존 관계를 그래프로 표현하는 확률 모델입니다. 구조: 방향성 비순환 그래프(DAG) 노드: 확률 변수(예: 비, 스프링클러, 잔디 젖음) 간선(방향): 직접적인 확률적 의존...
대량 데이터를 하나의 거대한 트랜잭션에 담을 때 생기는 락·메모리·롤백 비용을 짚고, 청크 단위 커밋과 재시작 지점 설계를 정리한다.