NestJS 서버로 추적하는 이벤트 루프 — 이론에서 실전으로 (5편)
이벤트 루프 이론을 실제 NestJS 서버 코드에 대입합니다. 서버 시작부터 HTTP 요청 처리까지, 6개 페이즈가 실제로 어떤 역할을 하는지 추적합니다.
이벤트 루프 이론을 실제 NestJS 서버 코드에 대입합니다. 서버 시작부터 HTTP 요청 처리까지, 6개 페이즈가 실제로 어떤 역할을 하는지 추적합니다.
이벤트 루프의 6개 페이즈를 하나씩 살펴봅니다. 타이머 힙의 동작 방식, Poll이 메인 무대인 이유, setTimeout(0)과 setImmediate의 순서가 달라지는 원리, 그리고 process.nextTick과 Promise가 매 페이즈 사이에 끼어드는 구조까지 정리합니다.
1편에서 Node.js의 내부 구조를, 2편에서 프로세스와 스레드의 기본 개념을 확인했습니다. 이번에는 "싱글 스레드인데 어떻게 동시 처리가 가능한가"라는 질문에 답하기 위해, 콜 스택과 이벤트 루프의 관계, libuv가 작업을 처리하는 두 가지 방식, 그리고 이벤트 루프 6개 페이즈의 실체를 소스코드로 확인해봤습니다.
Node.js의 libuv 스레드 풀을 이해하려면 OS 기초가 필요합니다. 프로세스와 스레드의 차이, CPU 코어와 소프트웨어 스레드의 관계, 메모리 동적 할당까지 — Node.js 동시성의 전제 지식을 정리합니다.
면접 준비를 하다가 "Node.js가 뭔가요?"라는 질문에 제대로 답할 수 없다는 걸 깨달았습니다. 런타임이 뭔지, V8과 libuv가 각각 무슨 역할인지, 실제 Node.js GitHub 소스코드를 열어서 os.hostname() 한 줄이 OS까지 도달하는 과정을 추적해봤습니다.
병합 완료된 브랜치를 정리할 때마다 워크트리 해제, 디렉토리 삭제, 로컬/리모트 브랜치 삭제를 순서대로 기억해야 했습니다. Claude Code Skills로 이 과정을 자동화한 경험과 SKILL.md 전문을 공유합니다.
Claude Code Skills로 git worktree 기반 병렬 개발 환경을 자동화한 경험을 공유합니다. 환경변수 복사, 포트 격리, Docker DB 분리, E2E 테스트 대응, Slack 알림까지 포함된 워크플로우를 만들었습니다.
GitHub에서는 볼 수 없는 로컬 브랜치와 worktree 상태를 웹 브라우저에서 한눈에 확인하고 싶었습니다. NestJS 백엔드에서 git CLI를 실행하고 결과를 파싱하는 방식으로 Admin 패널에 Git 대시보드를 구현한 과정을 정리합니다.
운영을 접었던 Proxmox 홈서버를 다시 켰습니다. 재개가 아니라, 추후를 위한 스펙 정리가 목적이었습니다. 서브넷 불일치 문제 해결과 Linux 스펙 확인 명령어를 기록합니다.