본문 바로가기

framework_library/nodejs6

콜백기반 -> Promise기반 0️⃣ Nodejs 전제Node.js는 DB를 열고 결과를 기다리면서 멈춰 있지 않는다.즉,const result = db.query(...)같은 동기(sync) 코드는 원칙적으로 안 된다.왜냐하면:DB 읽는 동안 서버 전체가 멈추면 안 되니까그래서 Node.js의 기본 DB 라이브러리들은 전부 비동기다.1️⃣ sqlite3 “원래 방식”이란 정확히 이거다sqlite3 공식 사용법:db.all('SELECT * FROM menu', [],(err, rows) => {console.log(rows);});여기서 핵심만 표시하면:db.all(쿼리, 파라미터, 함수);이 마지막 함수가 바로 callback이다.2️⃣ callback이란 말의 실체 (용어 제거)callback =👉 “일 끝나면 이 함수 실행해.. 2026. 2. 2.
4편: Node.js에서 HTTP 서버를 직접 만들어보며 한계 느끼기 4편: Node.js에서 HTTP 서버를 직접 만들어보며 한계 느끼기— Express는 왜 등장했는가3편까지 우리는 Node.js의 실행 모델을 파헤쳤다.왜 for문이 서버를 멈추는지async/await를 잘못 쓰면 왜 느려지는지이벤트 루프가 언제 개입하고 언제 못 하는지이제 한 단계 위로 올라간다.“그럼 이 Node.js로 실제 서버를 만들면 어떤 느낌일까?”이번 글의 목적은 명확하다.Express의 장점을 설명하지 않는다Express가 없을 때의 불편함을 먼저 겪는다1. Node.js의 원초적인 HTTP 서버Node.js에는 이미 HTTP 서버를 만들 수 있는 모듈이 있다. const http = require("http"); const server = http.createServer((req, re.. 2026. 1. 1.
3편: 동기 코드와 비동기 코드의 실행 차이 — 왜 for문은 서버를 멈추는가앞선 2편에서 우리는 Node.js의 구조를 봤다.자바스크립트 실행은 싱글 스레드이벤트 루프는 실행 순서만 조율I/O는 libuv에게 위임이제 이 구조를 직접 망가뜨려 보자.Node.js가 언제 멈추고, 언제 멀쩡한지 몸으로 확인하는 단계다.1. 왜 for문 하나가 서버를 멈추는가먼저 가장 충격적인 예제부터 보자.❌ 서버를 멈추는 코드const http = require("http");http.createServer((req, res) => { for (let i = 0; i 이 서버에 요청을 보내면 어떤 일이 벌어질까?요청 처리 중서버는 아무 응답도 못 함다른 요청도 전부 대기왜 이런 일이 생길까이유는 단순하다.for문은 동기 코드Call Stack을 오래 점유이벤트.. 2025. 12. 31.
2편: Node.js 런타임 구조와 이벤트 루프 1편에서 우리는 **“왜 Node.js가 필요했는가”**를 봤다.이번 글에서는 한 단계 더 들어가서,Node.js는 실제로 어떻게 돌아가는가싱글 스레드인데 왜 서버가 멈추지 않는가를 구조 관점에서 차근차근 해부한다.이 글의 목표는 단순하다.Node.js 이벤트 루프 그림을 봤을 때, 더 이상 추상적으로 보이지 않게 만드는 것이다.1. Node.js는 ‘서버’가 아니라 ‘런타임’이다먼저 가장 중요한 전제부터 바로잡자.Node.js는웹 서버 ❌프레임워크 ❌가 아니다.Node.js는 정확히 말하면,자바스크립트를 실행하기 위한 서버용 런타임(Runtime)이다.그래서 Node.js를 이해하려면HTTP보다 먼저Express보다 훨씬 먼저**“코드가 어떻게 실행되는가”**를 봐야 한다.2. Node.js 런타임을 .. 2025. 12. 29.
1편: Node.js 탄생 배경 – 서버의 역사는 어떻게 흘러왔는가 1편: Node.js 탄생 배경 – 서버의 역사는 어떻게 흘러왔는가이 글은 Node.js가 왜 필요해졌는지를 이해하기 위한 출발점이다.문법도, 프레임워크도 잠시 내려두고 서버가 요청을 처리해 온 역사부터 차근차근 따라간다.그래야 Node.js의 설계 선택이 우연이 아니라 필연이었음을 볼 수 있다.1. 초기 웹 서버: 요청 하나, 프로세스 하나웹 초창기의 서버 모델은 단순했다.사용자가 요청을 보낸다서버는 프로세스 하나를 만들어 요청을 처리한다응답을 보내면 프로세스는 종료된다대표적인 방식이 **CGI(Common Gateway Interface)**다.구현은 쉬웠지만 대가는 컸다.요청마다 프로세스 생성 → 비용이 매우 큼동시 접속자가 늘면 서버가 바로 한계에 도달“웹은 가볍다”는 인식이 있던 시절이라 가능했.. 2025. 12. 29.
Node.js란 무엇인가 – 자바스크립트의 서버 진출 | 노드의 구성요소와 활용분야 Node.js는 자바스크립트를 웹 브라우저 밖에서도 사용할 수 있도록 만든 기술입니다.자바스크립트는 원래 클라이언트(브라우저)에서만 동작하는 언어였지만, Node.js의 등장으로 서버에서도 자바스크립트를 실행할 수 있게 되었고, 이는 웹 개발의 패러다임을 크게 바꾸는 전환점이 되었습니다.Node.js 학습 정리 – 시작하며1. Node.js는 무엇을 바꾸었는가Node.js는 단순히“자바스크립트를 서버에서 실행할 수 있게 해주는 도구”가 아니다.Node.js가 등장하면서 바뀐 핵심은 이것이다.웹 서버를 바라보는 사고방식 자체가 바뀌었다과거의 서버 개발은 보통요청 하나당 스레드 하나동기 처리 중심언어와 런타임이 서버에 강하게 결합된 구조였다.Node.js는 이 전제를 깨고,이벤트 기반(Event-driven.. 2025. 4. 8.