Javascript/ES5 & ES6

    async/await

    async/await 패턴은 es8에서 도입되었는데 es6에서 표준화된 Promise 패턴으로도 불편함이 있었고 이 불편함을 해소하기 위해서 async/await 패턴이 도입되었다. 따라서 반드시 Promise 패턴을 알고 있어야 한다. async/await에서 사용되는 몇가지 규칙이 있다. await 는 반드시 async와 같이 사용되어야 한다. await 뒤에는 반드시 Promise 객체가 와야 한다. await는 Promise 객체의 비동기 작업이 끝날때까지 동기방식처럼 blocking 되어서 기다렸다가 작업이 끝나면 그 결과를 리턴한다. async를 앞에 붙인 함수는 resolved 된 Promise를 리턴하므로 만일 결과를 받아서 사용할려면 .then()으로 결과를 받아서 처리할 수 있다. as..

    비동기 패턴 - 콜백, Promise

    비동기 패턴 - 콜백, Promise

    setTimeout 만약 아래 코드를 실행하면 결과가 어떻게 될까? A-B-C 순으로 출력이 될까 아니면 A-C-B순으로 출력이 될까? console.log("A"); setTimeout(function () { console.log("B"); }, 0); console.log("C"); 만약 자바스크립트가 멀티쓰레드라면 실행할 때마다 A-B-C로 출력되거나 A-C-B로 다르게 출력이 될 것이다. 메인쓰레드 외에 setTimeout이라는 부분을 별도의 쓰레드가 담당하게 되어서 두개의 쓰레드가 경합하면 메인쓰레드가 C를 출력할지 B를 출력할지 CPU가 다르게 할당할 것이기 때문이다. 그러나, 자바스크립트는 싱글쓰레드 언어이다. 따라서 setTimeout 부분을 별도의 쓰레드로 할당하지 않고 나중에 실행하기..

    객체 생성, Class

    객체 생성 1. 객체 리터럴 방식 var obj = {key1: value1, key2: value2, ...} 위의 방식처럼 변수처럼 객체를 생성하는 방법으로 중괄호 안에 key: value 쌍을 쉼표(,)로 구분하여 만든다. var duck = {name: "duck", height: 180, age: 26}; console.log(duck); { name: 'duck', height: 180, age: 26 } 2. 생성자 방식 [1] new Object() new 연산자를 통해 Object 객체의 생성자 함수 호출. var duck = new Object(); duck.name = "duck"; duck.height = 180; duck.age = 26; console.log(duck); { na..

    lodash

    https://lodash.com/docs/ Lodash Documentation _(value) source Creates a lodash object which wraps value to enable implicit method chain sequences. Methods that operate on and return arrays, collections, and functions can be chained together. Methods that retrieve a single value or may return a primiti lodash.com lodash lodash 라이브러리는 자바스크립트로 개발시 가장 많이 사용되는 라이브러리 중에 하나이다. array 를 다룰때 번거로움을 없애고 쉽게 ..