<center> https://steemitimages.com/DQmWdpWeFcZpHrkafrQHbVVZDPoLUYiPsXNcW74urFGQMeq/image.png </center> 오늘은 Windows, macOS, Linux용 데스크탑 어플리케이션 개발 프레임워크인 [Electron](https://electron.atom.io)에 대해서 소개해드리겠습니다. **Electron은 웹의 언어인 `JavaScript`와 `HTML`을 이용해서 한방에 크로스 플랫폼 데스크탑 어플리케이션을 만들 수 있게 도와주는 프레임워크입니다.** 원래 데스크탑 어플리케이션은 보통 해당 OS에서 제공하는 언어와 환경을 이용해서 제작합니다. Windows의 경우 `C#`이나 `C++` 등을 이용해서 만들고요. macOS의 경우 `Objective-C`나 `Swift` 등을 이용해서 만들게 되는거죠. OS마다 개발 환경이 다르기 때문에 크로스 플랫폼 데스크탑 어플리케이션을 만드는 것은 어려운 일입니다. 각 언어를 사용할 수 있는 개발자가 모두 필요하기 때문에 개발 비용이 많이 들고, 지원하는 OS 갯수 만큼의 프로젝트를 관리해야하기 때문에 유지 비용도 많이 드는 일이죠. 그래서 이런 상황을 개선하기 위해서 `Java`를 이용해서 데스크탑 어플리케이션을 개발하거나 [wxWidgets](https://www.wxwidgets.org/), [Qt](https://www.qt.io/) 등의 라이브러리를 이용하기도 했습니다. 개발/유지 비용이 많이 낮아지기는 했지만, 개발 난이도가 쉬운 편은 아니었습니다. 그러다가 2011년에 [Roger Wang](https://github.com/rogerwang)이 [node-webkit](https://github.com/nwjs/nw.js/tree/webkitgtk)이라는 프로젝트를 발표합니다. 바로 웹의 언어 `JavaScript`와 `HTML`을 이용해서 데스크탑 어플리케이션을 만들 수 있게 하는거죠! 사실 이전에도 비슷한 시도는 있었던 것으로 알고 있습니다. RealPlayer 등이 그런 시도를 했던 것으로 기억합니다. 하지만 대중화되지는 못했죠. 그때는 웹 기술이 지금만큼 성숙하지 못했거든요. 이제는 [nodejs](https://nodejs.org)와 [WebKit](https://webkit.org), [Chromium](https://www.chromium.org/)등의 프로젝트로 인해서 웹 기술로 데스크탑 어플리케이션을 만들 수 있는 수준이 되었습니다. 그리고 node-webkit은 이런 프로젝트들을 활용했습니다. JavaScript와 HTML의 경우 상대적으로 쉬운 편에 속하는 언어이기 때문에, 네이티브 언어에 비해서 앱을 개발하기도 쉬울 뿐더러 OS마다 다른 언어를 사용할 필요가 없게 되었기 때문에 개발이 더 편리해졌습니다. 그리고 JavaScript와 HTML을 활용하기 때문에 네이티브 개발에 비해서 앱을 디자인하기 더 쉬워지고, 앱에 애니메이션을 넣는 등의 좀 더 인터랙티브한 기능을 구현하기가 쉬워진 거죠. `node-webkit`으로 인해서 웹 개발자가 데스크탑 어플리케이션을 빠르고 쉽게 그리고 예쁘게 만들 수 있는 환경이 되었습니다. 그리고 [Electron](https://electron.atom.io)은 이 node-webkit의 개선된 버전입니다. node-webkit의 개발자 중 한명이었던 [Cheng Zhao](https://github.com/zcbenz)가 [Github](https://github.com)으로 이직하여 개발한 프로젝트입니다. Github은 Electron을 이용해서 자사의 새로운 텍스트 에디터 [Atom](https://atom.io)을 만들어서 오픈 소스로 공개했습니다. 이걸로 스스로 Electron을 이용한 개발의 편리함과 그 유용성을 입증했습니다. 그리고 예전보다 더 경쟁이 치열한 시대가 되었기 때문에 많은 회사들이 네이티브 환경을 이용해서 데스크탑 어플리케이션을 만드는 것을 비생산적으로 보고 있습니다. 이로 인해서 Electron이 점점 더 많은 인기를 얻고 있습니다. 그럼 이제 Electron을 이용해서 만든 데스크탑 어플리케이션 몇가지를 소개해드리겠습니다. ## [Atom](https://atom.io) https://steemitimages.com/DQmYVgwzTJzM8dGypbuTjB6G6j8t6UsSoeomCKxyTzYQ1Bf/image.png Github의 텍스트 에디터 Atom입니다. 원래 Electron은 Atom을 만들기 위해서 시작된 프로젝트입니다 :) 웹 기술을 사용한 가장 현대적인 텍스트 에디터라고 볼 수 있습니다. ## [Slack Desktop App (Windows)](https://slack.com/) https://steemitimages.com/DQmUqBnDpyeY1h1UQPQHnLRucLVZCzPVR1Putg48HenQwUV/image.png 대표적인 사무용 메신저 Slack의 데스크탑 앱이 Electron을 이용해서 만들었습니다. 저도 굉장히 잘 쓰고 있습니다. Slack이 스타트업이기 때문에 개발 시간을 단축하기 위해서 Electron을 사용한 것으로 보입니다. ## [Github Desktop](https://desktop.github.com/) https://steemitimages.com/DQmQexDDpxu7HNdz2wjoPcKy8NawbJL9Sa6NqzbD7nNFukN/image.png Github의 데스크탑 클라이언트 Github Desktop입니다. Github Desktop의 경우 예전에 네이티브 언어를 사용해서 개발했다가 개발 비용을 줄이기 위해서 최근에 Electron을 이용해서 처음부터 다시 개발했습니다. ## [Visual Studio Code](https://code.visualstudio.com/) https://steemitimages.com/DQmZN1oVCM2GhgLCjgUvBWdcEEVHgfpr134Gxs7QrjqiZSz/image.png `Microsoft`에서 만든 `Atom`과 유사한 텍스트 에디터입니다. 성능이 더 좋기 때문에 저는 Atom 대신에 VSCode를 사용합니다. ## 그리고 제가 만든 [Hain](https://github.com/hainproject/hain) https://steemitimages.com/DQmXVafsMHZt6MUav2RmZk4vp8T5ZedUTRqJ9TyoWEB3vKC/image.png 맥에서 잘 사용하던 [Alfred](https://www.alfredapp.com/)의 경험을 윈도에서도 재현하고 싶어서 제가 만든 앱입니다 :) 지금은 맥 버전도 만들어서 윈도, 맥 두 군데에서 모두 잘 사용하고 있습니다. --- 지금까지 Electron에 대한 소개였습니다. 감사합니다.
author | heejin |
---|---|
permlink | electron |
category | kr-dev |
json_metadata | {"tags":["kr-dev","kr","kr-newbie"],"image":["https://steemitimages.com/DQmWdpWeFcZpHrkafrQHbVVZDPoLUYiPsXNcW74urFGQMeq/image.png","https://steemitimages.com/DQmYVgwzTJzM8dGypbuTjB6G6j8t6UsSoeomCKxyTzYQ1Bf/image.png","https://steemitimages.com/DQmUqBnDpyeY1h1UQPQHnLRucLVZCzPVR1Putg48HenQwUV/image.png","https://steemitimages.com/DQmQexDDpxu7HNdz2wjoPcKy8NawbJL9Sa6NqzbD7nNFukN/image.png","https://steemitimages.com/DQmZN1oVCM2GhgLCjgUvBWdcEEVHgfpr134Gxs7QrjqiZSz/image.png","https://steemitimages.com/DQmXVafsMHZt6MUav2RmZk4vp8T5ZedUTRqJ9TyoWEB3vKC/image.png"],"links":["https://electron.atom.io","https://www.wxwidgets.org/","https://www.qt.io/","https://github.com/rogerwang","https://github.com/nwjs/nw.js/tree/webkitgtk","https://nodejs.org","https://webkit.org","https://www.chromium.org/","https://github.com/zcbenz","https://github.com","https://atom.io","https://slack.com/","https://desktop.github.com/","https://code.visualstudio.com/","https://github.com/hainproject/hain","https://www.alfredapp.com/"],"app":"steemit/0.1","format":"markdown"} |
created | 2017-06-27 12:56:30 |
last_update | 2017-06-27 12:56:57 |
depth | 0 |
children | 4 |
last_payout | 2017-07-04 12:56:30 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 9.372 HBD |
curator_payout_value | 1.577 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 3,361 |
author_reputation | 1,394,759,212,855 |
root_title | "Electron - 크로스 플랫폼 데스크탑 어플리케이션 개발 프레임워크" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,325,987 |
net_rshares | 1,216,329,008,798 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
sonzweil | 0 | 92,602,542,740 | 15% | ||
kdj | 0 | 444,654,292,782 | 50% | ||
agile | 0 | 3,006,041,825 | 100% | ||
coinkorea | 0 | 649,994,233,534 | 5% | ||
leomichael | 0 | 21,670,020,344 | 13% | ||
dienhassan | 0 | 64,880,174 | 100% | ||
heejin | 0 | 1,344,229,780 | 100% | ||
ucba | 0 | 1,542,645,428 | 100% | ||
idas4you | 0 | 417,101,610 | 25% | ||
deathnote9 | 0 | 1,033,020,581 | 100% |
지금 CSS사용해서 대략적인 View만 만들고 있는데 이렇게 자바스크립트랑 자바가 함께 있으면 좀더 효율적으로 일을 할 수 있겠네요! 좋은정보 감사합니다.
author | deathnote9 |
---|---|
permlink | re-heejin-electron-20170628t004241650z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-28 00:42:42 |
last_update | 2017-06-28 00:42:42 |
depth | 1 |
children | 0 |
last_payout | 2017-07-05 00:42:42 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 86 |
author_reputation | 94,070,047,675 |
root_title | "Electron - 크로스 플랫폼 데스크탑 어플리케이션 개발 프레임워크" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,409,837 |
net_rshares | 1,791,573,561 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
heejin | 0 | 1,791,573,561 | 100% |
Very good!!! 입니다.
author | kdj |
---|---|
permlink | re-heejin-electron-20170627t130658255z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-27 13:07:00 |
last_update | 2017-06-27 13:07:00 |
depth | 1 |
children | 0 |
last_payout | 2017-07-04 13:07:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 17 |
author_reputation | 4,188,781,313,300 |
root_title | "Electron - 크로스 플랫폼 데스크탑 어플리케이션 개발 프레임워크" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,327,287 |
net_rshares | 1,198,907,642 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
heejin | 0 | 1,198,907,642 | 100% |
항상 잘보고 있습니다^^ 개발글!
author | mauver |
---|---|
permlink | re-heejin-electron-20170627t233907736z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-27 23:39:06 |
last_update | 2017-06-27 23:39:06 |
depth | 1 |
children | 0 |
last_payout | 2017-07-04 23:39:06 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 18 |
author_reputation | 1,816,100,454,105 |
root_title | "Electron - 크로스 플랫폼 데스크탑 어플리케이션 개발 프레임워크" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,404,122 |
net_rshares | 1,826,361,397 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
heejin | 0 | 1,826,361,397 | 100% |
stratis electron wallet이 있던데 이 기술로 만든거겠죠? 잘 보고 갑니다
author | sanghkaang |
---|---|
permlink | re-heejin-electron-20170627t133259441z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-27 13:33:00 |
last_update | 2017-06-27 13:33:00 |
depth | 1 |
children | 0 |
last_payout | 2017-07-04 13:33:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 50 |
author_reputation | 11,888,625,643,765 |
root_title | "Electron - 크로스 플랫폼 데스크탑 어플리케이션 개발 프레임워크" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,330,661 |
net_rshares | 1,138,356,751 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
heejin | 0 | 1,138,356,751 | 100% |