Node.js
-
2-6. 노드 processNode.js 2023. 4. 11. 18:43
I. process 현재 실행중인 노드 프로세스에 대한 정보를 담고 있다. - 컴퓨터마다 출력값이 다를 수 있음 process.version : 설치된 노드의 버전 출력 process.arch : 프로세서 아키텍처 정보 출력 process.platform : 운영체제 플랫폼 정보 출력 process.pid : 현재 프로세스의 아이디 출력 process.uptime() : 프로세스가 시작된 후 흐른 시간 출력. 단위는 초이다. process.execPath : 노드의 경로 출력 process.cwd() : 현재 프로세스가 실행되는 위치 출력 process.cpuUsage() : 현재 cpu 사용량 출력 II. process.env 시스템 환경 변수들이 들어있는 객체 - 비밀키(데이터베이스 비밀번호, 서드파..
-
2-5. 노드의 내장 객체들 (global, console, 타이머)Node.js 2023. 4. 11. 18:29
I. global 노드의 전역 객체 - 브라우저의 window 같은 역할 - 모든 파일에서 접근 가능 - window 처럼 생략도 가능 (console, require 도 global 속성) II. global 속성 공유 global 속성에 값을 대입하면 다른 파일에서도 사용 가능 // globalA.js module.exports = () => global.message; // globalB.js const A = require('./globalA'); global.message = '안녕하세요'; 이런 식으로도 가능은 하지만, 하지 말 것!! 어디서 이렇게 만들었는지 알기 쉽지 않기 때문에 이렇게 하기 보다는 모듈로 만드는 것을 권장! III. console 객체 브라우저의 console 객체와 매우..
-
2-4. 노드 ECMAScript 모듈, 다이나믹 임포트Node.js 2023. 4. 11. 18:14
I. ECMAScript 모듈 1. ECMAScript 모듈이란? ECMAScript 모듈(ES 모듈)은 공식적인 자바스크립트 모듈 형식이다. 노드에서 아직까지는 CommonJS 모듈을 많이 쓰긴 하지만, ES 모듈이 표준으로 정해지면서 점점 ES 모듈을 사용하는 비율이 늘어나고 있다. 브라우저에서도 사용 가능해서 브라우저, 노드 모두 같은 모듈 형식을 사용할 수 있다는 것이 장점이다. //var.mjs export const odd = 'MJS 홀수'; export const even = 'MJS 짝수'; exports.odd = odd; 에서 위와 같이 변한 모습이다. 불러올 때는, 아래와 같이 import 로 불러올 수 있다. //index.mjs import {odd, even} from './v..
-
2-3. 노드 exports, this, require, 순환참조Node.js 2023. 4. 11. 17:22
I. exports const odd = '홀수입니다'; const even = '짝수입니다'; module.exports = { odd, even }; 위와 같은 코드가 있다고 가정했을 때, module.export 를 생략하기 위해선 아래와 같이 작성해야 한다. const odd = '홀수입니다'; const even = '짝수입니다'; exports.odd = odd; exports.even = even; // module.exports = {odd,even}; 이 때, 모듈로 만들고 싶은게 있다면 module.exports 로는 한가지만 넣는 것이 좋고, odd, even 처럼 두 개를 넣고 싶다면 exports만 써서 넣는 것이 좋다. ✨exports 를 썼는데 밑에 module.export를 ..
-
2-2. 노드 CommonJS 모듈 시스템Node.js 2023. 4. 11. 16:59
I. 모듈이란? 노드는 자바스크립트 코드를 모듈로 만들 수 있음 - 모듈 : 특정한 기능을 하는 함수나 변수들의 집합 - 모듈로 만들면 여러 프로그램에서 재사용 가능 II. 모듈 만들어보기 같은 폴더 내에 var.js, func.js, index.js 만들기 - 파일 끝에 module.exports 로 모듈로 만들 값을 지정 - 다른 파일에서 require(파일 경로)로 그 모듈의 내용 가져올 수 있음 1. var.js const odd = '홀수입니다'; const even = '짝수입니다'; module.exports = { odd, even }; 2. func.js const {odd, even} = require('./var'); function checkOddOrEven(num) { if (nu..
-
1-3. 서버로서의 노드Node.js 2023. 4. 11. 16:36
I. 서버로서의 노드 1. 서버 - 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 or 프로그램 2. 클라이언트 - 서버에 요청을 보내주는 주체(브라우저, 데스크탑 프로그램, 모바일 앱, 다른 서버에 요청을 보내는 서버) 3. 노드는 서버가 아니다 - 노드는 서버가 아니다. 하지만, 노드는 서버를 구성할 수 있게 하는 모듈이다. II. 노드 서버의 장단점 - CPU 작업을 위해 AWS Lambda 나 Google Cloud Functions 같은 별도 서비스 사용 - 넷플릭스, 나사, 월마트, 우버 등에서 메인 또는 서브 서버로 사용
-
1-2. 노드의 특성Node.js 2023. 4. 11. 16:29
I. 이벤트 기반 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식 - 이벤트의 예 : 클릭, 네트워크 요청, 타이머 등 - 이벤트 리스너 : 이벤트를 등록하는 함수 - 콜백 함수 : 이벤트가 발생했을 때 실행될 함수 ✨노드뿐만이 아니라 거의 모든 프로그램에 해당!! II. 논블로킹 I/O 오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에 오래 걸리는 함수를 실행 ✨노드에서 동시를 구현하기는 일부를 제외하고 매우 힘들다. 따라서 일부를 알아두자!! - 논블로킹 방식 하에서 일부 코드는 백그라운드에서 병렬로 실행됨 - 일부 코드 : I/O 작업(파일 시스템 접근, 네트워크 요청), 압축, 암호화 등 - 나머지 코드는 블로킹 방식으로 실행 - I/O 작업이 많을 때 노드 ..