⚙️ Node.js

ID : 2401271018 Tag : #javascript 객체 생성 자바스크립트에서 숫자, 문자열, 불린값, null, undefined 같은 기본 타입을 제외한 모든 값은 객체이다. 따라서 배열, 함수, 정규표현식 등 모두 객체로 표현을 할 수 있다. 자바스크립트에서 객체는 단순히 ‘이름(key) : 값(value)’의 형태로 프로퍼티들을 저장하는 컨테이너로써, 이는 Hash라는 자료구조와 상당히 유사하다. 특히 기본 타입은 한가지의 값만을 가지고 있는 것에 비해, 참조 타입의 객체는 여러개의 프로퍼티를 포함할 수 있다. 자바스크립트에서는 객체를 생성하는 세 가지 방법이 있다. Object() 객체 생성자 함수를 이용하는 방법. 객체 리터럴을 이용하는 방법 생성자 함수를 이용하는 방법 1. Obje..
개요 SMTP를 사용하기 위해서는 발신자의 구글계정에서 SMTP또는 IMAP을 사용으로 설정해야 되고 구글 계정의 2단계 인증을 켜고 2단계 인증에서 앱 비밀번호를 발급받아야 한다. 앱 비밀번호는 보통 wi3e wie2 cciv weio 의 형식이다 진행 nodemailer 패키지를 임포트 한다. npm install nodemailer senderinfo.json 파일을 하나 만든 후 발신자의 계정과 앱 비밀번호를 적는다 { "user": "myauth@mail.com", "pass": "google의 예) wi3e wie2 cciv weio" } mail.js 파일을 하나 만든 후 아래의 내용을 입력한다. const nodemailer = require('nodemailer'); const sende..
Node JS에서 디렉터리나 파일 관련 작업을 진행하기 위해서는 거의 대부분 path 모듈이 필수적으로 사용된다. 노드 기본 조작으로 현재 위치정보에 대해 표시를 할 수 있지만 윈도우OS 와 유닉스기반 OS의 디렉터리 표시 타입부터가 차이가 난다. 윈도우 : C:\Users\MyCom\test.js 유닉스기반 : /home/mycom/test.js 윈도우의 경우는 \ 유닉스기반의 경우는 / 를 사용하기 때문에 매번 개발자가 고생을 해가며 OS별 경로 관련 기능을 구현하는데 애를 먹어야 한다. path 모듈은 이러한 고증을 쉽게 해결해 줄 뿐 아니라 다양하고 편리한 기능들을 제공하고 있다. path.sep : 현재 OS가 경로를 표시하는 데 사용하는 구분자 (윈도우는 \, 유닉스는 / 가 될 것이다.) e..
Node js를 통해 테스트를 진행하던 중 callback을 강제로 써야 되는 경우가 발생했다. async/awiat 또는 promise에 익숙해져 있던 탓에 callback을 계속 쓰다 보면 헷갈리는 경우가 많은데 callback을 promise 처럼 바꿔서 async/await 패턴을 사용하는 방법이 있다. 아래의 예를 먼저 확인해보자. const timeoutTest = async()=>{ console.log('0초'); await new Promise((resolve,reject)=>setTimeout(()=>resolve(),5000)); //5초 대기 console.log('5초'); } timeoutTest(); //결과: //0초 //5초 (5초뒤에 출력) 우선 new Promise라는 ..
최근에 Flutter로 구현한 클라이언트 앱을 테스트하던 중 예상치 못한 문제가 발견되었다. 분명 서버로부터 시간도 정상적으로 받아오는데 DateTime.now()를 통해 현재시간과 비교를 해봐도 9시간이 넘어가는 시간으로 표시가 되던 것이다. 짐작컨대 이것도 골치 아픈 UTC시간대 이슈일 것으로 생각되었고 실제 Raw 데이터를 확인했을 때 시간이 이렇게 표시가 되던 것이다. 왼쪽: DateTime.now() 오른쪽: DateTime.parse(data['postedDateTime']); 시간 숫자 자체는 DB에 저장된 시간이랑 동일하다 문제는 저 뒤에 Z자 하나 때문에 Flutter에서는 이것을 UTC 시간으로 인지를 해버리는 탓에 실제로 toLocal() 함수를 돌렸을 때 +9 시가 된 18시로 표시..
최근에 C#으로 구현된 프로젝트의 API를 개발하던 중 개발사에서 개발한 암호화 시크릿 키가 8자리로 되어 AES128 방식을 적용한 알고리즘을 건네받았다. Node.js에서 똑같은 알고리즘과 시크릿 키를 적용하여 아래처럼 구현을 해뒀다 encryptAES128: (text) => { const aesKey = '12345678'; let cipher = crypto.createCipheriv('aes-128-ecb', aesKey, null,); let encryptedData = Buffer.concat([cipher.update(text), cipher.final()]); return encryptedData.toString('base64'); } 그런데 한 가지 문제 점이 발생했는데 aes128 ..
Dogfoot_JW
'⚙️ Node.js' 카테고리의 글 목록 (2 Page)