💡 Chrome v8 엔진으로 빌드된 JavaScript 런타임입니다.
즉 웹서버의 개념이 아닌 jscascript 로 서버를 구축하고 jacascript가 작동되도록 해주는
런타임 환경입니다.
💡 자바스크립트 런타임
프로그래밍 언어로 작성된 javascript 언어를 컴퓨터가 이해할 수 있는 기계어로 변환시켜주는 역할을 의미한다.
💡 논 블로킹(Non-blocking I/O) 이벤트 기반 비동기 방식으로 처리되어 높은 처리 성능을 가지고 있다.
💡 Javascript 언어로 Front-end 뿐만 아니라 Back-end 개발 환경을 구성할 수 있기에 생산성이 높고 러닝 커브가 줄어든다.
💡 다양한 패키지 매니저(npm: node Package Manager)를 기반으로 다양한 모듈(패키지)을 제공하며 필요 라이브러리에 대해 설치하고 사용할 수 있기에 효율성이 좋다
💡 Node.js 는 API가 ‘비동기 기반의 처리 방식’이라 서버의 로직이 복잡한 경우에 ‘콜백 함수 늪(callback hell)'에 빠질 수 있다.
💡 단일 스레드(Single Thread)이기 때문에 하나의 작업이 오래 걸리는 웹 서비스에 경우 애플리케이션의 성능이 저하될 수 있다.
💡 해당 코드를 수행이 되어야지 코드에서 에러가 났는지 확인이 가능하며 에러 갈 날 경우 프로세스 자체가 내려갈 수 있다.