nodejs 이해

5BRack·2023년 1월 2일
0

CS

목록 보기
2/5

프로세스

  • 현재 실행되고 있는 프로그램 단위
  • 운영체제에서 할당되는 작업 단위

스레드

  • 프로세스 내에서 할당되는 작업의 단위
  • 프로세스는 여러개의 스레드를 활성화 할 수 있다.
  • 프로세스의 자원을 스레드가 공유하여 사용한다.

싱글 스레드

  • 프로세스내에 스레드가 1개 존재하는 것
  • 단순히 생각할 때 작업이 순차적으로 진행되어야 할 것 같다.
  • A -> B -> C

멀티 스레드

  • 프로세스 내에 스레드가 여러개 존재하는 것
  • 각 스레드가 작업을 하나이상 씩 처리한다.
  • 각 스레드가 같은 데이터에 접근할 경우 동시성문제가 발생한다.

동시성
2개 이상의 스레드가 한개에 부합하는 데이터에 접근시, 하나의 스레드가 데이터 접근 중 다른 스레드가 데이터를 수정 및 삭제 등 데이터변경시, 데이터의 무결성이 깨지는 문제

자바스크립트 비동기

  • 자바스크립트는 싱글 스레드이다.
  • 동시에 함수가 2개이상 실행될 수 없어 이를 해결하기 위해 비동기 처리를 이용한다.

nodejs 란

  • nodejs를 싱글 스레드 논 블로킹이라고 한다.
  • Node.js는 Google Chrome의 핵심인 V8 JavaScript 엔진을 브라우저 외부에서 실행

nodejs는 이벤트가 발생할 때 미리 지정해 둔 작업을 수행하는 방식
Nods.js는 v8이라는 자바스크립트 엔진과 비동기 작업을 처리하는 libuv 라는 라이브러리로 이뤄져있다.

nodejs는 싱글스레드?

  • node자체는 싱글스레드가 아니다.
  • 그러나 자바스크립트 자체가 싱글스레드이므로, node를 싱글스레드라 한다.

node 비동기 동작

자바스크립트 엔진은 콜스텍을 위에서 부터 차례대로 실행하기 때문에 비동기처리 불가능
비동기는 libuv 라이브러리 에서 제공하는 이벤트 루프에서 수행된다.

nestjs는 프레임워크다

  • nestjs는 nodejs, express 위에서 돌아가는 프레임워크이다.

싱글톤 패턴

  • 객체의 인스턴스가 1개만 생성되는 것을 보장하는 패턴
  • oop처럼 불필요한 메모리 낭비를 줄 일 수 있다.

0개의 댓글

관련 채용 정보