JavaScript&TypeScript 23

JavaScript 소수점 반올림, 올림, 내림, 버림 처리

Math.round() 입력된 숫자를 소수점 반올림하여 반환 Math.round(4.5) // 5 Math.round(9.2) // 9 Math.round(-4.5) // -4 Math.round(-4.9) // -5 Math.round(-9.2) // -9 Math.ceil() 입력된 숫자를 소수점 올림하여 반환 Math.ceil(4.2) // 5 Math.ceil(9.9) // 10 Math.ceil(-4.2) // -4 Math.ceil(-9.9) // -9 Math.floor() 입력된 숫자를 소수점 내림하여 반환 Math.floor(4.7) // 4 Math.floor(9.2) // 9 Math.floor(-4.2) // -5 Math.floor(-4.7) // -5 Math.floor(-9.2..

JavaScript flat(), flatMap()

ES2019에 추가된 flat(), flatMap()에 대해 알아보자. flat() 지정한 깊이(기본값 1)까지 하위 배열을 평탄화한 새로운 배열로 생성하여 반환한다. 배열의 구멍도 제거한다. 구문 const newArr = arr.flat([depth]) 예제 const arr1 = [1, 2, [3, 4]]; arr1.flat(); // [1, 2, 3, 4] const arr2 = [1, 2, [3, 4, [5, 6]]]; arr2.flat(); // [1, 2, 3, 4, [5, 6]] const arr3 = [1, 2, [3, 4, [5, 6]]]; arr3.flat(2); // [1, 2, 3, 4, 5, 6] const arr4 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 1..

Node.js로 특정 IP 접근 허용/차단

특정 IP로만 접근을 허용하거나 차단해야 하는 경우가 있다. Node.js와 Express.js 환경에서 어떻게 하는지 알아보자. 특정 IP 설정 const ips = ['127.0.0.1','127.0.0.2']; 접근 허용 const allowIPs = (ips) => { return (req, res, next) => { const clientIP = req.headers['x-forwarded-for'] || req.socket.remoteAddress; if (ips.includes(clientIP)) { next(); } else { res.status(403).send('접근 차단'); } }; }; app.use(allowIPs(ips)); 접근 차단 const blockIPs = (ips..

JavaScript Fetch, Axios 차이

HTTP Request를 위한 방법 중 Fetch, Axios에 대해 알아보자. Fetch fetch("https://localhost:3000/user", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ id: "hj1", name: "hjkang", }), }).then((response) => console.log(response)); 장점 내장 라이브러리이므로 별도로 import 할 필요가 없다. 내장 라이브러리이므로 업데이트에 따른 에러 방지가 가능하다. Promise를 기반으로 만들어져서 다루기 쉽다. 단점 지원하지 않는 브라우저가 존재한다.(ex. IE11) 네트워크 에러 발생 ..

JavaScript console.time()

console.time()이란? 코드나 함수 실행에 걸리는 시간을 계산 할 때 타이머로 사용 console.timeEnd()이란? 타이머를 종료하고 걸린 시간을 밀리초 단위로 출력 사용 방법 매개변수인 label은 타이머의 이름으로 자유롭게 지정 가능 입력하지 않을 시 default label로 자동 지정 // 타이머 시작 console.time(label) // 시간 측정이 필요한 코드 작성 // 타이머 종료 console.timeEnd(label) 예시 1부터 999999 까지의 숫자를 더하는 add() 함수의 실행 시간 계산 타이머 이름은 "test timer"로 하였음 function add() { let sum = 0; for (let i = 1; i < 1000000; i++) { sum +=..

JavaScript console.table()

많은 사람들이 JavaScript 코드 디버깅 할 때 console.log() 를 사용한다. console.table()을 활용하여 좀 더 효율적으로 디버깅해보자. console.table()이란? 배열과 객체를 테이블 형식으로 콘솔에 출력 테이블의 헤더를 클릭하여 정렬도 가능 사용 방법 1. 배열 const fruits = ['apple', 'banana', 'mango'] console.table(fruits) 2. 배열의 배열 const names = [['Kang', 'HyeonJi'], ['Hong', 'GilDong'], ['Kim', 'Test']] console.table(names) 3. 객체 const user = { name: "Kang HyeonJi", age: 30, } conso..

JavaScript에서 jwt 발급

jsonwebtoken 패키지 설치 npm i jsonwebtoken 토큰 발급 const jwt = require("jsonwebtoken"); // es 쓰는 경우 import jwt from "jsonwebtoken"; const token = jwt.sign({ email: "test@user.com" }, "secret_value"); console.log(token); // 로그를 찍어보면 eyJ로 시작하는 긴 문자열이 출력되는데, 이 값이 발급받은 토큰 토큰 검증 - jsonwebtoken 에서 제공하는 verify() 함수를 사용하여 검증한다. - 첫번째 인자로는 토큰 문자열을 받고, 두번째 인자로는 sign() 함수와 동일하게 키를 받는다. const token = jwt.sign({ e..

JavaScript 배열 자르기

JavaScript에서 배열을 자르기 위해서는 slice() 함수를 사용한다. slice() - 배열의 일부분을 잘라내어, 새로운 배열로 리턴 - 원본 배열의 값은 유지arr.slice([begin[, end]]) 파라미터 - begin: 잘라낼 배열의 시작 index - end: 잘라낼 배열의 종료 index로, end index 값은 잘라낼 배열에 포함되지 않음 end index를 생략하는 경우, begin index 부터 배열의 끝까지 잘라냄 리턴값 - 잘라낸 원소들로 만든 새로운 배열을 리턴 예시arr.slice(1, 3); // arr[1]~arr[3]까지 복사한 새로운 배열 리턴 (arr[3]은 제외) arr.slice(1); // arr[1]부터 배열의 끝까지 복사한 새로운 배열 리턴 arr..

JavaScript 배열 중간에 요소 추가 및 삭제

JavaScript에서 배열 중간에 요소를 추가하거나 삭제하기 위해서는 splice() 함수를 사용한다. splice() - 배열의 요소를 삭제, 교체하거나 새로운 요소를 추가하여 기존 배열을 변경하고, 변경된 배열을 반환array.splice(start[, deleteCount[, item1[, item2[, ...]]]]) 파라미터 - start: 변경할 배열의 시작 Index - deleteCount: start index부터 deleteCount의 개수만큼 요소 삭제 - items: 배열의 start index에 item들 추가 리턴값 - 삭제된 요소의 배열을 리턴 예시 # 추가users.splice(1, 0, 'Test'); // 1번 인덱스 자리에 'Test' 추가# 삭제users.splice..

JavaScript로 GCS에 파일 업로드 및 다운로드

Import const { Storage } = require('@google-cloud/storage') const xlsx = require('xlsx') GCP Storage에 파일 업로드 try { const storage = new Storage() await storage .bucket(bucket) .file(file) .save(req.files.image.data, { public: false, }) } catch (err) { console.log('storage error ', err) } GCP Storage에 업로드한 xlsx 파일을 json으로 조회 const storage = new Storage() const content = await storage.bucket(bucket..