node.js 17

Node.js를 활용한 비동기 프로그래밍: 실시간 애플리케이션 구축하기

오늘날 실시간 애플리케이션은 많은 사용자에게 필수적인 기능으로 자리 잡았습니다.특히 채팅 애플리케이션, 실시간 알림 시스템, 온라인 협업 도구 등에서 실시간 통신은 필수적입니다.이번 글에서는 Node.js의 비동기 프로그래밍을 활용하여 실시간 채팅 애플리케이션을 구축하는 방법을 설명합니다. WebSocket을 사용한 실시간 통신과 서버 구축하는 방법을 알아보겠습니다1. Node.js와 실시간 통신Node.js는 이벤트 기반의 비동기 I/O 모델을 사용하여 높은 처리 성능과 효율성을 제공합니다. 이러한 특성 덕분에 실시간 애플리케이션을 구축하는 데 매우 적합합니다. 특히 WebSocket을 사용하면 서버와 클라이언트 간의 지속적인 연결을 유지하며, 양방향 통신을 쉽게 구현할 수 있습니다.1.1 WebSoc..

서버/Node.js 2024.07.28

Node.js 비동기 프로그래밍 가이드 (2)

Node.js는 싱글 스레드와 비동기 프로그래밍 모델을 중심으로 설계되어 있습니다. 이 구조는 대규모 동시성을 처리할 수 있게 해주지만, 깊이 이해하지 않으면 최적의 성능을 발휘하기 어려울 수 있습니다. 이 글에서는 Node.js 비동기 프로그래밍의 개념과 기술들을 다루며,이를 통해 더 나은 성능과 효율성을 달성하는 방법을 설명하겠습니다.   1. 비동기 처리의 최적화Node.js 애플리케이션의 성능을 극대화하기 위해서는 비동기 작업의 효율적인 처리가 필수적입니다. 여기에는 비동기 코드를 최적화하고, 블로킹 작업을 최소화하는 것이 포함됩니다.1.1 비동기 I/O 최적화비동기 I/O는 Node.js의 핵심 강점 중 하나입니다. 네트워크 요청, 파일 시스템 접근 등 I/O 바운드 작업은 비동기적으로 처리하여..

서버/Node.js 2024.07.28

Node.js 비동기 프로그래밍 가이드 (1)

Node.js에서 비동기 프로그래밍의 기본 원리와 최신 기술을 설명합니다.비동기 함수, 프로미스, async/await 등의 개념을 다룹니다. 1. 비동기 프로그래밍이란?비동기 프로그래밍은 시간이 오래 걸리는 작업이 다른 작업을 방해하지 않도록 하는 프로그래밍 방식입니다. 예를 들어, 친구에게 문자를 보내놓고 답장을 기다리기보다는, 답장이 올 때까지 다른 일을 하는 것과 같습니다.1.1 콜백 함수콜백 함수는 어떤 작업이 끝났을 때 호출되는 함수입니다. 예를 들어, 친구에게 문자를 보내고, 답장이 오면 답장을 읽는 것처럼, 특정 작업이 끝나면 그 결과를 처리하는 함수입니다.function sendMessage(message, callback) { console.log("Sending message: " ..

서버/Node.js 2024.07.28

Node.js 비동기 I/O로 서버 성능 극대화하기

Node.js의 비동기 I/O와 싱글 스레드 아키텍처를 활용하여 서버 성능을 최적화하는 방법에 대해 알아봅니다.Node.js 비동기 I/O로 서버 성능 극대화하기Node.js는 비동기 I/O와 싱글 스레드 아키텍처를 통해 높은 효율성과 성능을 자랑합니다. 이를 이해하기 위해 Node.js의 주요 개념인 이벤트 루프, 블로킹 코드, 그리고 비동기 처리를 살펴보겠습니다.1. Node.js의 싱글 스레드 모델Node.js는 싱글 스레드로 작동하며, 이 스레드는 모든 클라이언트 요청을 처리합니다. 싱글 스레드 구조임에도 불구하고 Node.js는 비동기적 특성을 활용하여 다수의 요청을 처리할 수 있습니다. 이는 JavaScript의 비동기 함수와 콜백 메커니즘 덕분에 가능해집니다. 하지만, 모든 작업이 비동기적으..

서버/Node.js 2024.07.28

Express 4.x에서 express-async-errors로 Rejected Promise 처리하기

Bun, Express, TypeScript 환경에서 API를 개발할 때, 요청 헤더의 범위 설정이 잘못되어 오류가 발생할 수 있습니다. 이 경우 416 상태 코드 응답이 반환됩니다. 에러 핸들링 미들웨어를 사용해도 에러를 잡지 못하는 상황이 발생할 수 있는데 그 이유와 해결 방법을 알아보았습니다.문제: Express 4.x에서 Rejected Promise문제의 핵심은 Express 4.x가 미들웨어나 에러 핸들러를 통해 rejected promises를 처리하지 않는다는 점입니다. 즉, 함수가 rejected promise를 반환할 때 미들웨어가 이를 잡지 못합니다. 대신, 이를 명시적으로 catch 블록을 사용하여 처리해야 하지만, 이는 코드를 더욱 더럽게..(?) 만듭니다.예시const rejec..

에러노트 2024.06.25

mediasoup 벤치마크

모든 테스트는 AWS(Amazon Web Services) EC2(Elastic Compute Cloud)를 사용하여 수행되었습니다. 연결된 각 웹 클라이언트 앱은 네트워크 변동 및 간섭을 방지하기 위해 동일한 AWS Virtual Private Cloud(VPC)의 개별 가상 머신(VM)에서 실행되었습니다. 사용되는 VM의 인스턴스 유형은 다음과 같습니다. VM의 인스턴스의 상세한 스펙은 다음과 같습니다.  다음은 이러한 미디어 서버를 테스트하는 데 사용된 매개변수입니다.   부하 테스트 결과는 다음과 같습니다. - Page loaded: 페이지가 클라우드 VM에서 실행 중인 클라이언트 측에 로드될 수 있으면 true입니다. - Sender video check: 보낸 사람의 비디오가 표시되고 정지 이..

Library 2024.06.12