컬럼이 너무 많은 테이블을 세로로 가르기
역할이 다른 컬럼군을 별도 테이블로 분리하는 수직 분할 — 1:1 조인과 NULL 감소·조인 비용의 트레이드오프.
키워드가 정확히 일치하지 않아도 의미로 글을 찾아줍니다. 모든 처리는 브라우저 안에서 일어나며 — 서버·API 키·외부 전송이 없습니다. (검색 모델은 처음 한 번만 받고 이후 캐시됩니다.)
매일 자동으로 바뀌는 복습 6선 — Network · OS · Algorithm · Database 각 1편 + 랜덤 2편.
역할이 다른 컬럼군을 별도 테이블로 분리하는 수직 분할 — 1:1 조인과 NULL 감소·조인 비용의 트레이드오프.
한 엔티티에 역할이 다른 N개 연관을 평면 컬럼으로 박을지 role 컬럼을 가진 연결 테이블로 정규화할지의 선택과 조회·확장성 트레이드오프.
느슨한 조건의 조회가 수십만 건을 메모리에 올려 OOM을 내기 전에 — 결과 건수 상한 가드와 경계 방어.
대소문자 구분 없는 검색을 인덱스를 살린 채 구현하는 법. LOWER() 양변 적용이 인덱스를 깨는 문제와 함수 기반 인덱스·CI collation·citext의 트레이드오프.

“분명 있는데 검색이 안 돼요” Elasticsearch를 처음 쓸 때 가장 헷갈렸던 건, term 쿼리로 검색했는데 결과가 안 나오는 현상이었습니다. 분명 그 단어가 문서에 있는데도요. 원인은 분석기(analyzer) 와 match/term의 차이를 몰라서였습니다. 분석기: text를 토큰으로 쪼개는 과정 text 필드는 색인될 때 분석기를 거...
MyBatis 커스텀 TypeHandler로 enum을 코드값 컬럼에 저장/복원하는 법과, null·jdbcType 누락으로 매핑이 조용히 깨지는 지점.
한 페이지 안에서 같은 데이터를 보여주는 목록·상세·집계 배지를 변경 직후 일관되게 맞추는 설계. 서버 재조회, 응답 동봉, 클라 낙관적 반영의 트레이드오프.

그래프 표현(인접 행렬 vs 리스트)과 BFS·DFS, 위상 정렬·강연결요소. 물결처럼 퍼지는 BFS와 깊이 파고드는 DFS를 애니메이션으로 비교합니다.
성공만 가정한 비동기 핸들러의 위험과, 4xx/5xx/네트워크 오류를 분기 처리하고 재시도 UX를 설계하는 법.