-
The Day ConcurrentHashMap Returned an Empty List TOP NEW
Opening “The query definitely has results, but why is the list empty?” The DAO method in our real-time settlement system suddenly started returning empty lists. When we added logging, the ResultSet data clearly existed, but the final result list was empty. What was even stranger was the error log: java.lang.NullPointerException at ConcurrentHa... Read More
-
ConcurrentHashMap이 비어있는 리스트를 반환하던 날 TOP NEW
여는 글 “분명 쿼리 결과는 있는데 왜 리스트가 비어있지?” 실시간 정산 시스템의 DAO 메서드가 갑자기 빈 리스트를 반환하기 시작했습니다. 로그를 찍어보니 ResultSet의 데이터는 분명히 존재했는데, 최종 결과 리스트는 텅 비어있었죠. 더 이상했던 건 에러 로그였습니다. java.lang.NullPointerException at ConcurrentHashMap.putVal(). ConcurrentHashMap에 데이터를 넣는데 NPE라니? 이 순간부터 시작된 디버깅 여정과 그 과정에서 깨달은 자료구조 선택의 중요성을 공유합니다. 문제 상황 - 사라진 데이터의 미스터리 증상 실시간 정산 데몬이 복잡... Read More
-
The Uncomfortable Truth About Batch Processing - Thread, Daemon, and Transaction Rollback Limitations TOP NEW
Opening “Why are you still creating batches by extending Thread when you could use Spring Batch?” Yes, they’re right. If building something new in 2025, Spring Batch or commercial batch frameworks would be the correct choice. But what about reality? Legacy systems that are 10 or 15 years old are still full of batch classes that extend Thread. ... Read More
-
배치 작업의 불편한 진실 - Thread, Daemon 그리고 트랜잭션 롤백의 한계 TOP NEW
여는 글 “Spring Batch 쓰면 되는데 왜 굳이 Thread를 extends해서 배치를 만드시나요?” 맞습니다. 2025년에 새로 만든다면 Spring Batch나 상용 배치 프레임워크를 쓰는 게 정답입니다. 하지만 현실은 어떨까요? 10년, 15년 된 레거시 시스템들은 여전히 Thread를 extends한 배치 클래스들로 가득합니다. 그리고 이런 배치들이 퇴근 후에 터지면, Thread와 Daemon의 차이를 모르는 개발자는 원인조차 찾기 어렵습니다. 현실의 배치 시스템 - Thread extends의 시대 왜 아직도 Thread extends 구조인가? 대기업 금융권이나 시스템을 들여다보면 놀라... Read More
-
Mastering TimeoutException in Financial Payment Systems TOP NEW
Opening “We got a timeout error, but the customer says the payment went through!” 3 AM, emergency call. A TimeoutException occurred in our real-time settlement system, yet the money had already landed in the customer’s account. This marked the beginning of our war against timeouts and the various timeout issues that arise from the complex hier... Read More