좋은 소식과 나쁜 소식이 있습니다.
좋은 소식은 ES6가 자바스크립트를 즐겁고 흥미롭게 진화시켰다는 겁니다.
나쁜 소식은 아직 ES6를 실무에서 쓰긴 좀 이르다는 겁니다.
ES6를 전혀 사용할 수 없다는 뜻이 아닙니다.
단지, 프로그래머가 ES6 코드를 어디에서든 쓸 수 있는 ‘안전한’ ES5 코드로 트랜스컴파일하는 수고를 좀 더 해야 한다는 뜻입니다.
프로그래밍을 오래 해 왔다면 이렇게 생각할 수도 있습니다.
“와, 믿을 수 없는데? 컴파일과 링크가 필요 없는 언어라니, 생각해 본 적도 없어.”
필자도 꽤 오랫동안 프로그래밍을 해 왔고, 컴파일과 링크가 필요한 프로그램을 작성하곤 했지만 과거에 대한 향수 같은 것은 느끼지 않습니다.
자바스크립트는 인터프리팅 언어이고 번거로운 부대작업이 필요 없다는 장점이 있습니다.
(노드 같은 자바스크립트 엔진은 분명 자바스크립트를 컴파일하긴 하지만, 프로그래머가 개입할 필요 없이 자동으로 이루어집니다.)
자바스크립트의 장점은 어디서든 쓰인다는 겁니다.
자바스크립트는 거의 항상 브라우저 스크립트 언어의 표준이었고, 노드의 등장으로 이제 브라우저 바깥으로 영역을 확대하고 있습니다.
그런 배경이 있으니, 브라우저가 지원하지 않을 수도 있다는 걱정 없이 ES6 코드를 사용하려면 아직 몇 년은 기다려야 할 수도 있다는 사실에 당혹감을 느낄 수도 있습니다.
노드 개발자라면 상황이 조금 낫습니다.
신경 써야 할 자바스크립트 엔진이 하나뿐이므로 노드의 ES6 지원을 지켜보면서 그에 맞게 대응하면 되니까요.
NOTE_ 이 책의 ES6 예제는 파이어폭스에서 작동하며, ES6 피들(http://www.es6fiddle.net/) 같은 웹 사이트에서도 동작합니다.
하지만 실무에 사용하려면 이 장에서 소개하는 도구와 테크닉이 필요합니다.
자바스크립트가 ES5에서 ES6로 넘어가는 과정은 점진적입니다.
다른 언어에서는 볼 수 없었던 부분이죠.
즉, 지금 사용하는 브라우저가 ES6의 기능을 일부 지원하지만 전체를 지원하지는 못할 수도 있습니다.
자바스크립트가 점진적으로 변화할 수 있는 까닭은 자바스크립트의 동적 성격 때문이기도 하고,
최근 브라우저 업데이트 방식 때문이기도 합니다.
최근의 브라우저를 가리키는 에버그린(evergreen) 이라는 용어를 들어봤을 겁니다.
브라우저 제작자들은 사용자가 직접 업데이트해야 하는 뚜렷한 버전 번호라는 개념에서 벗어나고 있습니다.
브라우저가 제대로 동작하려면 항상 인터넷에 연결되어 있어야 하므로,
항상 최신 버전을 유지할 수 있습니다.
물론 버전은 여전히 존재하지만, 에버그린 브라우저들은 사용자가 업그레이드를 거부할 수 없게 하므로 최신 버전을 사용할 가능성이 큽니다.
물론 에버그린 브라우저라도 ES6의 훌륭한 기능을 모두 지원할 때까지는 시간이 걸릴 겁니다.
따라서 그때까지는 트랜스컴파일을 피할 수 없습니다.