- Node.js가 뭔데
- Express는 또 뭔데
1. Node.js란??
- 서버 사이드 JavaScript 런타임
- Server-Side: 웹 애플리케이션에서 사용자의 요청을 받아 데이터를 처리, 저장하고 결과를 웹 서버에서 생성해 클라이언트로 전송하는 방식 = 서버에서 처리하는 것 ↔ Client-Side: 클라이언트에서 처리하는 것
- 대표 기술: Node.js, Django, Spring
- 브라우저 밖에서 Javascript를 실행할 수 있게 한다
- 비동기 이벤트 기반 아키텍처 -> 높은 동시성 처리
- 비동기: 작업이 완료될 때까지 기다리지 않고 다음 작업을 계속 실행할 수 있는 방식
→ Jvs는 단일 스레드 기반 언어임에도 여러가지 작업을 효율적으로 처리할 수 있도록 돕는 메커니즘
- 비동기 처리 구현 방식
- 콜백 함수
- 프로미스
- async/await
핵심 특성
- V8 엔진
- 이벤트 루프
- 논블로킹 I/O
- 싱글 스레드
- npm 생태계
이벤트 루프
- 이벤트루프가 뭔데??
javascript는 한 번에 하나만 작업만 실행할 수 있는 싱글 스레드 언어이다.
그런 jvs로 웹에서 멀티 태스킹이 가능하게 하는 방법 -> 논블로킹방식
- 논블로킹 방식
어떤 작업이 오래 걸리면 비켜두고 다른 작업 먼저 실행시킨다. 그 작업이 끝나면 나중에 결과를 받아서 처리한다.
<-> 블로킹 방식 - 하나의 작업이 끝날 때까지 다음 작업이 기다림.
이때 사용하는 게 이벤트 루프이다.
- 이벤트루프 동작 방식
1. 콜 스택 비어있는지 확인
2. 콜백 큐에서 가장 오래된 작업을 꺼내 콜 스택으로 보냄
3. 해당 작업이 실행되고 완료되면 콜 스택에서 제거
4. 프로그램 종료까지 반복
- 출력 순서
동기 >Microtask Queue > Timer Queue
- I/O 작업은 자동으로 비동기 처리 되지만, CPU 집약 계산은 이벤트 루프를 블로킹한다
Express
최소주의 웹 프레임워크. 라우팅, 미들웨어, 요청/응답 처리를 추상화
Express란???
- Node 환경의 웹 애플리케이션 프레임워크. 가볍고 직관적이어서 자유도가 높다.
express 4와 5의 차이
- async 에러 자동 catch
4 : 직접 에러 처리 (try-catch 또는 asyncHandler)
5 : async에러 발생하면 자동으로 에러를 미들웨어로 전달
-path 매칭 변경
4 : 정규식을 path에 인라인으로 사용 가능
5 : 인라인 정규식 제거
Express 기본 개념
- 라우팅, 미들웨어, 요청/응답
라우팅
- URL+HTTP 메소드의 조합에 대해 실행할 함수를 정의하는 것 - 서버가 어떤 동작을 할지
미들웨어
- 요청과 응답 객체 사이에서 실행되는 함수
- next()를 호출하면 다음 미들웨어로 넘어감
- 요청 처리, 데이터 파싱, 로깅, 인증 에러 등 대부분의 기능을 담당함
Req->helmet->cors->morgan->express.json->라우트 핸들러->Res
요청/응답
- Express에서 제공하는 간편한 메소드들로 기본 Node.js보다 요청/응답 처리가 훨씬 쉽고 빨라진다
'서버' 카테고리의 다른 글
| [Node.js] ORM (0) | 2026.04.08 |
|---|---|
| [Node.js] API 만들기 (0) | 2026.04.08 |
| [Node.js] 스터디 4주차. Javascript (0) | 2026.04.01 |
| [DB] 스터디 3주차 데이터베이스 기초 (0) | 2026.03.25 |
| [Node.js] 스터디 2주. Prisma 와 Middleware (0) | 2026.03.19 |