주요 문서
-
ES6 In Depth: 미래
ES6 In Depth 시리즈는 ECMAScript 표준의 6번째 에디션(줄여서 ES6)을 통해 JavaScript 에 새로 추가된 기능들을 살펴보는 시리즈입니다. 지난번 ES6 모듈에 관한 글까지 우리는 ES6 에 새로 도입된 주요 기능들을 살펴보았습니다. 이번 글에서는 새로운 기능을 십여 개 더 살펴보려고 합니다. 우리가 지금까지 깊게 살펴보지 않은 기능들입니다. JavaScript 라는 건축물의 벽장과 구석방들을 들여다보는 재미있는 여행이라고 생각하세요. 거대한 […]
-
ES6 In Depth: 모듈
ES6 In Depth 시리즈는 ECMAScript 표준 6번째 에디션(줄여서 ES6)을 통해 JavaScript 에 새로 추가된 요소들을 살펴보는 시리즈입니다. 2007년 제가 모질라 JavaScript 팀에서 일하기 시작했을 때, 이런 농담이 있었습니다. 통상적인 JavaScript 프로그램의 라인 길이는 몇 줄일까요? 정답은 한 줄이었습니다. 그 때는 구글맵이 시작된 지 2년 지났을 때였습니다. 그전까지, JavaScript 의 주된 용도는 폼(form) 값을 검증하는 것이었습니다. […]
-
ES6 In Depth: 서브클래스 만들기 (Subclassing)
ES6 In Depth 시리즈는 ECMAScript 표준 6번째 에디션(줄여서 ES6)을 통해 JavaScript 에 새로 추가된 요소들을 살펴보는 시리즈입니다. 지지난 글에서, 우리는 객체의 생성자를 정의할 때 겪는 번거로움을 해소하기 위해 ES6 에 새로 도입된 클래스 시스템을 알아보았습니다. 그리고 클래스 시스템을 이용해서 아래처럼 코딩하는 방법을 알아보았습니다. class Circle { constructor(radius) { this.radius = radius; Circle.circlesMade++; }; static draw(circle, […]
-
ES6 In Depth: let 과 const
ES6 In Depth 시리즈는 ECMAScript 표준 6번째 에디션(줄여서 ES6)을 통해 JavaScript 에 새로 추가된 요소들을 살펴보는 시리즈입니다. 제가 오늘 이야기하려고 하는 주제는 처음 보기에는 별것 아닌 것 같지만, 아주 중요한 것입니다. Brendan Eich 는 1995년 JavaScript 첫 버전을 설계할 때 많은 잘못을 저질렀습니다. 그가 저지른 잘못은 그 이후로 랭귀지의 일부로 계속 이어져 오고 있습니다. 예를 […]
-
ES6 In Depth: 클래스
ES6 In Depth 시리즈는 ECMAScript 표준 6번째 에디션(줄여서 ES6)을 통해 JavaScript 에 새로 추가된 요소들을 살펴보는 시리즈입니다. 오늘은 지난 글들의 복잡함에서 벗어나 한숨 돌리려고 합니다. 이번 글은 ES6 In Depth: 제너레이터 (이어서) 에서 처럼 한번도 본 적 없는 낯선 이야기를 하지 않을 것입니다. 이번 글은 막강한 프락시 객체 에서 처럼 JavaScript 랭귀지 내부의 동작을 가로채는 […]
-
ES6 In Depth: 프락시 (Proxy)
ES6 In Depth 시리즈는 ECMAScript 표준 6번째 에디션(줄여서 ES6)을 통해 JavaScript 에 새로 추가된 요소들을 살펴보는 시리즈입니다. 오늘 우리가 살펴보려는 것은 다음 코드입니다. var obj = new Proxy({}, { get: function (target, key, receiver) { console.log(`getting ${key}!`); return Reflect.get(target, key, receiver); }, set: function (target, key, value, receiver) { console.log(`setting ${key}!`); return Reflect.set(target, key, value, […]
-
ES6 In Depth: 제너레이터 (이어서)
ES6 In Depth 시리즈는 ECMAScript 표준 6번째 에디션(줄여서 ES6)을 통해 JavaScript 에 새로 추가된 요소들을 살펴보는 시리즈입니다. ES6 In Depth 에 잘 오셨습니다! 지난 글 이후로 편히 쉬셨는지요? 하지만 프로그래머의 삶이 불꽃놀이나 레모네이드로 가득찬 편안한 삶일 수는 없지 않습니까? 이제 다시 남은 주제들을 공부할 시간이 되었습니다. 쉬었다 시작하기에 완벽한 주제를 골라두었습니다. 몇 달 전에 제너레이터에 […]
-
ES6 In Depth: 컬렉션 (Collections)
ES6 In Depth는 ECMAScript 표준의 6번째 에디션(줄여서 ES6)을 맞아 JavaScript에 새로 추가된 요소들을 살펴보는 시리즈입니다. 이번 주 초에(2015년 6월 19일 기준), ECMA-262 6th Edition, ECMAScript 2015 Language Specification 이라고 명명된 ES6 스펙이 마지막 난관을 극복하고 Ecma 표준으로 공식 승인되었습니다. 표준 제정에 기여한 TC39 와 모든 사람들에게 축하를 전합니다. 이제 ES6 는 공식 문서가 되었습니다! 더 […]
-
ES6 In Depth: Babel과 Broccoli로 지금 당장 ES6 이용하기
ES6 In Depth는 ECMAScript 표준의 6번째 에디션(줄여서 ES6)을 맞아 JavaScript에 새로 추가된 요소들을 살펴보는 시리즈입니다. ES6 가 여기 있습니다. 그리고 사람들은 벌써 ES7 을 말하고 있습니다. 사람들은 예정된 미래에 대해, 그리고 새로운 표준의 빛나는 기능에 대해 이야기하고 있습니다. 웹 개발자로서, 우리는 이 모든 것들을 어떻게 활용해야 할까요? 지금까지 ES6 In Depth 시리즈를 통해 당장 ES6 […]
-
ES6 In Depth: 심볼 (Symbol)
ES6 In Depth는 ECMAScript 표준의 6번째 에디션(줄여서 ES6)을 맞아 JavaScript에 새로 추가된 요소들을 살펴보는 시리즈입니다. ES6 심볼(symbol)은 무엇일까요? 심볼은 로고가 아닙니다. 심볼은 당신이 코드에 쓸 수 있는 작은 그림이 아닙니다. let = × ; // SyntaxError 심볼은 무엇인가를 기념하기 위해 만든 건물도 아닙니다. 심볼(Symbol)은 절대로 심벌즈(Cymbals)가 아닙니다. (프로그래밍에 심벌즈를 쓰는 것은 좋은 생각이 아닙니다. 심벌즈는 […]