지우지 않고 제외했다가 되살리기 — 복원 가능한 제외
매핑에서 항목을 영구 삭제하는 대신 '제외' 상태로 두었다가 복원하는 가역적 제외 설계. soft delete와의 차이, 조회 분기, 이력 운영까지.
키워드가 정확히 일치하지 않아도 의미로 글을 찾아줍니다. 모든 처리는 브라우저 안에서 일어나며 — 서버·API 키·외부 전송이 없습니다. (검색 모델은 처음 한 번만 받고 이후 캐시됩니다.)
매일 자동으로 바뀌는 복습 6선 — Network · OS · Algorithm · Database 각 1편 + 랜덤 2편.
매핑에서 항목을 영구 삭제하는 대신 '제외' 상태로 두었다가 복원하는 가역적 제외 설계. soft delete와의 차이, 조회 분기, 이력 운영까지.

환경마다 다른 값, 어떻게 관리하지 개발 DB와 운영 DB 주소가 다르고, 로컬에선 로그를 자세히, 운영에선 간략히 찍고 싶습니다. 이런 값을 코드에 박아두면 환경이 바뀔 때마다 재빌드해야 하죠. Spring Boot의 외부 설정(Externalized Configuration) 이 이 문제를 풀어줍니다. 그런데 외부 설정에서 사람들이 가장 자주 ...
푸시 발송과 도착의 분리, 만료 토큰 정리, 대량 발송 배치 전략. 비동기 알림 파이프라인의 함정을 정리한다.
검색 문서의 한 필드만 부분 갱신하는 범용 인터페이스 설계와, 매핑 타입·동적 매핑의 함정, 부분 갱신과 재색인의 경계.

메인 클래스의 그 한 줄 Spring Boot 프로젝트를 만들면 항상 이 코드가 있습니다. @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication...
버튼 연타로 들어오는 중복 요청을 서버에서 디바운스 윈도로 걸러내는 방법과, 멱등키와의 차이를 설명한다.
무거운 목록·카운트 조회를 관계형 DB에서 검색엔진으로 이관하고, 읽기 경로를 분리하며 캐시를 정리하는 판단.

new 키워드가 문제였다 처음엔 서비스 안에서 필요한 객체를 그냥 new로 만들었습니다. public class OrderService { private final PaymentClient paymentClient = new PaymentClient(); // 직접 생성 } 문제는 테스트할 때 드러났습니다. PaymentClient를 가...

Bloom 필터·HyperLogLog·Count-Min 스케치 — 정확도를 메모리와 바꾸는 확률적 자료구조. 거짓 양성률, 카디널리티 추정, Redis·Cassandra 응용을 그림으로.