본문 바로가기
반응형

nodejs11

[JavaScript] 이벤트 루프에 대해서... 이벤트 루프는 자바스크립트의 비동기 처리 메커니즘으로, 싱글 스레드 환경에서도 비동기 작업(예: 타이머, 네트워크 요청 등)을 처리할 수 있게 도와주는 비동기 실행 모델이다. 자바스크립트는 기본적으로 한 번에 하나의 작업만 처리할 수 있는 싱글 스레드 언어지만, 이벤트 루프 덕분에 비동기 처리가 가능해진다. 동작 원리1. 콜 스택 (Call Stack)실행 중인 함수들이 쌓이는 스택이다.가장 위에 있는 함수가 실행되며, 실행이 끝나면 스택에서 제거 된다.2. 웹 API / 백그라운드 작업브라우저나 Node.js 런타임이 제공하는 기능 (예: setTimeout, fetch, 이벤트 리스너)이 실행된다.비동기 작업은 콜 스택에서 바로 실행되지 않고, 백그라운드로 넘겨진다.3. 태스크 큐(Task Queue.. 2025. 3. 26.
[Redis] Redis를 이용한 동시성 이슈 해결 실습해보기 - SETNX 사용 방법 동시성 문제란?여러개의 프로세스나 스레드가 동시에 같은 리소스, 예를 들자면 데이터베이스나 캐시, 파일 등에 접근 할 때 예상 치 못한 데이터 충돌, 중복 실행, 무결성 문제가 발생하는 상황이다. 대표적인 예시로는 재고 감소, 중복 결제 방지, 특정 작업의 중복 실행 방지 등이 필요 할 때 동시성 제어가 필요하다.  Redis를 이용한 동시성 해결 방법 Redis를 활용하여 분산 락(distributed lock)을 사용하면, 하나의 작업이 끝날 때까지 다른 프로세스가 동일한 리소스를 변경하지 못하도록 막을 수 있다. Redis를 이용한 대표적인 동시성 해결 기법은 다음과 같다SETNX (SET if Not Exists) 사용Redlock 알고리즘 (분산 락 강화 버전) 사용이 두가지 방법을 nodejs.. 2025. 2. 20.
[Node.js] Node.js란 무엇인가? Node.js란 무엇인가? 흔히들 웹서버나 프레임워크라고 오해하지만 Node.js는 웹 서버나 프레임워크가 아니다. 공식 사이트에서는 이렇게 설명한다 Node.js는 Chrome V8 Javascript 엔진으로 빌드 된 javascirpt 런타임이다. 여기서 런 타임이란 특정 언어가 구동되는 환경을 뜻하는데 먼저 웹과 자바스크립트 역사를 간단히 살펴보자. 웹은 처음에 말 그대로 문서였다. 웹을 조금이라도 공부해본 사람이라면 문서 자체는 html만으로도 만들 수 있다는 것을 알 것이다.  여기서 웹이 발전하면서 웹이 동적으로 변할 필요가 생기게 되었다. 예를 들면 버튼을 누르면 화면을 전환한다던지 사용자에게 정보를 받아 처리를 한다던지 하는 작용을 하게 말이다. 따라서 마크웹 언어인 html만으로는 할 .. 2024. 8. 26.
[Express]ExpressJS란? Express는 Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크이다. Node.js의 등장으로 원래는 브라우저 안에서만 쓰이던 자바스크립트가 브라우저 바깥에서도 사용할 수 있게 되었다. 따라서 자바스크립트로 서버도 만들 수가 있게 되었는데 이러한 개발자들이 서버를 쉽게 구성할 수 있게 만든 프레임워크가 바로 Express라고 할 수 있다. 상당히 빠르고 유연하며 개방적이기 때문에 초심자들이 많이 선택하는거 같다. 기본적으로 프레임워크 안에 웹 어플리케이션 서버 구축을 위한 각종 라이브러리와 미들웨어가 내장되어 있기 때문에 개발하기가 편하고 가장 대중화 되어 있어 배우기가 쉽다. 그럼 express를 시작해보자. nodejs가 깔려있다는 가정하에... 먼저 적당한 디렉토리를 연다. 그리고 터미널.. 2023. 12. 6.
반응형