Javascript/Node(38)
-
[Node] Promise.race 사용해보기
promise.all과 문법이 유사 다른 점은 promise.all은 모든 promise가 완료될 때까지 기다리는 반면 promise.race는 가장 먼저 완료된(resolve)가 리턴 됨 예시 소스 'use strict' const promise1 = new Promise((resolve, reject) => { setTimeout(() => resolve(2000),2000) }) const promise2 = new Promise((resolve, reject) => { setTimeout(() => resolve('즉시'),0) }) Promise.race([promise1, promise2]).then(value => console.log(value));
2020.09.29 -
[Node] promise.all 사용해보기
promise.all 이란? promise를 통해 비동기 처리할 때 다수의 promise가 완료될 때까지 모든 promise를 대기시키고 완료가 될 때 해당하는 값을 리턴 받을 수 있도록 하는 함수 배열 안에 있는 모든 promise가 완료될 때까지 기다렸다가 모두가 실행됐을 경우 값을 리턴 한가지 이상 혹은 다수의 비동기 promise에 대해서 모든 작업의 완료를 보장받을 수 있음 다양한 API를 호출하고 여러가지 데이터를 조합할 경우에 자주 쓰임 예시 const promise1 = new Promise((resolve, reject) => resolve('즉시 호출')); const promise2 = new Promise((resolve, reject) => { setTimeout(() => res..
2020.09.28 -
[Node] File System 읽기와 쓰기(callback 방식과 async await 방식)
callback 방식 'use strict' const fs = require('fs'); fs.readFile('test.txt', 'utf-8', (err, data) => { // 오류를 항상 먼저 핸들링 if(err) { console.log(err); return; } console.log(data); }); const content = 'something to write'; fs.writeFile('test.txt', content, err => { if(err) { console.log(err); return; } console.log('success'); }); callback 함수를 promise로 변경하여 파일을 읽고 쓰는 함수를 하나로 만듦 'use strict' const fs = ..
2020.09.28 -
[Node] node.js에서 DNS 주소 확인하기
DNS란? DNS 또는 Domain Name System은 사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환 스마트폰이나 노트북부터 대규모 소매 웹 사이트의 콘텐츠를 서비스하는 서버에 이르기까지 인터넷상의 모든 컴퓨터는 숫자를 사용하여 서로를 찾고 통신합니다. 이러한 숫자를 IP 주소라고 합니다. 웹 브라우저를 열고 웹 사이트로 이동할 때는 긴 숫자를 기억해 입력할 필요가 없습니다. 그 대신 example.com과 같은 도메인 이름을 입력해도 원하는 웹 사이트로 갈 수 있습니다. 참조 : https://aws.amazon.com/ko/route53/what-is-dns/ DNS란 무엇입니까? – DNS 소개 - AWS ..
2020.09.28 -
[Node] EventEmitter
EventEmitter란? 특정 이벤트가 발생했을 때 일괄적으로 로직을, 즉 특정 코드들을 실행할 수 있도록 구조적으로 코드를 작성하는 방법을 말한다. 해당 예시는 어떠한 사이트에 새로운 유저가 들어왔을 때 특정 이벤트가 실행된다고 가정한 것이다. 자세한 설명은 이미지의 주석을 확인 'use Strict' const EventEmitter = require('events'); class ChatManager extends EventEmitter { } const chatManager = new ChatManager(); chatManager.on("join", () => { console.log("new user joined"); }) chatManager.emit("join");
2020.09.28 -
[Node] Promist Chainging, Promist.all
Promise Chaining은 여러 개의 프로미스를 then으로 연결해주는 것이다. 테스트할 js 파일을 만들고 아래 소스를 추가한다. 아래 소스는 setTimeout을 사용하여 1초 후에 p1의 text를 찍고 3초 후에 p2의 텍스트를 찍는 소스다. 병렬적으로 실행 된다. (p1 실행 후 3초 뒤가 아닌 처음 실행 기준에서 3초) const p1 = new Promise((resolve, reject) => { setTimeout( () => { resolve({ p1_text : "p1의 텍스트"}); }, 1000); }); const p2 = new Promise((resolve, reject) => { setTimeout( () => { resolve({ p2_text : "p2의 텍스트"}..
2020.09.28