728x90
반응형
패키지 매니저
- 용량문제, 패키지 내려받기 속도 문제, 보안 문제
- 애플리케이션의 의존적인 패키지를 관리(설치, 삭제, 업데이트)하는 프로그램
- npm, yarn
빌드 도구
- webpack : 다양한 모듈 시스템을 지원
- ESBuild, Vite
개발 도구
- VSCode
웹 프레임워크
- front : React, Vue.js, Svelite
- back : Express, NetJS
프로토콜
클라우드
- 인터넷 기반으로 제공하는 컴퓨팅 환경
- Laas, Paas, Saas
인프라
- 하드웨어, 소프트웨어, 네크워크 등 어플리케이션 구축에 필요한 자원을 뜻한다.
형상관리프로그램
- git 소스코드의 버전관리, 추적 및 관리, 공동 작업을 지원하는 시스템
풀 리퀘스트(PR)
- 코드의 공동 작업 시, 소스 코드의 수정사항을 공유하기 위한 요청
Node.js란?
- 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임.
노드는 서버인가?아닌가?
- 서버의 역할도 수행할 수 있는 자바스크립트 런타임.
- 노드로 자바스크립트로 작성된 서버를 실행할 수 있음.
- 서버 실행읠 위해 필요한 http, https, http2 모듈을 제공
런타임
- 런타임 : 특정 언어로 만든 프로그램들을 실행할 수 있게 해주는 가상 머신(크롬의 V8엔진 사용)의 상태
- 노드 : 자바스크립트로 만든 프로그램들을 실행할 수 있게 해줌.
- 다른 런타임으로는 웹 브라우저(크롬, 엣지, 사파리, 파이어폭스)가 있음.
- 노드 이전에도 자바스크립트 런타임을 만들기 위한 많은 시도
- But, 엔진 속도 문제로 실패
내부구조
- 2008년 V8 엔진 출시, 2009년 노드 프로젝트 시작
- 노드는 V8과 libuv를 내부적으로 포함
- V8엔진 : 오픈 소스 자바스크립트 엔진 -> 속도 문제 개선(파서, 컴파일러, 인터프리터, 가비지 컬렉터, 콜스택, 힙)
- 콜스택 : 현재 실행 중인 서브 루틴에 관한 정보를 저장하는 스택
- 힙 : 객체나 동적 데이터 메모리 공간
- libuv : 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현한 라이브러리 / 이벤트 루프와 운영체제 비동기 API/스레드 풀을 지원하는 라이브러리
728x90
반응형