검색 결과에서 키워드를 강조하는 일의 무게
검색 결과의 키워드 하이라이트와 발췌(snippet) 생성, 그리고 강조가 부르는 XSS를 출력 인코딩으로 막는 법을 다룬다.
키워드가 정확히 일치하지 않아도 의미로 글을 찾아줍니다. 모든 처리는 브라우저 안에서 일어나며 — 서버·API 키·외부 전송이 없습니다. (검색 모델은 처음 한 번만 받고 이후 캐시됩니다.)
매일 자동으로 바뀌는 복습 6선 — Network · OS · Algorithm · Database 각 1편 + 랜덤 2편.
검색 결과의 키워드 하이라이트와 발췌(snippet) 생성, 그리고 강조가 부르는 XSS를 출력 인코딩으로 막는 법을 다룬다.
운영자가 특정 기간 접속 내역을 추출할 때 필요한 날짜 범위 필터, 제외 조건, 로그 테이블 인덱스 설계와 운영 DB 부하 분리 전략.
MyBatis가 조회 결과 컬럼을 객체 프로퍼티로 잇는 방식, snake_case↔camelCase 자동 매핑의 원리와 한계, resultMap 명시 매핑과 조용한 null 함정을 정리한다.
개행과 특수문자가 SQL, HTML, JSON, CSV 각 계층에서 깨지는 지점과, 데이터를 코드로 만들지 않는 계층별 escaping 원칙을 정리한다.
저장형/반사형 XSS의 동작 원리, 방어의 핵심이 입력 필터가 아니라 출력 시점 인코딩인 이유, JSP c:out과 컨텍스트별 escaping을 정리한다.
운영 대시보드의 카테고리별 카운트는 화면에서 N번 세지 말고 GROUP BY 한 번으로 묶어라. 롤업 집계와 0건 차원 누락 보정까지 다룬다.
복합 인덱스의 좌측 접두(leftmost prefix) 규칙, 선택도 높은 컬럼을 앞에 두는 판단, range 조건 뒤로 인덱스가 끊기는 이유를 정리한다.
MyBatis
offset/limit 페이징과 별도 count 쿼리가 어떻게 동작하는지, 옵티마이저 관점에서 그 비용과 일관성 문제, 총건수 캐싱 전략까지 정리한다.