EKS에 올린 Spring Boot 서비스에서 특정 API 하나만 간헐적으로 504 Gateway Timeout을 냈다. 그 API는 관리자 화면에서 배치 작업을 즉시 실행하는 용도였다. 평소엔 잘 되다가 데이터가 많은 날만 실패했다. 결론은 ALB idle timeout 60초였다. 그런데 거기까지 가는 데 며칠이 걸렸다. 왜 돌아갔는지까지 포함해서 기록한다. 증상 마지막 세 가지가 힌트였는데, 처음엔 더 읽기
트러블슈팅
Claude Code에서 API Error: 400 no low surrogate in string 오류가 뜰 때 — 원인과 해결
Claude Code로 한창 작업하다가 갑자기 아래와 같은 오류가 뜨면서 응답이 끊기는 경우가 있다. 코드를 잘못 짠 것도 아니고, 네트워크가 끊긴 것도 아니다. 그런데 이후 어떤 명령을 넣어도 같은 오류가 반복된다. 이 글은 이 오류가 왜 나는지, 그리고 어떻게 벗어나는지를 정리한 것이다. 결론부터 Claude Code가 API로 보내는 요청 본문(JSON) 안에 깨진 더 읽기
Spring Batch Stack Trace 분석: 예외 발생 위치와 전달 순서 이해하기
Spring Batch 기반의 배치 작업을 수행하던 중 다음과 같은 예외가 발생했습니다. com.sample.common.exception.CustomException: 테스트용 오류 발생 예시입니다. at com.sample.batch.job.ExampleJob.lambda$1(ExampleJob.java:174) … at com.sample.SampleBatchApplication.main(SampleBatchApplication.java:118) 해당 Stack Trace를 보면 ExampleJob.lambda$1 메서드에서 CustomException이 발생했으며, 이 예외는 Spring Batch 내부 프로세스를 거쳐 main() 메서드까지 전파되었습니다. 이를 이해하기 위해 다음과 같은 예외 전달 순서를 주목할 수 있습니다: 더 읽기