구글 웹프로그래밍 언어 다트 회생전략 (3,800자)

피처 이미지
구글 웹프로그래밍 언어 ‘다트(Dart)’ 로고

구글이 ‘구조화된’ 웹앱 개발을 목표로 했던 자바스크립트 대안 언어 다트(Dart)가 실험적인 고성능 모바일앱 UI 프레임워크 스카이(Sky)의 UI 처리 언어라는 새로운 역할을 맡기 위해 변신하고 있습니다. 통상 60헤르쯔(㎐)인 화면 갱신주기를 120㎐로 뻥튀기해 반응이 매끄러운 앱UI를 보여주겠다는 게 포인트인 듯. 사실 다트가 비슷한 역할을 표방하며 등장한 마이크로소프트의 언어에 비해 입지 확보에 실패하면서, 측면돌파를 시도중인 모습이 본질 아니겠는가 싶어 이런저런 근거와 생각을 뒤죽박죽 적어 봤습니다.
우선 세 줄 요약하면 다음과 같습니다.

  1. 웹앱 개발 언어 다트를 안드로이드앱 개발 언어로 쓰는 시도(스카이)는 새로운 게 아니다. 폴리머.다트를 활용한 머티리얼디자인을 통해 일부 가능했으므로. 이는 또한 아파치 코르도바같은 모바일앱 프레임워크에서 자바스크립트의 역할을 넘어서지 못하는 모양새다.
  2. 구글은 다트 외에도 서버 프로그래밍 언어 고를 키우고 있는데 최근 안드로이드 모바일 앱 개발 용도로 영역이 확대된 바 있다. 이는 안드로이드 앱 개발 기술이란 영역에서 고와 다트의 역할분담이 필요할 수 있다는 얘기다. 판이 어떻게 정리될 것인지 난 잘 모르겠다.
  3. 지금은 구글이 다트를 버리지 않기 위해 다양한 시도를 하는 것처럼 보일 수 있겠지만 앞으로 어떨지. 구글은 앳스크립트를 인기 웹앱 프레임워크 앵귤러 차기 버전의 기반언어로 삼을 생각이었지만, 그 역할을 타입스크립트가 맡게 됐고 앳스크립트는 존재감을 잃었다.

