반응형
반응형
npm ? 노드의 패키지 매니저 다른사람이 만든 코드소스들을 모아둔 저장소 이미 다른사람이 기능들을 만든코드를 사용해 효율적으로 코딩 가능 패키지 초기화 npm init 명령어로 package 초기화 , 생성을 할수있다. 이후에 나오는 package name 등에 이름이나 버전 , 엔트리포인트를 작성해서 자신의 패키지에 알맞게 작성하면된다. 완료되면 패키지 디렉토리에 package.json 파일이 생성된다. 패키지 설치 npm i 를 통해서 필요한 패키지 설치가능 npm i -D 를 통해서 개발에만 필요한 패키지 설치할수있다. npm i -g 는 글로벌 하게 사용할 패키지 설치할수있으나 pakage.json 에 기록되지않는다. 패키지 버전 Sem Ver 버저닝 노드 패키지 버전은 Semver 방식을 따름..
HTTP 서버 만들기 http 서버를 만드는 'http' 모듈 을 사용해서 서버를 만들어보자 // http 모듈 불러오기 const http = require('http'); // 서버생성 const server = http.createServer((req, res) => { // http 응답 헤더를 구성 res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' }); // 응답하는 본문에 데이터를 쓰는데 사용 ( 큰데이터를 여러번 나눠 전송할수있음 ) res.write('Hello Node!'); // 응답을 완료하고 클라이언트에 전송할 데이터 res.end('Hel..
기본 사용법 노드는 기본적으로 모듈로 만들어서 사용한다. 다른파일에서 코드를 사용하는 방법은 내보내기 와 가져오기를 통해서 사용할수있는데 내보내는 방법은 module.exports 를 사용해서 내보낼 변수를 적어주면된다. const odd = "홀수 입니다."; const even = "짝수 입니다."; // 내보내기 module.exports = { odd, even, };이렇게 내보내진 변수들은 다른 파일에서 require 를 사용해서 받아 사용할수있다. // 가져오기 const { odd, even } = require("./number"); console.log(odd, even);모듈 ? 모듈시스템은 CommonJs 와 ECMAScript 두가지 가 있다. CommonJS Nodejs 에서 보편..
호출 스택 자바스크립트에서의 함수 실행 순서를 관리하는 구조를갖는 시스템이다. 작동 방식 함수 호출 - 함수가 호출되면 실행컨텍스트가 생성되고 호출 스택의 맨 위에 푸쉬가 된다. 함수 실행 - 스택의 맨위에 위치한 함수가 실행된다. 함수 반환 - 함수가 작업을 마치고 반환되면 실행컨텐스트에서 제거된다. 이어서 1~3 번까지 반복한다. 비동기 함수 의 호출 스택 호출스택에서 비동기 함수가 실행되면 백그라운드에 있는 브라우저라면 웹 API , 노드라면 C++ API 에 넘겨서 수행한다. ( 호출스택에서는 제거 ) 수행이 끝나면 함수는 콜백 큐에 추가되는데 이벤트 루프가 호출스택을 계속 주시하고있다가 호출스택이 비어있게되면 그때 이벤트루프가 콜백 큐에 있던 함수를 호출스택에 푸쉬한다.화살표 함수 ES6 이후 ..
Node.js ? 자바스크립트를 사용해 서버측 애플리케이션 구축하기 위한 오픈소스 , 크로스플랫폼 런타임 환경이다. 2009년에 라이언 달 이 개발했고 V8 자바스크립트 엔진을 사용해 구현되있다. 노드의 특징 비동기 I/O 처리 - 비동기식 이벤트 주도 아키텍처를 사용한다. 단일 스레드 - 기본적으로 단일 스레드를 사용한다. 다만 내부적으로 여러개의 스레드를 사용하고 개발자가 컨트롤 할수있는 스레드는 하나이다. ( 노드 14 이후로 한정적이지만 멀티 스레드를 지원함 ) 빠른 실행 속도 - V8엔진을 사용해 자바스크립트 코드를 기계어로 컴파일해 빠른 실행속도를 제공한다. NPM - 패키지관리 NPM 을 통해 오픈소스 라이브러리를 쉽게 사용할수있다. 크로스플랫폼 - Linux , Windows , MacOs..