평균과 최댓값이 놓치는 것을 백분위가 어떻게 잡아내는지, 계산 방식과 Prometheus histogram_quantile의 오차까지 정리합니다.
요청이 Controller에 닿기까지 Spring Security가 어느 길목에서 동작하는지, 어떻게 필터 체인에 끼어들고, 결국 무슨 일을 하는지 큰 그림을 정리합니다.
@Version 한 줄로는 끝나지 않습니다. 락이 우회되는 함정, 트랜잭션 안에서 예외를 못 잡는 이유, 진짜 동작을 검증하는 동시성 테스트 패턴까지 정리합니다.
스프링 내부 이벤트를 왜 쓰는지, 직접 호출과 무엇이 다른지 정리합니다.
Java의 Checked Exception과 Unchecked Exception의 차이, 선택 기준, Spring 트랜잭션 롤백과 실무에서 주의할 점을 정리합니다.
멀티스레드 환경에서 공유 자원을 보호하는 방법. ReentrantLock, ConcurrentHashMap, computeIfAbsent를 조합해 계좌별 인메모리 락을 구현하고, 인메모리 락과 분산 락의 선택 기준을 살펴봅니다.
Bean Validation의 선언-실행 두 단계 구조를 이해하고, @Valid가 동작하지 않는 상황과 SelfValidating 패턴으로 생성 시점에 검증하는 방법을 살펴봅니다.
테스트에서 외부 의존성을 대체하는 두 가지 방법, Fake 객체와 Mockito의 차이와 언제 어떤 것을 선택해야 하는지 살펴봅니다.
커스텀 예외가 늘어날 때 계층 구조로 정리하는 방법, Spring 전역 예외 처리, RFC 9457 표준 에러 응답까지 순서대로 살펴봅니다.
컬렉션을 클래스로 감싸는 이유와 일급 컬렉션이 가져다주는 네 가지 장점을 정리합니다.
원시 타입 대신 Value Object를 사용하는 이유와 불변 객체 설계 방법을 정리합니다.
JVM의 메모리 구조를 영역별로 정리하고, 각 영역의 역할과 동작 방식을 설명합니다.
MySQL B-Tree 인덱스의 개념, 구조, 설계 원칙을 정리합니다.
조건에 맞는 글이 없습니다.