반응형

개발/node.js 6

Node.js 이벤트 루프: 비동기성의 핵심 메커니즘

Node.js는 비동기성과 높은 처리량을 제공하는 강력한 플랫폼으로서, 이러한 특징을 실현하기 위해 이벤트 루프를 사용합니다. 이번 글에서는 Node.js의 핵심 메커니즘인 이벤트 루프에 대해 자세히 알아보고, 비동기 작업의 처리 과정과 이벤트 루프의 동작 방식을 예제 코드와 이미지를 통해 살펴보겠습니다. 이벤트 루프의 개념 이벤트 루프는 Node.js의 핵심 메커니즘으로서, 단일 스레드에서 비동기 작업을 처리하고 실행 순서를 관리합니다. 이벤트 루프는 이벤트를 감지하고 해당 이벤트에 등록된 콜백 함수를 실행하여 비동기 작업을 처리합니다. 이를 통해 블로킹 작업을 피하고, 여러 작업을 동시에 처리할 수 있습니다. 이벤트 루프의 구성 요소 이벤트 루프는 주요하게 다음과 같은 구성 요소로 이루어집니다: 이벤..

개발/node.js 2023.05.24

Node.js의 이벤트 처리 방식: 비동기성과 이벤트 기반 프로그래밍의 힘

Node.js는 자바스크립트를 사용하여 서버 사이드 애플리케이션을 개발하기 위한 강력한 플랫폼입니다. 그 중에서도 Node.js의 가장 강력한 특징 중 하나는 이벤트 처리 방식입니다. 이번 글에서는 Node.js의 이벤트 처리 방식에 대해 자세히 알아보고, 비동기성과 이벤트 기반 프로그래밍이 왜 중요한지 살펴보겠습니다. 이벤트 기반 아키텍처 Node.js는 이벤트 기반 아키텍처를 기반으로 동작합니다. 이는 Node.js가 이벤트를 발생시키고, 해당 이벤트에 등록된 콜백 함수를 비동기적으로 실행하는 방식을 의미합니다. 이러한 이벤트 기반 아키텍처는 동시에 여러 작업을 처리하고 높은 처리량과 확장성을 제공하는 데에 효과적입니다. 비동기성 Node.js는 비동기적인 프로그래밍을 지원하며, 이벤트 루프를 통해 ..

개발/node.js 2023.05.24

익스프레스(Express) 라우팅 만들기

클라이언트 요청을 위한 URL 스키마를 라우트(Route) 라고 하며, 서버에서는 라우팅 작업을 통해 클라이언트와 통신 인터페이스를 제공해 준다. 라우터는 미들웨어 중 하나에 속하며, 클라이언트의 요청 경로에 따라서 처리를 분기시켜 준다는 특징이 있다. (클라이언트의 요청과 처리 메소드를 매핑 시키는 역할을 한다, Spring의 컨트롤러 같은 역할이라고 볼 수 있다) 라우팅 기초 기본적인 라우팅 설정 코드는 아래와 같다. // 빌트인(내장) 모듈 불러오기 var express = require('express'); var http = require('http'); // 익스프레스 객체 및 웹 서버 객체 생성 var app = express(); var server = http.createServer(ap..

개발/node.js 2023.05.02

Node.js HTTP 모듈로 간단한 웹서버 만들기

Node.js HTTP 모듈은 Hyper Text Transfer Protocol(HTTP)로 데이터를 전송할 수 있게 해주는 모듈이다. 이를 사용하기 위해선 require() 메소드를 통해 HTTP 모듈을 추가(include)해야한다. var http = require('http'); HTTP 모듈은 HTTP 서버를 만들고, 포트(Port)를 지정하여, request 를 listen 하고, 해당 내용에 대해 client 에게 적절하게 response 할 수 있다. createServer() 메소드를 통해 HTTP server 를 만들 수 있다. var http = require('http'); // 웹 서버 객체를 만든다. var server = http.createServer(); // 웹 서버를 시..

개발/node.js 2023.05.02

Node.js에서의 이벤트

Node.js는 완벽한 이벤트 기반 어플리케이션이다. 컴퓨터 안에서 일어나는 모든 행동을 “이벤트”라고 부른다. Node.js 안의 모든 객체는 이벤트를 발생시킬 수 있다. Node.js 기반으로 만들어진 서버가 가동되면, 변수들을 초기화하고, 메소드들을 선언하고 이벤트가 일어날때까지 기다린다. 이벤트 기반 어플리케이션에서는, 이벤트를 대기하는 메인 루프가 존재한다. 그리고 이벤트가 감지되었을 때, Callback 메소드(이벤트 핸들러)를 호출한다. 모든 객체는 이벤트를 가지고 있다 아래는 이벤트에 대한 간단한 예제이다. var fs = require('fs'); // 파일 시스템 모듈 추가 var rs = fs.createReadStream('./demofile.txt'); // 파일 스트림을 열음 r..

개발/node.js 2023.05.02

콜백 메서드(Callback Method)란?

자바스크립트는 변수에 정적인 데이터 뿐만 아니라, 함수를 할당할 수 있다. (함수를 변수의 일종으로 생각하는 방식이다) 이러한 특징으로 인해, 메소드의 파라미터로 다른 메소드를 대입할 수 있거나, 반환값으로 메소드 자체를 지정할 수 있다. 이러한 함수(메소드)들을 콜백 메소드(Callback Method) (또는 콜백 함수)라고 부른다 function add(a, b, callback){ var result = a + b; callback(result); } function callback(result){ console.log('결과 : %d', result); } 비동기 프로그래밍(Non-Blocking Programming) 함수를 파라미터로 전달하는 (콜백 메소드가 사용되는) 경우는 대부분 비동기 ..

개발/node.js 2023.05.02
반응형