WIT – NTS UIT Blog

[JSer.info#번역] 2014-12-23 자바스크립트 주요 소식

Posted by in Research

DaliyJS 설문 공개 매년 이 시기에 DaliyJS에서 시행하는 설문인 JavasScript Developer Survey 2014 결과가 공개됐습니다. 매년 조금씩 질문 및 응답 방식이 변경되므로 단순 비교는 어려울 수 있으나, 작년 Grunt에 대한 응답이 가장 많았던 빌드 도구에 대한 설문은 올해 Gulp가 35%, Grunt가 47%로 집결되는 등 흥미로운 변화를 알 수 있습니다. 자세한건 아래 문서를 참고해주세요 2014-survey-summary.pdf 무섭지 않아, Protractor(일본어) 무섭지 않아 Protractor(일본어[구글번역])에는 Protractor라고 하는 E2E 테스트 도구가 어떤 방식으로 WebDriverJS를 사용하여 테스트 하는지 작성돼 있습니다. 테스트 시 Selenium으로 브라우저를 조작하기 때문에 실제 결과를 얻기까지 소요 시간이 있고, assert할 타이밍을 잡기가 어려우며 비동기인…read more

1

[번역] The State of JavaScript in 2015

Posted by in Research, Tech

Jimmy Breck-McKye Twitter:@jbreckmckye Jimmy Breck-McKye는 프론트엔드 개발자입니다. Breck-McKye가 자신의 블로그에 쓴 글로 2014년 12월 첫째 주  JavaScript Weekly에 올라온 The State of JavaScript in 2015를 번역한 글입니다. —– 요즘 JavaScript 세계는 춘추전국시대 같다. 감당할 수 없는 속도로 새로운 프레임워크와 기술이 쏟아지고 사라진다. 나는 사람들이 이 상황을 새로운 방법으로 헤쳐나갈 것으로 본다. 내 예상에 앞으로 개발자들은 Angular.js, Ember 같은 단일 프레임워크가 아닌 입맛대로 조합할 수 있는 작은 라이브러리를 사용해서 변화가 가져올 위험을 줄이고 서로 다른 문제를 개별적으로 해결하는 방향으로 나갈 것이다. 많은 사견이 들어가 있는 글이지만 끝까지 읽어보길 바란다. 춘추전국시대 2014년을 마무리하는…read more

[JSer.info#번역] 2014-12-08 자바스크립트 주요 소식

Posted by in Research

Firefo 34.0 릴리즈 Firefox 34.0이 릴리즈 됐습니다. 개발자 도구에 localStorage inspector, console.table() 등이 추가됐고,  profiler 도구가 개선됐습니다. 그리고 jQuery events를 대응합니다. 자세한 것은 아래 문서를 참고하세요. WebIDE, Storage inspector, jQuery events, iframe switcher + more – Firefox Developer Tools Episode 34 또한 CSS Fonts Level 3 시범적으로 적용됐고, template string 등 ES6의 기능이 구현 됐습니다. Firefox 34 for developers QUnit 1.16.0 릴리즈 자바스크립트 테스트 라이브러리 QUnit 1.16.0이 릴리즈됐습니다.  코드를 리팩토링했고 done() 스타일의 비동기 테스트와 Promise 테스트 지원하는 등 QUnit 2.x를 위한 여러 사항이 반영됐습니다. 2.0에서 바뀌는 부분은 「QUnit 2.x에서 바뀌는…read more

0

[JSer.info#번역] 2014-12-02 자바스크립트 주요 소식

Posted by in Research

DaliyJS 앙케이트 올해도 역시 DailyJS의 자바스크립트 개발자 앙케이트가 시작됐습니다. JavaScript Developer Survey 2014에서 어떤 목적으로 자바스크립트를 사용하는지 또, 사용하는 라이브러리나 테스트 등에 대해 조사 하고 있습니다. 2010년(JavaScript Developer Survey 2010) 부터 지속적으로 시행하고 있는 설문 조사입니다. 여력이 되다면 꼭 참가 합시다. The State of JavaScript in 2015 The State of JavaScript in 2015(한국어) 아티클에는 라이브러리와 기술 변화에 어떤 자세로 임해야할지 작성돼 있습니다. AngularJS 2.0은 지금과 완전히 다르며 트랜드를 따라가는건 부질없고 대기업이 지원한다고 해서 기대할 필요도 없다고 말하고 있습니다. 대도록 AngularJS나 Ember 같은 단일체 프레임워크를 사용하지 말고 레이어에 전문성을 가진 라이브러리를…read more

0

[JSer.info#번역] 2014-11-25 자바스크립트 주요 소식

Posted by in Research

Chrome 39 릴리즈 Chrome 39가 릴리즈 됐습니다. 구현된 기능은 베타 릴리즈 노트를 참고해주세요.  ES6 Generator가 기본으로 활성화 됐고 Web Application Manifest 대응, Beacon API(한국어)가 구현됐습니다. 그리고 Web Animations 구현이 진행되고 있습니다. 보통 XHR을 사용한 비동기 통신 시 페이지를 종료하면 요청을 신뢰할 수 없지만 Beacon API를 사용하면 백그라운드로 요청하기 때문에 UI를 블로킹하지 않으면서 요청을 신뢰할 수 있습니다. 예를 들어 링크 클릭을 로그로 쌓기 위해 리스너에서 기본 이벤트를 중지시키고 XHR 요청 후 페이지 전환을 해야 했지만 Beacon API를 사용하면 단순히 navigator.sendBeacon으로 요청하면 보내면 됩니다. Modern Debugging Experience: Part 2 개발자 도구를 사용한…read more

0

그것이 알고 싶다 – Spinbox로 React 겉핥기

Posted by in Research

센스있는 개발자라면 기술 관련 위클리 메일을 하나정도는 받아보고 있을 것이다. 나 역시 많은 위클리 메일을 구독하고 있다. 무슨 위클리가 그리 많은지… 이젠 부담스러워서 몇 개 구독을 끊을까 생각중. 아무튼 매주 쏟아지는 정보 중 10%도 못 읽고 넘기고 있지만 JavaScript 위클리는 꼬박꼬박 챙겨보려고 애쓰고 있다. 뭔가 JavaScript로 밥 벌어 먹고 사는 사람의 의무 같다고나 할까? 그래서 주말 아침 잠자리에서 눈 뜨면 습관적으로 JavaScript 위클리를 훑어본다. 요즘들어 위클리 메일에 부쩍 이름이 자주 보이는 녀석이 하나 있는데 바로 React다. 물론 어떤 대상을 누군가 자주 언급한다고 해서 그것이 반드시 좋은 것이라고 할 수는 없다….read more

[발표 영상] Lexical Environment in ECMA-262 5th edition

Posted by in Research

ECMA-262 1-3은 변수 객체(Variable Object), 활성화 객체(Activation Object)를 가지고 자바스크립트 코드의 스코프 처리 매커니즘을 설명합니다. 그런데 ECMA-262 5가 등장하면서 변화가 생겼습니다. 변수 객체, 활성화 객체가 사라지고 Lexical Environment가 등장한 것이죠. 과연 무엇이 달라졌는지, Lexical Environment가 도대체 뭐하는 녀석인지 정리해봤습니다. 발표 동영상 PT 자료

0

backbone.js에 대한 지극히 개인적인 생각

Posted by in Research

작년 말에 어찌하다가 중간에 지원사격하러 들어간 프로젝트가 있다. 이 프로젝트는 backbone.js를 사용하고 있었는데 그점이 끌려서 내가 “지원”하겠다고 “자원”했다. 그리고 아직도 끝나지 않은 그 프로젝트는 내 주업무가 되었다. 이전에 backbone.js를 잠깐 공부했던 적도 있었던지라  “대충 그냥 삽 좀 푸면 금방 익숙해지겠지”라는 생각으로 무작정 뛰어들어서 닥치고 코딩부터 했다. 얼마 안 가서 이 삽질이 그냥 대충 삽질이 아니라는 사실을 깨달았다. 사이드 이펙트의 향연 앞에 야근 도장을 찍었던 날이 며칠이었던가(참고로 우리 실이나 팀은 야근을 하지 않는 것을 권장한다. 그래서 야근할 때 눈치봐야 된다. 깨알같은 회사 자랑). 물론 핑계거리가 아예 없는 것은 아니다. 이정도 규모의 JavaScript…read more

[번역] ECMA-262-3 in detail. Chapter 6. Closures.

Posted by in Research

원문 출처 : ECMA-262-3 in detail. Chapter 6. Closures. by Dmitry Soshnikov 소개(Introduction) 이번에는 JavaScript의 아주 중요한 개념인 클로저(Closures)에 대해서 알아보겠다. 그 동안 여러 번 이야기했던 내용으로 새로운 것은 아니지만, 이론적인 관점에서 조금 더 깊이 있게 들여다 보고 ECMAScript가 어떻게 클로저를 다루는지 설명할 생각이다. 이번 챕터를 이해하려면 스코프 체인(Scope chain)과 변수 객체(Variable Object)의 개념을 알아야하기 때문에,  이전에 공부했던 내용을 다시 한 번 정리하고 넘어가자. 일반 이론(General theory) 바로 ECMAScript의 클로저를 논의하기 전에, 함수형 프로그래밍의 일반 이론에서 정의하고 있는 내용을 구체화 할 필요가 있다. 다들 알고 있듯이, 함수형 언어에서(ECMAscript는 함수형 언어의 패러다임과…read more

0

도전! JavaScript TDD – 3. 점진적 명세 작성

Posted by in Research

이전 시간에는 자판기에 재고 기능을 추가하면서 “TDD 리듬”에 대해서 이야기를 했다. 지금까지 만든 테스트 코드는 아래와 같다.

  테스트 대상이 되는 모델 코드는 다음과 같았다.

  오랜만에 코드를 보니 좀 낯설기는 하지만, 다행히 라인이 길지 않아서 금방 눈에 들어온다. 이번에는 특별히 불만 있는 부분이 없으므로 별 설명없이 그냥 진행해야겠다. 동전 투입 오늘 만들어야 할 것이 무엇인지 이전 시간에 남겨둔 할 일 목록을 한 번 살펴보자. 음료를 뽑을 수 있다. 콜라, 사이다, 오렌지 주스, 사과 주스 중 원하는 음료를 뽑을 수 있다. 동전을 넣을 수 있다. 지폐를 넣을 수…read more

7

[번역] Static Memory Javascript with Object Pools

Posted by in Research

이번에 Static Memory Javascript with Object Pools라는 html5rocks의 아티클을 번역했다. 제목만 보고 상당히 흥미로울 것 같아서 무작정 번역을 시작했는데 막상 번역해놓고 보니 별로 재미가 없어서 실망했다. 하지만 누군가에게는 흥미로운 주제일지도. JavaScript는 Garbage Collector라는 메모리 관리 기술을 이용하기 때문에 개발자가 직접 메모리를 관리할 수 없다. 이 포스트는 Object Pool을 만들어서 우회적으로 메모리를 관리하는 기법을 설명하고 있다. 원문에 memory churn을 설명하는 부분이 있다. memory churn은 “메모리 할당/해제가 빈번하게 일어나는 현상“을 말한다. 이걸 뭐라고 번역해야할 지 한참 고민하다가, 다빈치 소프트웨어의 “도창욱”님의 의견들 받아들여서 “메모리 변동”이라고 적었다.  아무리 생각해도 메모리 변동은 부정적 의미가 너무 약한…read more

0

[번역] Performance Tips for JavaScript in V8

Posted by in Research

일전에 JavaScript Interperter에 대해서 공부를 하다가 V8에 관심이 생겨서 html5rocks.com의 “Performance Tips for JavaScript in V8″을 번역했다. 다른 일들에 치여서 지금은 V8 스터디를  그 언젠가로 미뤄둔 상태지만…  좋은 날이 오면 꼭 다시 V8을 공부해보고 싶다. 이 포스트는 Daniel Clifford가 2012년 Google I/O에서발표한  V8 위에서 돌아가는 JavaScript 애플리케이션의 성능 향상을 위해 적용할 수 있는 몇 가지 팁 중의 일부를 다루고 있다. 실제 발표 내용이 궁금해서 동영상을 찾아봤다. 처음에는 영어 리스닝 연습하겠다고 자막없이 봤는데, 하는 이야기가 내 귀에 전혀 들리지 않아서 결국은 유투브 캡션으로 자막달고 봐야했다는 슬픈 전설이 있다. 발표에서 Daniel Clifford는 좋은…read more

0

도전! JavaScript TDD – 2. TDD 리듬

Posted by in Research

우선 이야기를 시작하기에 앞서, 이전에 작성했던 코드를 다시 한 번 살펴보자. 아래는 모델 코드다. 모델 코드는 테스트 코드에 대응하는 실제 구현 코드를 말한다.

  그리고 다음은 테스트 코드다.

  전에는 잘 몰랐는데 오늘은 테스트 코드의 몇 군데가 마음에 들지 않는다. 어제 마음 다르고, 오늘 마음 다르고. 사람이란 그런 존재다. 첫 번째 테스트 케이스의 명세 중 “여러 종류의 음료”라는 문구가 불명확한 것 같다. 그리고 두 번째 테스트 케이스는 더 어색하게 느껴진다. 테스트 명세는 “콜라, 사이다, 오렌지 주스, 사과 주스만 뽑을 수 있다”인데, 테스트 코드가 이를 잘 표현하지 못하는 것…read more

4

Interpreter and JavaScript Engine

Posted by in Research

기계어(Machine code)와 어셈블리어(Assembly) 컴퓨터 프로그램은 수 많은 명령어로 구성되어 있다. 컴퓨터의 두뇌격인 CPU는 사람의 언어를 이해하지 못하기 때문에 어떤 작업을 지시하려면 CPU가 이해할 수 있는 언어로 이야기를 해줘야 한다. 컴퓨터에 조금이라도 관심있는 사람이라면 알고 있겠지만, 컴퓨터의 언어는 비트(bit)로 구성되어 있다. 비트는 최소의 정보 저장 단위인데 0 또는 1의 2진수 값을 갖는다. 여러개의 비트를 정해놓은 2진수 패턴에 따라 나열하여 CPU에 신호를 보냄으로써 정보를 전달하거나 작업을 처리하라는 명령을 내리는 것이다. 이렇게 CPU가 직접 해독하고 실행할 수 있는 비트 단위로 쓰인 컴퓨터 언어를 기계어라고 한다. 예를 들어, 이러한 수학식이 있다고 하자.    …read more

0