→ V8 Javascript 엔진 / Server Side / Javascript / 런타임에 대한 이해가 필요!
Javascript : 브라우저에서 HTML 요소 생성부터 모든 페이지 및 기능을 동적으로 처리할 수 있도록 만들어주는 브라우저에서 실행되는 프로그래밍 언어
V8 엔진 : 성능 엔진의 의미로, Javascript 언어로 작성된 코드를 컴퓨터가 해석하기 쉬운 바이트 코드로 변환, 해석, 실행
Node.js(실행환경) : 자바스크립트를 브라우저 이외의 환경에서도 동작할 수 있도록 V8 엔진을 브라우저에서 독립시킨 Javascript의 또 다른 실행 환경(Runtime)
Node.js 개발에 있어서 중요하게 생각한 점은 Network Server(API=Application Programming Interface)를 만드는 것이었다.
이유 : 10,000개 이상의 동시 요청 처리 문제가 발생 → Node.js를 통해 동시 요청에 대한 이슈를 해결하기 위해 처음 고안되었다.
장점 1 : 프론트엔드와 백엔드 기술 스택 통합
동일한 언어(프론트엔드/백엔드 모두 Javascript 언어 사용)
프론트엔드 개발자 서버 프로그래밍 접근성이 좋다.
개발팀의 생산성이 좋아진다.
장점 2 : 빠른 처리 속도와 동시 요청 처리 성능
V8 엔진 : JIT 컴파일 방식, V8 최적화 기법으로 속도 좋은
libuv 사용
장점 3 : MSA에 적합
MSA란 시스템의 전체적인 구조를 서비스별로 독립적으로 나뉘어서 구성되는 아키텍쳐
단순히, 모듈은 레고 블록과 마찬가지로, 사용자 모듈 / 주문 모듈 / 결제 모듈 / 검색 모듈 등으로 되어 있을 때 각 모듈을 합하여 결제/상품 애플리케이션을 만들 수 있다. → 유지보수 하기 쉬운 구조로 작성하면 코드 재사용성 및 확장성이 증가된다. → 전체 비용을 감소하고 개발팀 생산성이 높아진다.