본문 바로가기
728x90

nodejs4

[Node.js] Node.js 애플리케이션을 Docker로 패키징하는 방법 Docker는 Windows, Linux 및 MacOS에서 실행되는 오픈 소스 소프트웨어로, 이를 통해 개발자는 애플리케이션과 종속성을 함께 이미지 라는 경량의 독립 실행형 독립형 단위로 패키징할 수 있습니다. Node.js 앱 만들기 프로젝트 설정 Docker는 Windows, Linux 및 MacOS에서 실행되는 오픈 소스 소프트웨어로, 이를 통해 개발자는 애플리케이션과 종속성을 함께 이미지 라는 경량의 독립 실행형 독립형 단위로 패키징할 수 있습니다. Node.js 앱 만들기 프로젝트 설정 새로운 node-app-with-docker 디렉터리 생성. $ mkdir node-app-with-docker $ cd node-app-with-docker npm으로 프로젝트 초기화 $ npm init -y .. 2023. 2. 7.
[Node.js] 싱글스레드 싱글 스레드란? 스레드가 하나라는 것을 의미합니다. ⇒ 우리가 작성한 자바스크립트 코드가 동시에 실행될 수 없는 이유가 된다. 스레드를 이해하기 위한 프로세스와 스레드의 차이 프로세스: 운영체제에서 할당하는 작업 단위(노드나 웹 브라우저 같은 프로그램). 프로세스 간에는 메모리 등의 자원을 공유하지 않는다. 스레드: 프로세스 내에서 실행되는 흐름의 단위. 프로세스는 스레드를 여러 개 생성해 여러 작업을 동시에 처리할 수 있다. 스레드들은 부모 프로세스의 자원을 공유한다. 같은 주소의 메모리에 접근 가능하므로 데이터를 공유할 수 있습니다. “노드는 싱글 스레드 입니다?!” 하지만 엄밀히 말하면 싱글 스레드로 동작하지는 않습니다. 노드를 실행하면 먼저 프로세스가 하나 생성됩니다. 그리고 그 프로세스에서도 스.. 2022. 12. 23.
[Node.js] 논블로킹 I/O 이벤트 루프(https://bellsilver7.tistory.com/315)를 잘 활용하면 오래 걸리는 작업을 효율적으로 처리할 수 있습니다. 우리가 작성한 자바스크립트 코드는 동시에 실행될 수 없습니다. 하지만 파일 시스템 접근(파일 읽기, 쓰기, 생성 등)이나 네트워크 요청 같은 I/O(입출력) 작업은 동시에 처리될 수 있습니다. 이런 작업은 논블로킹 방식으로 처리하는 방법을 제공합니다. 논블로킹이란? 이전 작업이 완료될 때까지 대기하지 않고 실행함을 뜻합니다. 블로킹과 논블로킹 const fs = require('fs'); const data = fs.readFileSync('/file.md'); // 파일을 읽을 때까지 여기서 블로킹됩니다. console.log(data); moreWork();.. 2022. 12. 22.
[Node.js] 이벤트 기반 "이벤트 기반이란? 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 말합니다." 이벤트 리스너에는 콜백(callback) 함수를 등록합니다. 그리고 시스템에서 이벤트가 발생할 때 콜백 함수를 호출하게 됩니다. 이벤트가 완료되면 다음 이벤트가 발생할 때까지 대기하게 됩니다. 여러 이벤트가 동시에 발생하면 어떤 순서로 콜백 함수를 호출할지 이벤트 루프에서 결정합니다. function first() { second(); console.log('첫 번째'); } function second() { third(); console.log('두 번째'); } function third() { console.log('세 번째'); } first(); 위 예제 코드를 실행하면 아래와 같이 함수들이 호출 스택에 .. 2022. 12. 20.
728x90