🎯 Node.js 특징
싱글 쓰레드이기 때문에 비동기 동작이 필요하고 비동기 동작을 구현하기 위해 이벤트 기반의 동작 방식을 사용한다.
📝 쓰레드란?
- 쓰레드란 명령을 실행하는 단위
- 한 개의 쓰레드는 한 번에 한 가지 동작만 실행 가능
- 싱글 쓰레드 장점 : 쓰레드가 늘어나지 않기 때문에 리소스 관리에 효율적
- 싱글 쓰레드 단점 : 쓰레드 기반의 작업들의 효율이 떨어짐 ex. CPU 연산 작업
그래서 Node.js는 비동기 동작으로 쓰레드 기반의 작업을 최소화한다.
📝 비동기
- 멀티 쓰레드 동기 방식은 한번에 여러가지 동작을 동시에 수행할 수 있지만 동작을 실행하고 완료를 기다리는 동안에 cpu 리소스가 낭비된다.
- 싱글 쓰레드 비동기 방식은 한 번에 동작을 여러 가지 수행할 수 없지만 동작의 완료를 기다리지 않기 때문에 cpu 리소스를 효율적으로 사용할 수 있다.
📝 이벤트 루프
- 비동기 동작의 완료를 처리하는 방식
- 비동기 방식은 특정 동작을 실행한 후, 해당 동작을 전혀 신경 쓰지 않음
- 대신 해당 동작이 완료될 경우 실행할 함수를 미리 등록함
- 비동기 동작이 완료가 되면 미리 등록된 함수를 실행.