JavaScript & Node.js

TEDDY·2022년 11월 21일
0

CODECAMP

목록 보기
14/53
post-thumbnail

Javascript

: 자바스크립트(JavaScript)는 객체(object) 기반의 스크립트 언어다.
HTML로는 웹의 내용을 작성하고, CSS로는 웹을 디자인하며, 자바스크립트로는 웹의 동작을 구현할 수 있다.
위 세가지가 웹개발의 기본적인 기능들이다.HTML과 CSS의 정적인 부분을 JS로 동적이게 바꿔줄수 있다.
예를 들면, 경고창을 띄우거나, 탭인터페이스를 만들며, Drag 와 Drop 을 구현하게 하는 것이 js이다.

Node.js

: Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임이라고 할 수있다.
노드를 통해 자바스크립트 애플리케이션을 실행할 수 있으며, 서버를 실행하는데 제일 많이 사용된다. 그리고
노드는 Single-Thread의 non-blocking I/O 이벤트 기반 비동식 방식으로 작동한다.

예를들어, 푸드코트의 경우 주문은 한 곳에서 받지만 음식은 각 입점된 식당에서 만든다.
음식이 완성된 순서대로 각 식당에서 호출벨을 통해 손님을 부르고 손님은 음식을 픽업하게 된다.
여기서, 계산을 담당하는 직업은 싱글스레드(Single-Thread)이고, 각 요리를 완성해 벨을 호출하는 식당들은 비동기(non-blocking) 방식이다.
입력은 하나의 스레드에서 받지만 순서대로 처리 하지 않고 먼저 처리된 결과 값을 이벤트로 반환해주는 방식이
바로 노드가 사용하는 싱글 스레드 비동기 방식이다.

싱글_스레드 방식:

싱글 쓰레드 방식은 일이 아무리 많아도 스레드는 1개이기 때문에 메모리 사용량과 시스템 리소스 사용량에는 변화가 거의 없다. 따라서 대규모 네트워크 프로그램을 개발하기 적합한 형태이다. 하지만 스레드 하나가 무너진다면 프로그램 전체에 문제가 발생하게 된다.

Node.js가 효율적이게 만드는 것들

:간단한 로직.

대용량(동시에 여러 request를 처리)
빠른 응답시간 요구
빠른 개발 요구
비동기방식에 어울리는 서비스(네트워크 스트리밍 서비스, 채팅 서비스 등)

Node.js와 어울리지 않는 것들

단일 처리가 오래 걸리는 경우 : 싱글 쓰레드이기 때문
서버 체크로직이 많은 경우 : 비동기방식이기 때문에 CallBack Hell에 빠지지 않기 위해
업무 복잡도/난이도가 높은 경우 : 에러가 나면 서버가 죽기 때문에 코드 품질 중요

0개의 댓글