
Node.js 이벤트 루프에서 다음 콜백이 실행되는 순서
setTimeout(fn, 0)과 setImmediate(fn)을 같은 위치에서 등록했는데 실행 순서가 바뀌면, timer가 고장 난 것처럼 보일 수 있습니다. 하지만 두 API는 같은 queue에 들어가지 않고, callback을 등록한 위치도 같습니다. 순서를 판단할 때 먼저 봐야 할 것은 delay 값이 아니라 어느 scheduling bound...

setTimeout(fn, 0)과 setImmediate(fn)을 같은 위치에서 등록했는데 실행 순서가 바뀌면, timer가 고장 난 것처럼 보일 수 있습니다. 하지만 두 API는 같은 queue에 들어가지 않고, callback을 등록한 위치도 같습니다. 순서를 판단할 때 먼저 봐야 할 것은 delay 값이 아니라 어느 scheduling bound...

Node.js와 Spring Boot를 “싱글 스레드 대 멀티 스레드” 또는 “어느 쪽이 더 빠른가”로 비교하면 실행 모델을 잃기 쉽습니다. Node.js는 JavaScript runtime이고, Spring Boot는 Servlet 기반 MVC 또는 reactive WebFlux 같은 웹 스택을 구성합니다. 이 글은 같은 HTTP server라는 표...

HTTP handler의 Promise 오류 경계를 잘 설계해도, 잘못된 설정으로 포트를 먼저 열면 process startup은 안전하지 않습니다. 이 글은 Node.js v26에서 ESM module graph가 준비되는 범위와 application이 configuration을 검증하고 server.listen()을 호출하는 범위를 분리합니다. ...

Node.js HTTP handler는 비동기 작업을 시작한 뒤에도 다른 요청을 처리할 수 있습니다. 하지만 async 함수가 반환한 Promise의 실패가 HTTP 응답으로 자동 변환되지는 않습니다. 이 글은 native node:http를 기준으로 Promise, timeout, client disconnect, upstream 오류를 요청 하나의...

Node.js 서버의 성능, Event Loop, Worker Threads, Kubernetes CPU limit을 이해하려면 먼저 요청 하나가 어디에서 시작하고 어느 책임 경계를 지나 애플리케이션 코드에 도착하는지 알아야 합니다. 이 글은 GET /healthz 같은 HTTP 요청을 기준으로 TCP 연결, HTTP 메시지, Node.js 프로세스,...

Node.js 서버에서 응답이 느려졌을 때 Express middleware부터 의심하기 쉽습니다. 하지만 route 코드가 정상이어도 Node.js process가 CPU를 오래 점유하거나, port를 열지 못했거나, container가 종료 신호를 받는 중일 수 있습니다. 원인을 나누려면 Node.js가 JavaScript 언어도, browser도...

GitHub Actions 같은 외부 CI에서 Google Cloud에 배포해야 할 때, Service Account key JSON을 secret에 넣는 방식은 시작은 쉽지만 끝이 어렵습니다. key가 오래 살아남고, 누가 어떤 실행에서 썼는지 분리하기 어렵고, 회전과 폐기까지 운영해야 합니다. 실행마다 외부 OIDC token을 받아 짧은 Goog...

/api 요청에 AWS WAF Challenge를 바로 붙였는데 browser application이 202만 받고 멈춘다면, rule이 고장 난 것이 아니라 request 경계를 잘못 잡았을 가능성이 큽니다. Challenge는 일반 API authentication도, 무조건 차단하는 Block action도 아닙니다. browser가 JavaSc...

이전 글에서는 AWS WAF의 Web ACL, Managed Rule Group, 비용과 공통 rollout을 다뤘습니다. 조직이 직접 근거와 만료를 관리해야 하는 self-managed rule을 AsnMatchStatement, IP set match, rate-based rule 세 가지를 중심으로 다룹니다. 각 수단의 선택 기준, ASN Ma...

웹 애플리케이션은 Structured Query Language(SQL) injection, cross-site scripting(XSS), 취약점 스캔, credential stuffing, 악성 bot, Hypertext Transfer Protocol(HTTP) flood처럼 HTTP 요청의 내용을 이용하는 공격에 계속 노출됩니다. Securit...