프로그래밍/Node JS
-
[10] Promise All - with async/await프로그래밍/Node JS 2021. 8. 15. 00:12
# 문제를 풀면서 바보같이 공부하지 않았던 부분이 나와서 뒷통수를 맞았다. 만약 여러개의 동작들을 한번에 실행하였을 때 걸리는 시간을 알고 싶다면 어떻게 해야할까? JS에서는 그 답을 너무나 쉽게 주고 있는 것 같다. (내가 모르고 있었을 뿐...) 답은 글의 제목과 같이 Promise All을 사용하는 것이다. 1. 기존에 사용하던 병렬처리 방법 우선 기존에 사용하던 Promise(주로 async await을 기반으로 설명하겠다.) 사용 방식이다. runtime_2-2.js와 같이 사용할 경우 어느정도 병렬처리가 되지만 완벽하지는 않다. 만약 처음 실행한 dori 함수가 10초가 걸리고, nemo 함수가 2초가 걸릴 경우 nemo의 결과 같은 dori와 같이 10초 후에 사용할 수 있을 것이다. [aw..
-
[04] Hoisting프로그래밍/Node JS 2021. 7. 13. 11:46
언젠가 다뤄야한다고 생각한 호이스팅(Hoisting)이라는 개념에 다뤄보고자 한다. Hoisting의 사전적 의미는 아래와 사진과 같이 "무언가를 끌어올린다" 이다. Javascript에서 Hoisting 은 함수, 변수(var) 등을 끌어올려 선언하기 전 상태임에도 사용할 수 있도록 하는 것이다. 기존에 C언어에서 함수를 정의하고 사용하기 위해 Code #004와 같이 사용했었던 경험이 있다. 자세하게 설명하자면 ECMA Script 5에서 변수 선언시 var 변수/함수를 스코프의 가장 위로 옮겨서 선언하는 것이다. 즉 Global 영역에 선언된 변수(const/let제외한 var만) 또는 함수는 자바사크립트 엔진이 가장 먼저 해석하게 된다 단 할당구문은 런타임과정 이루어지기 때문에 hosting이 되..
-
[03] Javascript - Promise 개념정리프로그래밍/Node JS 2021. 6. 24. 11:31
Promise... Promise..? Promise..! 프로미스는 자바스크립트 비동기 처리를 위해 사용하는 객체의 이름입니다. ※ 자바스크립트 비동기 처리 : 특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 실행하는 Javascript의 특성 Promise를 왜 쓸까요? 기존의 javascript 비동기 처리 방식에서 순차적인 로직을 처리하기 위해서 기존의 Callback Hell이 가지고 있던 에러처리의 문제를 해결하고 코드 작성에 있어서 콜백에 비해 많은 유연성, 직관성을 부여하기 때문이다. 01_Promise State (상태) Promise는 Callback 체이닝에 비해 상태를 직관적으로 확인하여 처리하기가 용이하다. - Pending (대기) new Promise(); /..
-
[02] Safari - Javascript Date 함수 이슈사항프로그래밍/Node JS 2021. 1. 5. 10:52
사파리에서 Date 함수를 사용해 현재 시간을 가져오려할 경우 아래의 문제가 발생한다. 그 이유는 사파리에서 Date 함수를 사용할 때 공백 문자가 들어가게 되면 인식을 하지 못하는 것 같다. 따라서 Date 함수는 NaN을 반환하게 되고 정상적인 값을 가져올 수 없다. 이 문제를 해결하려면 위의 코드를 아래의 코드로 변환하면 된다. // 문제가 있는 코드 // 다만 크롬에서는 정상 작동함 new Date('2020-12-18 18:00:00'); // 문제없는 코드 // 크롬, 사파리 둘다 작동함 new Date('2020-12-18T18:00:00'); 날짜와 시간 사이의 공백문자(" ")를 " T "로 치환하여 실행해보면 정상 작동하는 것을 확인할 수 있다. 제발 브라우저는 크롬만 쓰도록 하자..