
Spring Boot에서 Redis 클러스터 설정하기
클러스터는 띄웠고, 이제 애플리케이션에서 쓰자 Docker로 Redis 클러스터를 구성했으니 Spring Boot에서 연결합니다. 그런데 단일 노드를 쓰던 코드를 그대로 클러스터에 붙이면 십중팔구 두 가지에서 터집니다 — CROSSSLOT 에러와 redis-cli에서 안 보이는 깨진 값. 둘 다 “클러스터가 키를 어떻게 노드로 보내는가”와 “값을 어...
키워드가 정확히 일치하지 않아도 의미로 글을 찾아줍니다. 모든 처리는 브라우저 안에서 일어나며 — 서버·API 키·외부 전송이 없습니다. (검색 모델은 처음 한 번만 받고 이후 캐시됩니다.)
매일 자동으로 바뀌는 복습 6선 — Network · OS · Algorithm · Database 각 1편 + 랜덤 2편.

클러스터는 띄웠고, 이제 애플리케이션에서 쓰자 Docker로 Redis 클러스터를 구성했으니 Spring Boot에서 연결합니다. 그런데 단일 노드를 쓰던 코드를 그대로 클러스터에 붙이면 십중팔구 두 가지에서 터집니다 — CROSSSLOT 에러와 redis-cli에서 안 보이는 깨진 값. 둘 다 “클러스터가 키를 어떻게 노드로 보내는가”와 “값을 어...
예외 응답에 담긴 스택트레이스와 내부 정보가 공격자에게 주는 단서, 사용자용 메시지와 내부 로그를 분리하는 설계를 다룬다.
여러 스레드가 같은 HashMap을 건드리면 무한 루프·유실·깨진 상태가 나온다. HashMap이 스레드 세이프하지 않은 이유와 ConcurrentHashMap·불변 스냅샷의 선택을 다룬다.
피처 플래그로 미완성 기능을 숨기고, 점진적으로 노출하며, 장애 시 즉시 차단하는 킬스위치를 구현하는 원리를 다룬다.
@Transactional(readOnly=true)가 더티체킹과 flush를 끄고, 일부 환경에서 읽기 복제본으로 라우팅하는 메커니즘을 정확히 다룬다.

클러스터, 일단 로컬에서 띄워보자 Redis Cluster의 개념을 봤으니 직접 띄워봅니다. Docker로 마스터 3 + 복제본 3 = 6노드 클러스터를 구성해보겠습니다. 해시 슬롯 복습 Redis Cluster는 키를 16384개의 해시 슬롯에 나눠 담고, 슬롯을 마스터들이 나눠 갖습니다. flowchart LR K["key 'user...
트랜잭션 격리수준이 막는 이상현상(더티/논리피터블/팬텀)과 MVCC 스냅샷이 동시 읽기를 어떻게 일관되게 보여주는지 다룬다.
한 주소 문자열로 좌표를 찾으면 실패가 잦다. 도로명과 지번을 분리해 각각 탐색하고, 실패한 주소를 드러내 정확도를 높이는 지오코딩 전략을 다룬다.
문자열로 다뤄지던 수치 값이 합산·비율 계산 단계에서 만드는 오류. 문자열 합산 시 정렬·연결 사고, 변수 타입을 숫자로 못박는 경계, 0/NULL 분모 방어를 다룬다.