서버

[Node.js] 스터디 1주. Node와 Express

키또카또 2026. 3. 13. 14:12

- Node.js가 뭔데

- Express는 또 뭔데

 

1. Node.js란??

- 서버 사이드 JavaScript 런타임

  • Server-Side: 웹 애플리케이션에서 사용자의 요청을 받아 데이터를 처리, 저장하고 결과를 웹 서버에서 생성해 클라이언트로 전송하는 방식 = 서버에서 처리하는 것 ↔ Client-Side: 클라이언트에서 처리하는 것
  • 대표 기술: Node.js, Django, Spring

- 브라우저 밖에서 Javascript를 실행할 수 있게 한다

- 비동기 이벤트 기반 아키텍처 -> 높은 동시성 처리

  • 비동기: 작업이 완료될 때까지 기다리지 않고 다음 작업을 계속 실행할 수 있는 방식

→ Jvs는 단일 스레드 기반 언어임에도 여러가지 작업을 효율적으로 처리할 수 있도록 돕는 메커니즘 

  • 비동기 처리 구현 방식
    1. 콜백 함수
    2. 프로미스
    3. 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