프로그래밍/Node.js
프로그래밍/Node.js
2020. 7. 12.
[JavaScript] JavaScript에서 Sleep 함수 사용하기
입력한 시간만큼 Code의 실행을 멈추는 일반적인 기능으로 sleep 함수가 있다. 하지만 JavaScript에서는 내장된 sleep 기능이 없기 때문에 필요하다면, node_modules 중 delay 모듈을 사용하는 방법이 있을 것이다. 만약, 외부 모듈을 설치하여 Sleep의 기능을 사용하는 것이 아니라고 한다면 JavaScript 내장 모듈 중에서 어떻게 활용할 수 있을까? JavaScript에서는 입력된 시간이 지난 뒤 주어진 함수나 지정된 코드를 실행시키는 setTimeout 함수가 있다. const timer = () => { setTimeout(() => {}, 1000) console.log('First'); setTimeout(() => {}, 1000); console.log('Sec..
프로그래밍/Node.js
2020. 7. 11.
[JavaScript] ES2020(ES11) 미리 살펴보기.
JavaScript는 그 어떤 프로그래밍 언어보다 빠르게 변화하며, 그간 부족했던 부분들을 보충하고 있다. 하지만 새로운 기능이 등장할 수록 각 프로그래밍 언어들의 세부적인 특징들 중, 공통적인 부분들이 많아지고 있지 않나 하는 생각도 들게 된다. ES2020(ES11)의 신규 기능들은 Chrome 79 버전에 탑재된 기능들로 현재 크롬 콘솔에서 쉽게 테스트가 가능하다. Private Class Variables Class 기반의 프로그래밍 언어들과 달리 JavaScript의 경우 Class 문법을 공식적으로 차용한 지 얼마되지 않았기 때문에 Class 문법을 사용할 때 부족한 부분들이 조금씩 느껴지기는 했다. 그 중 ES2020에서는 Private Class 변수가 신규로 도입되었다. Class App..
프로그래밍/Node.js
2020. 6. 6.
[JavaScript] for 문 대신에 reduce를 사용해보자(비동기 reduce)
Array에서 반복문을 처리하는 여러가지 방법이 있다. 가장 먼저 학습하게 되는 for loop, JavaScript의 내장 메소드(대부분 언어에 동일하게 포함)인 forEach와 map, reduce 등을 순서대로 배우는 것이 일반적이다. 코드 리뷰의 횟수가 늘어나고, 다른 사람이 작성한 코드를 읽거나 디버깅을 해야되는 상황이 잦아지면서 점차 가독성 높은 코드를 작성하기 위한 방법에 대한 고민이 늘어나기 시작했다. 고민 사항과 그 과정에서 수정을 하게 된 여러가지 부분들이 있었지만, 그 중에서 가장 빨리 습관화를 하고자 했던 부분이 Array에 대한 Loop처리 였다. Reduce란? Array 내장 메소드 중 가장 유용하고, 가장 강력한 메소드를 꼽으라고 하면 주저 없이 첫번째를 reduce, 두번째..
프로그래밍/Node.js
2020. 4. 19.
[JavaScript] 기본 매개변수 (Default Parameters) 정확하게 사용하기!
Default Parameters Default Parameter를 사용하면 주어진 값이 없거나 undefined가 전달될 경우, 매개변수를 기본값으로 초기화할 수 있다. /* * Sample Code 1 */ function defaultParams(arg) { console.log(arg); }; defaultParams(); // undefined 위의 샘플 코드를 보면 JavaScript에서 함수의 매개변수가 기본적으로 undefined임을 알 수 있다. 또한, 위 코드를 통해 JavaScript에서는 함수의 인자에 필수값 여부를 설정하는 구분값이 없기 때문에 함수를 선언할 때 parameter를 선언했다고 할 지라도 실제 함수를 호출하는 구간에서 해당 parameter에 값을 넣지 않는다고 해도..
프로그래밍/Node.js
2020. 4. 14.
[JavaScript] Strict Mode란?
'use strict'; Strict Mode란 ECMAScript 5에서 소개된 것으로 JavaScript로 작성된 코드가 제한된 버전을 선택하여 작성하게끔 하는 방법이다. Strict Mode에서는 기존에 조용하게 무시되던 에러들(Silent Errors)이 Error로 Throw될 수 있도록 처리가 된다. JavaScript의 장점이자 단점인 엄격한 방식의 코드 작성의 결핍을 일부 채워줄 수 있는 방법이 된다. 비슷한 맥락에서 JavaScript Engine의 최적화 작업이 어려워지는 일부 코드 상의 실수들을 바로잡을 수 있도록 지원한다. 간혹 Strict Mode 하에서 작성된 JavaScript 코드가 그렇지 않은 코드보다 빨리 작동하기도 한다. Strict Mode라는 표현과 같이 JavaSc..
프로그래밍/Node.js
2020. 4. 8.
[Node.js] NPM Debug 모듈 사용법
A tiny JavaScript debugging utility modelled after Node.js core's debugging technique. Works in Node.js and web browsers. Debug(NPM 모듈)는 console.log()를 대신할 수 있는 로깅(디버깅) 모듈로 아래와 같은 장점을 갖고 있다. 로그를 구조화하여 구성 및 기록할 수 있다. 특정한 로그만 볼 수 있도록 지정할 수 있다. 모듈의 크기가 작아(81.5 kB) 활용하는 데에 부담이 없다. debug 모듈 사용법 const debug = require('debug'); const server = new debug('app:server'); const request = new debug('app:requ..
프로그래밍/Node.js
2020. 4. 5.
[Node.js] Node.js로 SMS 인증번호 시스템 구현하기
최근 대부분의 서비스에서 회원가입 또는 로그인을 할 때, SMS 인증번호를 통한 Auth Check를 하는 경우가 많다. (물론 최근에는 카카오톡 메시지로 인증번호를 전달하는 경우도 많아졌지만) 대부분의 회사에서는 SMS 인증과 관련된 API가 구성되어 있다. 만약, 개별 프로젝트를 진행 중인 상황에서 SMS 인증번호를 통한 Auth 로직을 구성해야 한다면 어떻게 해야할까? SMS 전송 API의 선택 SMS 인증번호 로직을 구현하기 위한 1단계는 문자 전송 API를 선택하는 것이다. 적당한 구글링을 통해 각자의 필요나 상황에 따라 가장 적합한 SMS 전송 API를 찾을 수 있을 것이다. (만약, E-Mail 인증을 택한다면, E-Mail 인증 서비스를 제공해주는 API도 충분히 찾을 수 있다.) SMS ..