풀어서 말하면 열여덟 줄 정도 되는군요.

  1. 냉정히 볼 때 폐기 대상인 것 같은 다트를, 구글이 대놓고 포기하는 건 몇년간 기껏 공부해 준 개발자들의 배신감을 유발할 가능성이 있습니다. 적절한 용도(내지는 그걸 찾을 가능성)를 마련해 주는 게 도의적(?)으로는 맞는 것 같습니다.
  2. 이미 아파치 코르도바(Apache Cordova)처럼 HTML/CSS+자바스크립트로 모바일앱개발을 할 수 있는 여러 프레임워크가 존재하니까, (한때) 자바스크립트 대체재였던 다트를 안드로이드앱 개발 영역으로 끌어오는 게 꼭 억지스러운 건 아니죠.
  3. 다만 사실 이런 식의 다트 부활이 통할지는 좀 회의적입니다. 이게 잘 되더라도 다트의 역할은 언어 특성상 앱의 ‘UI 프로그래밍’에 머물 것 같거든요. 물론 제가 다트의 유망한 가능성을 간과했을 가능성이 있으니 단정할 순 없지요.
  4. 제 생각에 UI 프로그래밍 영역에서의 앱 성능 개선 여지가 얼마나 되겠나 싶습니다. 물론 이건 다트 프로그래밍을 하는 스카이 프레임워크가 아니라, C++ 코드 기반이라는 스카이 엔진이 맡을 역할이 더 클 수도 있으니 두고 봐야지요.
  5. 또다른 구글 프로그래밍 언어 고(Go)가 서버 프로그래밍 언어에서 모바일용으로 영역 확대를 시도한 바 있는데요. 고를 통한 앱개발 시나리오에서 다트의 역할이 상충하는 건지, 그 나름대로의 조화가 가능한 건지도 궁금한 지점입니다.
    – 관련기사: [구글 GO, 안드로이드 앱 개발서 자바와 격돌(http://www.zdnet.co.kr/news/news_view.asp?artice_id=20150106144155)]
  6. 아무것도 모르는 제가 예상하는 다트와 고의 역할 분담은 이런 식입니다. 고는 안드로이드 앱 프로그래밍과 이를 위한 백엔드 개발, 다트는 앱의 UI 프로그래밍 또는 이를 지원하는 하이브리드 앱개발 프레임워크용 언어.
  7. 사실 다트의 앞날은 가시밭길 같습니다. 마이크로소프트도 자체 자바스크립트 대안 언어 타입스크립트(TypeScript)로 안드로이드같은 모바일 하이브리드 프레임워크용 개발 언어 시장을 노리고 있고 최근 차분히 그 계획을 실현 중입니다.
  8. 일례로 마이크로소프트는 최근 비주얼스튜디오에 아파치 코르도바를 지원한다면서, 코르도바 개발 언어에 자바스크립트와 함께 타입스크립트를 슬쩍 끼워넣었거든요. 마이크로소프트는 속으로 ‘좋아 자연스러웠어!’라고 외쳤을지도.
    – 관련기사: [MS 비주얼 스튜디오, 크로스 플랫폼 개발 지원 강화(http://www.zdnet.co.kr/news/news_view.asp?artice_id=20140513085141)]
  9. 타입스크립트는 이미 연초에 핫한 웹앱 프레임워크 앵귤러(Angular)의 차기 메이저 버전 개발 언어로 채택되면서 잠재력을 인정받았습니다. 이번 마이크로소프트 빌드2015 타입스크립트 관련 세션에 구글 앵귤러 엔지니어도 와서 얘길 하고 갔다네요.
    – 링크: [한국인 자바챔피언 양수열 님 페이스북 사진(https://www.facebook.com/photo.php?fbid=10153195706887088)]
  10. 그래서, 안타깝게도 제가 보기엔 다트의 존재감이 너무 작습니다. 대세를 탄 기술은 특정 시장에서 사실상 표준이 되고 쇠락한 기술은 재기하기 어려운 걸로 아는데, 다트가 반례를 만들어 줄 수 있을지 두고 봐야겠네요.
  11. 스카이라는 프레임워크를 통한 다트 회생 시나리오에 대한 제 생각은 여전히 비관적입니다. 안드로이드 앱 개발 시나리오에서 다트를 UI 프로그래밍 언어로 쓰려는 시도는 이게 최초가 아니거든요.
  12. 다트 등장 초기부터 폴리머(Polymer)라는 게 있었습니다. 원래 폴리머는 웹앱 UI 프레임워크인데, 공식사이트의 문서 중에 머티리얼디자인(Material Design)과 함께 활용하는 가이드가 나옵니다.
  13. 넵, 여기서 제시된 머티리얼디자인 가이드는 나중에, 안드로이드 롤리팝(Lolipop) 환경의 앱 디자인 가이드라인 명칭으로 등장하면서 유명세를 얻습니다. 머티리얼디자인은 원래 안드로이드 앱이 아니라 웹앱 디자인 가이드였단 얘기.
    – 링크: [폴리머 공식사이트 가이드 중 폴리머를 활용한 머티리얼디자인(Material design with Polymer) 항목(https://www.polymer-project.org/0.5/docs/elements/material.html)]
  14. 이쯤에서 구글이 머티리얼디자인을 안드로이드 앱 디자인 가이드로 삼은 것과 다트가 뭔 상관인지 궁금해지실 텐데요. 자바스크립트 기반인 폴리머를 다트 기반으로 이식한 폴리머.다트(Polymer.Dart)가 있다는 게 포인트지요.
    – 링크: [다트 공식사이트 중  폴리머를 다트 기반으로 이식한 도구 polymer.dart 소개 항목(https://www.dartlang.org/polymer/)]
  15. 정리하면, 다트 기반의 폴리머 프레임워크를 활용해 머티리얼디자인 기반의 안드로이드 롤리팝 앱을 만드는 건 이전부터 가능한 시나리오였다는 점. 다만 UI디자인만 가능하고 앱 결과물을 얻을 순 없었다는 점.
  16. 이와 달리, 스카이 프레임워크를 활용하면 아마도 결과물을 안드로이드 앱 패키지로 제공할 것으로 짐작된다는 점. 따라서 스카이는 다트 기반의 안드로이드 앱 개발 시나리오를 새롭게 제시한 건 아니지만, 그 실용성을 받쳐줄 것으로 보인다는 점.
  17. 잘 될 지는 아직도 거듭 의심스러운데, 이는 구글이라는 회사의 특성 때문입니다. 구글은 이미 앵귤러 기반 언어의 지위를 타입스크립트에 넘기면서 직접 만들었던 앳스크립트(AtScript)라는 언어를 과감히 포기한 전례가 있습니다.
    – 관련기사: [구글, 차세대 웹앱 기술에 MS 웹개발 언어 수용(http://www.zdnet.co.kr/news/news_view.asp?artice_id=20150316123424)]
  18. 앳스크립트 버린 구글이 다트라고 못 버리겠나, 그게 제 생각입니다. 물론 앳스크립트보다 다트에 투자한 기간이라든지 활용 범위를 고려해보면, 구글 입장에선 다트를 여러모로 아까워할만하긴 하지만요.

이 글의 주장에 대한 반론 및 생각에 대한 의견 받습니다. 구글 다트 파이팅.
– 관련기사: [구글 ‘다트’로 안드로이드앱 만든다?(http://www.zdnet.co.kr/news/news_view.asp?artice_id=20150504082642)]

150505 페이스북 노트에 쓴 글 구글 웹프로그래밍 언어 다트 회생전략을 160717 개인 블로그에 재작성 후 160805 재편집. 170402 재편집.