태그: Node.js
35편
-
pnpm 패키지 매니저: 심볼릭 링크 구조, 모노레포 워크스페이스, phantom dependency 해결
pnpm이 콘텐츠 주소 저장소와 하드 링크·심볼릭 링크로 node_modules를 만드는 방식, phantom dependency를 막는 이유, 워크스페이스·catalog·호이스팅 설정, overrides·patch·Turborepo 연동과 npm에서 옮길 때 자주 막히는 지점을 정리합니다.
-
Bun 런타임 실전: bun install·Bun.serve·bun:test와 Node.js 호환성 점검
bun init과 bun install로 프로젝트를 시작하고 Bun.serve HTTP 서버, bun:sqlite, bun:test, bun build 번들링과 단일 실행 파일, Bun Shell, Workspaces를 예제로 써 본 뒤, 타입 검사·lockfile·테스트 격리처럼 Node.js에서 옮길 때 달라지는 점을 점검합니다.
-
MongoDB 입문: SQL과의 차이, CRUD, Mongoose, 집계 파이프라인, 인덱싱과 성능
MongoDB를 처음 쓸 때 SQL과 다른 문서 모델, 드라이버 CRUD, Mongoose 스키마, 집계 파이프라인, 부분·텍스트 인덱스, 복제 세트와 트랜잭션을 다루고, 전자상거래 주문·매출 분석·재고 동시성 제어 예제로 설계 판단을 연습합니다.
-
NestJS로 백엔드 만들기: 모듈·컨트롤러·서비스, DTO 검증, TypeORM, 가드·인터셉터
NestJS로 백엔드를 개발하는 방법. Express·Koa와의 차이, 모듈·컨트롤러·서비스 구조와 의존성 주입, DTO 유효성 검사, CLI로 CRUD 생성, TypeORM 연동, 가드·인터셉터·예외 필터, 문서화를 다룹니다.
-
Effect-TS로 Promise의 한계 넘기: 에러를 타입으로, Context 의존성 주입, Fiber 동시성
Effect-TS 정리. Promise·async/await의 한계를 넘어 에러를 타입으로, 의존성을 Context로, 동시성을 Fiber로 표현하는 함수형 TypeScript 런타임과 React·Node 적용 예제를 다룹니다.
-
Express.js 내부 이해하기: 미들웨어 체인 순서, Router, 에러 파이프라인, 운영 패턴
Express 앱이 미들웨어 배열로 요청을 처리하는 방식과 next의 동작, Router 구성, 인자 4개짜리 에러 미들웨어를 설명합니다. async 핸들러의 Promise 거부가 에러 핸들러로 넘어가지 않는 문제, 404와 에러 핸들러 순서, trust proxy·Helmet·그레이스풀 셧다운 설정도 다룹니다.
-
Fastify 깊이 보기: 스키마 기반 직렬화, find-my-way 라우터, 훅 생명주기, 플러그인
Fastify가 JSON 스키마를 미리 컴파일해 검증과 직렬화 비용을 줄이는 방식, find-my-way 라우터의 경로 매칭과 제약 조건, onRequest·preHandler·onSend 훅 순서를 설명합니다. 플러그인 캡슐화와 fastify-plugin, trustProxy, 과부하 보호, 우아한 종료 같은 운영 설정도 다룹니다.
-
CORS 에러를 제대로 이해하기: 동일 출처 정책, 프리플라이트, credentials와 헤더 해석
CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유)는 서버가 “이 출처의 스크립트가 응답 본문을 읽어도 된다”고 브라우저에 알려 주는 HTTP 헤더 규약입니다.
-
Node.js 백엔드 깊이 보기: libuv·워커 스레드·스트림·우아한 종료·프로덕션 패턴
libuv 이벤트 루프의 페이즈 순서와 setImmediate·setTimeout 실행 차이를 짚고, CPU 작업을 worker_threads와 child_process 중 어디로 보낼지, stream pipeline과 highWaterMark 설정, SIGTERM을 받았을 때의 우아한 종료 순서를 설명합니다.
-
Bun 런타임 내부 구조 심화 — JavaScriptCore·Zig FFI·번들러·HTTP·프로덕션
Bun이 V8 대신 JavaScriptCore를 쓰는 이유, bun:ffi로 C ABI를 직접 호출하는 방식과 N-API 애드온의 관계, 트랜스파일러와 Bun.build의 역할 분담, Bun.serve와 Node libuv 서버의 구조 차이를 설명합니다.
-
WebContainer API로 브라우저 안에서 Node.js 실행하기: 크로스 오리진 격리, 파일 마운트, 프로세스
StackBlitz의 WebContainer API로 브라우저 탭 안에서 Node.js를 실행하는 방법을 다룹니다. COOP·COEP 크로스 오리진 격리 헤더 설정, boot·mount·spawn으로 파일을 올리고 npm 설치와 개발 서버를 띄우는 흐름, 단일 인스턴스 제약과 보안 한계를 설명합니다.
-
WebSocket 실시간 통신: RFC 6455 업그레이드와 프레임, Socket.io 채팅, Redis 확장, 프로덕션 디버깅
WebSocket으로 실시간 통신을 구현하는 방법. 프로토콜 업그레이드와 프레임, 하트비트, 기본 WebSocket API, Socket.io, 채팅 앱 예제, Redis로 여러 서버 확장, 프로덕션에서만 연결이 끊기던 디버깅 사례를 다룹니다.
-
Socket.IO 실시간 통신: Room과 Broadcasting, Namespace, 인증, React 연동, Redis Adapter
Socket.IO로 실시간 통신을 구현하는 방법. 설치와 기본 사용, Room, Broadcasting, Namespace, 인증, React 통합, Redis Adapter로 여러 서버 확장을 예제로 정리합니다.
-
Puppeteer로 브라우저 자동화: 스크래핑, 스크린샷·PDF 생성, 폼 자동화, 대기 전략
Puppeteer가 Chrome DevTools Protocol을 감싸는 구조와 Playwright·Selenium 비교, 헤드리스 브라우저로 텍스트 스크래핑, 전체 페이지·요소 스크린샷, PDF 생성, 로그인·파일 업로드 폼 자동화, waitForSelector 대기 전략을 다룹니다.
-
Electron 데스크톱 앱: Main Process와 IPC, React 통합, 자동 업데이트, Chromium·Node 구조
Electron으로 크로스 플랫폼 데스크톱 앱을 만드는 방법. 프로젝트 구조, Main Process, IPC 통신, React 통합, 파일 시스템 접근, 자동 업데이트, 빌드와 배포, Chromium과 Node.js 통합 구조를 다룹니다.
-
TypeORM vs Prisma 비교 | 타입 안전성·마이그레이션·쿼리·성능 실전 가이드
TypeORM의 데코레이터 엔티티와 Prisma의 스키마 파일 방식이 타입 안전성, 마이그레이션 관리, 쿼리 작성, Edge 런타임 지원에서 어떻게 갈리는지 비교하고, Drizzle·Kysely까지 포함해 프로젝트 성격에 따른 선택 기준을 제시합니다.
-
Node.js 실전 글 모음 | 시리즈 목차·학습 경로
Node.js 시리즈 01~10편과 Docker Compose, Redis 캐싱, Nginx 리버스 프록시, GitHub Actions CI/CD, Kubernetes 배포로 이어지는 운영 심화 글을 학습 단계별로 묶고, 목적에 맞게 골라 읽는 경로를 안내합니다.
-
Docker Compose로 Node API·PostgreSQL·Redis 한 번에 띄우기
Node.js API, PostgreSQL, Redis를 docker-compose.yml 하나로 정의하고 .env 관리, /health 헬스체크와 depends_on 조건, 볼륨, 재시작 정책, 리소스 제한, 프로파일, 마이그레이션 실행 시점을 실무 템플릿으로 설명합니다.
-
GitHub Actions로 Node.js CI/CD 파이프라인 만들기 | 테스트·빌드·Docker·배포
GitHub Actions 하나의 워크플로로 Node.js 앱을 테스트하고 멀티 스테이지 Dockerfile로 이미지를 빌드해 푸시한 뒤 스테이징과 프로덕션에 배포합니다. npm 캐시, Node·OS 매트릭스, 재사용 워크플로도 다룹니다.
-
Kubernetes minikube로 Node API 배포하기 | Deployment·Service
minikube로 로컬 Kubernetes 클러스터를 띄우고 헬스 엔드포인트가 있는 Node.js API 이미지를 클러스터에 적재한 뒤, Deployment와 Service 매니페스트를 적용하고 port-forward로 접속을 확인하는 과정을 kubectl 중심으로 설명합니다.
-
Nginx 리버스 프록시로 Node.js 서비스 앞단 구성하기 | SSL·upstream·로그
Node.js 앞단에 Nginx를 두고 upstream과 프록시 헤더, Let's Encrypt 인증서 기반 HTTPS, Express trust proxy 설정, 버퍼링과 타임아웃, least_conn·ip_hash 로드 밸런싱, 레이트 리밋과 액세스 로그를 구성합니다.
-
Redis 캐싱 전략 패턴 5가지 | Cache-Aside부터 Refresh-ahead까지
Cache-Aside, Read-Through, Write-Through, Write-Behind, Refresh-ahead 캐싱 패턴의 지연과 일관성 차이를 비교하고, TTL과 무효화, 캐시 스탬피드 방지, RDB·AOF 영속성과 LRU·LFU 축출 정책을 Node.js 예제로 설명합니다.
-
TypeScript 실전 프로젝트 | REST API 서버 만들기
Express와 TypeScript로 사용자 CRUD REST API를 만들며 타입 정의, 메모리 저장소, 서비스·컨트롤러·라우터 계층을 나누는 구조를 따라갑니다. tsconfig와 빌드 스크립트 설정, 컴파일러가 보장하지 못하는 req.body 검증 문제도 함께 다룹니다.
-
Node.js 모듈 시스템: CommonJS vs ES Modules, 모듈 캐싱, 순환 참조, 모듈 해석 규칙
Node.js 모듈 시스템 정리. CommonJS와 ES Modules의 차이, 내장 모듈, 모듈 캐싱, 순환 참조, 모듈 해석 규칙, package.json의 type·exports 필드를 예제로 다룹니다.
-
Node.js 비동기 프로그래밍 | Callback, Promise, Async/Await
에러 우선 콜백과 콜백 지옥, Promise 체이닝과 정적 메서드, async/await 병렬 처리와 에러 처리를 다루고, libuv 이벤트 루프 페이즈에서 process.nextTick과 Promise 마이크로태스크가 실행되는 순서를 예제로 설명합니다.
-
Express.js 기초: 라우팅, 미들웨어, REST API 구축, 요청·응답 처리, 보안 설정
Express 설치와 기본 서버, 경로 매개변수·쿼리 문자열 라우팅과 라우터 분리, 애플리케이션·내장·서드파티·커스텀 미들웨어, CRUD REST API와 상태 코드, 에러 처리 미들웨어를 블로그 API 예제로 구현합니다.
-
Node.js fs 모듈: 파일 읽기·쓰기, 디렉터리 관리, 스트림, 파일 감시, 에러 처리
Node.js fs 모듈의 동기·콜백·Promise API 차이와 인코딩, JSON 파일 읽기·쓰기, stat과 디렉터리 재귀 탐색, 스트림과 pipe를 이용한 대용량 파일 처리와 압축, fs.watch·chokidar 파일 감시를 예제로 설명합니다.
-
Node.js 데이터베이스 연동 | MongoDB, PostgreSQL, MySQL
Node.js에서 Mongoose로 MongoDB 스키마와 관계를, pg와 Sequelize로 PostgreSQL을, mysql2로 MySQL을 연동하고 Express REST API에 붙입니다. 인덱스, N+1 문제, 페이지네이션, 커넥션 풀 설정도 다룹니다.
-
Node.js 인증과 보안 | JWT, bcrypt, 세션, OAuth
bcrypt로 비밀번호를 해싱해 회원가입을 구현하고, JWT 발급·검증과 인증·권한 미들웨어, Refresh Token, express-session, Passport.js Google OAuth, Helmet·Rate Limiting·CORS·입력 검증 보안 설정을 다룹니다.
-
Node.js 테스트: Jest 기본과 Mock, Supertest API 테스트, DB 테스트, Mocha+Chai
Node.js 테스트 정리. Jest 기본과 비동기 테스트, Mock과 Spy, Supertest로 API 테스트, 데이터베이스와 통합 테스트, Mocha+Chai, 커버리지 측정을 예제로 다룹니다.
-
Node.js 배포 가이드 | PM2, Docker, AWS, Nginx
로컬에서 node app.js로 돌리던 것을 프로세스 관리(PM2)·리버스 프록시(Nginx)·컨테이너(Docker)까지 올리면, 재시작·로그·환경 분리·무중단 배포 같은 운영 요구를 맞출 수 있습니다.
-
Node.js 성능 최적화 | 클러스터링, 캐싱, 프로파일링
Cluster 모듈과 PM2 클러스터 모드로 CPU 코어를 활용하고, 인메모리·Redis 캐싱과 무효화, DB 인덱스와 커넥션 풀, 동시 실행 제한, 메모리 누수 방지, clinic.js·Chrome DevTools 프로파일링, autocannon 벤치마킹을 다룹니다.
-
Node.js 시작하기 | 설치, 설정, Hello World
Node.js가 V8과 libuv로 JavaScript를 서버에서 실행하는 구조, 브라우저 환경과의 차이를 짚고 Windows·macOS·Linux 설치와 nvm 버전 관리, 첫 HTTP 서버와 라우팅, npm과 package.json scripts까지 다룹니다.
-
JavaScript 시작하기: 개발 환경, 기본 문법, 브라우저에서 실행하기
JavaScript와 ECMAScript의 관계, 브라우저와 Node.js 실행 환경의 차이, V8 엔진과 이벤트 루프·가비지 컬렉션의 기본 구조를 살펴본 뒤 변수·타입·연산자와 var·let·const 선택 기준으로 첫 코드를 작성합니다.
-
npm install 에러 해결 10가지: EACCES, ENOSPC, Timeout, peer dependency
npm install이 EACCES, ENOSPC, ERR_SOCKET_TIMEOUT, peer dependency 충돌, ERESOLVE, 404, node-gyp 빌드 실패, 캐시 손상, lock 파일 충돌, Windows 경로 길이 제한으로 실패할 때 원인별 해결책을 정리합니다.