logo

NodeJS

6 Posts found

Node.js is Not Single-Threaded
NodeJSJavaScript2025.01.03

Node.js is Not Single-Threaded

Node.js는 싱글 스레드 아키텍처를 통해 서버 자원을 효율적으로 활용하며 빠른 속도를 자랑한다. 하지만 정말 단일 스레드만으로 이러한 성능을 낼 수 있을까? Node.js를 이해하려면 먼저 프로세스와 스레드가 무엇인지 이해해야 한다. - 프로세스: 실행 중인 프로그램의 한 인스턴스. 각 프로세스는 독립적으로 실행되며 주요 자원은 다음과 같다:...

[Express] 미들웨어와 라우팅
NodeJSExpress2024.11.30

[Express] 미들웨어와 라우팅

미들웨어는 파이프라인처럼 작동한다. 요청이 들어오면 Express는 이를 일련의 미들웨어 함수들을 통해 순차적으로 전달하는데, 각 미들웨어는 요청을 검사하고 필요한 처리를 수행한 후, 다음 미들웨어로 전달할지 결정한다. Express는 내부적으로 미들웨어 함수들을 배열로 관리한다. 각 요청은 배열의 첫 번째 미들웨어부터 순차적으로 실행되며, next...

GraphQL이란?
NodeJSGraphQL2024.11.30

GraphQL이란?

많은 프로젝트에서 REST API가 기본으로 사용되지만, 그 구조적인 한계로 인해 데이터 전송에 비효율이 발생할 때가 있다. 대표적으로 Over Fetching과 Under Fetching 문제다. 필요한 것보다 더 많은 데이터를 받아 성능 저하를 유발하는 상황을 의미한다. 예를 들어, 영화 데이터를 불러오는 다음과 같은 요청을 가정해보자....

[Node.js] Express
NodeJSExpress2024.11.29

[Node.js] Express

Vanilla Node.js로 웹 서버를 개발할 때 가장 먼저 마주치는 어려움은 반복적이고 번거로운 작업들이다. HTTP 요청 처리 요청 본문 파싱 라우팅 설정 미들웨어 구성 이러한 기본적인 작업을 하나하나 직접 처리하다 보면 코드 작성량이 늘어나고 개발 생산성이 저하될 수밖에 없다. Express는 이러한 문제를 해결하기 위해 설계된 Node.js...

[Node.js] 모듈 시스템
NodeJS2024.11.20

[Node.js] 모듈 시스템

Node.js 애플리케이션이 커질수록 모든 코드를 하나의 파일에 작성하는 것은 유지보수와 가독성 측면에서 좋지 않다. Node.js의 모듈 시스템을 통해 코드를 여러 파일로 나누어 관리할 수 있다. 예를 들어, 서버의 라우팅 로직을 별도의 파일로 분리해보자. 이 코드를 다음과 같이 분리할 수 있다. Node.js에서 모듈을 내보내는 방법은 크게 세...

[Node.js] 이벤트 기반 아키텍처와 비동기 처리
NodeJS2024.11.18

[Node.js] 이벤트 기반 아키텍처와 비동기 처리

Node.js는 싱글 스레드로 동작하면서도 효율적으로 여러 요청을 처리할 수 있다. 이는 이벤트 기반 아키텍처와 비동기 처리 방식 덕분이다. 예를 들어 파일 업로드 요청이 들어왔을 때, Node.js는 요청을 한 번에 처리하지 않고 작은 단위인 청크 chunk 로 나누어 처리한다. 이런 처리 방식을 이해하기 위해서는 스트림 Stream , 버퍼...