app.js 가 다시 부활했다? 아니. 난 다르다 – DeskShell

app.js 가 죽은 지 몇달 후. node.js 개발자들은 아마 node-webkit 의 신세계에 푹 빠져있을 것이다.

물론 나도 그랬다.

하지만 app.js 의 기대와 아쉬움이 남아 다시 github 에서 app.js 프로젝트를 갔다.

이번엔 app.js 기반으로 다른 프로젝트로 활동한다는 정보가 입수됐다. 들어갔다.

이름은 deskshell 이라는 녀석이다. github 프로젝트 : https://github.com/sihorton/appjs-deskshell

Deskshell 은 하나의 SDK 라고 생각하면 된다고 한다. 그것도 백그라운드 쉘에 크로미움 프론트엔드로 무장한.

뭐.. node-webkit 가 아직까지는 막강하다.

그리고 이 프로젝트의 차별화는 아무래도 자체 웹 서버를 돌려 웹으로 할 수 있는 모든 것들을 수행하는 것에 중점을 맞추고 있다.

그리고 그 차별화를 증명했는데. 바로 PHP 스크립트를 돌려 어플리케이션에 뿌려주는 기능을 구현했다고 한다…

응? PHP?

그렇다. PHP이다. 나도 벙찌게 만드는 문구였다.

but then allows full backend functionality written in popular server scripting languages that anyone can pick up like node or php (more choices coming soon).

<

p>

이렇게 나온다면 어자피 자바스크립트 기반이겠지만, ruby 나 파이썬 같은 것들과 통합하여 앱을 돌리는 거에 중점을 둘 수 있다는 거다.

이것은 확실히 node-webkit 와 차별화된 전략이다.

그리고 돌려봤다. 어자피 앱 테스트니 포터블 버전 받아서 실행했다.

잘된다. app.js 추억이 되살아났다.

하지만 뭔가 부족하다. 뭔가.

여기서 나오는 큰 버그가 둘 발견했는데,

  • 앱을 실행하자마자 페이지에 접속할 수 없다고 뜬다. 그런데 새로고침하면 잘 뜬다. 아마 웹 서버와 프론트앤드가 따로 노는 듯 하다. 차라리 백그라운드에 이벤트 걸어서 서버가 동작을 시작하면 앱 화면을 띄우는 환경이 제공되면 더 좋겠다.
  • 닫기 버튼을 자바스크립트로 구현했긴 하는데. 좀 느리다. 누르고 1초 뒤에 사라졌다. app.js 조차도 이러진 않았는데. 이건 좀 시급한 문제일 듯 싶다.
그 외에는 app.js 기존 기능하고 별 다를 게 없다. 그리고 더 재밌는 것은, 크로미움 엔진을 아예 갖다 썼다는 것이다.
완전히 브라우저가 된 것이다. 크롬 메뉴와 기능들이 다 나온다. 심지어는 한글 메뉴가 나오고,
브라우저 창 열고 크롬 정보를 확인하면 크롬 30이라고 뜬다. 크로미움 기반이지만 안타깝게도 업데이트는 안되지만.
흐음.. 크롬의 프로토타입을 곧대로 대입한 듯 하다. 이렇게 되면 크롬의 장단점을 안고 가는 수밖에 없겠지만…
하지만 어쩌면 이 부분에 유리한 앱이 나올 수는 있을 듯 하다.
잠시 의심했다. 내컴에는 크롬 카나리가 깔렸는데, 설마 이 프로세스를 빌려쓰지 않을까?
작업관리자를 봤지만 서로 달랐다. 다행히도 아니었고, 버전도 달라서 아예 독립 프로세스로 작동한다.
이녀석은 node-webkit 의 package.json 하고 다른 독자적 JSON 매니페스트 포멧을 가졌는데, 바로 .desk 파일이다.
뭐.. 매니페스트야 JSON 형식이니 패스.
과연 이 앱에 크롬이 내장되어 있었을까?
결론은 아니었다.
그 이유로, portable 버전 압축을 풀고 deskshell/bin/win 폴더에 들어가봤는데, PortableAppz 에서 제공하는 크롬 포터블을 래핑(Wrapped)한 것이었다.
어쩐지 브라우저 창이 뜨더라..
왜 확장성을 강조했는지 알 만 하다.
하지만 node.js 를 통해 무한한 확장성과 가능성을 제시해 준 방법을 제시한 것임은 틀림없다.

좀 더 지켜봐야 하겠지만, 어떻게 구조를 잡을지는 말이지.

과면 app.js 의 고질적인 문제점, 그리고 node-webkit 와의 차별화로 경쟁상대가 될 수 있을까?

글쎄.. deskshell 의 행보를 지켜보는 수밖에 없다.

끝이다.

답글 남기기

Your email address will not be published / Required fields are marked *