
도커로 ELK 8버전 사용하기
로그가 흩어져 있으면 분석이 안 된다 서버가 여러 대가 되면, 로그를 일일이 SSH로 들어가 tail하는 게 불가능해집니다. 로그를 한곳에 모아 검색·시각화하는 스택이 필요한데, 대표적인 게 ELK 스택입니다. flowchart LR L["Logstash<br/>(수집·가공)"] --> E["Elasticsearch<b...
키워드가 정확히 일치하지 않아도 의미로 글을 찾아줍니다. 모든 처리는 브라우저 안에서 일어나며 — 서버·API 키·외부 전송이 없습니다. (검색 모델은 처음 한 번만 받고 이후 캐시됩니다.)
매일 자동으로 바뀌는 복습 6선 — Network · OS · Algorithm · Database 각 1편 + 랜덤 2편.

로그가 흩어져 있으면 분석이 안 된다 서버가 여러 대가 되면, 로그를 일일이 SSH로 들어가 tail하는 게 불가능해집니다. 로그를 한곳에 모아 검색·시각화하는 스택이 필요한데, 대표적인 게 ELK 스택입니다. flowchart LR L["Logstash<br/>(수집·가공)"] --> E["Elasticsearch<b...
수십 초 걸리는 처리를 동기로 기다리면 타임아웃이 터진다. 202 Accepted로 작업을 수락하고, 작업 ID로 상태를 폴링하는 비동기 패턴의 원리와 함정을 정리한다.
브라우저의 암묵적 폼 제출과 키 이벤트 기본 동작이 유발하는 원치 않은 서버 요청을 서버 부하 관점에서 진단하고 차단하는 설계.
흩어진 print 로그를 구조화 로깅으로 정비하는 법. JSON 구조 로그, MDC 기반 correlation ID로 분산 요청을 추적하고, 로그 레벨 전략으로 신호와 잡음을 가른다.

개념은 알겠고, 이제 붙여보자 역색인부터 집계, MultiMatch까지 봤으니, 실제로 Spring Boot + Docker Elasticsearch로 검색을 붙여봅니다. 그런데 이 글의 목표는 “동작하는 코드”가 아닙니다. 검색은 돌아가게 만들기는 쉽고 원하는 결과가 나오게 만들기가 어렵습니다. 대부분의 “왜 검색이 안 잡히지?”는 RDB 감각으...

TLS/HTTPS 핸드셰이크(TLS 1.3 1-RTT·0-RTT), 비대칭으로 대칭키를 합의하는 원리, 인증서 체인과 CA 신뢰, forward secrecy, SNI·ALPN, mTLS까지 암호화 채널의 작동을 설명합니다.
읽기가 압도적으로 많은 조회를 캐싱할 때 TTL을 어떻게 정하고, 쓰기와의 무효화를 어떻게 맞추는가. 적중률과 신선도의 트레이드오프를 메커니즘 수준에서 다룬다.

동적 조건 검색의 단골 패턴, WHERE 1=1 MyBatis로 검색 쿼리를 짜다 보면, 조건이 선택적으로 붙는 경우가 많습니다. 이름이 있으면 이름으로, 상태가 있으면 상태로 거는 식이죠. 이때 흔히 쓰는 게 WHERE 1=1 입니다. <select id="search" resultType="User"> SELECT * FROM u...
계정 상태가 바뀔 때 HTML 템플릿에 값을 끼워 메일을 보낸다. 상태별 템플릿 분기, 변수 치환과 인코딩, 그리고 메일 발송을 본 트랜잭션과 분리하는 설계를 다룬다.