JavaJDK가 유출된 인증서를 믿을 때: CVE-2026-91403 eMudhra 대응기JDK 기본 신뢰 목록(cacerts)에 남은 eMudhra 루트 때문에 생긴 TLS 중간자 위험을, 온프레미스 고객사별로 Amazon Corretto 수정판을 배포하거나 현장에서 cacerts의 루트 인증서 4개를 지워 막은 과정을 정리합니다.2026년 10월 30일24 min read
웹SseEmitter를 반환하고 나서 시작된 일들SSE는 컨트롤러에서 SseEmitter를 반환하면 화면이 뜹니다. 그런데 운영에 올리면 부하, 스레드 격리, 전송 순서, 종료, 세션 만료, 재연결, 권한 회수가 차례로 문제가 됩니다. 한 대시보드에서 실제로 부딪힌 순서대로 정리했습니다.2026년 7월 24일37 min read
Springpgjdbc 42.7.11 JSONB 반환 타입 변경과 TypeHandler 대응pgjdbc 42.7.11에서 JSONB 컬럼의 반환 타입이 String에서 PGobject로 변경되었습니다. MyBatis 커스텀 TypeHandler를 글로벌 등록하여 기존 코드 변경 없이 호환성을 유지하는 방법을 정리합니다.2026년 5월 6일19 min read
JSJavaScript 비동기 처리 - 콜백에서 async/await까지JavaScript 비동기 처리의 진화 과정을 정리합니다. 콜백 함수의 한계부터 Promise, async/await까지 단계별로 다룹니다.2026년 3월 20일22 min read
DBFOR UPDATE로 다중 서버 동시성 제어하기 — 비관적 잠금 실전같은 PostgreSQL DB를 보는 웹 서버와 에이전트 서버가 같은 행을 동시에 읽고 UPDATE하면서 발생한 갱신 손실·중복 처리 문제를, FOR UPDATE 비관적 잠금으로 해결한 과정을 정리합니다. UPDATE만으로는 왜 경합이 예외 없이 통과되는지, NOWAIT·SKIP LOCKED 옵션 선택, Spring+MyBatis 적용과 TOCTOU 방지 실전 사례까지 다룹니다.2026년 7월 6일42 min read
JavaJDK가 유출된 인증서를 믿을 때: CVE-2026-91403 eMudhra 대응기보안/JavaJDK가 유출된 인증서를 믿을 때: CVE-2026-91403 eMudhra 대응기JDK 기본 신뢰 목록(cacerts)에 남은 eMudhra 루트 때문에 생긴 TLS 중간자 위험을, 온프레미스 고객사별로 Amazon Corretto 수정판을 배포하거나 현장에서 cacerts의 루트 인증서 4개를 지워 막은 과정을 정리합니다.2026년 10월 30일24 min read
웹 · 시리즈 2편SseEmitter를 반환하고 나서 시작된 일들개발/웹SseEmitter를 반환하고 나서 시작된 일들SSE는 컨트롤러에서 SseEmitter를 반환하면 화면이 뜹니다. 그런데 운영에 올리면 부하, 스레드 격리, 전송 순서, 종료, 세션 만료, 재연결, 권한 회수가 차례로 문제가 됩니다. 한 대시보드에서 실제로 부딪힌 순서대로 정리했습니다.2026년 7월 24일37 min read
웹 · 시리즈 1편폴링, 롱폴링, SSE, WebSocket — 네 가지 실시간 통신 방식과 선택 기준개발/웹폴링, 롱폴링, SSE, WebSocket — 네 가지 실시간 통신 방식과 선택 기준폴링·롱폴링·SSE·WebSocket을 HTTP의 무상태·비연결성 제약이라는 관점에서 정리하고, 통신 방향·실시간성·동시 사용자 수로 방식을 좁혀 가는 선택 기준을 설명합니다.2026년 7월 21일34 min read