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