package.json : Node.js를 서버로 실행하기 위해서 필요한 패키지 정보 - 설치 npm init nodemon : 자동으로 서버를 재시작 시켜주는 역할을 함 - 아니면 [ctrl] + [shift] + F5 를 수정 할때 마다 눌러줘야함 npm install nodemon -g --save - nodemon 사용 하려면 내가 사용하는 파일을 지정해주면 됨 nodemon [파일이름.js] Koa : Node.js 환경에서 웹 서버를 구축할 때 사용하는 웹 프레임워크 npm install koa --save - koa 사용 및 연결 확인 -> 4000번 포트로 열어서 사용 const Koa = require('koa'); const app = new Koa(); app.use((ctx) => ..
모듈 : 특정한 기능을 하는 함수나 변수들의 집합 - 자바스크립트에서 코드를 재사용하기 위해 함수로 만드는 것과 비슷 - var.js const odd = '홀수'; const even = '짝수'; module.exports = { //exports : 내보는 키워드 -> 다른파일에서 부를 수 있음 odd, even, }; - func.js const { odd, even } = require('./var'); //require : var.js에 있는 값을 불러옴 function checkOddOrEven(num){ if(num % 2) { return odd; } return even; } module.exports = checkOddOrEven; - index,js const {odd, even} ..
싱글 스레드 : 주어진 작업을 혼자서 처리 - 자바스크립트와 노드는 싱글 스레드이기 때문에 한번에 한가지 일만 처기 하능함 -> 논블로킹이 중요! 노드 프로세스도 내부적으로는 스레드를 여러개 갖고 있지만, 우리가 직접 제어할 수 있는 스레드는 하나뿐이기 때문에 싱글 스레드라고 부름 프로세스 : 운영체제에서 할당하는 작업의 단위 - 노드나 인터넷 브라우저 같은 프로그램은 개별 프로세스 - 프로세스 간에는 메모리 등의 자원을 공유하지 않음 스레드 : 프로세스 내에서 실행되는 흐름 단위 - 하나의 프로세스는 스레드를 여러개 가질 수 있음 - 스레드들은 부모 프로세스의 자원을 공유 -> 같은 메모리에 접근 가능 멀티 프로세스 : 스레드를 늘리는 대신, 프로세스 자체를 복사해서 여러 작업을 동시에 처리 - 노드가..
이벤트 기반 : 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식 - 이벤트 : 클릭, 네트워크 요청 등 - 콜백 함수 : 무엇을 할지 미리 등록해 놓은 함수 -> 이벤트 리스너에 콜백 함수를 등록한다 : 특정 이벤트가 발생할 때 무엇을 할지 미리 등록한다는 의미 ex) 버튼을 누르면 경고 창을 띄운다고 했을 때, 콜백 함수는 클릭 이벤트 리스너에 경고 창을 띄우는 행위 노드는 이벤트 기반 방식으로 동작함으로 이벤트가 발생하면 이벤트 리스너에 등록해둔 콜백함수를 호출하고 발생한 이벤트가 없거나 발생했던 이벤트를 다 처리하면 노드는 다음 이벤트가 발생할 때 까지 대기한다 function run() { console.log("3초 후 실행"); } console.log("시작"); setTimeout(..
Node.js Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 서버 : 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램 클라이언트 : 요청을 보내는 주체 - 브라우저, 데스크톱 프로그램, 모바일 앱, 다른 서버 요청을 보내는 서버 등등 " 비동기 이벤트 주도 JavaScript 런타임으로써 Node는 확장성 있는 네트워크 애플리케이션을 만들 수 있도록 설계되었습니다. " 런타임이란, 특정 언어로 만든 프로그램들을 실행할 수 있는 환경 Node.js란, 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있게 해주는 것 - libuv 라이브러리 : 이벤트 기반, 논블로킹 ..