본문 바로가기

# Lang

(27)
# Lang/ECMAScript ES11 (ES2020) New Features - 변경점 총정리 ES11은 보다 깊은 편의성 개선을 제공합니다. 기존의 문법에서 걸림돌이 되거나 불편했던 제약사항들을 완화하거나, 그것을 해결한 기능을 새로운 문법으로 풀어냈습니다. 톺아보기 : New Features BigInt globalThis Well defined for-in order Optional Chaining Nullish Coalescing Class Private Fields Static Fields Async Top Level Await Promise.allSettled() String matchAll() Module Dynamic Import Module Namespace Exports import.meta New Featrues BigInt 자바스크립트는 Number.MAX_SAFE_INTEG..

2020. 11. 16. 17:30

# Lang/ECMAScript ES9 (ES2018) New Features - 변경점 총정리 ES9는 정규식과 비동기 작업에 대한 새로운 기능이 주요 변경점입니다. 기존의 Iterator와 이번에 나온 Async Iterator와의 차이점을 숙지해야 합니다. 톺아보기 : Async Promise.prototype.finally() Async Iterator for-await-of Symbol.asyncIterator String Lifting Template Literal Restriction Object New Features Rest Properties Spread Properties RegExp Named Capture Groups Unicode Property Escapes Lookbehind Assertions s flag (dotAll) Async Promise.finally() 이행..

2020. 11. 16. 17:22

# Lang/ECMAScript ES8 (ES2017) New Features - 변경점 총정리 ES8에서 새롭게 추가된 기능들은 적지만 그것을 엎어버릴 정도로 Async/Await는 심오합니다. 특히 ES7로도 구현할 수 있기에, 깐깐한 기술면접에서는 Async/Await를 ES7로 구현해보라는 질문도 나옵니다. Async/Await를 제외한 다른 변경점은 단순한 편의점 개선이므로 편안하게 읽어내려가면 됩니다. 톺아보기 : Async / Await Function New Features Param Trailing Commas Object New Methods values() entries() String New Methods padStart() padEnd() getOwnPropertyDescriptors() Async / Await Promise의 한계 프로마이즈는 Call-Back Hell을 ..

2020. 11. 16. 17:17

# Lang/ECMAScript ES7 (ES2016) New Features - 변경점 총정리 ECMA International에서 공식적으로 ES6와 같은 대규모 업데이트는 이제 없다고 발표했습니다. 일년마다 이런 대규모 업데이트가 나왔다간 큰일이겠죠. 다만 ES6와 같은 벼락치기를 방지하고자 이제부터는 매년 6월에 새로운 버전이 릴리즈됩니다. 다행히도 ES7의 변경점은 딱 2개입니다. 중요한 개념도 없으므로 훑어보기만 하면 됩니다. 톺아보기 : Array New Methods Array.prototype.includes Exponentiation Operator Array New Methods includes() 주어진 지점부터 탐색을 시작하여 특정 값의 존재여부를 반환합니다. 일치여부는 === 연산자가 사용됩니다. ES 7: const list = ["1", 2, 3, 4, 5]; list...

2020. 11. 16. 16:17

# Lang/ECMAScript ES6 (ES2015) New Features - 변경점 총정리 ES6 또는 ES2015는 그야말로 대격변이 일어났습니다. 하나만 들어와도 벅찬 거대한 개념들이 무수히 많이 추가됬으며, 새로운 문법들도 다수 추가됬습니다. 이번 변경점에서 특히 눈여겨 봐야 할 기능들은 다음과 같습니다. Block-Scope Arrow Functions Symbol Class Promise Iterator Protocol Class와 같은 일부 기능은 ES5를 사용하여 구현할 수 있습니다. 이런 경우에는 ES5로 어떻게 구현할 수 있는지, 어떤 차이점이 있는지 기억해두면 좋습니다. 누구라도 알만한 유니콘 스타트업의 기술면접에서 실제로 출제되었습니다. ES6은 단언컨대 ECMAScript 역사상 가장 큰 업데이트입니다 😂 톺아보기 : Definition let const Block-Sco..

2020. 11. 16. 16:05

# Lang/ECMAScript ES5 (ES2009) New Features - 변경점 총정리 ES5는 기본적으로 편의성 개선에 초점이 맞추어져 있습니다. 기존에 프로그래머가 구현해야 했던 기능이나, 있으면 편리하겠다 싶을만한 기능들이 해당 버전에서 제공됩니다. 눈여겨 보아야 할 변경점은 use strict Array Methods JSON Support 입니다. 톺아보기 : use strict Function New Methods .bind() String New Features Index Bracket Strings Over Multiple Lines New Methods .trim() .charAt() Array New Features Trailing Commas New Methods .isArray() .forEach() .map() .filter() .reduce() .reduceRigh..

2020. 11. 16. 15:10

# Lang/NodeJS C++ Addon [벤치마크] C++ 애드온을 도입하면 성능이 얼마나 향상될까? 시작하기에 앞서 사실 JavaScript는 꽤 빠르고 생산성도 높은 스크립팅 언어입니다. 특히 병렬성이 높은 작업에 대해서는 때때로 컴파일 언어보다 높은 성능을 보여주곤해서, 동시성이 높은 웹서버를 만들기 위한 선택지로 Node.JS + Express.js가 먼저 고려되는 경우가 많습니다. 하지만 병렬성을 요구하지 않는 연산에서는 약한 모습을 보여주는데, 수학적 연산이 집중된 암호학 분야는 특히 NodeJS가 꺼려하는 대표적인 분야 중 하나입니다. 그러나 이러한 종류의 연산은 C++ Addon을 사용하면 보완할 수 있다고 알려져있죠. 그렇다면 NodeJS에 C++ Addon을 도입하면 성능이 얼마나 향상될까요? 아무때나 C++ Addon을 도입하면 되는걸까요? 이 포스팅에서는 C++ Addon의 성능에 ..

2020. 3. 16. 09:28

# Lang/NodeJS C++ Addon [튜토리얼] C++ 크로스플랫폼 애드온 제작하기 이 포스팅은 이전 포스팅과 이어집니다. 크로스플랫폼 NodeJS에 C++을 도입한다면 장단점은 명확합니다. 좋든 좋지않든 C++의 거의 모든 장단점을 통채로 가져온다는 것이죠. C++의 모토인 원한다면 만들 수 있다는 장점을 가져온 것과 동시에, 타겟 플랫폼에 종속된다는 단점도 함께 가져온 것이죠. 예를 들어 Node.JS의 기본함수만으로는 동기적으로 쓰레드를 정지시키는 함수를 만들 수 없기 때문에, 이 기능을 사용하고 싶다면 C++의 힘을 빌려야합니다. 하지만 문제는 각 운영체제마다 sleep을 사용하는 방법이 다르다는 것입니다. 헤더 이름도 다르고, 함수 시그너쳐도 다르며, 함수 이름도 다릅니다. Windows #include // // sleep 1ms. Sleep(1); Linux #include..

2020. 3. 14. 20:47