"자바스크립트가 세상을 먹어치우고 있다(Javascript Is Eating The World)”
세상에 나온지 20년 가까이 된 언어인 자바스크립트가 재조명받고 있다. 다양한 자바스크립트 프레임워크와 라이브러리가 등장하고 또 발전하면서 웹부터 서버, PC 및 모바일 네이티브 앱 개발까지 안 쓰이는 곳이 없어졌기 때문이다.
소프트웨어가 세상을 먹어치우고 있다면 소프트웨어를 먹어치우고 있는 건 자바스크립트다는 말도 들린다. 자바스크립트가 어디에나 있다는 의미로 '자바스크립트 유비쿼터스'라고 하는 사람도 있다.
■ 워드프레스닷컴은 왜 PHP를 버리고 자바스크립트 품에 안겼나?
최근 인기 블로깅 소프트웨어 워드프레스닷컴이 PHP 코드를 버리고 자바스크립트로 전향한 일은 확실히 자바스크립트 대세론에 힘을 실어줬다. 전세계 4분의1이상의 웹사이트가 워드프레스 기반으로 만들어진 만큼 이번 소식이 갖는 무게감이 남다르다.
워드프레스닷컴을 운영하는 오토매틱은 지난 23일 새로운 관리자 인터페이스 칼립소(Calypso)를 공개했다. PHP와 MySQL에 기반했던 기존 코드를 모두 버리고 HTML, CSS, 자바스크립트 그리고 레스트풀API로 완전히 새로운 관리자 인터페이스를 만든 것이다.
페이스북이 공개한 자바스크립트 라이브러리 리액트로 다양한 플랫폼에서 사용할 수 있는 사용자인터페이스(UI)를 만들었고, 자바스크립트 기반 서버 사이드 개발 플랫폼인 Node.js로 백엔드를 구성했다. 워드프레스 코어와 통신하는 방법으로는 레스트풀API를 채택했다.
그동안 사용해 오던 PHP 코드를 버리고 자바스크립트로 전환한다는 게 오토매틱 내부에서도 쉬운 결정은 아니었다. 지난 10년간 회사의 핵심 스킬 셋이 PHP였고 개발자들은 모두 PHP에 능통하고 자바스크립트에는 익숙하지 않았다. 칼립소 프로젝트 리더인 앤디 피틀링(Andy Peatling)은 워드프레스닷컴 블로그를 통해 “워드프레스는 PHP 기반 애플리케이션이고, 지금까지 회사의 주요한 스킬셋은 PHP였기 때문에 (자바스크립트 기반인) 초반엔 칼립소 프로젝트를 달갑지 않게 생각하는 분위기가 있었다”고 썼다.
워드프레스닷컴이 자바스크립트 기반으로 새롭게 만든 어드민 인터페이스를 공개했다.
그럼에도 PHP를 버리고 자바스크립트를 택한 이유는 뭘까? 오토매틱 CEO 매트 뮬렌웨그(Matt Mullenweg)는 자신의 블로그를 통해 “우리가 지난 10년 간 사용해 왔던 기술적 기반이 미래에 직면할 요구에 대응하기 충분치 않다고 생각했다”고 그 이유를 설명했다.
그러면서 자바스크립트를 택하면서 크로스 디바이스 대응이 쉬워졌다는 점을 큰 장점으로 꼽았다. 이전에는 데스크톱 웹과 제한적으로 모바일 웹에서 관리자 인터페이스를 이용할 수 있었지만 칼립소에서는 데스크톱은 물론 모든 모바일 웹에서 이용할 수 있고 데스크톱과 모바일 네이티브 앱으로도 이용할 수 있다는 것이다. 현재 오토매틱은 맥 클라이언트를 먼저 선보였다. 향후 윈도와 리눅스 PC용으로도 클라이언트를 공개할 예정이다.
PHP 기반 기존 WP어드민과 비교해 자바스크립트 기반 칼립소는 페이지 로딩 속도, 업데로딩 속도도 크게 향상됐다. 자바스크립트로 전환하고 레스트풀API로 워드프레스코어와 커뮤니케이션하면서 눈에 띄게 속도가 향상됐고, 즉각적인 페이지 로딩과 콘텐츠를 수정이 가능해졌다.
워드프레스가 PHP를 버리고 자바스크립트로 코드를 전환했다는 소식이 나오자 자바스크립트에 익숙하지 않은 개발자들은 혼란스러워하고 있는 것도 사실이다. 오토매틱 내부 개발자들이 칼립소 프로젝트 초기에 그랬던 것 처럼 말이다.
그런 점에서 오토매틱 내부 개발자들이 어떻게 칼립소를 받아들이게 됐는지 살펴볼 필요가 있다.
앤디 피틀링은 "올해 중반부터 칼립소 코드베이스는 웹 브라우저를 벗어나서도 (즉 디바이스 로컬에서도) 사용할 수 있게 됐다. 순수하게 자바스크립트, HTML, CSS를 택했고 Node.js로 서버를 셋업하면서 디바이스 로컬에서도 작동할 수 있게 된 것이다. 우리는 일렉트론(Electron)이라는 기술을 사용해서 동일한 코드로 돌아가는 네이티브 데스크톱 클라이언트를 만들 수 있었다. 이 앱을 보고 내부에서도 진정으로 우리가 칼립소 코드를 만들기 위해 투자했던 시간이 가치있다고 인정하기 시작했다”고 설명했다.
자바스크립트로 짜여진 칼립소 코드베이스를 가지고 다양한 디바이스에 대응하는 소프트웨어를 더 쉽게 제작하게 된 것을 보자 내부 개발자들의 태도에도 변화가 생겼다고 얘기다.
매트 뮬렌웨그 CEO는 “많은 PHP 개발자들은 이런 방식으로 어드민 인터페이스를 다시 만들고 싶다면 자바스크립트에 좀더 능숙해질 필요가 있다”고 조언하기도 했다.
■왜 자바스크립트 인가?
"자바스크립트가 세상을 먹어치우고 있다”
이달 7일 아일렌드 더블린에서 열린 웹서밋2015행사에서 페이스북이 인수한 모바일 앱 개발 플랫폼 업체 파스(Parse)의 공동 설립자이자 최고기술책임자(CTO)인 케빈 래커(Kevin Lacker)가 한 말이다. 웹을 넘어 서버, 네이티브앱 개발에서도 자바스크립트가 주요 언어로 여겨지고 있는 만큼, 앞으로 더 많은 개발자들이 자바스크립트를 사용하게 될 것이라는 주장을 강조하기 위한 표현이다.
특히 서버에서의 Node.js의 인기는 점점 높아지고 있다. 넷플릭스, 페이팔 같이 잘 알려진 서비스도 Node.js를 백엔드에, 자바스크립트를 프론트엔드에 사용하고 있다.
래커는 “일자리를 구하길 원한다면, 지금 당장 Node.js로 뛰어들어라”며 "자바스크립트가 인기를 끈다는 것은 모든 웹 개발자들이 어렵지 않게 서버사이드 개발자가 될 수 있다는 걸 의미한다”고도 말했다. 페이스북의 파스도 서버 사이드에 자바스크립트를 사용해 서비스형벡엔드를 구축할 수 있게 제공하고 있다.
자바스크립트는 모바일 설치형 애플리케이션 개발에도 점차 많이 활용되고 있다. 이전에 제기됐던 성능문제도 다양한 개발툴이 등장하면서 차츰 개선되고 있어 앞으로 더욱 이런 추세는 지속될 것으로 예상된다. 모바일에서는 아파치 코르도바/폰갭, 리액트 네이티브, 유니티3D, 네이티브스크립트 등이 자바스크립트로 네이티브 앱 개발을 돕는다.
데스크톱에서는 일렉트론, app.js, nw.js, CEF 등이 자바스크립트로 네이티브 애플리케이션 개발을 돕는다. 인기 협업 소프트웨어 슬랙, 깃허브가 개발한 코드 에디터 아톰, MS의 코드 에디터 비주얼스튜디어 코드 등도 실제 HTML과 자바스크립트로 만들어졌다.
자바스크립트는 한번 배우면 어떤 플랫폼에서든 새로운 기술을 다시 익히지 않더라도 개발할 수 있다는 점이 많은 개발자들에게 매력으로 다가가고 있다.
이에 따라 자바스크립트 개발자 생태계도 탄탄하게 성장하고 있다. 올 4월 스택오버플로우 조사에 따르면 54.8% 개발자가 자바스크립트를 사용한다고 답했고 Node.js는 13.3%이 채택하고 있다고 했다. 뿐만아니라 자바스크립트는 깃허브에서 가장 활발하게 사용되고 있는 언어기도 하다. 활성화된 리포지토리 수와, 푸시 및 커밋 수 면에서 모두 1등을 차지했다.
자바스크립트가 세상을 먹어치우고 있는지는 확실히 몰라도, 자바스크립트를 지원해주는 다양한 기술들이 발전하면서 동시에 자바스크립트를 주요 스킬 셋으로 갖춘 개발자들이 늘어나고 있는 것은 분명해 보인다.