블로킹만 값싸지는 가상 스레드
Java 21에서 가상 스레드를 켜기 전에 따질 네 군데를 짚었습니다. synchronized pinning, 풀링, DB·외부 API 포화, CPU 작업. 상한을 앞단 스레드 개수에서 다운스트림으로 옮기는 판단까지 적었습니다.
Java 21에서 가상 스레드를 켜기 전에 따질 네 군데를 짚었습니다. synchronized pinning, 풀링, DB·외부 API 포화, CPU 작업. 상한을 앞단 스레드 개수에서 다운스트림으로 옮기는 판단까지 적었습니다.
스레드 수가 CPU보다 먼저 처리량의 상한이 되는 지점, 리액티브가 그 대가로 가져간 스택 트레이스, Java 21의 가상 스레드가 무엇을 그대로 두려는지 짚었습니다. 스케줄러 parallelism과 타임 셰어링 부재까지 적었습니다.
회사 AI 전환기 두 편에서 못다 한 하네스 설계 이야기. 슬래시 커맨드를 스킬로 만들어 팀원이 직접 치지 않아도 같은 절차를 밟게 하고, 강제를 늘리기보다 덜어낸 판단을 적었습니다.
운영자가 손으로 한 번 더 돌린 배치가 대상을 두 배로 만들었습니다. 배치 경로 대신 모든 진입 경로가 지나는 코어에 가드를 둔 이유를 적었습니다.
롤링 배포 때마다 밀린 스케줄이 재기동 직후 한꺼번에 실행됐습니다. 원인은 Quartz misfire 기본 정책이었고, 그걸 바꾸면서 어디까지 고치고 어디를 남길지 정했습니다.
파일 크기 제한을 통과한 이미지가 힙을 터뜨렸습니다. 크기 대신 디코딩된 픽셀 수를 봐야 했다는 걸 뒤늦게 알았습니다.