JavaScript 구동 엔진인 V8의 등장
크롬, 파이어폭스, 익스플로러 이런 브라우저들이 자바스크립트를 읽고 해석하는 역할을 합니다.
자바스크립트를 빠르게 읽고 해석하면 웹사이트 렌더링 성능도 빨라지니
브라우저 개발자들은 자바스크립트를 해석할 수 있는 엔진 개발에 열성이었습니다.
그러다가 구글 사내에 있던 ‘크롬 브라우저 개발자’들이 문제를 일으킵니다.
자바스크립트 해석엔진인 V8이라는 프로그램을 만들었는데 성능이 너무나도 뛰어난 나머지
V8을 자랑하려고 이것만 똑 떼어서 살을 붙여 출시하게 됩니다.
그리고 Node.js라고 이름을 짓습니다.
Node.js 를 한줄 요약하자면
자바스크립트를 브라우저 말고도 로컬 PC에서도 실행시켜줄 수 있는 실행창(런타임)입니다.
Node.js를 실행하면 그냥 자바스크립트 입력란이 하나가 뜨고
거기다가 자바스크립트 입력하면 바로바로 해석해서 실행시켜준다
이게 바로 Node.js이다
Node.js를 Non-blocking 이라는 장점 때문에 사용합니다.
Node.js가 강점을 보이는 분야
바로 SNS, 채팅서비스 웹서버입니다. SNS같은 플랫폼 만들 때
가장 중요한게 ‘한번에 많은 요청을 감당할 수 있냐’ 입니다.
일반 서버의 경우 1초에 10만개의 요청이 들어오면.. 바로 처리해주기 위해선
– 똑같은 서버를 몇만대 복사해서 만들어 두거나 (Scaling)
– CPU 멀티쓰레딩을 이용하거나
– Node 처럼 Non-blocking 스타일로 코드를 짜거나 합니다.
반면 Node.js 서버의 경우엔 애초에 설계상 한꺼번에 많은 요청을 받아줄 수 있으니
애초에 서버 덩치를 키울 걱정 자체가 적겠죠.
하지만 처리 속도라든지 이건 다른 문제입니다.
Node.js자체가 연산속도가 빠르다고 유명해진게 아니니까요.
Node.js로 자주 만드는 것들
1. 노드쨩은 위에서 설명한 SNS, 채팅 서비스에 특화된 언어라고 보시면 됩니다.
이런 서비스는 요청처리에 힘든 수학적 연산을 요구하지 않습니다.
– 글자를 저쪽에 전달해주기
– 가끔은 여러명에게 전달해주기
그래서 대량, 하지만 처리가 간단한 요청이 들어오는 채팅, SNS 서비스에 Node.js를 많이 사용합니다.
2. 노드쨩은 스타트업, 프로토타입 만들기에서도 많이 사용합니다.
빠르게 시범서비스를 만들고 싶다면 Node.js는 좋은 선택입니다.
– 일단 초보자에게도 쉽고
– 진짜 템플릿 몇개만 복붙해도 2시간만에 빠르게 서버를 만들 수 있습니다.
– 갑자기 사용자가 터져서 대량의 요청이 들어와도 나름 감당가능 (서버가 죽진 않음)
– 자바스크립트 문법만으로 프론트, 백엔드 전부 가능하다는 장점
참조 codingapple