#nodejs
노트 14개
Frontend › JavaScript
자바스크립트 패키지 매니저: npm, yarn, pnpm패키지 설치·업데이트·의존성 관리를 맡는 패키지 매니저의 기본(dependencies와 devDependencies, npm 스크립트, 패키지 고르는 법), npm·yarn·pnpm(그리고 Bun)의 차이와 고르는 기준, packageManager 필드와 Corepack, 설치 스크립트 차단 같은 공급망 보안 기본값, npm EINTEGRITY 오류의 원인과 해결.
Frontend › JavaScript
JavaScript 주석: 쓰는 법과 네 가지 문법무엇을 주석으로 쓰고 무엇을 코드로 말할지(무엇·어떻게 대신 왜, 함수 추출, JSDoc), 그리고 ECMAScript 명세에 정의된 주석 네 가지(//, /* */, #! 해시뱅, <!-- --> HTML 유사 주석)의 문법과 동작, 유래를 정리한다. 주석은 공백처럼 취급되지만 줄바꿈을 품은 여러 줄 주석은 줄바꿈으로 취급되고, 나머지 두 형식은 인터프리터 지정과 옛 브라우저 호환을 위해 생겼다.
Frontend › JavaScript
JavaScript는 인터프리터 언어일까, 컴파일 언어일까현대 JS 엔진(V8)은 파싱 → 바이트코드 실행 → 자주 쓰는 코드만 단계적으로 JIT 컴파일하는 혼합 방식이라 둘 중 하나로 딱 자르기 어렵다. V8의 Ignition·Sparkplug·Maglev·TurboFan 파이프라인과 TypeScript 컴파일러·Babel의 단계를 비교하고, 최적화가 기대는 히든 클래스·인라인 캐시·배열 요소 종류를 정리한다. JavaScriptCore·SpiderMonkey의 대응 단계와 OSR, 측정·명시적 코드·벤치마크의 한계 같은 최적화를 대하는 법, Full-codegen·Crankshaft에서 Ignition·TurboFan으로 바뀐 역사도 담았다.
Frontend › JavaScript
npm install이 하는 일: 내 컴퓨터와 앱에 생기는 변화npm으로 패키지를 설치하면 레지스트리에서 코드를 받아 캐시·node_modules·lock 파일에 쓰고, 설치 스크립트를 내 권한으로 실행하고, 명령을 PATH에 연결한다. 로컬·전역 설치가 컴퓨터의 어디를 바꾸는지, 앱의 코드·번들·배포에 무엇이 들어가는지, 되돌리는 법을 정리한다.
Frontend
Electron: 웹 기술로 데스크톱 앱 만들기Electron은 Chromium과 Node.js를 한 앱에 묶어 HTML·CSS·JavaScript로 macOS·Windows·Linux 데스크톱 앱을 만든다. 앱 수명과 OS 기능을 맡는 메인 프로세스, 창마다 뜨는 렌더러 프로세스, 둘을 잇는 preload·contextBridge·IPC 구조와, 기본으로 켜진 컨텍스트 격리·샌드박스 같은 보안 기본값, 패키징과 릴리스 주기, OS 웹뷰를 쓰는 Tauri와의 차이를 정리한다.
Backend › Database
Prisma: 커서로 이전·다음 항목 찾기와 CLINode.js ORM Prisma의 cursor·skip·take로 상세 화면의 이전/다음 항목 키를 조회하는 방법과, 자주 쓰는 Prisma CLI 명령.
Backend › Express
Express 라우팅과 CRUD APIExpress로 서버를 띄우고 Router로 경로를 분리해 REST 방식의 CRUD API를 만드는 방법.
Backend › Express
Express 미들웨어요청과 최종 라우트 핸들러 사이에서 로깅·파싱·에러 처리 같은 공통 작업을 수행하는 함수 체인.
Backend › Express
Express 프로젝트 구조: 3계층, 이벤트, DI, 로더구조를 강제하지 않는 Express 앱을 오래 고칠 수 있게 나누는 법. 라우트·서비스·데이터 접근 3계층, 서비스에서 HTTP를 떼어 내기, 부수 작업을 이벤트 구독자로 분리, 생성자 주입, 설정 모듈, DB 기반 작업 스케줄러, 시작 과정을 로더로 쪼개기를 정리했다.
Backend › Express
Koa: 미들웨어만 남긴 Node.js 웹 프레임워크Express 팀이 만든 Node.js 웹 프레임워크 Koa. 코어에는 미들웨어와 ctx(Context)만 두고 라우팅·바디 파싱은 @koa/router·@koa/bodyparser로 붙인다. async 미들웨어가 await next() 앞뒤로 감싸는 양파 모델, 라우트 모듈화와 컨트롤러 분리를 정리한다.
Backend › Express
Node.js 런타임: 구조·이벤트 루프·운영과 OS 차이브라우저 밖에서 JavaScript를 실행하는 런타임 Node.js를 정리한다. V8·libuv·스레드 풀로 이뤄진 구조, timers·poll·check 단계로 도는 Node 이벤트 루프와 nextTick·setImmediate의 차이, EventEmitter와 Buffer, cluster·worker_threads·child_process로 멀티코어 쓰기, 비동기 에러 처리와 --inspect 디버깅, 힙 크기 설정과 운영 관례, Node의 설계를 반성하며 나온 Deno·Bun, Windows·macOS 차이로 깨지는 환경 변수와 경로를 cross-env와 path 모듈로 푸는 법까지.
Backend › Express
Node.js 스트림: 데이터를 조각으로 흘려 처리하기큰 데이터나 끝이 없는 데이터를 통째로 메모리에 올리지 않고 조각(chunk) 단위로 처리하는 Node.js 스트림을 정리한다. Readable·Writable·Duplex·Transform 네 종류, 흐름 모드와 일시정지 모드, 백프레셔와 highWaterMark, objectMode, pipe의 함정과 pipeline, for await 비동기 반복, 웹 스트림과의 관계, streams1~3의 변천까지.
Backend
NestJSExpress·Fastify 위에 모듈·DI·데코레이터 기반 아키텍처를 얹은 TypeScript Node.js 서버 프레임워크.
Backend › NestJS
NestJS 프로젝트 구조와 실행 흐름Nest CLI로 만든 프로젝트의 파일 구성과 main.ts에서 컨트롤러·서비스까지 요청이 흘러가는 기본 흐름.