분류 전체보기 1341

process

node의 processs는 운영체제에 관한 정보를 가지고 있다. process.version : 설치된 노드 버전 process.arch : 프로세서 아키텍처 정보 process.platform : 운영체제 플랫폼 정보 process.pid : 현재 프로세스 ID process.uptime : 프로세스가 시작된 후 흐른 시간 process.execPath : 노드 경로 process.cwd : 현재 프로세스가 실행되는 위치 __(던더스코어) filename, __dirName , process.cwd를 통해 경로를 많이 알아낸다 process.cpuUsage : 현재 cpu 사용량 process.env 시스템 환경 변수들이 들어있는 객체 환경 변수는 process.env로 접근 가능 비밀키(데이터베이스..

Node/노드 기능 2022.07.23

모듈 심화, 순환 참조

require 심화 몇 가지 알아둘 만한 속성이 있음 require가 제일 위에 올 필요는 없음 require.cache에 한 번 require 한 모듈에 대한 캐싱 정보가 들어있음. require에서 호출했던 모듈을 한번 더 호출하면 require.cache에서 캐싱되어 있는 모듈을 조회해서 준다 require.cache를 초기화 하면 다시 파일을 불러와서 캐시에 저장한다 require.main은 노드 실행 시 첫 모듈을 가리킴 import같은 경우 node에서 사용하는 것이 아닌 JavaScript에서 사용하는 것으로 캐싱을 사용하지 않는다 순환 참조 두 개의 모듈이 서로를 require 하는 상황을 조심해야 함 Dep1이 dep2를 require하고, dep2가 dep1을 require 함. Dep..

Node/노드 기능 2022.07.23

_filename, _dirname, exports와 this

_filename, _dirname node에서 브라우저와 다르게 컴퓨터에 접근할 수 있다(헤커가 심어놓은 js파일을 잘 못 실행할 경우, 해킹 위험이 있다) __filename: 현재 파일 경로 __dirname: 현재 폴더(디렉터리) 경로 module, exports module.exports 외에도 exports로 모듈을 만들 수 있음 const odd = '홀수입니다'; const even = '짝수입니다'; exports.odd = odd; exports.even = even; //module.exports === exports === {}//초기 빈 객체로 되어있다 exports.객체명 = 객체명으로 값을 채운 뒤에 module.exports를 사용하게 된다면 참조값이 변경되기 때문에 선언했던..

Node/노드 기능 2022.07.23

Global과 콘솔, 타이머

Node가 JavaScript에 제공하는 기능이 있다(내장 객체 기능, required,export..등) -> 외우지 말고 이런 기능이 있다 생각하고 찾아보자 Global(브라우저의 Window) 최신 브라우져에서는 global로 통일 하였다. 노드의 전역 객체 브라우저의 window 같은 역할 모든 파일에서 접근 가능 window처럼 생략도 가능(console, require도 global의 속성) global은 생략가능하다(console.log -> global.console.log를 생략한 것이다.) global 속성에 값을 대입하면 다른 파일에서도 사용 가능 좋지 않은 방법이다(어디서 해당 값을 넣었는지 파악하기 어렵기 때문에 권장하지 않는다) Console(브라우저 console 객체와 유사)..

Node/노드 기능 2022.07.23

모듈로 만들기

노드는 자바스크립트 코드를 모듈로 만들 수 있음 모듈: 특정한 기능을 하는 함수나 변수들의 집합 모듈로 만들면 여러 프로그램에서 재사용 가능 같은 폴더 내에 var.js, func.js, index.js 만들기 var.js const odd = '홀수입니다'; const even = '짝수입니다'; module.exports = { //파일에서 한번만 넘겨줄 수 있다. odd, //키와 값변수가 같아서 생략 odd : odd even }; /* export default { odd, even } */ func.js //const value = require('./var'); const { odd, even } = require('./var'); //구조분해할당 //import { odd, even } f..

Node/노드 기능 2022.07.23

REPL와 js 파일 실행하기

자바스크립트는 스크립트 언어라서 즉석에서 코드를 실행할 수 있음 REPL이라는 콘솔 제공 R(Read), E(Evaluate), P(Print), L(Loop) 윈도에서는 명령 프롬프트, 맥이나 리눅스에서는 터미널에 node 입력 프롬프트가 > 모양으로 바뀌면, 자바스크립트 코드 입력 입력한 값의 결괏값이 바로 출력됨. 간단한 코드를 테스트하는 용도로 적합 긴 코드를 입력하기에는 부적합 HelloWorld.js function helloWorld(){ console.log('Hello World'); helloNode(); } function helloNode() { const str = 'Hello Node'; console.log(str); } helloWorld(); 자바스크립트 파일을 만들어 통째..

Node/노드 기능 2022.07.23

Front-End 자바스크립트

서버로 요청을 보내는 코드 라이브러리 없이는 브라우저가 지원하는 XMLHttpRequest 객체 이용 AJAX 요청 시 Axios 라이브러리를 사용하는 게 편함. HTML에 아래 스크립트를 추가하면 사용할 수 있음. FormData를 통해 데이터를 전달할 수 있다. GET 요청 보내기 axios.get 함수의 인수로 요청을 보낼 주소를 넣으면 된다. 프로미스 기반 코드라 async/await 사용 가능. axios가 프로미스를 지원하는지, callback을 지원하는지는 코드만 봐서는 알 수 없기 때문에 공식문서를 확인 해야한다. POST 요청 보내기 POST 요청을 하는 코드(데이터를 담아 서버로 보내는 경우) 전체적인 구조는 비슷하나 두 번째 인수로 데이터를 넣어 보냄 FormData HTML form..

Promise, async/await

Promise 프로미스: 내용이 실행은 되었지만 결과를 아직 반환하지 않은 객체 콜백 헬이라고 불리는 지저분한 자바스크립트 코드의 해결책 function callback() {} //callback 이라는게 항상 들어가야 한다. //callback 함수는 이렇게 빼내는 것이 최선이다. setTimeout(callback, 3000); const promise = setTimeoutPromise(3000); console.log("딴짓"); console.log("딴짓"); console.log("딴짓"); console.log("딴짓"); console.log("딴짓"); //... promise.then(() => { //변수로 뽑아 사용할 수 있다 console.log("지금 할래"); }); The..

클래스

프로토타입 문법을 깔끔하게 작성할 수 있는 Class 문법 Function 코드가 복잡하고, 분석하기 힘들다. class 사용 전반적으로 코드 구성이 깔끔해짐 Class 내부에 관련된 코드들이 묶임 Super로 부모 Class 호출 Static 키워드로 클래스 메서드 생성 Constructor(생성자), Extends(상속) 등을 깔끔하게 처리할 수 있음 코드가 그룹화되어 가독성이 향상됨.

비구조화 할당

const example = {a: 123, b: { c: 135, d: 146}}; const a = example.a; const d = example.b.d; const { a, b: { d } } = example; console.log(a); //123 console.log(d); //146, 객체는 키가 같아야 된다. const arr = [1,2,3,4,5]; const x = arr[0]; const y = arr[1]; const z = arr[4]; const [x, y, , , z] = arr; //배열은 자리가 같아야된다 객체는 키가 일치해야하고, 배열은 자리가 일치해야 한다. const { 변수 } = 객체;로 객체 안의 속성을 변수명으로 사용 가능 단, getCandy()를 실행..