Java CompletableFuture orTimeout이 작업 취소는 아닌 이유
응답 timeout 뒤에도 executor 작업이 계속되는 이유를 CompletableFuture의 완료 상태와 실제 작업 중단으로 나누어 설명합니다.
글 읽기개발하다 막혔던 순간부터 해결하며 배운 내용까지, 차근차근 편안하게 풀어갑니다.
응답 timeout 뒤에도 executor 작업이 계속되는 이유를 CompletableFuture의 완료 상태와 실제 작업 중단으로 나누어 설명합니다.
글 읽기응답 timeout 뒤에도 executor 작업이 계속되는 이유를 CompletableFuture의 완료 상태와 실제 작업 중단으로 나누어 설명합니다.
응답 지연을 GC 탓으로 단정하지 않고 pause 시각, allocation rate와 GC 뒤 live set을 연결해 원인을 좁히는 방법을 설명합니다.
OutOfMemoryError가 발생했을 때 고갈된 resource를 구분하고 원인을 좁혀 수정하는 순서를 정리합니다.
classloader 누수 문제가 나타났을 때 먼저 확인할 사실, 원인을 좁히는 순서와 수정 결과를 확인하는 방법을 정리합니다.
OutOfMemoryError가 발생하기 전에 heap·native memory·thread 진단 자료를 안전하게 준비하는 방법을 설명합니다.
Java / thread starvation: 어떤 조건에서 동작하는지와 먼저 알아둘 사실, 실제 확인 기준을 설명합니다.
ThreadLocal 누수: 대응 전에 확인할 조건과 최소 수정 범위, 정상화 여부를 판단하는 기준을 정리합니다.
ThreadLocal 누수: 정상·경계·실패·반복 조건을 확인하고 회귀 테스트로 남기는 방법을 설명합니다.
classloader 누수: 정상·경계·실패·반복 조건을 확인하고 회귀 테스트로 남기는 방법을 설명합니다.
Java / JDK 업그레이드 회귀: 어떤 조건에서 동작하는지와 먼저 알아둘 사실, 실제 확인 기준을 설명합니다.
direct buffer 메모리 문제가 나타났을 때 먼저 확인할 사실, 원인을 좁히는 순서와 수정 결과를 확인하는 방법을 정리합니다.
Java / HashMap 키 설계: 어떤 조건에서 동작하는지와 먼저 알아둘 사실, 실제 확인 기준을 설명합니다.
컨테이너 메모리 제한: 적용 전에 확인할 조건, 작은 적용 순서와 완료 여부를 판단하는 기준을 정리합니다.
컨테이너 메모리 제한: 정상·경계·실패·반복 조건을 확인하고 회귀 테스트로 남기는 방법을 설명합니다.
Java / direct buffer 메모리: 어떤 조건에서 동작하는지와 먼저 알아둘 사실, 실제 확인 기준을 설명합니다.
Stream과 반복문 속도 비교 문제가 나타났을 때 먼저 확인할 사실, 원인을 좁히는 순서와 수정 결과를 확인하는 방법을 정리합니다.
String 결합 성능: 적용 전에 확인할 조건, 작은 적용 순서와 완료 여부를 판단하는 기준을 정리합니다.
Java / 예외 생성 비용: 어떤 조건에서 동작하는지와 먼저 알아둘 사실, 실제 확인 기준을 설명합니다.
GC pause 증가: 대응 전에 확인할 조건과 최소 수정 범위, 정상화 여부를 판단하는 기준을 정리합니다.
deadlock: 정상·경계·실패·반복 조건을 확인하고 회귀 테스트로 남기는 방법을 설명합니다.