ES6
-
Sequelize.js 에서 Class 도입하기 :: 마이구미Nodejs 2018. 1. 1. 20:07
이 글은 Sequelize.js 을 다루지만, 튜토리얼은 아니다.중심 주제는 ES6의 class 키워드를 활용한 모델 정의에 대한 문법을 다루는 것이다.sequelize 의 기본적인 내용을 다루지만, 자세히 다루지 않는다.관련 코드 - https://github.com/hotehrud/sequelize-class참고 링크 - https://github.com/sequelize/sequelize/issues/6524 본인이 이 글을 쓰게 된 동기는 다음과 같다.본인은 ES6의 class 키워드 도입 후부터 class 중심으로 코드를 짜고 있다.그래서 sequelize 관련 코드 또한 class 키워드를 사용하고 싶었다. 먼저 간단히 sequlize 에 대해 살펴보자. Sequelize.js 는 무엇인가? ..
-
ES6 class 도입에 대한 이해 :: 마이구미Javascript 2017. 10. 18. 15:43
이 글은 ES6에서 도입된 class 키워드에 대한 이해를 도울 것이다.광범위하고 깊은 내용이 많기에, 다소 간략하게 다룬다.자세한 사항은 관련 링크를 참고하길 바란다. 자바스크립트는 ES6에서 class 키워드가 도입되었다.class, super, extends, static 등 class 기반의 키워드들이 도입되었다.클래스 기반에 익숙한 사용자에게는 좋은 소식이지만, 한편으로는 많은 비평이 존재한다. Why? 왜 class 도입에 대해 많은 이야기가 오고가는 것인가? 우선 자바스크립트가 나온 시점으로 돌이켜보자.클래스 기반 언어인 C++ 또는 JAVA 개발자가 자바스크립트는 다룬다면, 과거에나 현재에나 비슷한 의문과 혼란을 가진다.(간단히 말하자면, 동적 언어라는 것과 클래스가 존재하지 않는다는 점이..
-
Arrow Function(화살표 함수)이란? :: 마이구미Javascript 2017. 10. 4. 23:42
이 글은 ES6 문법 중 하나인 Arrow Function(화살표 함수) 를 다뤄본다. 완벽히 숙지하지 않고 사용한다면, 예기치 못한 오류가 발생할 수 있다. 글을 이해하기 위해서는 this 에 대한 이해가 필요하다. this 공식 문서 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this ES5 이하는 지원하지 않는다. // 함수 표현식 function () {} // 화살표 함수 표현식 () => {} 현재 ES6를 대부분 알고 있거나, 사용하고 있다고 볼 수 있다. 그 중 가장 많이 사용하는 것이 let, const, arrow function 이 아닐까 생각한다. 깊게 보지 않는다면, 단순히 짧게 표현하..
-
Typescript 써야할까? :: 마이구미Javascript 2017. 9. 9. 01:19
이 글은 Typescript 도입 과정 중 일어난 경험을 통해 작성된다.Typescript 도입을 고민한다면, 참고하면 좋을 것이다.개인적인 견해임을 참고바란다.참고한 링크 - the shocking secret about static types 본인은 프론트 쪽을 Vue.js를 도입한 후, 서버쪽을 구현하기에 앞서 고민했다. "서버 쪽도 새로운 시도를 해보면 어떨까?" 그 결과 Typescript 도입을 고민해보았다.요즘 Typescript 사용량에 있어서도, Angular 영향이 크더라도 증가하는 추세이다. 그렇다면 도대체 Typescript란 무엇인가? Typescript는 MS에서 만든 자바스크립트의 상위 언어로써, 서로 다른 언어가 아니다.큰 차이는 정적 타입과 동적 타입이라고 볼 수 있다. 포..
-
getter setter in ES6 :: 마이구미Javascript 2017. 5. 19. 23:55
이번 글은 getter와 setter를 다뤄본다.getter와 setter에 대한 자료는 이해할 수 없는 글들과 궁금증을 해결시켜주는 못하는 글들이 대부분이다.도대체 왜 getter와 setter 굳이 왜 쓰는지? 왜 써야하는거지? 대한 궁금증에 도움이 되는 글이 쓰겠다.예제는 ES6 기준으로 진행하지만, 언어와 상관없이 봐도 무관하다. getter와 setter를 언급한다면, 대부분 private 개념이 따라오게 된다.책이나 글에서 볼 수 있는 극단적인 예는 아래와 같다.private 변수를 지정한 후, 이 변수에 접근하기 위해 getter, setter를 이용한다.맞는 말이다. 하지만 이해하기 힘들 거라고 생각한다. 다음 예제를 통해 확인해보자.1. name을 저장할 때는 정확한 값일 때 저장한다.2..
-
async 모듈을 통한 비동기 제어 :: 마이구미Nodejs 2017. 3. 18. 22:11
비동기 관련 최신글 async/await - http://mygumi.tistory.com/328 이번 글은 Node.js 에서 비동기를 제어하기 위한 방법 중 Async 모듈을 다뤄본다.비동기 제어는 비동기 프로그래밍을 하다보면 접할 수 있는 문제점들이 있기에 필요하다.예를 들어, ajax, db query, request 등 비동기로 처리되다보니 콜백지옥을 맛보기도 한다. 위의 말이 이해가 가지 않더라도,아래 예시를 통해 조금 더 자세히 다룰테니 이번 글의 요지를 알 수 있으니 끝까지 읽어보길 바란다. 다음의 코드를 보자. app.get('/user/:userId', function(req, res) { var locals = {}; var userId = req.params.userId; db.ge..
-
let vs const [ES6] :: 마이구미Javascript 2017. 2. 24. 15:49
이번 글은 es6에서 제공하는 let과 const 키워드에 대해 다뤄본다.글의 이해에 도움이 되는 이전 글을 읽기를 바란다. (function scope vs block scope)원본 글을 번역하여 작성하였다. 이전 글에서 언급했듯이 var는 function scope, let과 const는 block scope를 의미한다. 같은 scope 내부에서 선언된 변수들을 보자. const key = 'abc123';let points = 50;let winner = false; 위 코드에서 우리는 winner 변수를 다시 선언해보자. let winner = true; 무슨 결과가 나올까?우리가 알고 있기로는 문제가 없는 코드이다.var를 통해 변수 선언의 경우에는 같은 변수로 처리가 되기 때문이다.이러한 경..
-
function scope VS block scope :: 마이구미Javascript 2017. 2. 23. 23:08
이번 글은 function scope와 block scope를 다뤄본다.es6에서 let과 const 키워드를 다루기 위한 필요한 지식들을 위한 글이다.자바스크립트에서 변수 선언시 var 키워드를 사용한다는 것을 알고 있다.아직까지는 es5를 대부분 사용한다. (잘 모른다면 현재 사용하거나 책에서 보는 것들이 es5)하지만 점차 es6를 접하고 있고 훨씬 빠른 속도로 지향할 것으로 생각한다. es6에서는 var 키워드만을 사용하지 않고, let, const가 추가되었다.var 와 let, const의 차이점은 크게 유효 범위(scope) 라고 볼 수 있다.var는 function scope이고, let, const는 block scope이다.function scope는 함수(function) 단위, bl..