Electron: ๋Ÿฐํƒ€์ž„ ๋ชจ๋“œ์˜ ์•„์ด๋””์–ด

์— ๋งŒ๋“  2014๋…„ 10์›” 01์ผ  ยท  259์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: electron/electron

ํ˜„์žฌ atom-shell์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ์•ฑ์„ ๋ฐฐํฌํ•  ๋•Œ ์ „์ฒด atom-shell ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•˜์ง€๋งŒ, ์ด์ œ asar ๋ฅผ atom-shell์˜ ์•ฑ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ Adobe Air ๋˜๋Š” Chrome ํ˜ธ์ŠคํŒ… ์•ฑ ๊ณผ ๊ฐ™์€ ๋Ÿฐํƒ€์ž„ ๋ชจ๋“œ๋ฅผ atom-shell์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ atom-shell์˜ ๋Ÿฐํƒ€์ž„ ๋ชจ๋“œ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ํ•œ asar ํ˜•์‹์œผ๋กœ ํŒจํ‚ค์ง€ ์•ฑ์„ ๋ฐฐํฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„ ๋ชจ๋“œ๋Š” atom-shell์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์•ฑ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ(์ง€๊ธˆ atom-runtime ๋ผ๊ณ  ํ•ฉ์‹œ๋‹ค) ํ”Œ๋žซํผ๊ณผ ๊ธด๋ฐ€ํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • Windows์—์„œ ์šฐ๋ฆฌ๋Š” atom-runtime์„ ์œ„ํ•œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ž๋™ ์—…๋ฐ์ดํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•˜๊ณ  .asar ํŒŒ์ผ ํ˜•์‹์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Linux์—์„œ ์ผ๋ถ€ ์ธ๊ธฐ ์žˆ๋Š” ๋ฐฐํฌํŒ์— ๋Œ€ํ•œ atom-runtime์˜ ๊ณต์‹ ์†Œํ”„ํŠธ์›จ์–ด ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  .asar ํŒŒ์ผ์˜ ํ•ธ๋“ค๋Ÿฌ๋กœ atom-runtime์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
  • Mac์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ Mac ๋ฒˆ๋“ค๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Steam์ด ๋‹ค์šด๋กœ๋“œํ•œ ๊ฒŒ์ž„์— ๋Œ€ํ•œ ๋ฒˆ๋“ค์„ ์ƒ์„ฑํ•œ ๋ฐฉ๋ฒ• ๋˜๋Š” Parallel์ด ํ˜ธ์ŠคํŒ…๋œ OS์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋ฒˆ๋“ค์„ ์ƒ์„ฑํ•œ ๋ฐฉ๋ฒ•์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŽ์€ .NET ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‚ฌ์šฉ์ž ์ปดํ“จํ„ฐ์— ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์›์ž ๋Ÿฐํƒ€์ž„์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž ์•ฑ์šฉ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ ๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

discussion

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

.asar ํ™•์žฅ์ž๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํ—๊ฐ€๋ฆฌ์–ด๋กœ๋Š” ์ •๋ง ์ด์ƒํ•˜๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚˜์œ ์˜๋ฏธ the shit ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค( link ).

๋ชจ๋“  259 ๋Œ“๊ธ€

+100, ์•ฑ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

.asar ํ™•์žฅ์ž๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํ—๊ฐ€๋ฆฌ์–ด๋กœ๋Š” ์ •๋ง ์ด์ƒํ•˜๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚˜์œ ์˜๋ฏธ the shit ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค( link ).

.apak? ์ •๋ง ๋งŽ์€ ์–ธ์–ด๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๊ฑฐ์˜ ๋ชจ๋“  ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ์ผ๋ถ€์—์„œ๋Š” ์ด์ƒํ•˜๊ฒŒ ๋“ค๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IMO ๋Ÿฐํƒ€์ž„ ์„ค์น˜ ๋ฐ ์—…๋ฐ์ดํŠธ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ์‰ฌ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ๋Ÿฐํƒ€์ž„์—๋Š” ๋งค์šฐ ์„ฑ๊ฐ€์‹  ์•Œ๋ฆผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ตœ์‹  ์•ฑ ๋ฒ„์ „์ด ์ด์ „ ๋Ÿฐํƒ€์ž„์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ผ๋ถ€ ์ถ”๊ฐ€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ˜„์žฌ ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „์„ ์•ฑ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์˜ ๋ฒ„์ „๊ณผ ๋น„๊ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋…ธ๋“œ์—์„œ์™€ ๊ฐ™์ด ๋ฒ„์ „ ๋ฒ”์œ„๋„ ๊ฐ€๋Šฅ package ) ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋Ÿฐํƒ€์ž„์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ตœ๋Œ€ํ•œ ์‰ฝ๊ฒŒ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์‰ฌ์šด ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด์ง€๋งŒ ์ €์—๊ฒŒ๋Š” ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„์ด๋‚˜ ์ƒํƒœ ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ๋Š” ์ฐฝ์ž…๋‹ˆ๋‹ค("๋‹ค์šด๋กœ๋“œ ์ค‘... 57%", "์—…๋ฐ์ดํŠธ ์ค‘...").
ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์—…๋ฐ์ดํŠธ๋„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์—…๋ฐ์ดํŠธ ์„œ๋น„์Šค์ผ ์ˆ˜๋„ ์žˆ๊ณ  ์•ฑ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋Ÿฐํƒ€์ž„ ๋‹ค์šด๋กœ๋“œ์ผ ์ˆ˜๋„ ์žˆ๊ณ  ์•ฑ์ด ๋‹ซํž ๋•Œ ์—…๋ฐ์ดํŠธ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•ด +1. ์ €๋Š” Mac ๋ฐ Windows์šฉ์œผ๋กœ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์—… ์ค‘์ด๋ฉฐ, ์ด๋Š” ์ œ๊ณต์„ ์ƒ๋‹นํžˆ ๋‹จ์ˆœํ™”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ต‰์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

๋ช‡ ๊ฐ€์ง€ ์ƒ๊ฐ:

  • @YuriSolovyov ๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ํŠน์ • asar๊ฐ€ ํ˜ธํ™˜๋˜๋Š” ์›์ž ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „์„ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. asar ๊ธฐ๋ฐ˜ ์•ฑ์„ ์ถœ์‹œํ•  ๋•Œ QA์˜ ๋ถ€๋‹ด์„ ์ค„์ด๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํ•œ ๋ฒ„์ „์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • ์ด๋ฅผ ์ง€์›ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž ์žฌ์ ์œผ๋กœ ๋ณด์ด์ง€ ์•Š๋Š” ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ atom-runtime์„ ๋‚˜๋ž€ํžˆ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • ์ด๊ฒƒ์€ ๋‹ค์šด๋กœ๋“œ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•˜๋Š” ์ด์ƒ๊ณผ ๋‹ค์†Œ ์ƒ๋ฐ˜๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๋Ÿฌ asar ๊ธฐ๋ฐ˜ ์ œํ’ˆ์„ ์ƒ์‚ฐํ•˜๋Š” ํšŒ์‚ฌ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ํ‘œ์ค€ํ™”ํ•˜์—ฌ ๋ชจ๋“  ์•ฑ์ด ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Mac์—์„œ ์ž๋™ ์—…๋ฐ์ดํŠธ ์›์ž ๋Ÿฐํƒ€์ž„์— ๋Œ€ํ•œ ์ง€์›์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ _๋งค์šฐ_ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • Linux์—์„œ ์†Œ์Šค๋งŒ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค .deb/.rpm ํŒจํ‚ค์ง€์™€ ์„ค์น˜์— sudo ๊ถŒํ•œ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฐฉ๋ฒ•(์˜ˆ: ์‚ฌ์šฉ์ž๋ณ„)์„ ํ†ตํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ค์น˜/์—…๋ฐ์ดํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋ณ„๋กœ ์„ค์น˜๋œ ๋Ÿฐํƒ€์ž„์˜ ๊ฒฝ์šฐ ์ž๋™ ์—…๋ฐ์ดํŠธ๋„ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์„ค์น˜๋œ asar ํŒŒ์ผ์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ฐ ์•ฑ์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

๋งˆ์ง€๋ง‰์œผ๋กœ ์ด ๋…ธ๋ ฅ์˜ ์ผ์ •์€ ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ? ์ด ๋ถ€๋ถ„์˜ ๊ตฌํ˜„์„ ์‹œ์ž‘ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ €๋Š” ๊ธฐ๊บผ์ด ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.

@joshuawarner32 ํ˜„์žฌ ์ด๊ฒƒ์€ ๋Œ€๋žต์ ์ธ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์ €๋Š” atom-shell์˜ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ํ›„ ์ž‘์—…ํ•  ๊ณ„ํš์ด์ง€๋งŒ ๋ช‡ ๋‹ฌ ํ›„์— ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ๋Ÿฐํƒ€์ž„๊ณผ ์ž‘๋™/์—…๋ฐ์ดํŠธ ๋ฐฉ์‹, ์–ผ๋งˆ๋‚˜ ๋ฐฉํ•ด๊ฐ€ ๋˜๋Š”์ง€, ๋‹ค๋ฅธ ์žฅ๋‹จ์ ์„ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ๋„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ด๊ฒƒ์€ ๋Œ€๋žต์ ์ธ ์•„์ด๋””์–ด์ผ ๋ฟ์ด๋ฉฐ, atom-shell์˜ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ํ›„ ์ž‘์—…ํ•  ๊ณ„ํš์ด์ง€๋งŒ ๋ช‡ ๋‹ฌ ํ›„์— ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

5~6๊ฐœ์›” ์ •๋„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ์˜ ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋งค์šฐ ์ž˜ ๋งž๋Š” ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ๊ตฌ์ถ•ํ–ˆ์œผ๋ฉฐ ์ด๋ฅผ ์—…์ŠคํŠธ๋ฆผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ํ—˜์€ ์‹ค์ œ๋กœ ์šฐ๋ฆฌ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋„ˆ๋ฌด ๊ตฌ์ฒด์ ์ด๊ณ  ๋‹ค๋ฅธ ๋ˆ„๊ตฌ๋„ ์ถ”๊ฐ€ ๋ณต์žก์„ฑ์— ๊ด€์‹ฌ์„ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์šฐ๋ฆฌ ๋””์ž์ธ์˜ ํ•˜์ด๋ผ์ดํŠธ์ž…๋‹ˆ๋‹ค.

  • ์„œ๋ฒ„์˜ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์•ฑ์— ๋Œ€ํ•œ .asar.gz ํŒŒ์ผ ๋ฐฐํฌ
  • ํŠน์ • ์•ฑ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ๋ฒˆ๋“ค๋กœ ๋ฌถ์ง€ ์•Š๋Š” ๋‹จ์ผ ๋นŒ๋“œ์˜ atom-shell์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  • ์•ฑ ์‹œ์ž‘ ์‹œ ์ ์ ˆํ•œ .asar.gz ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค(์—†๊ฑฐ๋‚˜ ์„œ๋ฒ„์— ์ตœ์‹  ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ). ์••์ถ•์„ ํ’€๊ณ  ํฌํ•จ๋œ ์•ฑ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์šฐ๋ฆฌ์˜ atom-shell ๋นŒ๋“œ๋Š” ๋‹ค์šด๋กœ๋“œ/์‹คํ–‰ํ•  ์•ฑ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด --app ์ธ์ˆ˜๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์›์ž ๊ป์งˆ ์‚ฌ๋žŒ๋“ค์ด ์—ผ๋‘์— ๋‘์—ˆ๋˜ ๊ฒƒ์ด ๊ทธ๋Ÿฐ ์ข…๋ฅ˜์ž…๋‹ˆ๊นŒ? ๊ทธ๋Ÿฐ ๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์œ ์šฉํ• ๊นŒ์š”?

JRE์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ .eapp ํŒŒ์ผ(์ „์ž ์•ฑ)์ด ์žˆ๋Š” ERE(์ „์ž ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ)์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.eapp์˜ ๊ฒฝ์šฐ -1

+1 ํ•„์š”ํ•ด์š”!

Windows์—์„œ ์šฐ๋ฆฌ๋Š” atom-runtime์„ ์œ„ํ•œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ž๋™ ์—…๋ฐ์ดํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ด๋ฆด .asar ํŒŒ์ผ ์œ ํ˜•์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows์— Steam์„ ์„ค์น˜ํ•˜๊ณ  ๊ฒŒ์ž„ ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์‹ค์ œ๋กœ ํ”„๋กœํ† ์ฝœ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ต์  ์˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

:+1: Steam ๋ชจ๋ธ์—์„œ.

์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ๊ธฐ์ˆ ์  ์žฅ์• ๋ฌผ์€ ์—†์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด Electron ์•ฑ ์ž์ฒด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ๋ชจ๋“  ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์†Œ๊ทœ๋ชจ ํŒ€์ด ํ’€ ํƒ€์ž„์œผ๋กœ ์ž‘์—…ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‹คํ˜„ ๋  ๊ฒƒ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ๋ชจ๋“  ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์†Œ๊ทœ๋ชจ ํŒ€์ด ํ’€ ํƒ€์ž„์œผ๋กœ ์ž‘์—…ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‹คํ˜„ ๋  ๊ฒƒ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ™•์‹คํžˆ ๊ทน๋ณตํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ด ๊ณ„ํš์„ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ๋งŽ์€ ์งˆ๋ฌธ์ด ๋‚ด ๋งˆ์Œ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "App 1"์—๋Š” 0.30.x๊ฐ€ ํ•„์š”ํ•˜๊ณ  0.31.x์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ "App 2"์—๋Š” ๊ทธ ๋ฐ˜๋Œ€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ์Šน์ž๋Š”?

๊ฐœ๋ฐœ์ž ๋ณต์žก์„ฑ์„ ํฌ์ƒ์‹œํ‚ค๋ฉด์„œ ๋””์Šคํฌ ๊ณต๊ฐ„๊ณผ ๋Œ€์—ญํญ๊ณผ ๊ฐ™์€ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ๋งŽ์€ ๋…ธ๋ ฅ๊ณผ ์ธํ”„๋ผ/์–ด๋ ค์›€์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(์ฆ‰, ์ด์ œ ๊ฐœ๋ฐœ์ž๋Š” ์ฒ˜์Œ ์„ค์น˜/ Electron์„ ํ™•์ธํ•œ ๋‹ค์Œ ์•ฑ์„ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค)

์•„์ด๋””์–ด๋ฅผ ๋ฏธ์›Œํ•˜๋ ค๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค! ์ €๋Š” ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•˜์—ฌ ๋Œ€์‹  ํฐ ๋ฌธ์ œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ์˜ ์ฒซ ์ค„๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐ์†ก

@paulcbetts ํ•˜์ง€๋งŒ ์ด์ ์€ ๊ทธ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์‚ฌ์šฉ์ž๋Š” ~70mb ๋Œ€์‹  1mb ๋ฏธ๋งŒ์„ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ž๋™ ์—…๋ฐ์ดํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ชจ๋“  ๊ฒƒ์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ช‡ ๊ฐœ์˜ ํŒŒ์ผ์ด ํฌํ•จ๋œ micro-zip ์•„์นด์ด๋ธŒ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ถ”์ถœํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์†๋„๊ฐ€ 128kbps ๋ฏธ๋งŒ์ธ ์™ธ๋”ด ์ง€์—ญ์—์„œ ์ง€๋‚œ 3๊ฐœ์›”์„ ๋ณด๋ƒˆ๊ณ  ๋‚˜๋ฅผ ๋ฏฟ์œผ์‹ญ์‹œ์˜ค. ์—…๊ทธ๋ ˆ์ด๋“œ ํฌ๊ธฐ๋Š” ์—‰๋ฉ์ด์— ํฐ ๊ณ ํ†ต์ž…๋‹ˆ๋‹ค. ์ตœ์•…์˜ ๋ถ€๋ถ„์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋น„์Šทํ•œ ์ƒํ™ฉ์— ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์ž๋™ ์—…๋ฐ์ดํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ชจ๋“  ๊ฒƒ์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ช‡ ๊ฐœ์˜ ํŒŒ์ผ์ด ํฌํ•จ๋œ micro-zip ์•„์นด์ด๋ธŒ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ถ”์ถœํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์‚ฌ์‹ค์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฑฐ์˜ ํ™•์‹คํ•˜๊ฒŒ ์–ด๋Š ์‹œ์ ์—์„œ ๋‹น์‹ ์€ ์ตœ์‹  ๋ฒ„์ „์˜ Electron์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ ๋‹ค์Œ kerplowie๋กœ ์˜ฎ๊ธฐ๊ณ  ์‹ถ์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋น„์Šทํ•œ ์ƒํƒœ์— ์žˆ์Šต๋‹ˆ๋‹ค. )

ํŒจํ‚ค์ง€ ์•ˆ์— ์—„์ฒญ๋‚œ ์–‘์˜ ๋น„๋””์˜ค๊ฐ€ ์—†๋Š” ํ•œ ๊ธฐ๋ณธ ์•ฑ์€ ์ด์ œ 30~50๋ฉ”๊ฐ€์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ์—๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‰๊ท  ์œ ํŠœ๋ธŒ ๋™์˜์ƒ์€ 30~40MB ์‚ฌ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋ฉ”๋ชจ๋ฅผ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ค‘๊ตญ์˜ ์—ฐ๊ฒฐ ์†๋„๋Š” ํ‰๊ท  ์•ฝ 20kB/s์ž…๋‹ˆ๋‹ค(๋‚ด ๋„์‹œ์˜ ~92%๋ณด๋‹ค ๋Š๋ฆฐ ์—ฐ๊ฒฐ์ด ์žˆ๋‹ค๋Š” ์ ์€ ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค.) wget -c '์ž‰. taobao ๊ฑฐ์šธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ.

๋ฒ„์ „ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์ „์ž ๊ฐœ๋ฐœ์€ ํฌ๊ด„์ ์ธ ๋ฒ„์ „์„ ๊ฐ€์ง€๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋นจ๋ฆฌ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์•ฑ์ด ์‹œ์ž‘๋  ๋•Œ ์š”์ฒญ๋œ ์ฃผ์š” ๋ฒ„์ „์„ ์‚ฌ์šฉ/๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ์ผ์ข…์˜ ๋ž˜ํผ/๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

20kb/s? ์–ด๋–ป๊ฒŒ ์‚ด์•„๋‚จ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์–ด๋ ค์šด ์ผ์ธ์ง€ ์ƒ์ƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!

@steelbrain ๋‚ด ์˜๋„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค

@RIAEvangelist ๋น ๋ฅธ ์‹œ๊ฐ„๊ณผ ๋งŽ์€ ์ธ๋‚ด์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์†๋„๋Š” ๋ฐค๋Šฆ๊ฒŒ๊นŒ์ง€ ์ •๋ง ๋นจ๋ผ์ง€๋ฏ€๋กœ ์ž ์ž๋Š” ๋™์•ˆ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์˜ˆ์•ฝ๋œ ์ƒํƒœ๋กœ ๋‘์‹ญ์‹œ์˜ค. :์‚ผ

์–ด์จŒ๋“ , (๊ธฐ๋ณธ) ์ œ3์ž ๋ž˜ํผ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๋งŽ์€ ์ผ์ด ์•„๋‹ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋„ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋Ÿฌ๋‚˜ .asar ํŒŒ์ผ์€ ์ „์ž ๋ฒ„์ „์„ ์‰ฝ๊ฒŒ ์„ ์–ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ ์„ค๋ช…์ž ์‹œ์Šคํ…œ์ด ํ•„์š”ํ• ๊นŒ์š”?

(ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ ) ๋Ÿฐ์ฒ˜๊ฐ€ ์•ฑ์— ํ•„์š”ํ•œ ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „์„ ํ•„์š”๋กœ ํ•˜๋Š” ์ผ์ข…์˜ ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „ ๋””์ŠคํŒจ์ฒ˜๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ด๋ฅผ ์œ„ํ•ด package.json์— ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@YuriSolovyov ๋Ÿฐํƒ€์ž„์ด ๊ธฐ๋ณธ์ ์œผ๋กœ .json ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ . asar ํŒŒ์ผ์„ ๋จผ์ € ์ฝ๊ณ  package.json์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€๋งŒ ์•ฝ๊ฐ„ ๋Š๋ ค์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@Tribex ์˜ˆ, ๋…ผ๋ฆฌ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

-> associate .asar with runtime
-> user launches .asar app
-> dispatcher reads package.json in .asar
-> (optional) downloads required runtime version if needed
-> launches app

์ด์ƒ์ ์œผ๋กœ๋Š” ๋Ÿฐํƒ€์ž„ ๋ชจ๋“œ๊ฐ€ Steam ๋˜๋Š” Chrome ์•ฑ ๋Ÿฐ์ฒ˜ ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ๋ฌธ์ œ๋Š” ๋Ÿฐํƒ€์ž„์ด ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋  ๋•Œ ์•ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Electron ์•ฑ์€ Electron, ํŠนํžˆ ๋…ธ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋กœ ์–ด๋ ค์›€์„ ๊ฒช์Šต๋‹ˆ๋‹ค. C++ ABI ๋ฌธ์ œ๋กœ ์ธํ•ด Electron์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ๋งˆ๋‹ค ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋“ˆ์„ ๋‹ค์‹œ ๋นŒ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Steam์˜ ๋ชจ๋“  ๊ฒŒ์ž„์€ ๋…๋ฆฝ ์‹คํ–‰ํ˜• ํ”„๋กœ๊ทธ๋žจ์ด๊ธฐ ๋•Œ๋ฌธ์— Steam์€ ๊ณ ํ†ต์„ ๊ฒช์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ Steam ํด๋ผ์ด์–ธํŠธ ์—†์ด ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Chrome ์•ฑ ์‹คํ–‰๋„ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Chrome ์•ฑ์€ ์ผ์ข…์˜ ํ•ด์„ ์–ธ์–ด์ธ HTML/JS/CSS๋กœ ์ž‘์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Chrome์˜ ๋‹ค๋ฅธ ๋ฒ„์ „์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฐ„๊ฒฉ์ด ์—†์Šต๋‹ˆ๋‹ค.

@hokein ์ œ๊ฑฐ๋œ ์ „์ž ๋ฒ„์ „์— ์˜์กดํ•˜๋Š” ์•ฑ์„ ๋งŒ๋‚  ๋•Œ๋งˆ๋‹ค ์—ฌ๋Ÿฌ ์–ธ์–ด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ชจ๊ตญ์–ด๋กœ ๊ฐ€๋ฒผ์šด "ํด๋ผ์ด์–ธํŠธ"๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ์‚ฌ๋ณธ์„ ๋‹ค์šด๋กœ๋“œํ•œ ๋‹ค์Œ ํŠน์ • ์ „์ž๋กœ ๊ฐ ์•ฑ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ผ์ฃผ์ผ์— ํ•œ ๋ฒˆ ์ •๋„ ์ƒˆ๋กœ์šด Electron ๋ฆด๋ฆฌ์Šค๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ 2๊ฐœ์˜ ์•ฑ์— ๋™์ผํ•œ ๋ฒ„์ „์˜ Electron์ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์€ ํฌ๋ฐ•ํ•ฉ๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ง€์›ํ•˜๋ ค๋ฉด ๋ฆด๋ฆฌ์Šค๋ฅผ LTS(์žฅ๊ธฐ ์ง€์›) ๋ฒ„์ „๊ณผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. LTS๋Š” ํ”„๋กœ๋•์…˜์šฉ์ด๊ณ  ์ตœ์ฒจ๋‹จ์€ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ์šฉ์ž…๋‹ˆ๋‹ค. LTS๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ฃผ์š” io.js ๋ฐ ์ฝ˜ํ…์ธ  ์…ธ ๋ฒ„์ „์„ ๋Œ€์ฒดํ•˜์ง€ ์•Š๋Š” ์ผ๋ถ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ธฐ๋ณธ ๋ชจ๋“ˆ์€ ๊ณ„์† ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@etiktin ์ด ๋งํ•œ ๊ฒƒ์„ ๊ฐ์•ˆํ•  ๋•Œ ์‚ฌ์šฉ์ž ์‹œ์Šคํ…œ์— ๋งŽ์€ ์ „์ž ์•ฑ์ด ์žˆ์ง€ ์•Š๋Š” ํ•œ ํ•ญ์ƒ ๋Œ€๋ถ€๋ถ„์˜ ๋Ÿฐํƒ€์ž„์„ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋‹ค์šด๋กœ๋“œ ์‹œ๊ฐ„์— ์ด์ ์ด ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2์ฃผ ๋™์•ˆ ๋‚˜๋Š” ์ „์ž๋ฅผ ๋ณด๊ณ  ์žˆ์—ˆ๊ณ  ์ง€๊ธˆ์€ 4๊ฐœ์˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ณธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@etiktin ์ด์ƒ์ ์œผ๋กœ๋Š” electron์ด semver๋ฅผ ๋”ฐ๋ฅด๋Š” ๊ฒฝ์šฐ ์•ฑ์€ ๋ฒ„์ „ ^0.31์„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๊ณ  ์ตœ์‹  0.31.x ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” semver ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๋•์…˜ ์ค‘์ธ ์•ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์•ฑ์˜ ํ˜„์žฌ ๋ฒ„์ „(0.3.0, 0.3.1 ๋“ฑ)๊ณผ ํ”Œ๋žซํผ(darwin-x64, win32-ia32, win32-x64 ๋“ฑ)์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„์—์„œ ๊ฐ„๋‹จํ•œ HTTP ๋์ ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  2. ์„œ๋ฒ„๋Š” "304 Not Modified"๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ์ตœ์‹  ๋ฒ„์ „์ด ์žˆ๋Š” ๊ฒฝ์šฐ JSON ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  3. JSON ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ์‹  ๋ฒ„์ „์˜ ํด๋”, ํŒŒ์ผ ๋ฐ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์˜ ์ค‘์ฒฉ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
  4. JSON ๋งค๋‹ˆํŽ˜์ŠคํŠธ์˜ ํด๋” ํ•ญ๋ชฉ์€ [์ด๋ฆ„, ์ž์‹ ํ•ญ๋ชฉ ๋ฐฐ์—ด]๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  5. JSON ๋งค๋‹ˆํŽ˜์ŠคํŠธ์˜ ํŒŒ์ผ ํ•ญ๋ชฉ์€ [์ด๋ฆ„, ์ฝ˜ํ…์ธ  ํ•ด์‹œ, 64KB ์ฒญํฌ๋กœ ๋ถ„ํ• ๋œ ์ฝ˜ํ…์ธ  ํ•ด์‹œ ๋ฐฐ์—ด, ํŒŒ์ผ ์‹คํ–‰ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ ํ”Œ๋ž˜๊ทธ]์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  6. JSON ๋งค๋‹ˆํŽ˜์ŠคํŠธ์˜ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ํ•ญ๋ชฉ์€ [์ด๋ฆ„, ๋Œ€์ƒ ๊ฒฝ๋กœ]์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  7. ์ด๋Ÿฌํ•œ JSON ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋Š” ๊ฐ ๋ฒ„์ „์— ๋Œ€ํ•ด ์„œ๋ฒ„์—์„œ ์ƒ์„ฑ๋˜๊ณ  ์บ์‹œ๋ฉ๋‹ˆ๋‹ค. JSON ๋งค๋‹ˆํŽ˜์ŠคํŠธ์˜ ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•ด ์„œ๋ฒ„๋Š” ์ฝ˜ํ…์ธ  ์ข…์† ์ฒญํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ๊ฐ€๋ณ€ ๊ธธ์ด ์ฒญํฌ๋กœ ๋ถ„ํ• ํ•œ ๋‹ค์Œ SHA256์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒญํฌ๋ฅผ ํ•ด์‹œํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์ค‘๋ณต ์ œ๊ฑฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ˜ํ…์ธ ๊ฐ€ ๋ช‡ ๋ฐ”์ดํŠธ์”ฉ ์ด๋™ํ•˜๋”๋ผ๋„ ๋™์ผํ•œ ํŒŒ์ผ์˜ ๋‹ค๋ฅธ ๋ฒ„์ „์— ๋Œ€ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ์ฒญํฌ ํ•ด์‹œ๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ํ‰๊ท  ์ฒญํฌ ๊ธธ์ด๋Š” ์ตœ์ ์˜ ์ค‘๋ณต ์ œ๊ฑฐ + ์••์ถ• ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ๋Œ€๋žต 64KB์ž…๋‹ˆ๋‹ค. ์ฒญํฌ๊ฐ€ ๋” ํฌ๋ฉด ์ค‘๋ณต ์ œ๊ฑฐ๋„ ๋˜์ง€ ์•Š๊ณ  ์ฒญํฌ๊ฐ€ ๋” ์ž‘์œผ๋ฉด ์••์ถ•๋„ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ๋„ˆ๋ฌด ๋งŽ์€ ์ฒญํฌ ํ•ด์‹œ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š๋„๋ก ๋งค์šฐ ํฐ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ํ‰๊ท  ์ฒญํฌ ๊ธธ์ด๋„ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  8. ์•ฑ์ด ์„œ๋ฒ„์—์„œ ์ƒˆ JSON ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ํ™•์ธํ•˜๊ณ  ๋ณดํŽธ์ ์œผ๋กœ ๊ณ ์œ ํ•œ ID๋กœ ์ƒˆ ์ž„์‹œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด์ „ ๋กœ์ปฌ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์‹œ์ž‘์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ํŒŒ์ผ์—์„œ ์ฒญํฌ๋ฅผ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„์—์„œ ๋ˆ„๋ฝ๋œ ์ฒญํฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์ƒˆ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์„ ๋งŒ๋“  ํ›„ ๋ชจ๋“  ํŒŒ์ผ ๋‚ด์šฉ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ์™€ ์„œ๋ช…์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์šด๋กœ๋“œ์—์„œ ์†์ƒ๋œ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์—…๋ฐ์ดํŠธ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  9. ์ƒˆ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ๋Œ€ํ•ด ์„ฑ๊ณต์ ์œผ๋กœ ํ™•์ธ๋˜๋ฉด ์ƒˆ ์—…๋ฐ์ดํŠธ ๊ฒฝ๋กœ์—์„œ ์•ฑ์˜ ์ƒˆ ๋ฒ„์ „์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  10. ์ด์ „ ๋ฒ„์ „์€ ๋‹ค๋ฅธ ๋ฒ„์ „์ด ์‹คํ–‰ ์ค‘์ž„์„ ๊ฐ์ง€ํ•˜๊ณ  ์ž์ฒด์ ์œผ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  11. ์ƒˆ ์•ฑ์€ ์ด์ „ ๋ฒ„์ „์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋‹ค๋ฅธ ์ž„์‹œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌํ•˜๊ณ  ์ด์ „ ๋ฒ„์ „์˜ ์ด๋ฆ„์„ ์•„์นด์ด๋ธŒ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ฐ”๊พธ๊ณ  ์ž„์‹œ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ด๋ฆ„์„ ์ด์ „ ๋ฒ„์ „์˜ ์œ„์น˜(/Applications/Ronomon.app)๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์‹œ ์‹คํ–‰๋˜์ง€๋งŒ ์ด์ œ๋Š” ์ด์ „ ๋ฒ„์ „(/Applicatons/Ronomon.app)์˜ ์œ„์น˜์—์„œ ์‹คํ–‰๋œ ๋‹ค์Œ ์•„์นด์ด๋ธŒ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  12. ์ „ํ™˜ ์ค‘์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ ํ˜ธ์ถœ๋กœ ์ „ํ™˜๋  ๋•Œ๊นŒ์ง€ ์ด์ „ ๋ฒ„์ „์ด ํ‘œ์ค€ ๊ฒฝ๋กœ์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๋•์…˜์—์„œ ๋งค์šฐ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐ ์••์ถ•์€ ์ผ๋ฐ˜์ ์ธ ์ฃผ์š” ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•ด ์•ฝ 33%๋งŒ ๋‹ค์šด๋กœ๋“œํ•˜๋ฉด ๋˜๋ฉฐ, ๋ถ€ ์—…๋ฐ์ดํŠธ์—๋Š” ์•ฑ์— ๋”ฐ๋ผ 1-2MB๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ์—…๋ฐ์ดํŠธ๋Š” Electron ๋ฐ ์•ฑ ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜์˜ ์›์ž ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ํ”„๋กœ์„ธ์Šค์—์„œ ์ฝ”๋“œ ์„œ๋ช…์„ ์œ„๋ฐ˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

+1 ์•„์ด๋””์–ด๋กœ
+1 asar ์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๋ ค๋ฉด

๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ธฐ ์œ„ํ•ด ์™”์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ด๋ฏธ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์— + :100:์„ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
JRE, .NET ๋˜๋Š” Adobe Air์™€ ๊ฐ™์€ ์†”๋ฃจ์…˜์ด ์™„์ „ํžˆ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„์„ ๊ฐ ์•ฑ๊ณผ ํ•จ๊ป˜ ํฌ์žฅํ•˜๋ฉด ์•ฑ์ด ์ •๋ง ์ปค์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์•ฑ๊ณผ ๋Ÿฐํƒ€์ž„์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์†”๋ฃจ์…˜์ด ๊ฐœ๋ฐœ๋˜์–ด ๋‹ซํ˜€ ์žˆ์Šต๋‹ˆ๊นŒ?

@PierBover ์ด ๋ฌธ์ œ๋Š” ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ - https://github.com/KeitIG/museeks/issues/48 - ํ์‡„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ €์žฅ์†Œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค @championswimmer ์—๊ฒŒ ๊ฐ์‚ฌํ•˜๊ณ  ํ˜ผ๋ž€์„ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๋…๋ฆฝ ๋Ÿฐํƒ€์ž„์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ์ž‘์—… ์ค‘์ธ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

@PierBover ํ˜„์žฌ ๋ฒ„์ „ ์กฐ๊ฐํ™”๋กœ ์ธํ•ด ๊ณง ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๊ฐ™์€ ์ •ํ™•ํ•œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” 2๊ฐœ์˜ ์ „์ž ์•ฑ์„ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค). ์•„๋งˆ๋„ v1์ด ์ถœ์‹œ๋œ ํ›„์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@jorangreef ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์ฐจ๋“ฑ ์—…๋ฐ์ดํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๋…๋ฆฝํ˜• ๋ชจ๋“ˆ๋กœ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@championswimmer ๋„ค, ์ œ ์•ฑ์„ ์œ„ํ•œ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์œผ๋ฏ€๋กœ ์ด์ œ ์•ฑ์„ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํฅ๋ฏธ๋กœ์šธ ๊ฒƒ ๊ฐ™์•„์„œ ๊ณ„์† ์ง€์ผœ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@etiktin ์˜ˆ, ์ฐจ๋“ฑ ์ž๋™ ์—…๋ฐ์ดํŠธ๋Š” ํ˜„์žฌ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ตœ์†Œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ๋„ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฌ๋Ÿฌ ์•ฑ์—์„œ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฏธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์บ์‹œ๋œ ๋ฒ„์ „์˜ Electron์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์„ค์น˜ ์†๋„๊ฐ€ ํ›จ์”ฌ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ์†Œ์Šค๋ฅผ ๊ณต๊ฐœํ•˜๊ณ  ์‹ถ๊ณ  ์•ž์œผ๋กœ ๋ช‡ ๋‹ฌ ์•ˆ์— ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด "App 1"์—๋Š” 0.30.x๊ฐ€ ํ•„์š”ํ•˜๊ณ  0.31.x์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ "App 2"์—๋Š” ๊ทธ ๋ฐ˜๋Œ€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ์Šน์ž๋Š”?

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‘ ๋ฒ„์ „์„ ์„ค์น˜ํ•ด์•ผ ํ•˜๊ณ  VS C++ 2008์ด 2005์™€ ๊ณต์กดํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋‘ ๊ฐœ์˜ ๋Ÿฐํƒ€์ž„์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. VS C++ ๋Ÿฐํƒ€์ž„์ด ์„ค์น˜๋˜๋Š” ๋ฐฉ์‹์ด ์ •๋ง ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์ด ์—†๋Š” ๊ฒฝ์šฐ ํ•„์š”ํ•œ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋‹ค์Œ์— ์˜์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋‹ค๋ฅธ ๋Ÿฐํƒ€์ž„์ด ๊ณต์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ ์š”๊ตฌ ์‚ฌํ•ญ์˜ ์ ์šฉ๋„ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋” ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@louy2 Visual C++ ์˜ˆ์ œ(์ถœ์‹œ๊ฐ„ 3๋…„)์™€ Electron(์ตœ์†Œ ์›” 3ํšŒ ์ถœ์‹œ)์—๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์— '์ด๊ฒƒ์€ ๊ณ ์žฅ๋‚œ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค'๋ผ๋Š” ์ธ์šฉ๋ฌธ์œผ๋กœ ๋งํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
Electron ์ƒํƒœ๊ณ„์˜ ์•ฑ์€ +- 0.0.1 ๋˜๋Š”
0.1.0 ๋ฒ„์ „ ์ฐจ์ด

2016๋…„ 2์›” 20์ผ 18:55 Pierre de la Martiniรจre <
[email protected]>์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@louy2 https://github.com/louy2
Visual C++ ์˜ˆ์ œ(๋ฆด๋ฆฌ์Šค ๊ฐ„ 3๋…„) ๋ฐ Electron(๋‹น 3๊ฐœ ๋ฆด๋ฆฌ์Šค)
์ตœ์†Œ ํ•œ๋‹ฌ)

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/atom/electron/issues/673#issuecomment -186595285.

+1

fpm ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ž๋ฅผ .deb ํŒจํ‚ค์ง€๋กœ ํŒจํ‚ค์ง•ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Linux(์ ์–ด๋„ Debian ๋˜๋Š” RPM ๊ธฐ๋ฐ˜)์—์„œ ๊ณต์ •ํ•œ ์ถœ๋ฐœ์ ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: iamale/electron-deb ; ๋˜ํ•œ ์˜ˆ์ œ ์•ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค . (asar์—์„œ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ ํŒจํ‚ค์ง€์— MIME ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.)

์šฐ๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—๋„ ๊ทธ๋Ÿฐ ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ์ •๋ง ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ์•„๋งˆ๋„ Windows ์šฉ์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋” ์ด์ƒ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ์‹ค์ œ๋กœ ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

(์ด ์Šค๋ ˆ๋“œ๋ฅผ ์•Œ๋ ค์ค€ @louy2 ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!)

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , .asar์˜ MIME ์œ ํ˜•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? application/x-asar ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@iamale fpm ๋Œ€์‹  AppImageKit ๋ฅผ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๊นŒ? ์ฃผ์š” ์ด์ ์€ ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ชจ๋‘๋ฅผ ๋งŒ๋“œ๋Š” ๋Œ€์‹  ํ•˜๋‚˜์˜ ์‹คํ–‰ ํŒŒ์ผ๋กœ ๋ชจ๋“  Linux ๋ฐฐํฌํŒ์„ ๋Œ€์ƒ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹คํ–‰ ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ๋ฒˆ๋“ค๋กœ ์ œ๊ณต๋˜๋ฏ€๋กœ ๋” ์ด์ƒ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋„๋ก ์š”์ฒญํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ข‹์€ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค, ๋ด์ฃผ์„ธ์š”.

๊ทธ๋ฆฌ๊ณ  ๋งˆ์ž„์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ application/x-electron ?

@steelbrain ์ข‹์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์›๋ž˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. Electron ๋Ÿฐํƒ€์ž„์€ ๊ฐ ์•ฑ๊ณผ ํ•จ๊ป˜ ํŒจํ‚ค์ง•๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ด๋ฏธ์ง€๋Š” ์ž์ฒด ํฌํ•จ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—). ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋น„๋ก ๋‚ด ์ƒ๊ฐ์— Electron ์•ฑ์—์„œ AppImages๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ƒ๋Œ€์ ์œผ๋กœ ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ์ „ํ†ต์ ์ธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ(๋“œ๋ฌธ ๋ฐฐํฌํŒ์ด๋‚˜ ํŠน๊ถŒ์ด ์—†๋Š” ์‚ฌ์šฉ์ž) ์ด๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ง€์ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๊ทธ๋Ÿฐ๋ฐ application/x-electron ๋Š” ํ›Œ๋ฅญํ•˜๊ฒŒ ๋“ค๋ฆฌ์ง€๋งŒ ์•„๋งˆ ๊ณ„์† ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถ”๊ฐ€๋œ asar ์ง€์›! ์•„์ง ์ €์žฅ์†Œ์— ์—†์œผ๋ฉฐ ์˜ค๋Š˜์ด๋‚˜ ๋‚ด์ผ ์ค‘ ๋‹ค์‹œ ๋นŒ๋“œํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ ์€ transfer.sh์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋งํฌ๋Š” ๋‹ค์Œ 2์ฃผ ๋™์•ˆ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค).

.asar ์•ˆ์— asar.json์ด ์žˆ์–ด์•ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ถ”์ฒœ ๋ฒ„์ „
  • ํ˜ธํ™˜๋˜๋Š” ๋ฒ„์ „
    ์™„๋ฃŒ๋˜๋ฉด ์ „์ž(๋ชจ๋“  ๋ฒ„์ „)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น์—์„œ (1) ์ž์ฒด ์—…๋ฐ์ดํŠธ(๊ฒ€์‚ฌ๊ธฐ) ๋ฐ (2) ์ปดํ“จํ„ฐ์˜ ๊ธฐ์กด ๋ฒ„์ „์„ ํ™•์ธํ•˜๋Š” ํ•˜๋‚˜์˜ ์•ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ˜ธํ™˜๋˜๋Š” ๋ฒ„์ „์ด ์žˆ์œผ๋ฉด ๊ตฌ๋ฌธ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ์—ด๋ฆฐ .asar์˜ ์—ฌ๋Š” ๊ฒฝ๋กœ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ถŒ์žฅ ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋‹ค์‹œ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์•ฑ ์ž์ฒด๋Š” Electron ๋˜๋Š” Python์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ตœ์†Œํ•œ์˜ UI๋งŒ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์ „ํ˜€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ).

์•„์ด๋””์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์ „์ž ๋ฒ„์ „์ด ๋‹ค์šด๋กœ๋“œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์•ฑ์€ ํ•„์š”ํ•œ ์ „์ž ๋ฒ„์ „๊ณผ ์•„๋ฌด ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๊ฒฝ์šฐ default_app์˜ ์ฝ˜ํ…์ธ ์™€ ์•ฑ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฑฐ๊ธฐ์— app.setPath("userData", __dirname + "/ElectronVersions"); ๋กœ ๋ฒ„์ „์„ ์ €์žฅํ•œ ๋‹ค์Œ ํ•ด๋‹น ๋ฒ„์ „์„ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์ƒˆ ๋ฒ„์ „์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

fpm ๋Œ€์‹  AppImageKit ์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๊นŒ?

https://bintray.com/probono/AppImages/Atom/_latestVersion#files ์—์„œ Atom์˜ AppImage๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. chmod a+x ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์ง€ ์•Š์€ x86_64 Linux ๋ฐฐํฌํŒ์—์„œ ์‹คํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ๋ฆฌ๋ˆ…์Šค์—๋งŒ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํฌ๋กœ์Šค OS๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Linux, Windows ๋ฐ Mac OSx์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  asar ํŒจํ‚ค์ง€์™€ ์ตœ์‹ /ํ˜ธํ™˜๋˜๋Š”์ง€ ์กฐํšŒํ•˜๋Š” ์ผ์ข…์˜ OS๋ณ„ ๋Ÿฐ์ฒ˜

(์ˆ˜๋…„ ํ›„) ํ† ๋ก ์„ ์š”์•ฝํ•˜์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. @zcbenz ๋Š” ๋กœ์ปฌ Electron ์ธ์Šคํ„ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋Ÿฐํƒ€์ž„์„ ์ œ์•ˆ ํ•˜๋ฏ€๋กœ .asar ํŒจํ‚ค์ง€๋งŒ ๋ฐฐํฌ๋˜๊ณ  Electron ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฒˆ๋“ค์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„์€ .asar ํŒจํ‚ค์ง€์˜ ์‹คํ–‰๋„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  2. @YurySolovyov ๋Š” ๋Ÿฐํƒ€์ž„์—์„œ .asar ํŒจํ‚ค์ง€์— ์‚ฌ์šฉํ•  ๋ฒ„์ „์„ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€ ์ •๋ณด(์˜ˆ: ํ•„์ˆ˜ Electron ๋ฒ„์ „)๊ฐ€ ํฌํ•จ๋œ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์˜ ๊ฐœ์„ ์„ ์ œ์•ˆ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์— ๋Œ€ํ•œ ๊ฐœ์š”๊ฐ€ ์—ฌ๊ธฐ ์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. @joshuawarner32 ๋Š” ์—ฌ๋Ÿฌ ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „, ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒจํ‚ค์ง•(์˜ˆ: .deb ) ๋ฐ .asar ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ž๋™ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐฐํฌ ์„œ๋ฒ„์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋„ ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค.
  4. @paulcbetts ๋Š” Steam ๋ชจ๋ธ์„ ์‚ดํŽด๋ณด๊ณ  ์œ ์‚ฌํ•œ ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋„๋ก ์ œ์•ˆ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋‹ค๋ฅธ Electron ๋ฒ„์ „ ๋“ฑ์„ ์ง€์›ํ•˜๋Š” ๋กœ์ปฌ ๋Ÿฐํƒ€์ž„ ์•„์ด๋””์–ด์™€ ๊ด€๋ จ๋œ ๋ณต์žก์„ฑ ์„ ์ง€์  ํ•ฉ๋‹ˆ๋‹ค.
  5. [์‚ฌ๋žŒ๋“ค์€ ์ค‘๊ตญ์˜ ์ธํ„ฐ๋„ท ์†๋„์™€ ์–ด๋ฆฐ ์‹œ์ ˆ ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ† ๋ก ํ•ฉ๋‹ˆ๋‹ค]
  6. @hokein ์€ ๋Ÿฐํƒ€์ž„์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋  ๋•Œ์˜ ๋ณต์žก์„ฑ์„ ์ง€์  ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ wrt. Electron ํ—ค๋”์— ๋Œ€ํ•ด ๋‹ค์‹œ ๋นŒ๋“œํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋ณธ ๋ชจ๋“ˆ.
  7. @etiktin ์€ LTS ๋ฐ ์ตœ์‹  ๋ฒ„์ „์„ ์›ํ•˜๋ฏ€๋กœ ํ”„๋กœ๋•์…˜ ์ค€๋น„ ์•ฑ์€ ์ตœ์‹  ๋ฒ„์ „์ด ์•„๋‹Œ LTS๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  8. @Tribex ๋Š” ์‹œ๋งจํ‹ฑ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฅผ ๊ณ ์ˆ˜ํ•œ๋‹ค๋ฉด _all_ ๋ฒ„์ „์˜ ๋กœ์ปฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ณ  ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฒ„์ „๋งŒ ๊ฐ€์งˆ ํ•„์š”๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.
  9. @jorangreef ๋Š” ์ž์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•ด ์ด๋ฏธ ํ”„๋กœ๋•์…˜ ๋‹จ๊ณ„์— ์žˆ๋Š” ์ฐจ๋“ฑ ์ž๋™ ์—…๋ฐ์ดํŠธ ์‹œ์Šคํ…œ์˜ ์˜ˆ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  10. @iamale ์€ .asar ํŒจํ‚ค์ง€๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Electron์˜ fpm ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์ถ• ํ–ˆ์Šต๋‹ˆ๋‹ค.

_๋ฉด์ฑ… ์กฐํ•ญ: ๋…ผ์˜์˜ ์ฃผ์š” ์š”์ ๋งŒ ํฌํ•จํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋†“์นœ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์–‘ํ•ด ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค!_

์—ฌ๊ธฐ๊นŒ์ง€์˜ ํ† ๋ก ์„ ์ฝ๊ณ  ์š”์  ์„ ์š”์•ฝํ•˜๊ณ  ๊ทธ ์ค‘ ์ผ๋ถ€๋ฅผ ๋‹ค๋ฃจ๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. "๊นŠ์€ ํ”Œ๋žซํผ ํ†ตํ•ฉ"์ด ํฌํ•จ๋œ ๋Ÿฐํƒ€์ž„ ์•„์ด๋””์–ด๋Š” ๋‹จ์ˆœํ•œ ๋กœ์ปฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋„˜์–ด์„  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์ „์ฒด ๋Ÿฐํƒ€์ž„์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์ตœ์†Œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ œํ’ˆ์„ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žˆ์œผ๋ฉด ์ข‹์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์„น์…˜์—์„œ๋Š” ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋ณ€๊ฒฝ/๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ก ์  ํ•ด์„:

๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…(์˜ˆ: Electron ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฒˆ๋“ค)์€ ๋ชจ๋“  ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค! ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ํŒ๋งคํ•˜๋Š” ๋ชจ๋“  ํ”ผ์ž์™€ ํ•จ๊ป˜ ์˜ค๋ธ์„ ๋ฐฐ๋‹ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

MVP:

  • ํ™˜๊ฒฝ ๊ด€๋ฆฌ์ž : ๋กœ์ปฌ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Electron ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ํŒจํ‚ค์ง€๊ฐ€ ์–ด๋–ค ์ธ์Šคํ„ด์Šค์™€ ํ˜ธํ™˜๋˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ–ฅ์ƒ๋œ package.json ์‚ฌ์šฉ[์•„๋ž˜ ์ฐธ์กฐ]). ๋˜ํ•œ ์‹คํ–‰ํ•  ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์—…๋ฐ์ดํŠธ ๊ด€๋ฆฌ์ž : ์ž๋™ ์—…๋ฐ์ดํŠธ(+ ์•Œ๋ฆผ) ๋ฐ ์ฐจ๋“ฑ ์ž๋™ ์—…๋ฐ์ดํŠธ์˜ ๊ฐ€๋Šฅ์„ฑ์ด ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ๋ชฌ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ€์ ธ์„œ ์ข‹๋‹ค:

  • ํŒจํ‚ค์ง€/์ข…์†์„ฑ ๊ด€๋ฆฌ์ž : Atom์˜ apm ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ .asar ํŒจํ‚ค์ง€(GitHub ๋˜๋Š” ์ฃผ์–ด์ง„ URL ๋“ฑ์—์„œ)๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋กœ์ปฌ์— ์„ค์น˜ํ•˜๋ ค๋ฉด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค( apt-get ์™€ ๋น„๊ต ๊ฐ€๋Šฅ). Ubuntu์˜ brew ).

์š”๊ตฌ ์‚ฌํ•ญ:

  • ํ–ฅ์ƒ๋œ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ : package.json ์—๋Š” ํ•„์š”ํ•œ Electron ๋ฒ„์ „์„ ๋‚˜ํƒ€๋‚ด๋Š” semver (๋˜๋Š” semver ๋ฒ”์œ„)๋„ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ •์˜๋œ ์„ค์น˜/์ œ๊ฑฐ ์ ˆ์ฐจ : ATM .asar ํŒจํ‚ค์ง€์—๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ค์น˜ ์‹œ ์†Œ์Šค ๋ฐ ๋‹ค์šด๋กœ๋“œ ์ข…์†์„ฑ ๋ชจ๋“ˆ๋งŒ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ์šฉ๊ธฐ๋ฅผ ๋‚ธ๋‹ค๋ฉด ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ํฌํ•จํ•˜๋Š” ์ผ์ข…์˜ _global_ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(npm 3์˜ ํ‰๋ฉด ๊ตฌ์กฐ ๊ฐ€ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Œ). ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋งค์šฐ ๋ณต์žกํ•˜๊ณ  ๋นจ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ์•ฑ ์ œ๊ฑฐ ์‹œ).
  • ๋‹ค์ค‘ ๋กœ์ปฌ ๋Ÿฐํƒ€์ž„ : ์ง€๊ธˆ๊นŒ์ง€ ์‹œ๋งจํ‹ฑ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์ ์šฉ๋œ ๊ฒฝ์šฐ 0.x ๋ฐ 1.x ๋‘ ๊ฐ€์ง€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฒ„์ „๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ ๋ฒ„์ „๊ณผ ํŒจ์น˜๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜ ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ์‹œ์Šคํ…œ์— ์ตœ์‹  ๋ฒ„์ „์˜ 0.x ๋ฐ 1.x ๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์˜๊ฐ:

  • ํ™˜๊ฒฝ/์ข…์†์„ฑ ๊ด€๋ฆฌ์ž: Python์˜ virtualenv , Ruby์˜ rbenv ๋ฐ ruby-build ์ฐธ์กฐ.
  • ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž: Python์˜ pip , Atom์˜ apm .
  • ์—…๋ฐ์ดํŠธ ๊ด€๋ฆฌ์ž: Chromium์˜ zygote ํ”„๋กœ์„ธ์Šค ์—๋Š” _๋ฌด์Œ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ_ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ํฅ๋ฏธ๋กœ์šด ์ ‘๊ทผ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ ๋ฒˆ์—ญ๊ธฐ(์ƒˆ API์— ์ ์‘ํ•˜๊ธฐ ์œ„ํ•ด): Pythons 2to3 .

epm (์ „์ž ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž)๋Š” ์ด๋ฏธ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค...
๋Ÿฐํƒ€์ž„ elec ๋ฐ ์•ฑ .tron ์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? TRON์—๋Š” ์ƒํ‘œ๊ถŒ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฉ‹์ง€๊ฒŒ ๋“ค๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ;)

์•„๋งˆ๋„ uepm (๋ฒ”์šฉ ์ „์ž ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž)์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Electron์ด ์ง€์›ํ•˜๋Š” ๋ชจ๋“  OS์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค... ๋˜๋Š” epmc (์ „์ž ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ์„ผํ„ฐ) ๋ฐ ํŒŒ์ผ .epack (์ „์ž ํŒจํ‚ค์ง€). ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์€ ์ตœ์†Œํ•œ .tron ๋ณด๋‹ค ๋” ๋‚˜์€ ์†Œ๋ฆฌ๋ฅผ ๋‚ด๊ณ  ์˜ํ™”์™€ ํ˜ผ๋™๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค("์ € ํŠธ๋ก ์„ ๋‚ด๋†”, ์นœ๊ตฌ" _์˜ํ™”๋ฅผ ๊ฑด๋„ค์คŒ_).

์ „์ž์™€ ๊ด€๋ จ๋œ ์ด๋ก  ๋ฌผ๋ฆฌํ•™ ๋ถ„์•ผ์—๋„ ๋งŽ์€ ๋‹จ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŽ˜๋ฅด๋ฏธ์˜จ
  • ๋ ™ํ†ค
  • ์š”๊ธˆ
  • ์ฟจ๋กฑ
  • ํŒŒ์šธ๋ฆฌ

๊ทธ๋ฆฌ๊ณ  ์ง์ ‘์ ์ธ ๊ด€๋ จ์€ ์—†์ง€๋งŒ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์— ๋”ฐ๋ฅด๋ฉด

  • ๋ณด์†
    ;)
    (๋‚˜๋Š” ๊ด‘์ž๊ฐ€ ์ด๋ฏธ ์ดฌ์˜๋˜์—ˆ๋‹ค๊ณ  ๋ฏฟ๋Š”๋‹ค)

@kapouer +quark? ์ฐ์€ ๊ฒƒ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š๋‹ค.

Quark๋Š” ๊ฐ€์ ธ๊ฐ”๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ œ์•ˆ ๋ชฉ๋ก์ด ํ˜„์ƒ ์œ ์ง€๋ฅผ ๊ถŒ์žฅํ•˜์ง€ ์•Š์„ ๋•Œ ํ˜„์ƒ ์œ ์ง€๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Hauldron์ด๋ผ๋Š” ์ด๋ฆ„์„ ์ง“์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ? LHC์—์„œ ์ดฌ์˜. Collider๋Š” ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ œํ’ˆ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์˜๋ฏธ๋Š” ์ „์Ÿ๊ณผ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค...

Particle(s) ? ๊ฝค ๊ธธ์ง€๋งŒ.
Wiki์˜ ์ž…์ž ๋ชฉ๋ก

๋ช…๋ช…์ด ์ค‘์š”ํ•˜์ง€๋งŒ ๋Ÿฐํƒ€์ž„/์—…๋ฐ์ดํŠธ/ํŒจํ‚ค์ง•/๋ฐฐํฌ ์˜๋ฏธ๋ฅผ ๋จผ์ € ์กฐ์‚ฌํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

lepton ๋Š” ์ „์ž๊ฐ€ ์†ํ•œ ์ž…์ž๊ตฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์™„๋ฒฝํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

์•ฝ๊ฐ„ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์•„์ด๋””์–ด: ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ๋Ÿฐํƒ€์ž„ ๊ด€๋ฆฌ์ž๊ฐ€ ํ›จ์”ฌ ๋” ํ›Œ๋ฅญํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค(์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๋” ์–ด๋ ต์ง€๋Š” ์•Š์Œ). ์˜ˆ๋ฅผ ๋“ค์–ด @nwjs ๋ฐ”์ด๋„ˆ๋ฆฌ๋„ ํฌํ•จํ•˜๊ณ  ๋™์ผํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ์ž์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(@asdf-vm๊ณผ ๊ฐ™์ง€๋งŒ GUI ๋Ÿฐํƒ€์ž„์šฉ).

๋น ๋ฅด๊ณ  ๋”๋Ÿฌ์šด: https://github.com/iamale/lepton. ์ง€๊ธˆ์€ ๊ณ ์ • ๋ฒ„์ „๋งŒ ์ง€์›ํ•˜๊ณ (semver๋Š” ๋‹ค์Œ ์ž‘์—…์ž„) ์•ฑ์˜ ์••์ถ•์ด ํ’€๋ฆฝ๋‹ˆ๋‹ค(์˜ˆ: ์•„์ง .asar-s ์—†์Œ).

๋ฉ‹์ง„!

+1

.asar, @iamale ์ด ์—†๋”๋ผ๋„ ์–ด๋–ค ํŒŒ์ผ์„ ์—ด์–ด์•ผ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜๋งŒ ์žˆ๋‹ค๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, package.json ์— ์—ฐ๊ฒฐํ•˜๋Š” json ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” file.something ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฌด์—‡์„ ์—ด์–ด์•ผ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค...

์ด๊ฒƒ์€ ์•„์ฃผ ๋ฏธ์นœ ์ƒ๊ฐ์ด์ง€๋งŒ package.json ์˜ electron ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
๋ชจ๋“  (๋ฌผ๋ก , ANY์™€ ๊ฐ™์ง€๋Š” ์•Š์ง€๋งŒ ์ค€๋น„๋œ) npm ํŒจํ‚ค์ง€ ์‹คํ–‰ ๊ฐ€๋Šฅ?
์ฒ˜๋Ÿผ:

electron: {
  "main": "index.js",
  "runtime": ">= 1.2"
}

์ด๊ฒƒ์€ electron ์— npm ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฒ˜๋Ÿผ

electron install atom

์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋ ค๋ฉด electron ๋ช…๋ น๊ณผ ์‹ค์ œ ๋Ÿฐํƒ€์ž„ ๋ฒˆ๋“ค์„ ๋ถ„ํ• ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ package.json์˜ ์ด๋ฆ„์„ package.electron ๋กœ ๋ฐ”๊พธ๊ณ  ๋‚ด์šฉ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

run:{
  "name"    : "zDillinger",
  "version" : "0.0.1-1",
  "main"    : "main.js"
},
electron: {
  "recommended": "1.2",
  "compatible": [
    "1.2.1-1.2.5",
    "1.3,1.3.0.1",
    "1.1"
  ]
}

์ด ์˜ˆ์—์„œ๋Š” ์ „์ž 1.2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉด 1.2.1๊ณผ 1.2.5 ์‚ฌ์ด์˜ ๋ฒ„์ „์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , 1.3.1์„ ํ™•์ธํ•˜์ง€ ์•Š์œผ๋ฉด 1.3.0.1์„ ํ™•์ธํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 1.3.0.1์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 1.1์˜ ๊ฒฝ์šฐ, ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ 1.2๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

๊ถŒ์žฅ ๋ฒ„์ „์„ ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ˜ธํ™˜๋˜๋Š” ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ˜ธํ™˜๋˜๋Š” ๊ฒƒ์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ฐ€์ ธ์™€์„œ ํ™•์ธํ•˜๊ณ  ์•„๋ฌด ๊ฒƒ๋„ ์•ˆ๋˜๋ฉด ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ธ์ง€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ณ  no ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฒ„์ „์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. PC์—์„œ ์ฐพ์•˜๊ณ , ์•„๋ฌด๊ฒƒ๋„ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์œผ๋ฉด ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€ ๋Œ€์‹  Electron ์„ค์น˜๊ฐ€ ๊ฐ์ง€๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์˜ค๋ฅ˜ ํŒ์—…์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

@sapioit ๋ณ„๋„์˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์ข‹์€ ์ƒ๊ฐ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ง€์ • ํŒŒ์ผ ํ™•์žฅ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์—…์ด ์ƒ๋‹นํžˆ ๊ฐ„์†Œํ™”๋ฉ๋‹ˆ๋‹ค. (.electron์ด ์กฐ๊ธˆ ๊ธธ์–ด ๋ณด์ด์ง€๋งŒ.)

@iamale ์˜ lepton์— ๋”ฐ๋ฅด๋ฉด ์•„๋งˆ๋„ .lept?

package.json ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ ์–ด๋–ค ์ด์ ๋„ ๋ณด์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ „์ž ์žฅ์€ ์ ˆ์—ฐ ๋ถ€๋ถ„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. Babel๊ณผ ESlint๋Š” ์ด ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด npm์— ์ง์ ‘ ์•ฑ์„ ๊ฒŒ์‹œํ•˜๊ฑฐ๋‚˜ npm์„ ํ†ตํ•ด ํ›จ์”ฌ ์‰ฝ๊ฒŒ ์•ฑ์„ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ๋‘ ๋ฒˆ์งธ @YurySolovyov - package.json ์— ๋„ฃ๋Š” ๊ฒƒ์ด ๋” ์ ์ ˆํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@YurySolovyov ์ถ”๊ฐ€ ํŒŒ์ผ์˜ ์žฅ์ ์€ ๋Ÿฐํƒ€์ž„์ด ์ถ”๊ฐ€ ํŒŒ์ผ ํ™•์žฅ์ž์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ์˜คํ”„๋„ˆ๋กœ ์ž๋™ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. package.json์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ๋ชจ๋“  JSON ํŒŒ์ผ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ๋“ฑ๋กํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ณ ํ†ต์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@Tribex ๊ณต์ •ํ•œ ํฌ์ธํŠธ.
์•„๋งˆ๋„ package.electron์€ ๋Ÿฐํƒ€์ž„ "Hey, take a look at package.json, it should contain the info on how to launch it" ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์ผ์ข…์˜ ๋งํฌ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "๋ฏธ์นœ" ์•„์ด๋””์–ด์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋„ค, ์ €๋Š” ๊ทธ๊ฒƒ์„ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@tribex ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ํŒŒ์ผ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ package.json์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์—.

@wurysolovoyov ๋‹น์‹ ์€ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ํŒŒ์ผ์— ํ™•์žฅ์ž๊ฐ€ ์ฒจ๋ถ€๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ชจ๋“  ํ™•์žฅ์ž๋Š” ๋™์ผํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ electron ์ด์™ธ์˜ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ $ .json ์„ ์—ด ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ํ•œ(์ ์ ˆํ•œ ์ „์ž ์•ฑ์ด ์—ด๋ฆฌ์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•จ) ์—ฌ์ „ํžˆ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ .json ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์€ ํŒŒ์ผ์„ ์—ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํŽธ์ง‘๊ธฐ๋ฅผ ๋จผ์ € ์—ด๊ฑฐ๋‚˜ 1๋ถ„๋งˆ๋‹ค .json ๋ฅผ ์—ด ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋Š” ํŒŒ์ผ์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@wurysolovoyov ๊ฐ€ ์•„๋‹ˆ๋ผ @YurySolovyov ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋ช…ํ™•ํ•˜๊ฒŒ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์•˜์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. package.electron ์˜ ๋ชฉ์ ์€ ์ด ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์•ฑ์ด๋ผ๋Š” ํ‘œ์‹œ์ž ์—ญํ• ์„ ํ•  ๋ฟ์ด๋ฏ€๋กœ ๋Ÿฐํƒ€์ž„์ด ๋™์ผํ•œ ํด๋”์— ์žˆ๋Š” package.json ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. , ์•ฑ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. package.json ๋ฅผ ์ง์ ‘ ์—ด๋ฉด OS์—์„œ .json ์™€ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ํ•ญ๋ชฉ์—์„œ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

๋ฐ”๋กœ ๊ฐ€๊ธฐ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค.

@YurySolovyov ์ด ๊ฒฝ์šฐ ํ•ด๋‹น ์ •๋ณด๋ฅผ package.json ๋˜๋Š” package.electron์— ์ •์˜ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์ทจํ–ฅ์˜ ๋ฌธ์ œ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‚˜์—๊ฒŒ ๋” ๊นจ๋—ํ•ด ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ์ธ์ ์œผ๋กœ ๊ทธ๊ฒƒ์„ ๋ณ„๋„๋กœ ๋ณด๊ด€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ package.json์˜ ์—”์ง„ ์†์„ฑ์ด๋ฉด ์ถฉ๋ถ„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@Tribex npm์— ์•ฑ์„ ๊ฒŒ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์œ ํšจํ•œ package.json ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@YurySolovyov ๋งž์Šต๋‹ˆ๋‹ค. package.electron์„ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด package.json์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์กด์žฌํ•ฉ๋‹ˆ๋‹ค. .electron์€ ๋Ÿฐํƒ€์ž„ ์ •๋ณด๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ๋งŒ ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜, ์ œ์•ˆ์˜ ๊ฒฝ์šฐ ๋งˆ์ปค๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ package.electron ๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ _marker_ ๋กœ๋งŒ ์กด์žฌํ•˜๋ฏ€๋กœ package.json์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ž์ฒด ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ์กด์žฌํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ๋ณ„๋„์˜ ํŒŒ์ผ์ด ํ•„์š”ํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค. _ ๋”๋ธ” ํด๋ฆญ์€ ์•ฑ์„ ์—ฝ๋‹ˆ๋‹ค _. ๋‚˜๋Š” ์—ฌ์ „ํžˆ package.electron ์˜ ์ด๋ฆ„์„ my-app.electron ๋˜๋Š” my-app.electron ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

@sapioit ํ™•์‹คํžˆ, ๊ทธ๊ฒƒ์ด .electron ํŒŒ์ผ์„ ๊ฐ–๋Š” ์š”์ ์ž…๋‹ˆ๋‹ค. .electron ํ™•์žฅ์ž๊ฐ€ ์žˆ๋Š” ํ•œ ์›ํ•˜๋Š” ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ *.electron์„ ์‚ดํŽด๋ณธ ๋‹ค์Œ package.json์—์„œ ์‹คํ–‰ํ•  ์ „์ž์˜ ๋ฒ„์ „์„ ๊ฒฐ์ •ํ•œ ๋‹ค์Œ package.json์„ ๋‹ค์‹œ ์ฝ๋„๋ก ํ•˜๋Š” ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ทธ๋‹ค์ง€ ๊นจ๋—ํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@Tribex ์™œ package.json์ด ๋‘ ๋ฒˆ ์ฝํž ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

  • ๋Ÿฐํƒ€์ž„ ์ •๋ณด๋ฅผ .electron ํŒŒ์ผ์— ๋„ฃ์œผ๋ฉด ๋Ÿฐํƒ€์ž„์€ ๋ชจ๋“  ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅด๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  package.json ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์„ ์‹œ์ž‘ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํŽ˜์ผํŒจ์Šคํ•ฉ๋‹ˆ๋‹ค.
  • ๋Ÿฐํƒ€์ž„์„ package.json ์ง์ ‘ ๋˜๋Š” electron ์„น์…˜ ์•„๋ž˜์— ๋„ฃ๋Š” ๊ฒฝ์šฐ์—๋„ ์ฝ๊ธฐ๊ฐ€ 1ํšŒ๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด .electron ํŒŒ์ผ(์•„์ด๋””์–ด?)์— ๋ฌด์—‡์„ ๋„ฃ์–ด์•ผ ํ• ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋น„์–ด ์žˆ์–ด๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@tribex .electron ๋Š” package.json ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ package.json์˜ ์ด๋ฆ„์ด ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์‹์œผ๋กœ NPM package.json ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  Electron์— ๋Œ€ํ•ด ๋‹ค๋ฅธ package.json (์•„๋งˆ๋„ electron.json )๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ์š”? ์•ฑ์— package.json์ด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋กœ ๊ฐ€์ ธ์˜ฌ ํ•ญ๋ชฉ์„ ์•Œ๋ ค ์ฃผ๊ธฐ๋ฅผ ์›ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋‹จ ๊ฐ€์ ธ์˜จ ํ›„์—๋Š” ํŒŒ์ผ์„ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ํ•„์š” ์—†์ด ์•ฑ์„ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

_ app.electron _

{
  "package": "package.json",
  "recommended": "1.2",
  "compatible": [
    "1.2.1-1.2.5",
    "1.3,1.3.0.1",
    "1.1"
  ]
}

๋˜๋Š”

_ myapp.electron _

{
  "package": "electron.json",
  "recommended": "1.2",
  "compatible": [
    "1.2.1-1.2.5",
    "1.3,1.3.0.1",
    "1.1"
  ]
}

๋˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ package.json ์— ๋„ฃ์œผ๋ฉด .electron ๋งŒ ์•ฑ์„ ์—ฌ๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋ ค๋Š” .json ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

_ app.electron _

{
  "package": "package.json"
}

๋˜๋Š”

_ myapp.electron _

{
  "package": "electron.json"
}

๋˜ํ•œ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ์— ๋‘ ๊ฐœ์˜ ๋Ÿฐ์ฒ˜(ํ•˜๋‚˜๋Š” ํด๋ผ์ด์–ธํŠธ์šฉ, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์„œ๋ฒ„์šฉ)๋ฅผ ๊ฐ–๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ๋กœ์ปฌ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํŒŒ์ผ์˜ 99%(500MB ์ด์ƒ์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ์ž„์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •)์™€ 5-6๊ฐœ์˜ ๋‹ค๋ฅธ ํŒŒ์ผ์„ ๋ชจ๋‘ ๋ณต์ œํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ๋‘ ๊ฐœ์˜ ๋ณ„๋„ ๋””๋ ‰ํ† ๋ฆฌ์— ๋‘˜ ํ•„์š”๊ฐ€ ์žˆ์ง€๋งŒ ํ•˜๋‚˜์˜ ์ถ”๊ฐ€ ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ž์ฒด์ ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์—ฌ๋Ÿฌ ์‹คํ–‰ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ณ„๋„์˜ package.electron ๋Š” package.electron.json ๋˜๋Š” .json ํ™•์žฅ์ž๋ฅผ ๊ฐ–๋Š” ์ด๋ฆ„์œผ๋กœ ์ง€์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŽธ์ง‘๊ธฐ์™€ IDE๊ฐ€ ๊ตฌ๋ฌธ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

@StreetStrider ์ฐจ๋ผ๋ฆฌ .electron ๊ฐ€ ์‹ค์ œ๋กœ ์œ ํšจํ•œ .json ์ž„์„ IDE์— ๊ฐ€๋ฅด์ณค์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ @sapioit ์™€ .json ์—ฐ๊ด€์— ๋Œ€ํ•ด ๋…ผ์˜ ํ–ˆ์Œ์„ ์ง€์ ํ•ฉ๋‹ˆ๋‹ค. ์ธ๊ธฐ์žˆ๋Š” OS๋Š” ์ด์ค‘ ํ™•์žฅ ์—ฐ๊ฒฐ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ( .foo.bar )

ํŽธ์ง‘ํ•  ๋•Œ .json ํ™•์žฅ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ  ํŽธ์ง‘๊ธฐ๋กœ ์—ด ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰๊ธฐ๋กœ ํŒŒ์ผ์„ ์—ด์–ด ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ์ง‘๊ธฐ๋กœ ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” Adobe Air์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@sapioit ๊ณต์ •ํ•œ ์š”์ , ๋‚˜๋Š” package.json์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋‹น์‹ ์˜ ์˜๊ฒฌ์— ๋™์˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ๋Ÿฐํƒ€์ž„๊ณผ ํ”Œ๋ ˆ์ด์–ด๋Š” ๋ณ„๊ฐœ์˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด์ œ ํ”Œ๋ ˆ์ด์–ด๋กœ์„œ ๋” ๋งŽ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์˜ ๊ฐœ๋…์— ์ต์ˆ™ํ•œ ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ธฐ์šธ์–ด์ง„ ์ปค๋ฎค๋‹ˆํ‹ฐ ์™ธ๋ถ€์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹น๋ฉดํ•œ ๋ฌธ์ œ๋Š” ๋Ÿฐํƒ€์ž„์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. JRE ๋ฐ .Net๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ์„ ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

@baconface ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‹น์‹ ์ด ์—ฌ๊ธฐ์„œ ๊ตฌ๋ณ„ํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€๋Š” ๋ถˆ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

@baconface ์˜ˆ, ํ•˜์ง€๋งŒ JRE์™€ .Net๋„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
JRE๊ฐ€ ์—†์œผ๋ฉด .jar ํŒŒ์ผ์€ electron ๋Ÿฐํƒ€์ž„์ด ์—†๋Š” ํŒจํ‚ค์ง€๋งŒํผ ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด์ƒ์ ์œผ๋กœ ์ด ๋„๊ตฌ๋Š” ์ „์ž๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ธฐ๋ณธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐฐํฌ๋˜๊ฑฐ๋‚˜ ์ด์ƒ์ ์œผ๋กœ ํ™•์‚ฐ ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” .electron ๋Œ€์น˜๋œ ํŠน์ • ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋Š” ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ์ž‘์€ ๋„๊ตฌ๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

.lept ๋ฉ‹์ง€๋„ค์š”. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๊ฐœ์ธ์ ์œผ๋กœ ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. pkg.engines ์—ฌ๊ธฐ์—์„œ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•ด ๋ณด์ž…๋‹ˆ๋‹ค(ํ•˜์ง€๋งŒ 1.x || >=2.5.0 || 5.0.0 - 7.2.3 from npm's docs ์™€ ๊ฐ™์€ ์ผ๋ถ€ ๋ณต์žกํ•œ semver ํ‘œํ˜„์‹์„ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ { recommended, compatible, etc } - @sapioit ์˜ ์˜ˆ์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค). ( lepton ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ scripts.run ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ npm start ์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๊ณ  lepton์€ ์ž์ฒด $VARIABLES ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์˜๋ฏธ ์ฒด๊ณ„๋ฅผ ๋‹ค์†Œ ๊นจ๋œจ๋ฆฝ๋‹ˆ๋‹ค. .)

๋˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ package.json์— ๋„ฃ์œผ๋ฉด .electron์ด ์•ฑ์„ ์—ฌ๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋ ค๋Š” .json์— ๋Œ€ํ•œ ๋งํฌ๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ๋„ ์ข‹์€ ์•„์ด๋””์–ด๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋‹ค. ์—ฌ๋Ÿฌ ์ง„์ž…์ ์ด ์žˆ๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ง€๊ธˆ scripts ๋งต์ด ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์—ฌ์ „ํžˆ ํ•˜๋‚˜์˜ package.json์— ๋ชจ๋‘ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

// package.json
{
  "engines": {
    "node": "4.x",
    "electron": "1.x"
  },
  "lepton": {
    "run": "$ELECTRON .",
    "server": "$NODE ./server.js",
    "server-debug": "$NODE ./server.js --debug"
  }
}
# lepton-run [DIR OR TARBALL] [CONFIGURATION]
$ lepton-run . # the default configuration is `run`
$ lepton-run . server
$ lepton-run . server-debug

๊ทธ๋Ÿฐ ๋‹ค์Œ, ์ด๊ฒƒ์„ ์‹คํ–‰ ํŒŒ์ผ๋กœ ์ •๋ง๋กœ ์›ํ•œ๋‹ค๋ฉด Linux / macOS์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ์…ธ ์Šคํฌ๋ฆฝํŠธ(#!shebang ํฌํ•จ 3์ค„)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  Windows์—์„œ๋Š”... ์Œ... ยฏ_(ใƒ„)_/ยฏ

๋จผ์ €, Release.Breaking.Feature.Fix ๋˜๋Š” Semantic Version์„ Explicit Versioning์œผ๋กœ ๋Œ€์ฒดํ•ด์•ผ ํ•˜๋Š” ์ด์œ  ์™€ ๊ฐ™์ด ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ๊ณผ ์—ฌ์ „ํžˆ ํ˜ธํ™˜๋˜๋Š” ๋™์‹œ์— semver์— ๋Œ€ํ•œ ๋” ๋‚˜์€ ๋Œ€์•ˆ์„ ์ œ๊ณตํ•˜๋Š” ์ด ๊ธฐ์‚ฌ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘˜์งธ, ๋ฌธ์ œ๋Š” ๊ทธ๊ฒƒ๋“ค์„ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ณ„ํ•  ๊ฒƒ์ธ๊ฐ€์ด๋‹ค. ๋‚ด ๋ง์€, server.js ๊ฐ€ ์ด๋ฏธ --debug ์ธ์ˆ˜๋ฅผ ์ˆ˜๋ฝํ–ˆ๋‹ค๋ฉด ์™œ ๊ทธ๊ฑธ๋กœ ๊ท€์ฐฎ๊ฒŒ ํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์ด ์ž์‹ ์˜ ํŒŒ์ผ ๊ตฌ์„ฑ์„ ๊ฐ€์ง€๋„๋ก ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ? 2.2-2.4 ์—์„œ ์ž‘์—…ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์™€ 1.4-1.9.2.1 ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ์„œ๋ฒ„์™€ ๊ฐ™์ด ์„œ๋ฒ„์—๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ๋‹ค๋ฅธ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹น์‹ ์ด ์ œ์•ˆํ•œ ๋Œ€๋กœ ์šฐ๋ฆฌ๋Š” ๋” ์ œํ•œ์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ --debug ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋” ๋งŽ์€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ด์™€ ๊ฐ™์€ ๋” ๋งŽ์€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ป๊ฒŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๊นŒ? ๊ฒฐ๊ตญ, ํ•˜๋‚˜์˜ ํŒŒ์ผ์ด ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ธฐ๋ฅผ ์›ํ–ˆ๋‹ค๋ฉด ๋ณ„๋„์˜ ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ ๋„ ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” .lept ํŒŒ์ผ์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์—‰๋ง์ด ๋ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด --debug ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .lept๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ์š”? ๋˜๋Š” --debug ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋Š” ๋‹ค๋ฅธ ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?
๋‚ด๊ฐ€ ์ดํ•ดํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค...

๋จผ์ €, semver์— ๋Œ€ํ•œ ๋” ๋‚˜์€ ๋Œ€์•ˆ์„ ์ œ๊ณตํ•˜๋Š” ์ด ๊ธฐ์‚ฌ๋ฅผ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ข‹์€ ์•„์ด๋””์–ด ๊ฐ™์•„์š”! ๋‚˜๋Š” Electron์ด ์ด ๋ฒ„์ „ ์ฒด๊ณ„๋กœ ์ „ํ™˜ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ตœ์ข… ์‚ฌ์šฉ์ž ์ œํ’ˆ์—๋Š” ํ›Œ๋ฅญํ•˜์ง€๋งŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์—”์ง„, ๋Ÿฐํƒ€์ž„ ๋ฐ ๊ธฐํƒ€ ํ•ญ๋ชฉ์—๋Š” ์‹ค์ œ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํ–‰ ์ค‘์ธ Electron์˜ ๋ฒ„์ „์กฐ์ฐจ ์•Œ ์ˆ˜ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (์›ํ•˜์ง€ ์•Š๋Š” ํ•œ).

์„œ๋ฒ„์— ํด๋ผ์ด์–ธํŠธ์™€ ๋‹ค๋ฅธ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‘˜ ์ด์ƒ์˜ ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „์ด ํ•„์š”ํ•œ ํ”„๋กœ์ ํŠธ๋Š” ์ƒ์ƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด --debug ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .lept๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ์š”?

์˜ˆ, ์™œ ์•ˆ๋˜๋‚˜์š”?

# lepton-run [DIR OR TARBALL] [CONFIGURATION] ARGS...
$ lepton-run . server --debug --myoption=5
# resolves to:
$ path/to/node ./server.js --debug --myoption=5

์ด ์ด์ค‘ ๊ตฌ์„ฑ package.json์€ ์„œ๋ฒ„๊ฐ€ a) ํด๋ผ์ด์–ธํŠธ์™€ ๋งŽ์€ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊ณต์œ ํ•˜๊ณ  b) ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํ–‰ํ•˜๋„๋ก ์˜๋„๋œ ๊ฒฝ์šฐ์— ์ข‹์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋Š” ๊ฐ๊ฐ ๊ณ ์œ ํ•œ package.json์ด ์žˆ๋Š” ๋‘ ๊ฐœ์˜ ์ €์žฅ์†Œ/ํŒจํ‚ค์ง€๋กœ ๋ชจ๋‘ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Electron์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋นŒ๋“œํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Electron์€ ํ•„์š”์— ๋งž๊ฒŒ Semantic Versioning์—์„œ ํŒŒ์ƒ๋œ ์ž์ฒด ์‹œ์Šคํ…œ์„ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝํ•  ๊ฐ€๋Šฅ์„ฑ์€ ๊ฑฐ์˜ ์—†์ง€๋งŒ Lepton ๋ฐ ๊ธฐํƒ€ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ์•„์ง _ development hell _, ์‹œ๋งจํ‹ฑ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์™„์ „ํžˆ ๊ฑด๋„ˆ๋›ฐ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด --debug ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .lept๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ์š”?

์˜ˆ, ์™œ ์•ˆ๋˜๋‚˜์š”?

# lepton-run [DIR OR TARBALL] [CONFIGURATION] ARGS...
$ lepton-run . server --debug --myoption=5
# resolves to:
$ path/to/node ./server.js --debug --myoption=5

์•„๋‹ˆ์š”, ๊ตฌ์„ฑ์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‹คํ–‰๊ธฐ๋ฅผ ํ†ตํ•ด ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฑฐ:

# lepton-run [DIR OR TARBALL] [CONFIGURATION] ARGS...
$ lepton-run . server --debug 

๊ทธ๋Ÿฌ๋‚˜ ํŒŒ์ผ์„ ์—ด์ง€ ์•Š๊ณ  --myoption=5 ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .lept ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋Ÿฐ์ฒ˜๋ฅผ ํ†ตํ•ด ์ธ์ˆ˜๋ฅผ "_push_"ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ •์˜ ์ธ์ˆ˜๋กœ ์‹คํ–‰ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— --debug ์— ๋Œ€ํ•œ ํ•„์š”์„ฑ๋„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ•œ ๊ฐ€์ง€๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋™์˜ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ง€์›์„ ๋ฐ›๊ณ  ์žˆ๋Š” ์•ˆ์ •์ ์ธ ๋ฒ„์ „์„ ์›ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์€ ์ˆซ์ž๋ฅผ ๊ธฐ์–ตํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋ฅผ ๊ธฐ์–ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— " ๋ฆด๋ฆฌ์Šค "๋ฅผ ์ž์ฒด ๋ฒˆํ˜ธ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

@sapioit "Release" ํ•„๋“œ๊ฐ€ ์ตœ์ข… ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด๋ผ๋ฉด ๋‹ค๋ฅธ ํ•„๋“œ๋Š” ๋ฌด์—‡์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ์ตœ์ข… ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ์ƒˆ ๋ฒ„์ „์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ์—…๋ฐ์ดํŠธ๋œ ๋Ÿฐํƒ€์ž„(package.json์˜ ๋ฒ”ํ”„๋ฅผ ํ†ตํ•ด)์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋Ÿฐํƒ€์ž„๋„ ์—…๋ฐ์ดํŠธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์‚ฌ์šฉ์ž๋Š” ์ง€์› ์ด ์ œ๊ณต๋˜๋Š” ๋ฒ„์ „์„ ์•Œ๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ทธ๋“ค์€ _์“ธ๋ชจ์—†๋Š” ์ˆซ์ž_๋ฅผ ๋งŽ์ด ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„์ „์„ ๊ธฐ์–ตํ•˜๊ธฐ๋กœ ์„ ํƒํ•˜๋ฉด ๋ฒ„์ „ 1.7 13 ๋ฒ„์ „์„ ๊ธฐ์–ตํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ํฝ๋‹ˆ๋‹ค(์˜ˆ:).
  3. ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ Thunderbolt ํ˜ธํ™˜์„ฑ์ด ์ถ”๊ฐ€๋œ ์ดํ›„๋กœ ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ๋ฐฐ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ nVidia ๋“œ๋ผ์ด๋ฒ„ ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํŠน์ • ์ผ์ด ๋ฐœ์ƒํ•  ๋•Œ๊นŒ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์‚ฌ์šฉ์ž/์ผ€์ด์Šค์— ๋”ฐ๋ผ , ์ปดํ“จํ„ฐ ๋ถ€ํŒ… ํ›„, ๊ฒŒ์ž„์„ ์—ฐ ํ›„ ๋˜๋Š” ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•œ ์ง€ ๋ช‡ ๋ถ„ ํ›„). ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์‹  ๋ฒ„์ „์˜ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ์ด์œ (๊ทธ๋Ÿฌ๋‚˜ KMPlayer์˜ ๊ด‘๊ณ  ๋˜๋Š” locked on ์ž๋™ ์—…๋ฐ์ดํŠธ ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋งŽ์€ ์ด์œ ๊ฐ€ ์žˆ์Œ)์˜ ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ณต์žก์„ฑ์„ ์ œ๊ฑฐํ•˜์—ฌ ๋ณ€๊ฒฝ ๋กœ๊ทธ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ด์œ  ์ค‘ ์ผ๋ถ€์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค... ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ณ  ์™œ ๊ทธ๋Ÿฌํ•œ ์„ ํƒ์„ ํ–ˆ๋Š”์ง€ ๋” ์ž˜ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@sapioit >= 12.1 ์™€ ๊ฐ™์€ semver ๋ฒ”์œ„๋Š” ์ง€์›์„ ์„ ์–ธํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ์œ ์—ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?
์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒˆ ๋ฒ„์ „์˜ ๋Ÿฐํƒ€์ž„์ด ์žˆ๊ณ  ๋ฒ„์ „ ๋ฒ”์œ„๋ฅผ ์ถฉ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ์•ฑ์˜ ๋ชจ๋“  ๋‹ค์Œ ์‹คํ–‰์€ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋“ค์€ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ์ˆ ์ ์ธ ์ œํ•œ(KMPlayer์˜ ๊ด‘๊ณ  ๋ฐ nVidia ๋“œ๋ผ์ด๋ฒ„์™€ ๊ฐ™์€)์œผ๋กœ ์ธํ•ด ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

@sapioit ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋Ÿฐํƒ€์ž„ ๋ฒ”์œ„๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ช…์‹œํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

@sapioit @YurySolovyov ์ด ํ† ๋ก ์ด ์—ฌ๊ธฐ์— ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋Ÿฐํƒ€์ž„ ๊ด€๋ฆฌ์ž๋Š” ์ „์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ „์ž๊ฐ€ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋…ผ์˜๋Š” ๋‹ค๋ฅธ ๋ฌธ์ œ์— ์†ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@Tribex ๋‹ค์†Œ. ์ด๋ฏธ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด๊ฒฐ๋œ ๊ฒƒ๋“ค์„ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Ÿฐํƒ€์ž„ ๊ด€๋ฆฌ์ž๋Š” ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

@yurysolovyov ๊ทธ๋ ‡๋‹ค๋ฉด ๋‹จ์ˆœํžˆ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์›ํ•˜๋Š” ๋งŒํผ ๋ฒ„์ „ ๋ฒˆํ˜ธ์˜ ์„น์…˜์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@sapioit

Electron์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋นŒ๋“œํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Lepton์—๋Š” ์•„์ง ํ• ๋‹น๋œ ๋ฒ„์ „ ์ฒด๊ณ„๊ฐ€ ์—†์œผ๋ฉฐ ํŒจํ‚ค์ง€(์•ฑ)๋Š” ์›ํ•˜๋Š” ๋ฒ„์ „ ์ฒด๊ณ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: Lepton ์ž์ฒด๋ฅผ ํ†ตํ•ด ์•ฑ ์—…๋ฐ์ดํŠธ๋ฅผ ์ง€์›ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ).

๋Ÿฐํƒ€์ž„์€ ์ด์ƒ์ ์œผ๋กœ๋Š” ์ œํ’ˆ์ด ์•„๋‹ˆ๋ฏ€๋กœ semver๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜์ง€๋งŒ ๋‹ค์‹œ 3-์ˆซ์ž ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์ด์ œ ์ง€์›๋ฉ๋‹ˆ๋‹ค(๊ฐœ๋ฐœ์ž๋Š” ๋ฒ”์œ„ ์ง€์ •์— ์ฃผ์˜ํ•ด์•ผ ํ•จ). ๋ช…์‹œ์  ๋ฒ„์ „ ์ง€์ • ์ œ์•ˆ๊ณผ ๊ฐ™์ด 3๊ฐœ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ์ง€์›ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํŒŒ์„œ๋ฅผ ํ™•์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(ํŒŒ์ด์ฌ์˜ ๊ฒฝ์šฐ k-bx/python-semver ๋˜๋Š” podhmo/python-semver โ€” ์ „์ž๋ฅผ ๋ถ„๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋” ์ตœ๊ทผ์— ์—…๋ฐ์ดํŠธ๋˜์—ˆ์ง€๋งŒ ์ „์ž๋Š” node-semver API๋ฅผ ๋” ๋ฐ€์ ‘ํ•˜๊ฒŒ ๋”ฐ๋ฅด๊ณ  ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

nodejs ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ํŒŒ์ด์ฌ์œผ๋กœ ์ž‘์„ฑ๋œ ๋Ÿฐํƒ€์ž„ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์€ ๋‹จ์ง€ ๋‚˜์œ ์ƒ๊ฐ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๊ทธ๋ƒฅ ํ•˜์ง€ ๋ง™์‹œ๋‹ค. ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ด๋“ , ๋ ™ํ†ค์ด๋“  ๋ญ๋“ . ๋…ธ๋“œ์— ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ์‹œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์ด ์ž˜ ์ƒ๊ฐํ•œ ์˜๋ฏธ๋ก ์  ๋ฒ„์ „ ์ฒด๊ณ„๋ณด๋‹ค ์–ด๋–ป๊ฒŒ ๋‹น์‹ ์ด ๋” ์ž˜ ์•ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ๋ถˆํ•„์š”ํ•œ ๋ฉ”์ผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ์ŠคํŒธ ๋ฉ”์ผ๋กœ ๋ณด๋‚ด์ง€ ๋ง™์‹œ๋‹ค.

@championswimmer ์ „์ž ํŒจํ‚ค์ง€๊ฐ€ ํฌํ•จ๋œ ๋Ÿฐํƒ€์ž„ ๊ด€๋ฆฌ์ž์™€ ๋‹ค๋ฅธ ๋ฒ„์ „์ด ๋‹ค์šด๋กœ๋“œ๋  ๋•Œ ํ‘œ์‹œ๋˜๋Š” UI๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ํฅ๋ฏธ๋กœ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@championswimmer iamale/lepton ์€ ์ผ์ข…์˜ ํ๊ธฐ ์ฐธ์กฐ ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ ์ฃผ์œ„์— ๋– ๋„๋Š” ๋‹ค์–‘ํ•œ ์•„์ด๋””์–ด๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์ƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

@iamale ๊ทธ๋Ÿฌ๋ฉด ํ˜ผ๋™์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด readme์— ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@YurySolovyov ์™„๋ฃŒ!

์‹ค์ œ ๊ตฌํ˜„์˜ ๊ฒฝ์šฐ ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. node.js๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ C/++ ๋˜๋Š” Go์™€ ๊ฐ™์€ ์ปดํŒŒ์ผ๋œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ node.js๋ฅผ ๋ฒˆ๋“ค๋กœ ๋ฌถ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋˜๋Š” ๋‹ค์šด๋กœ๋“œํ•œ ์ „์ž ์ธ์Šคํ„ด์Šค ์ค‘ ํ•˜๋‚˜์—์„œ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ _๋ชจ๋“ _ ์ •์ƒ์ ์ธ ์ „์ž ๋ฒ„์ „์—์„œ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•จ).

@iamale ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์„ค์น˜๋œ ๋ฒ„์ „์„ ์‹คํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ ์—…๋ฐ์ดํŠธ๋Š” ํ˜„์žฌ ์œ„์น˜์—์„œ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒƒ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๋ฒ„์ „ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Lepton ์€ ์ด์ œ ์ด๋ฏธ์ง€ ํ˜•์‹ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋‹ค์ง€ ์ข‹์€ ์ด๋ฆ„์ด ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ... ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์ง€๊ธˆ ๋ญ๋ผ๊ณ  ๋ถ€๋ฅด๋‚˜์š”? Hadron ?

์ฟผํฌ? ๋ˆ„๊ตฐ๊ฐ€ "Muon"์ด๋ผ๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‚ด ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ์ด๋ฆ„ ์ง€์ •์ด ์‹ค์ œ๋กœ ๊ฐ€์žฅ ๋œ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด ์•„๋‹™๋‹ˆ๊นŒ?
์„ค์น˜/์—…๋ฐ์ดํŠธ/๋Ÿฐํƒ€์ž„ ์˜๋ฏธ ์ฒด๊ณ„์— ๋™์˜ํ–ˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋ƒฅ electron ๊ฐ€ ์•„๋‹Œ ์ด์œ  ...

7์›” 15์ผ ์ž‘ํ’ˆ 2016 om 13:22 heft Joshua Bemenderfer [email protected] het volgende geschreven:

์ฟผํฌ? ๋ˆ„๊ตฐ๊ฐ€ "Muon"์ด๋ผ๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‚ด ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์„ธ์š”.

@yurisolovyov ์šฐ๋ฆฌ๊ฐ€ ๋™์˜ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค... ๋‹ค์†Œ๊ฐ„.
@job-v ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ์ค„๊ณง ์ œ์•ˆํ•ด ์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜๋งŒ ์„ ํƒํ•ด์„œ ๋ถ™์ด๋„๋ก ํ•ฉ์‹œ๋‹ค.

@zcbenz ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ด€์ฐฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
๊ทธ๋ ‡๋‹ค๋ฉด ์—ฌ๊ธฐ์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ง€์นจ์„ ์–ป๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋น„์ „์„ ๊ฐ–๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•
์ด ์ „์ž ๋Ÿฐํƒ€์ž„ ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
@zcbenz ๋‹ค์Œ์— ๋Œ€ํ•œ ๋ชจ๋“  ํ† ๋ก ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

  • ์ „์ž ๋ฒ„์ „ ์„ ํƒ
  • ์ ์ ˆํ•œ ๋ฒ„์ „ ์„ค์น˜
  • win, linux, mac์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์ค€๋น„ํ•˜์‹ญ์‹œ์˜ค.
  • ์–ด๋–ค ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•ฉ๋‹ˆ๊นŒ(python, node, go, C++)?
    @YurySolovyov @sapioit ๋ฉ‹์ง„ ์•„์ด๋””์–ด์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค
    @iamale ์€ ๋ฐ๋น„์•ˆ ๊ธฐ๋ฐ˜ destros '์šฐ๋ถ„ํˆฌ ...'์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

@alnour-altegani
์˜ˆ, ์™ธ๋ถ€ ํŒจํ‚ค์ง€์— ์˜์กดํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  dpkg ๊ธฐ๋ฐ˜ ๋ฐฐํฌํŒ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. RPM ํŒจํ‚ค์ง€๋Š” ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ ์•ˆ ๋ ๊นŒ์š”?

๋‚˜๋Š” ๋ชจ๋“  Electron์— ๋Œ€ํ•œ ์ค‘์•™ ์ €์žฅ์†Œ๋ฅผ ์‹œ์ž‘ํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์Œ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

sudo sh -c "echo 'deb https://epkg.example.org/ /' > /etc/apt/sources.list.d/epkg.list"
sudo apt-get update
sudo apt-get install min-browser  # or whatever

@iamale ๋‚˜๋Š” ์ „์ž๋ฅผ deb ํŒจํ‚ค์ง€๋กœ ๋งŒ๋“ค๊ณ  ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ๋งŽ์€ ์ „์ž ๋ฒ„์ „ deb ํŒจํ‚ค์ง€์˜ ์ค‘์•™ ์ €์žฅ์†Œ์—์„œ ์„ค์น˜ํ•  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ข…์† ํ•ญ๋ชฉ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ์„ค์น˜ ํ›„ ์ด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€์ด ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๋ฉด ์—ฌ๊ธฐ์— ๋งํฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ...

@sapioit ์ €๋Š” Linux(APT/RPM) ์†”๋ฃจ์…˜ ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. .asar๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด ํŒจํ‚ค์ง€๋กœ ๋ณ€ํ™˜๋˜์–ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ถ”๊ฐ€๋˜๋Š” ๊ฐ„๋‹จํ•œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. Windows ๋ฐ macOS๋กœ๋„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ํ˜„์žฌ๋กœ์„œ๋Š” ์ด์— ๋Œ€ํ•œ ์•ฝ์†์ด ์—†์Šต๋‹ˆ๋‹ค.

@iamale ๋ฉ‹์ง€๋‹ค! Windows์—์„œ ์ž‘๋™ํ•˜๊ฒŒ ๋˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

Linux์šฉ Flatpak ๋Ÿฐํƒ€์ž„์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์—ฌ๋Ÿฌ ์•ฑ ๊ฐ„์— ๋Ÿฐํƒ€์ž„์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ณ  ์ƒŒ๋“œ๋ฐ•์‹ฑ๋„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Flatpak์ด systemd ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•˜๋ฉด ์—…์ŠคํŠธ๋ฆผ ํŒจํ‚ค์ง•์„ ์œ„ํ•ด Linux์—์„œ ๋ณดํŽธ์ ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์•ฑ ๊ฐ„์— ๋Ÿฐํƒ€์ž„์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Flatpak์œผ๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ..?

@iamale Flatpak์€ ๋Ÿฐํƒ€์ž„์„ ๊ณต์œ ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ฑ ๊ฐœ๋ฐœ์ž๋Š” ๋Ÿฐํƒ€์ž„์„ ์„ ํƒํ•˜๊ณ  ํ•ด๋‹น ๋Ÿฐํƒ€์ž„์šฉ SDK๋ฅผ ์„ค์น˜ํ•œ ๋‹ค์Œ flatpak-builder ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์œผ๋กœ ์•ฑ์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์„ค์น˜ํ•˜๋ฉด Flatpak์ด ๊ด€๋ จ ๋Ÿฐํƒ€์ž„์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

@moosingin3space ์„ค๋ช… ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋•Œ๋Š” ํ™•์‹คํžˆ ๊ณ ๋ คํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Flatpak์— ๋Œ€ํ•ด ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋Ÿฐํƒ€์ž„ ๊ฐœ๋ฐœ์ž ๋ฐ ์•ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ์ €์žฅ์†Œ๋ฅผ (ํˆฌ๋ช…ํ•˜๊ฒŒ) ์ถ”๊ฐ€ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ๋ฅผ ์ž๋™์œผ๋กœ ๋งŒ๋“œ๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ณผ ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ๋ณด์•ˆ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Flatpak์˜ "ํฌํ„ธ"์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ Flatpak์— ๋Œ€ํ•œ ์ž‘์—…์ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค: https://github.com/endlessm/electron-installer-flatpak

์ฐธ๊ณ ๋กœ Flatpak์€ ํŒŒ์ผ ์‹œ์Šคํ…œ ํŠธ๋ฆฌ์— ๋Œ€ํ•œ ์ฝ˜ํ…์ธ  ์ฃผ์†Œ ์ง€์ •์„ ์ˆ˜ํ–‰ํ•˜๋Š” OSTree ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฒดํฌ์„ฌ์ด ๋™์ผํ•œ ํŒŒ์ผ์€ ๋””์Šคํฌ์—์„œ ์ž๋™์œผ๋กœ ์ค‘๋ณต ์ œ๊ฑฐ๋˜๊ณ  ์—…๋ฐ์ดํŠธ๋Š” ์ •์  ๋ธํƒ€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, Electron์€ ๋…๋ฆฝ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์œ  ๋Ÿฐํƒ€์ž„์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋™์ผํ•œ ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž๋™์œผ๋กœ ๋””์Šคํฌ์—์„œ ํŒŒ์ผ์„ ๊ณต์œ ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ/๋˜๋Š” ๋Ÿฐํƒ€์ž„์ด ์„ค์น˜๋˜๋ฉด ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๋‹ค์šด๋กœ๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค์†Œ ์ˆœ์ง„ํ•œ ๋ถ€๋ถ„์ด ์žˆ๋”๋ผ๋„ ์–‘ํ•ด ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ๋…ผ๋ฆฌ์  ์ง„ํ–‰์œผ๋กœ ๋ฐ์Šคํฌํƒ‘ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ–ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋ Œ๋”๋Ÿฌ์˜ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์ „์ž ์•ฑ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ ์‹œ์ž‘ ์‹œ ์ „์ž๊ฐ€ ๋กœ๋“œ๋˜๋Š” ์‹œ์ž‘ ์•ฑ(์˜ˆ: atom ๋Œ€์‹ )์ด ์žˆ๋‹ค๋Š” ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ์ƒˆ ํƒญ์—์„œ ์•ฑ์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค.

๋‚ด ์ดํ•ด์— OS์—์„œ์™€ ๊ฐ™์ด Chrome์€ ์ •ํ™•ํžˆ ์ด๊ฒƒ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ์›น ์•ฑ์œผ๋กœ ์ œํ•œ๋จ). nodejs(chromeAPI์˜ ์ œํ•œ ์‚ฌํ•ญ๊ณผ ๋ฐ˜๋Œ€)๋ฅผ ํ†ตํ•ด ์ „์ฒด fs ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๋ฐ์Šคํฌํ†ฑ ์•ฑ์„ Linux ์ƒ๋‹จ์˜ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์œผ๋กœ ์ „์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ(๋˜๋Š” Windows์˜ ์ดˆ๊ธฐ explorer.exe์—์„œ ๊ต์ฒดํ•˜๊ฑฐ๋‚˜ ์ตœ์†Œํ•œ ์ฆ๋Œ€)์€ ๋งค์šฐ ํฅ๋ฏธ์ง„์ง„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ์‹ค์ œ๋กœ ๋Ÿฐํƒ€์ž„์ธ ๊ฒƒ์„ ๋กœ๋“œํ•œ ๋‹ค์Œ ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์„ ๋กœ๋“œํ•œ ๋‹ค์Œ ์•ฑ์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ChromeOS๋ณด๋‹ค ๋” ๊นจ๋—ํ•œ ์†”๋ฃจ์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ํ˜์‹ ์ ์ธ ์ „์ž ๋ธŒ๋ผ์šฐ์ € ํ”„๋กœ์ ํŠธ๊ฐ€ ์•ผ์ƒ์— ์žˆ์Šต๋‹ˆ๋‹ค).

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ด๊ฒƒ์ด ๊ณ ๋ ค๋˜์—ˆ๋Š”์ง€ ๋˜๋Š” ์ด๋ฏธ ์ด๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์š”์ •์ด ์ฃผ๋„๊ถŒ์„ ์žก๊ธฐ ์œ„ํ•ด Github ๊ฒฝ์˜์ง„์˜ ๊ท€์— ํ•œ๋งˆ๋”” ํ•ด์ค„ ์ˆ˜ ์žˆ์„๊นŒ์š”????

์ถ”์‹ : ์—ฌ๊ธฐ์„œ ์ œ์•ˆํ•˜์ง€ ์•Š์€ ํ•œ ๊ฐ€์ง€๋Š” OS.js(๊ทธ ์ž์ฒด๋กœ ๊ท€์—ฌ์šด ์ž‘์€ ํ”„๋กœ์ ํŠธ)๋ฅผ ์ „์ž๋กœ ์ด์‹ํ•˜์ง€๋งŒ ์ „์ž ์•ฑ์„ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(OS.js์—์„œ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ ๋ฐ˜๋Œ€ํ•˜์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ).
PPS: ์ถฉ๋ถ„ํžˆ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ํŒ๋‹จ๋˜๊ฑฐ๋‚˜ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ ๋ฌธ์ œ์— ์ฃผ์˜๋ฅผ ์‚ฐ๋งŒํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด์žฅ๋œ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด Electron ์•ฑ์„ ํ›จ์”ฌ ๋” ์ข‹๊ฒŒ ๋งŒ๋“ค ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ๋“ค์„ ํฌ์žฅํ•˜๋Š” ๊ฒƒ์ด ํŒŒ์ผ์„ ์••์ถ•ํ•˜๊ณ  ํ™•์žฅ์ž์˜ ์ด๋ฆ„์„ asar ๋กœ ๋ฐ”๊ฟ”์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ๊ทธ ์•„์นด์ด๋ธŒ์—๋Š” ๊ธฐ๋ณธ ๋Ÿฐํƒ€์ž„ ํด๋”์˜ ๋‚ด์šฉ๊ณผ ํ•จ๊ป˜ asar ๋ผ๋Š” ๋‘ ๊ฐœ์˜ ํด๋”๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ตฌ์„ฑ์„ ๋ฎ์–ด์จ์•ผ ํ•˜๋Š” ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ enviroment ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ƒˆ ์•ฑ์„ ์‹คํ–‰ํ•˜๋ฉด ์ž„์‹œ ํด๋”์— ํ•„์ˆ˜ ๋ฒ„์ „์˜ Electron์„ ๋ณต์‚ฌํ•˜๊ณ  ๋Ÿฐํƒ€์ž„( asar ํด๋”์˜ ๋‚ด์šฉ)์„ ๊ธฐ๋ณธ ํŒŒ์ผ ์œ„์น˜๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ˜๋ฉด ์„ ํƒ์  enviroment ํด๋”๋Š” ( 3๊ฐœ์˜ ํ•˜์œ„ ํด๋”, windows , linux , macosx )์—๋Š” ๊ธฐ๋ณธ ํด๋” ์œ„์— ๋ถ™์—ฌ๋„ฃ์–ด ๋‚ด์šฉ์„ ๋ฎ์–ด์“ธ ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ, ์šฐ๋ฆฌ๋Š” ์•ฑ์— ๋Œ€ํ•œ .asar ํ™•์žฅ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ์•ฑ ๋˜๋Š” ๋ฌด์–ธ๊ฐ€๋งŒ ํ•„์š”ํ•˜๊ณ  ํ•ด๋‹น ์•ฑ์ด ๋‹ค์šด๋กœ๋“œํ•œ Electron(์•„์นด์ด๋ธŒ) ๋ฒ„์ „์ด ์žˆ๋Š” ํด๋”์— ์•ก์„ธ์Šคํ•˜๊ณ  ์ž„์‹œ ํด๋”์— ๋ณต์‚ฌ(์ถ”์ถœ)ํ•ฉ๋‹ˆ๋‹ค. , .asar ์˜ ๋‚ด์šฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๊ฒƒ์„ ์ˆ˜์ •ํ•œ ๋‹ค์Œ ํ•ด๋‹น ์ž„์‹œ ํด๋”์—์„œ Electron ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ž„์‹œ ํด๋”๋ฅผ ๊ฐ•์ œ๋กœ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด ์ฃฝ์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ์šฐ์„ , ์ง€์›๋˜๋Š” ๋ชจ๋“  ์šด์˜ ์ฒด์ œ์—์„œ ์‚ฌ์šฉ์ž ์ง€์ • ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ์•„์นด์ด๋ธŒ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ๊ธฐ๋ณธ ๊ตฌ์„ฑ์„ ์–ป๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ๋„์•ฝ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ํ›„, ํ˜„์žฌ ๊ตฌ์„ฑ ์„ค์ •์„ ์œ ์ง€ํ•  ์„ธ ๋ฒˆ์งธ ํด๋” config ๊ฐ€ ์žˆ๋Š”์ง€ ๊ฑฑ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์„ค์ •์„ ์œ„ํ•ด ๊ทธ ์•ˆ์— _config ํด๋”๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ•„์š”ํ•œ ๊ฒฝ์šฐ ).

Chrome ํŒจํ‚ค์ง€ ์•ฑ์ด ๊ณง ๋‹จ๊ณ„์ ์œผ๋กœ ์ค‘๋‹จ๋จ์— ๋”ฐ๋ผ ์‚ฌ๋žŒ๋“ค์€ ๋Œ€์•ˆ์„ ์ฐพ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„์€ ํ•ญ์ƒ ๋นŒ๋“œ/๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์€ Chrome ์•ฑ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์›น ๊ธฐ์ˆ ๋กœ ๋งŒ๋“ค์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ๋‹จ์ˆœํžˆ ์†Œ์Šค์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด ๊ฐ ๊ฐœ๋ณ„ ์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” ์•ฑ์— ๋Œ€ํ•œ ๋Œ€๊ทœ๋ชจ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์‹  ์ปค๋ฐ‹์„ ๋นŒ๋“œํ•˜๊ฑฐ๋‚˜ Electron์„ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š๊ณ ๋Š” ์ตœ์‹  ์ปค๋ฐ‹์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ˆ˜๋งŽ์€ ์‚ฌ์†Œํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ Electron์œผ๋กœ ์ด์‹ํ•˜๋Š” ๊ฒƒ์„ ์ •๋‹นํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. IDE ์ž์ฒด.

์•ˆ๋…•ํ•˜์„ธ์š”. ์ œ๊ฐ€ JS ์ค‘์‹ฌ์˜ ์„ธ๊ณ„์— ์žˆ์ง€ ์•Š๋”๋ผ๋„ ์ตœ๊ทผ์— _Electron_(์ด๋Š” ์šฐ์—ฐํžˆ ์•Œ๊ฒŒ ๋˜์—ˆ์ง€๋งŒ ๊ฐœ๋ฐœ์—๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ)๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•œ ์•„์ด๋””์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์ง€๋งŒ ๋” ๋งŽ์€ ์ฒญ์ค‘์„ ๋Œ€์ƒ์œผ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„์ฃผ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งํ•˜์ž๋ฉด: _์›น ๊ธฐ์ˆ ์„ GUI๋กœ ์ œํ•œํ•˜๊ณ  API๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค._

๋”ฐ๋ผ์„œ ์˜๋ฏธ๋ก ์  ๋ฒ„์ „์˜ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/๋Ÿฐํƒ€์ž„(_Blink_, _Skia_ ๋“ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋จ, ์•„๋งˆ๋„ โ€“ "modern" โ€“ _C++_์— ์žˆ์Œ)์„ ๊ณ„์† ์‚ฌ์šฉํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ธ์–ด๋ฅผ ์„ ํƒํ•˜๊ฒŒ ํ•˜์‹ญ์‹œ์˜คโ€ฆ
์˜ˆ๋ฅผ ๋“ค์–ด _JS_๋ฅผ ์›ํ•˜๋ฉด _Node.JS_๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. _C++_์„(๋ฅผ) ์›ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ _CPython_์„ ์‚ฌ์šฉํ•˜๋ฉด _Python_์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ? _SWIG_์ด(๊ฐ€) ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๊ฑฐ์˜) ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ์šฐ๋ฆฌ๊ฐ€ ์ด๊น๋‹ˆ๋‹ค.

๊ณต์œ (OS ์ข…์†) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/๋Ÿฐํƒ€์ž„์ด ์žˆ์œผ๋ฉด ์ฃผ์š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋‚˜๋จธ์ง€๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋‚˜๋จธ์ง€ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ GUI ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์„ ํ˜์‹ /ํ˜„๋Œ€ํ™”ํ•˜๋Š” ๊ฒƒ ์ œ์™ธ). ํฐ ์ง„์ „!).

๋”ฐ๋ผ์„œ ์‹œ์ž‘์ ์€ _Electron_ ํ”„๋กœ์ ํŠธ์˜ "๋ถ„ํ• "์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋ฌผ๋ฆฌ ๊ด€๋ จ ์ด๋ฆ„๋„ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ง ์‹ ๊ฒฝ ์“ฐ๋Š” ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฐ์•ˆํ•  ๋•Œ). :)

์šฐ๋ฆฌ๋Š” ์‹ฌ์ง€์–ด Electron์— ๋Œ€ํ•œ ์• ๋“œ์˜จ์„ ์™„์„ฑํ•  ์ˆ˜ ์—†์ง€๋งŒ ๋งŽ์€ ๊ด‘๊ณ ๊ฐ€ ์—†๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ ๋งŽ์€ ์„ฑ๊ณต์„ ๊ฑฐ๋‘์ง€ ๋ชปํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@dezzeus ์ด์ „์— ์ด ๋ผ์ธ์— ๋Œ€ํ•œ ๋…ธ๋ ฅ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์นจํ•ด ๋ธŒ๋ผ์šฐ์ € ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๋ ฅ ๋Ÿฐํƒ€์ž„ ์„ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ์ด ๋ฐฉํ–ฅ์—์„œ ๋” ๋งŽ์€ ์ถ”์ง„๋ ฅ์„ ๋ณด๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธธ๊ณ  ๋งคํ˜น์ ์ธ ์Šค๋ ˆ๋“œ๋ฅผ ๋‘ ๋ฒˆ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ @zcbenz ์˜ ๋งˆ์ง€๋ง‰ ์ง„์ˆ ์ž…๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๊ด€๋ จ์„ฑ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ๊ธฐ์ˆ ์  ์žฅ์• ๋ฌผ์€ ์—†์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด Electron ์•ฑ ์ž์ฒด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ๋ชจ๋“  ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์—ฌ ์–ด๋Š ์ชฝ๋„ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. _์†Œ๊ทœ๋ชจ ํŒ€์ด ํ’€ํƒ€์ž„์œผ๋กœ ์ž‘์—…ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‹คํ˜„๋ ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

(์ถ”๊ฐ€ ๊ฐ•์กฐ) - ๋‚ด๊ฐ€ ํ•ด์„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์†”๋ฃจ์…˜์ด ๊ตฌ์ถ•๋  ์˜ˆ์ •์ด๋ผ๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋…ธ๋ ฅ ๋ฐ/๋˜๋Š” GitHub ๋ฐ ์ดํ•ด ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๊ธฐํƒ€ ์กฐ์ง์˜ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ ์‚ฌํ•ญ์— ๋‹ฌ๋ ค ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@yan-foto์˜ ๊ฐ„๊ฒฐํ•œ ๊ฐœ์š” ๋Š” ๋ช…ํ™•ํ•œ ๋ชฉํ‘œ/์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ๋Š” ํ•ฉ๋ฆฌ์ ์ธ ์ ‘๊ทผ ๊ณ„ํš์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. @iamale ์˜ lepton์ด๋ผ๋Š” ์ฐธ์กฐ ๊ตฌํ˜„/ํ”„๋กœํ† ํƒ€์ž…์ด ์žˆ์œผ๋ฉฐ Electron์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” "๋ฒ”์šฉ ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „ ๊ด€๋ฆฌ์ž"๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. @jorangreef๊ฐ€ ์ฐจ๋“ฑ ์—…๋ฐ์ดํŠธ, ์ค‘๋ณต ์ œ๊ฑฐ(๋‘ ๊ฐ€์ง€๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Œ) ๋ฐ ์••์ถ•์„ ์‚ฌ์šฉํ•˜์—ฌ "semver ์ž๋™ ์—…๋ฐ์ดํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๋•์…˜ ์ค‘์ธ ์•ฑ"์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋ฉด์„œ @jorangreef ์˜ ์˜๊ฒฌ ์€ ํฅ๋ฏธ๋กœ์› ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฐ€ ์„ค๋ช…ํ•œ ๋งŽ์€ ๊ธฐ๋Šฅ์€ ์ ์‘/์ฑ„ํƒ์— ์™„๋ฒฝํ•ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ๋“ค์€ ํƒ์ƒ‰๊ณผ ์ง„๋ณด์˜ ํ™•์‹คํ•œ ๋‹จ๊ณ„์ด๋ฉฐ, ์ด ๊ณผ์ •์—์„œ ์ƒ์‚ฐ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์ผ๋ฐ˜ ์†”๋ฃจ์…˜์ด ํƒ„์ƒํ•  ๊ฒƒ์ด๋ผ๋Š” ํฌ๋ง์„ ์ค๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ์ธ๊ฐ„์— ๋Œ€ํ•œ ๋ฏฟ์Œ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ œํ’ˆ์ด ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ์œ ์ผํ•œ ๊ฒƒ์€ ์ด ์ œํ’ˆ(์ปจ์…‰)์„ ๋งŒ๋“ค๋ฉด์„œ ์—ด๋ฆฌ๋Š” ์ฆ‰๊ฐ์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐํšŒ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@eliot-akira ๋„ค, ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ํŒŒ์ผ ๋‚ด์—์„œ ๋ช‡ ๋ฐ”์ดํŠธ๋งŒ ๋ณ€๊ฒฝ๋  ๋•Œ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ๋‚ด์—์„œ ํŒŒ์ผ๋ณ„ ์ฝ˜ํ…์ธ  ๊ธฐ๋ฐ˜ ์ค‘๋ณต ์ œ๊ฑฐ(๊ฐ€๋ณ€ ํฌ๊ธฐ ์ฒญํฌ)๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฒ„์ „ ๊ฐ„์— ๋ณ€๊ฒฝ๋˜๋Š” ํŒŒ์ผ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋Š” ์˜ค๋ฅ˜์— ์ง๋ฉดํ•˜์—ฌ ์›์ž์ ์ž…๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์ด ์‹œ์ž‘๋˜๊ฑฐ๋‚˜ ์ด์ „ ๋ฒ„์ „์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ์˜คํ”ˆ ์†Œ์Šคํ™”ํ•˜๊ณ  ์‹ถ๊ณ , ์ „์ฒด์ ์ธ ์•„์ด๋””์–ด๋ฅผ ์œ„ํ•ด ์•„์ง ์ฝ”๋”ฉํ•ด์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ Electron ์•ฑ์ด ๋‹จ์ผ ์ž๋™ ์—…๋ฐ์ดํŠธ ๊ฐ๋…์ž ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(์—ฌ๋Ÿฌ ๋…๋ฆฝ Electron ์•ฑ์—์„œ ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ์œ„ํ•œ ๋กœ์ปฌ ๊ณต์œ  ๋ถˆ๋ณ€ ์บ์‹œ ์‚ฌ์šฉ).

์ด ์ „์ฒด ์ ‘๊ทผ ๋ฐฉ์‹์˜ ๋ชฉํ‘œ๋Š” Electron ์•ฑ์„ ์„ค์น˜ ๋ฐ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ „์ฒด ๋‹ค์šด๋กœ๋“œ ๋Œ€์—ญํญ์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋™์‹œ์— Electron ์•ฑ์„ ์„œ๋กœ ์™„์ „ํžˆ ๊ฒฉ๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์—ฌ๋Ÿฌ ์•ฑ์—๋Š” ์ž์ฒด Electron ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ์Œ). ๋น„๋ชฉํ‘œ๋Š” ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ Electron ์•ฑ ์„ค์น˜๋Š” ์ „์ฒด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•˜์ง€๋งŒ ์ดํ›„์˜ Electron ์•ฑ ์„ค์น˜๋Š” ๋กœ์ปฌ ๊ณต์œ  ๋ถˆ๋ณ€ ์บ์‹œ์˜ ์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋™ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฌธ์ œ์™€ ์—ฌ๋Ÿฌ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด ๋ฒ„์ „ ๊ด€๋ฆฌ์— ์„œ๋กœ ๋‹ค๋ฅธ ์ž๋ฆฟ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์ผ๋‹จ ๋ช…์‹œ์  ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • Electron ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Electron ์ž์ฒด ๋ฐ
  • ์ผ๋ฐ˜์ ์œผ๋กœ API๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— SemVer ๋˜๋Š” ๊ธฐํƒ€์— ๋Œ€ํ•ด ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋Š” ์•ฑ(์–ด๋–ค ์ข…๋ฅ˜์˜ ์• ๋“œ์˜จ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ).

์—ฌ๋Ÿฌ ๋ฒ„์ „ ์‹œ์Šคํ…œ์„ ์ง€์›ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ package.json "breakingVersionComponents": 1 ๋ฐ ๋ช…์‹œ์  ๋ฒ„์ „ ๋˜๋Š” Electron ๋ฒ„์ „์˜ ๊ฒฝ์šฐ 2 ์™€ ๊ฐ™์€ ์ผ๋ถ€ ์„ค์ •์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ ๋ฒ„์ „์— ๋‹ค๋ฅธ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค 1.3:3.7 ๋Š” ๊นจ์ง€๋Š” ๋ถ€๋ถ„๊ณผ ๊นจ์ง€์ง€ ์•Š๋Š” ๋ถ€๋ถ„์„ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด Semver๋Š” x:y.z ๋ฐ Electron Versioning x.y:z ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ๋‹จ์ผ ๋„๊ตฌ๋ฅผ ๊นจ๋œจ๋ฆด ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.)

@jorangreef ๋ชจ๋“  ์•ฑ์— ์—ฌ์ „ํžˆ ์ž์ฒด Electron ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ Electron ์•ฑ์„ ์—ด ๋•Œ ๊ณผ๋„ํ•œ RAM ์‚ฌ์šฉ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ฐ„๊ณผํ–ˆ๋˜ @joshuawarner32 ์˜ ์˜ค๋ž˜๋œ ๋Œ“๊ธ€ ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์•„์ง ๋ฒ”์šฉ ์†”๋ฃจ์…˜์ด ์•„๋‹Œ ์ด๋ฏธ ์ž‘๋™ ์ค‘์ธ ์˜ˆ๋ฅผ ์–ธ๊ธ‰ํ•˜์ง€๋งŒ ์š”์•ฝ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

- Deploy .asar.gz files for several different apps on a server
- Distribute a single build of atom-shell to users, which doesn't bundle any code for specific apps
- On app startup, download the appropriate .asar.gz file (if it's not there, or there's a more recent one on the server). Extract it and run the contained app.
- Our atom-shell build accepts a --app argument to specify which app to download/run

@jorangreef ์˜ ์˜ˆ์™€ ํ•จ๊ป˜(์ถ”๊ฐ€ ์„ค๋ช… ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค - ํŽธ์ง‘: ์˜ค, ๊ฐ ์•ฑ์— ๋‚ด๊ฐ€ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ๋ชจ๋ธ์ธ ์ž์ฒด Electron ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค), ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฏธ ๊ณต์œ  ๋Ÿฐํƒ€์ž„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ณ ์œ ํ•œ ์†”๋ฃจ์…˜ - ์ผ์ข…์˜ ์•ฑ ์‹คํ–‰๊ธฐ/๊ด€๋ฆฌ์ž ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์–ธ๊ธ‰๋œ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ ์ค‘ ์ผ๋ถ€๋ฅผ ๋ฒ”์šฉ ๋ชจ๋“ˆ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ์ˆ˜๋ ด์„ ๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„ ์„œ๋ฒ„, ๋ฒ„์ „ ๊ด€๋ฆฌ, ์ฐจ๋“ฑ ์—…๋ฐ์ดํŠธ์™€ ๊ฐ™์€ ๋‹ค์šด๋กœ๋“œ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ๊ฐ™์ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์กด์˜ Electron ๊ด€๋ จ์ด ์•„๋‹Œ ๋ชจ๋“ˆ์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฏธ ์ด๋Ÿฌํ•œ ์˜์—ญ ์ค‘ ์ผ๋ถ€๋ฅผ "ํ•ด๊ฒฐ"ํ•œ ๊ฒฝ์šฐ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ์•ฝ๊ฐ„ ๋ฒ…์ฐจ๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค. @iamale , Lepton ์— ๋Œ€ํ•œ ์ž‘์—…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ œ ๋ˆˆ์—๋Š” ์ด๊ฒƒ์ด ์†”๋ฃจ์…˜ ๋ฐฉํ–ฅ์˜ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์•„์ด๋””์–ด๋Š” npm์— ์•ฑ์„ ๊ฒŒ์‹œํ•˜๊ณ  ์•ฑ์„ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน๋ณ„ํ•œ npm ๋ž˜ํผ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฐฐํฌํ•˜๊ธฐ๊ฐ€ ์ •๋ง ์‰ฌ์šธ ๊ฒƒ์ด๊ณ  ์•„๋งˆ๋„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋ž˜ํผ์˜ ํ’ˆ์งˆ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„). ์—ฌ๋Ÿฌ๋ถ„์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

oss ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ npm์„ ํ˜ธ์ŠคํŒ…์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋น„๊ณต๊ฐœ ์†Œ์Šค์˜ ๊ฒฝ์šฐ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ๋‹ค์šด๋กœ๋“œํ•  .asar ํŒŒ์ผ๊ณผ ์ถ”๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๊ด€๋ฆฌ์ž๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€(๊ทธ๋ฆฌ๊ณ  ๋ถ€๋ฆ„)์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์•ฑ์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„์˜ ๋ช…๋ น์ด ์ •๋ง๋กœ ํ•„์š”ํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
electron install atom ์ถฉ๋ถ„ํ• ๊นŒ์š”?

Node Weekly์—์„œ ์ด๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

Electrino๋Š” ์ธ๊ธฐ ์žˆ๊ณ  ๊ฐ•๋ ฅํ•œ Electron์˜ ์‹คํ—˜์ ์ธ ํŽ˜๋”๊ธ‰ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. Electron์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ API์˜ ์•„์ฃผ ์ž‘์€ ๋ถ€๋ถ„์„ ๊ตฌํ˜„ํ•˜์ง€๋งŒ ์ถœ๋ ฅ ์•ฑ ํฌ๊ธฐ๋Š” ํ›จ์”ฌ ์ž‘์Šต๋‹ˆ๋‹ค.

https://medium.com/@pauli/put -your-electron-app-on-a-diet-with-electron-c7ffdf1d6297

https://github.com/pojala/electrino

@YurySolovyov ๋น„๊ณต๊ฐœ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋Š” npm์œผ๋กœ ๊ฒŒ์‹œํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ช‡ ๊ฐ€์ง€ Node.js ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, enclose . (๊ธฐ์ˆ ์ ์œผ๋กœ, ๊ทธ๊ฒƒ์€ npm์ด ์•„๋‹ˆ๋ผ ๋กœ๋”์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–ด์จŒ๋“  ๋‚˜๋Š” .asar๋ฅผ ์‚ฌ์ด๋“œ๋กœ๋”ฉํ•˜๋Š” ๊ฒƒ์ด ์—ฌ์ „ํžˆ ์••์ถ•์„ ํ’€ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋ ์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.)

์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๊ธฐ์กด ์ƒํƒœ๊ณ„๋ฅผ ์ตœ๋Œ€ํ•œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ...

@jorangreef ๋ชจ๋“  ์•ฑ์— ์—ฌ์ „ํžˆ ์ž์ฒด Electron ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ Electron ์•ฑ์„ ์—ด ๋•Œ ๊ณผ๋„ํ•œ RAM ์‚ฌ์šฉ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@Jop-V ์•„๋‹ˆ์š”, ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฌผ๊ฑด์„ ํ•ฉ์„ฑํ•˜๊ณ  ๊ดด๋ฌผ๋กœ ๋๋‚˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” ์ด ๋ฌธ์ œ๋ฅผ ์—ฐ ๋Œ“๊ธ€์—์„œ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ›Œ๋ฅญํ•œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ/์ž๋™ ์—…๋ฐ์ดํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. https://github.com/electron/electron/issues/673#issue -44580957

๋ฌธ์ œ๋Š” ๋””์Šคํฌ์— ์—ฌ๋Ÿฌ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋™์ผํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ์—ฌ๋Ÿฌ ๋ณต์‚ฌ๋ณธ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ž๋™ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋„คํŠธ์›Œํฌ ์˜ํ–ฅ์ž…๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ค‘๋ณต ์ œ๊ฑฐ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ/์ž๋™ ์—…๋ฐ์ดํŠธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ•จ๊ป˜ ๋ฒˆ๋“ค๋กœ ์ œ๊ณตํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋””์Šคํฌ ๊ณต๊ฐ„๋„ ๋ฌธ์ œ์ธ ๊ฒฝ์šฐ ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ์‹œ์Šคํ…œ์˜ ํ•˜๋“œ ๋งํฌ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋Š” ์•ฑ ๊ฐ„์˜ ๊ฒฉ๋ฆฌ ๊ฐœ๋…์„ ์นจํ•ดํ•˜๊ธฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ํ•œ ์•ฑ์ด ๋‹ค๋ฅธ ๊ฒƒ๊ณผ ๊ณต์œ ๋˜๋Š” ํ•˜๋“œ ๋งํฌ์— ์“ฐ๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ฒฝ์šฐ).

๋˜๋Š” ์ ์–ด๋„ ์ค‘๊ธฐ์ ์œผ๋กœ macOS์—์„œ APFS๋Š” ๋‚ด๋ถ€์—์„œ ํˆฌ๋ช…ํ•œ ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ํ†ตํ•ด ์ฐธ์กฐ๋กœ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜์—ฌ ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฒฉ๋ฆฌ๋ฅผ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋“œ๋งํฌ๋ณด๋‹ค ๋‚˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๊ธฐ๋ก ์ค‘ ๋ณต์‚ฌ).

@jorangreef ์•ฑ์— ๋ณ„๋„์˜ Electron ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์–ด๋–ค ๊ณ ๋ฆฝ์„ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”? ์–ด๋ฆฌ์„์€ ์งˆ๋ฌธ์ด๋ผ๋ฉด ์ฃ„์†กํ•˜์ง€๋งŒ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@iamale ์ผ๋ถ€ ์•ฑ์€ ๋‹ค๋ฅธ ๊ณต์‹ ๋ฒ„์ „์˜ Electron์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •๋œ โ€‹โ€‹์†Œ์Šค์—์„œ ์ปดํŒŒ์ผ๋œ ๋ฏธ๋ฆฌ ๋นŒ๋“œ๋œ Electron์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๊ทธ๋“ค ๋ชจ๋‘์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ์ฃผ์š” ์ฐจ์ด์ (JS ๋ฐ ์ž์‚ฐ ๋ณ€๊ฒฝ๊ณผ ๋ฐ˜๋Œ€)์ด ์žˆ๋”๋ผ๋„ ์ค‘๋ณต ์ œ๊ฑฐ๋Š” ๋‹ค์šด๋กœ๋“œ ์š”๊ตฌ ์‚ฌํ•ญ์˜ 70% ์ด์ƒ์„ ์ œ๊ฑฐํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์•ฑ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด Electron ์•ฑ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ํŒจํ‚ค์ง€(JSON ๋งค๋‹ˆํŽ˜์ŠคํŠธ์— ์˜ํ•ด ์ •์˜๋œ ๋ชจ๋“  ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ์„ธํŠธ)๋ฅผ ๋ฐฐ์†กํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Python ์•ฑ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ฑ์„ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ํŒจํ‚ค์ง•ํ•˜๋Š” ๋ฐฉ๋ฒ•(ํŒŒ์ผ ๋Œ€ asar ๋“ฑ)์— ๋Œ€ํ•ด ์„ ํƒํ•˜๋ ค๋Š” ๋ชจ๋“  ์„ ํƒ์— ๋ถˆ๊ฐ€์ง€๋ก ์ ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์•„์ด๋””์–ด๋Š” ๋” ๋งŽ์€ ์•ฑ์ด ๋™์ผํ•œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ/์ž๋™ ์—…๋ฐ์ดํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•จ์— ๋”ฐ๋ผ ์ƒํƒœ๊ณ„๊ฐ€ ๋งค์šฐ ์ž‘์€ ์„ค์น˜/์—…๋ฐ์ดํŠธ ๋ธํƒ€์˜ ์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜๋‚  ๋ชจ๋“  ์•ฑ์€ ์ž์ฒด ๊ฐ๋… ์ž๋™ ์—…๋ฐ์ดํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@jorangreef ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ณ ์ „์ ์ธ APT/RPM ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋งค์šฐ ํก์‚ฌํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ง€ ๋” "์Šค๋งˆํŠธ"ํ•ฉ๋‹ˆ๋‹ค(์ข…์†์„ฑ ๋“ฑ์„ ์„ ์–ธํ•  ํ•„์š”๊ฐ€ ์—†์Œ).

๋ฌธ์ œ๋Š” ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๊ด€๋ฆฌ์ž๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€(๊ทธ๋ฆฌ๊ณ  ๋ถ€๋ฆ„)์ž…๋‹ˆ๋‹ค.

Minifitron (์†Œํ˜• ์ „์ž)๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

์•„์นด์ด๋ธŒ ํŒŒ์ผ(์˜ˆ: .asar )์—๋Š” ์ „์ž์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ๋Š” ํด๋”์˜ ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ํ‘œ์ค€์—์„œ ๋ฒ—์–ด๋‚œ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋” ๋˜๋Š” ์•„์นด์ด๋ธŒ์— ๊ฐ ๋ฒ„์ „์ด ์žˆ๊ณ  ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์ƒˆ ์ž„์‹œ ํด๋”์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์•ฑ์„ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ์‹œ ํ•ด๋‹น ์•ฑ์„ ์ „์ž์˜ ์ƒˆ ์ธ์Šคํ„ด์Šค๋กœ ๋‚จ๊ฒจ๋‘๋Š” ๋ฐ˜๋ฉด, ์ถ•์†Œ๋œ ์•ฑ์€ md5๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ .asar ์˜ ์•„์นด์ด๋ธŒ ํ•ด์ œ๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ํŒŒ์ผ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ƒ๊ฐ์„ ํ•˜์ž๋ฉด: ๊ฐ Electron ์•ฑ์— ์ž์ฒด ๋Ÿฐํƒ€์ž„ ๋ณต์‚ฌ๋ณธ ์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ ์‹คํ–‰ ์‹œ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ Electron ์ธ์Šคํ„ด์Šค(๋ฐ ํ•ด๋‹น ๋ฒ„์ „)๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด - ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ(semver ๋ฒ”์œ„ ๋‚ด) ๋“ฑ), ์•ฑ์€ ์•ฑ๊ณผ ํ†ต์‹ ํ•˜๊ณ  ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์•ฑ์€ ์ž์ฒด Electron ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

(๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์‹œ, ์•ฑ์ด ์‹คํ–‰๋  ์ฆˆ์Œ์—๋Š” ์–ด์จŒ๋“  ๋Ÿฐํƒ€์ž„์˜ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ด๋ฏธ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋…ผ๋ฆฌ์ ์ด์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค..)

@eliot-akira ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ฝ๋Š” ๋™์•ˆ ๋งค์šฐ ๋น„์Šทํ•œ ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

(๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์‹œ, ์•ฑ์ด ์‹คํ–‰๋  ์ฆˆ์Œ์—๋Š” ์–ด์จŒ๋“  ๋Ÿฐํƒ€์ž„์˜ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ด๋ฏธ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋…ผ๋ฆฌ์ ์ด์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค..)

๊ธ€์Ž„, ๊ทธ๊ฒƒ์€ ์ด๊ฒƒ์„ ํ™•์ธํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•  ๋งŒํผ๋งŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๊ณ , ๋Ÿฐํƒ€์ž„์„ ๊ณต์œ ํ•  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ "์ „์ž ๋ฉ”์ดํŠธ"๊ฐ€ ์—†๋Š” ๊ฒƒ์„ ํ™•์ธํ•œ ํ›„ ๋‚˜๋จธ์ง€๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋งŽ์€ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•…์˜์ ์ธ ์•ฑ์€ ์ˆ˜์ •๋œ ๋ฒ„์ „์˜ ๋Ÿฐํƒ€์ž„์„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๊ณ  ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ "์‚ฌ์šฉ์ž" ์•ฑ(์ด์ „์— ์‹คํ–‰๋œ ์•ฑ์˜ ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜๋Š”)์ด ๋Ÿฐํƒ€์ž„์„ ์ฒดํฌ์„ฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ชจ๋“  ๋Œ€์ƒ OS์— ๋Œ€ํ•ด ์ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ์•…๋ชฝ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค( ๋‚˜๋Š” ์ด๊ฒƒ์ด Windows์— ์กด์žฌํ•˜๋Š”์ง€์กฐ์ฐจ ๋ชจ๋ฆ…๋‹ˆ๋‹ค; ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค).

๋‹จ์ง€ ํ˜ธ๊ธฐ์‹ฌ์„ ์œ„ํ•œ ๊ฒƒ์ด๋ผ๋ฉด ๋ง์ด ์•ˆ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋ณ„๋„์˜ ๊ณต์œ  ๋Ÿฐํƒ€์ž„๋ณด๋‹ค ๋งŽ๊ฑฐ๋‚˜ ํ›จ์”ฌ ๋” ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ์ถ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

๋‚˜์ค‘์— ์ถ”๊ฐ€๋จ: ์ด๊ฒƒ์€ ๋จผ ์ด์•ผ๊ธฐ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ RAM์—์„œ ๋™์ผํ•œ ํŽ˜์ด์ง€๋ฅผ ์ค‘๋ณต ์ œ๊ฑฐํ•˜๋Š” ๊ธฐ์ˆ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ๊ณผ ํ•˜์ดํผ๋ฐ”์ด์ €์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์˜ค๋Š˜๋‚ ์˜ OS๊ฐ€ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๊ณ  ์‹คํ–‰ํ•œ ์ฒซ ๋ฒˆ์งธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ „์ž๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ถ„๋ช…ํžˆ ๊ทธ๋ ‡์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

@jorangreef ๊ฐœ๋ฐœ์ž๊ฐ€ Electron ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค๋ฉด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜์ง€ ์•Š์„๊นŒ์š”?

@Jop-V ๊ทธ๋“ค์€ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ž์‹ ์˜ ํฌํฌ๋„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์†Œ์Šค๋ฅผ ๊ณต๊ฐœํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. MIT ๋ผ์ด์„ ์Šค๋Š” ์ด์— ๋Œ€ํ•œ ์˜๋ฌด๋ฅผ ๋ถ€๊ณผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@jkurei ์•„์ด๋””์–ด๋ฅผ ๋” ํƒ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ƒ์ƒํ•ฉ๋‹ˆ๋‹ค.

1) Electron ๋˜๋Š” ์•ฑ ์ž์ฒด๋ฅผ ๋‘˜๋Ÿฌ์‹ผ ์–‡์€ ๊ธฐ๋ณธ ๋ž˜ํผ("๋Ÿฐ์ฒ˜"). ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ Electron ์ธ์Šคํ„ด์Šค์™€ ํ•ด๋‹น ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ˜ธํ™˜๋˜๋Š” ๊ฒฝ์šฐ ๋‚˜๋จธ์ง€ ์‹œ์ž‘ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋กœ ๋„˜๊ธฐ๊ณ  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ Electron์˜ ์ž์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ๊ณ„์† ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

2) ์•ฑ ์ž์ฒด๊ฐ€ ๋Ÿฐ์ฒ˜๋กœ ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. ์œ„์™€ ์œ ์‚ฌํ•œ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Electron ์ธ์Šคํ„ด์Šค์˜ ์กด์žฌ๋ฅผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜๊ณ  ๋‹ค๋ฅธ ์•ฑ(๋™์ผํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ)์ด ์ด๋ฅผ ์ฐพ๊ณ  ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• - ์•„๋งˆ๋„ ๋„คํŠธ์›Œํฌ ํฌํŠธ๋ฅผ ํ†ตํ•ด ..?

@eliot-akira ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ๋‹น์‹ ์ด ๋งํ•˜๋Š” ์ผ์ข…์˜ ์›์‹œ์ ์ธ "ํ”„๋กœํ† ์ฝœ"์ด ์ด๋ฏธ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. app.makeSingleInstance ๋’ค์— ์žˆ๋Š” ๊ฒƒ์€ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ Electron ํ”„๋กœ์„ธ์Šค์™€ ๋™์ผํ•œ ์•ฑ์ธ์ง€ ์•„๋‹Œ์ง€(์•„๋งˆ๋„ ์ „์ฒด ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜ด) ๊ฐ์ง€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@iamale ์ด ๋ฉ”์„œ๋“œ๋Š” Chromium์˜ ๊ธฐ๋ณธ ProcessSingleton ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์•ฑ ๋””๋ ‰ํ„ฐ๋ฆฌ(๊ณ ์œ  ์‹๋ณ„์ž๋กœ?)๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, app.on('ready') ์ „์— ์ดˆ๊ธฐํ™”๋˜๋Š” ์ด์™€ ๊ฐ™์€ ๊ฒƒ์„ ๊ทธ๋ฆฌ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ํŠน์ • ์•ฑ์˜ ๊ธฐ์กด ์ธ์Šคํ„ด์Šค๋ฅผ ํ™•์ธํ•˜๋Š” ๋Œ€์‹  Electron์˜ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ˜ธํ™˜๋˜๋Š” ๊ฒฝ์šฐ "์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋„˜๊ฒจ์ค๋‹ˆ๋‹ค".

๋‹ค๋ฅธ ๊ฐ๋„์—์„œ๋Š” ๋ณ„๋„์˜ Node.js ํ”„๋กœ์„ธ์Šค ๊ฐ„์— ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” node-ipc ๋ผ๋Š” ๋ชจ๋“ˆ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์ˆœ์ „ํžˆ JS ๋ ˆ์ด์–ด์—์„œ ์‹œ์ž‘ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์— node-ipc ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์•ฑ ๊ฐ„์— ๋‹จ์ผ Electron ์ธ์Šคํ„ด์Šค๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ธฐ๋ณธ ์˜ˆ์ž…๋‹ˆ๋‹ค. https://github.com/eliot-akira/singletron-example.

IPC ํ—ˆ๋ธŒ๋Š” node-ipc ์ฃผ์œ„์˜ ์–‡์€ ๋ž˜ํผ์ธ ์ž์ฒด ๋ชจ๋“ˆ ์ž…๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋Š” ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค, main.js ๋งจ ์•„๋ž˜์— ์žˆ์Šต๋‹ˆ๋‹ค.

์•ฑ์ด ์‹œ์ž‘๋˜๋ฉด ๋จผ์ € ๊ธฐ์กด Electron ์ธ์Šคํ„ด์Šค์™€ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์—†๋Š” ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๋Š” "์„œ๋ฒ„"๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์˜ ๋ชจ๋“  ํ›„์† ์ธ์Šคํ„ด์Šค๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค์™€ ์—ฐ๊ฒฐ๋˜๊ณ  ํ•ด๋‹น "๊ตฌ์„ฑ"(Chrome, Node, Electron ๋ฒ„์ „)์„ ์ˆ˜์‹ ํ•˜๊ณ  ์˜ˆ๋ฅผ ๋“ค์–ด ์ž์ฒด์ ์œผ๋กœ ์ƒˆ ์ฐฝ์„ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” ์ˆœ์ง„ํ•œ ๊ตฌํ˜„์ด์ง€๋งŒ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์—์„œ ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ์€ ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ˜‘์ƒํ•ด์•ผ ํ•˜๋Š” ๋ฐฉ๋ฒ•(ํ˜ธํ™˜์„ฑ ํ™•์ธ, ์ƒˆ ์ฐฝ ์—ด๊ธฐ ์—ฌ๋ถ€, ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์ „๋‹ฌ ๋“ฑ)์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์•ฑ์— ๋‹ฌ๋ ค ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@eliot-akira ์ด ์‹œ์ ์—์„œ ๊ธฐ๋ณธ ์„œ๋ฒ„ ID๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์€ _์ •๋ง๋กœ-์ •๋ง-๋‚˜์œ_ ์ƒ๊ฐ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ž์‹ ์˜ ๋ชฉ์ ์œผ๋กœ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ์ž์‹ ์˜ ํ•„์š”์— ๋งž๊ฒŒ ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ํ”„๋กœํ† ์ฝœ์„ ์ค‘๋‹จํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค( ๋”ฐ๋ผ์„œ ์ด์— ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ ์•ฑ์„ ์ค‘๋‹จ).

๊ทธ ์™ธ์—๋Š” ๊นจ๋—ํ•˜๊ณ  ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

Re: ๋ณด์•ˆ ๋ฌธ์ œ: Electron ์•ฑ์€ ์ด๋ฏธ ์‚ฌ์šฉ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ ์ค‘์ด๋ฉฐ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ํŠธ๋ฆฌ์— ๋ฐฐ์น˜ํ•˜๋ฉด ์‹ค์ œ๋กœ ๋‹ค๋ฅธ Electron ์ธ์Šคํ„ด์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋˜๋Š” ์–ป์„ ์ˆ˜ ์žˆ์Œ). ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์„ ์™„ํ™”ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ํŒจ์น˜๋œ Electron ์ธ์Šคํ„ด์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ํ™•์‹คํžˆ ๋„์›€์ด ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@iamale ํ”ผ๋“œ๋ฐฑ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์•ฑ์ด ๋ชจ๋“  Electron ์•ฑ์— ๋Œ€ํ•œ ๊ณตํ†ต ํ”„๋กœํ† ์ฝœ์ด ์•„๋‹Œ ์ž์ฒด ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์— ๋Œ€๋น„ํ•˜์—ฌ ์„œ๋ฒ„ ID๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์„ ๋…ธ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ์•„์ง๊นŒ์ง€๋Š” ๊ทธ๋Ÿฌํ•œ ๊ณตํ†ต ํ”„๋กœํ† ์ฝœ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์‹œ์ ์—์„œ ์•Œ ์ˆ˜ ์—†๋Š” ์•ฑ์ด ์—ฐ๊ฒฐ๋˜์–ด ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ์€ ๊ทธ๋Ÿฌํ•œ ๋ชฉ์ ์— ์‹ค์šฉ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋… ์ฆ๋ช…์„ ์œ„ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ์ด๋ฅผ ์–ธ๊ธ‰ํ•˜๋„๋ก ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋” ์‹ค์šฉ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„์ง€ ๊ณ„์† ์—ฐ๊ตฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ ์˜ค์‹œ๋Š” ๋ถ„๋“ค์ด ๋ฐ˜๋…„ ์ „์— ํ–ˆ๋˜ ๊ฒƒ๊ณผ ๊ฐ™์€ ์š”์•ฝ์„ ๋‹ค์‹œ ํ•˜๋ฉด ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์•„์š”.

๋˜ํ•œ ์ตœ์ข… ์‚ฌ์šฉ์ž๋Š” ๋ฌด์—‡์„ ํ•ฉ๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ์ตœ์ข… ์‚ฌ์šฉ์ž๋ผ๋ฉด (๋ถ€๋ถ„์ ์œผ๋กœ๋Š” ofc์ž…๋‹ˆ๋‹ค) Portableapps.net ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๋‹จ์ผ .exe/.app/.deb ํŒจํ‚ค์ง€๋ฅผ ์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น exe ํŒŒ์ผ์€ ์ž‘์•„์•ผ ํ•˜๋ฉฐ ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋Ÿฐํƒ€์ž„๊ณผ ํ•จ๊ป˜ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ตœ์‹  ์—…์ŠคํŠธ๋ฆผ ๋ฒ„์ „์„ ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์„ค์ • ๊ณผ์ •์—์„œ ์‹œ์Šคํ…œ ๋งํฌ(๋ฐ์Šคํฌํ†ฑ, ์‹œ์ž‘ ๋ฉ”๋‰ด ๋“ฑ)๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ™•์ธ๋ž€๊ณผ ํ•จ๊ป˜ "๋Ÿฐํƒ€์ž„ ์œ„์น˜"(๊ณ ๊ธ‰ ์˜ต์…˜ ํ™•์ธ๋ž€ ์‚ฌ์šฉ)๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ๋•Œ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ด์ „ ๋Ÿฐํƒ€์ž„(idc๊ฐ€ ๋ฌด์—‡์ด๋“  ๊ฐ„์—)์„ ์žฌ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋กœ์„œ (๊ธฐ๊ปํ•ด์•ผ) ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ๋‚ด ์ฝ”๋“œ๋ฅผ ์ผ๋ถ€ ์ €์žฅ์†Œ(play/web/app ์Šคํ† ์–ด์™€ ์œ ์‚ฌ)์— ์—…๋กœ๋“œํ•˜๊ณ  ์ „ ์„ธ๊ณ„์™€ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” .exe/.app/.deb ํŒจํ‚ค์ง€๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” C#์šฉ Electron ๋ฐ Electron-Edge๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์€ ๋ชจ๋“œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•„์ง Electron๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ˆœ์ง„ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, +-0.1 ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์œ ์ผํ•œ "์ง„์งœ" ์ด์œ ๋Š” .node ํŒŒ์ผ์ด ๋ชจ๋“  ๋ฒ„์ „์˜ Electron์— ๋Œ€ํ•ด ๋‹ค์‹œ ์ž‘์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ์ข…์˜ ํด๋ผ์šฐ๋“œ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•˜๋Š” ๋™์•ˆ ์ด๋Ÿฌํ•œ .node ํŒŒ์ผ์„ ๋นŒ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ ๋ฐ˜๋…„๋งˆ๋‹ค ํ•˜๋‚˜์˜ ํฐ Electron LTS๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ •๋ง ๊ทธ๋ ‡๊ฒŒ ํฐ ์ผ์ž…๋‹ˆ๊นŒ? ์ €๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ชจ๋“  ์ƒˆ๋กœ์šด Electron ๋ฆด๋ฆฌ์Šค์˜ ๋ชจ๋“  ์ตœ์‹  ๊ธฐ๋Šฅ์„ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ์˜์‹ฌ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ (์ผ์ข…์˜) ํ•œ ๋ฒ„์ „์„ ๋” ์˜ค๋ž˜ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐ•์ œํ•˜๋ฉด ์ผ์ด ํ›จ์”ฌ ์‰ฌ์›Œ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Imo, ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์˜์ง€ํ•  ์ˆ˜ ์žˆ๋Š” LTS ๋ฒ„์ „์˜ Electron์ด ์ค€๋น„๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ lts ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ฉด ๋นŒ๋“œ ์ž๋™ ์—…๋ฐ์ดํŠธ, ์ค‘๋ณต ์ œ๊ฑฐ, ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ๊ธฐํƒ€ ๋ชจ๋“  ์ž‘์—…์ด ์ผ€์ดํฌ ์กฐ๊ฐ์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ œ์•ˆํ•œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ์†”๋ฃจ์…˜์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ œ๋กœ ์†Œํ”„ํŠธ์›จ์–ด์˜ ํด๋”๋ฅผ ๋ณผ ์ˆ˜ ์—†๋‹ค๋Š” ์ถ”๊ฐ€ ์ด์ ์ด ์žˆ์œผ๋ฏ€๋กœ .whatever๋กœ ํŒจํ‚ค์ง€ํ•˜๊ณ  ์•ˆ์ „ํ•œ ๊ณณ์œผ๋กœ ์˜ฎ๊ธฐ๋ผ๊ณ  ๋งํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ์—ฌ๋Ÿฌ "ํ•˜์œ„ ์‹คํ–‰ ํŒŒ์ผ"์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„, ์—ฌ๋Ÿฌ "ํ”„๋กœํ•„" ๋“ฑ). ์ด๋Ÿฌํ•œ ์‹คํ–‰ ํŒŒ์ผ์€ somelaunchername.electron์ด๋ผ๊ณ  ํ•ด์•ผ ํ•˜์ง€๋งŒ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด(์˜ˆ: ๋กœ๋“œํ•  index.html ๋“ฑ)์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ Json ํ˜•์‹์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. node_modules๋Š” ์‹คํ–‰ ํŒŒ์ผ ๊ฐ„์— ๊ณต์œ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ ์‹คํ–‰ ํŒŒ์ผ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ œ์™ธ). ์ด๊ฒƒ์€ ์„ธ ๊ฐœ์˜ node_modules ํด๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์‹คํ–‰ ํŒŒ์ผ์— ๋Œ€ํ•ด ํ•˜๋‚˜์”ฉ, ๋‘˜ ๋‹ค์— ๋Œ€ํ•ด ํ•˜๋‚˜์”ฉ. package.json์—๋Š” ์ผ๋ฐ˜ ์ •๋ณด๋งŒ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ .electron ํŒŒ์ผ์€ (imo) package.json์˜ ๊ฐ’์„ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ .electron ํŒŒ์ผ์€ "runtime --appname" ๋˜๋Š” steam๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ง€์ • ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘ ๋ฉ”๋‰ด ๋ฐ ๊ธฐํƒ€ ์œ„์น˜์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋Š ๊ฒƒ์ด ๋” ๋‚˜์€์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๊ณผ๊ฑฐ์—๋Š” ์ŠคํŒ€์ด ๋ช‡ ๋ฒˆ์ด๋‚˜ ์ €๋ฅผ ํ™”๋‚˜๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ค์ œ๋กœ ์ˆ˜์ •๋œ ๋Ÿฐํƒ€์ž„์„ ์ œ๊ณตํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ํ˜„์žฌ ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ„์† ํŒจํ‚ค์ง•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ:
์ œ ์ƒ๊ฐ์— ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ์•ˆ์ •์ ์ธ lts ๋ฒ„์ „์„ ๋งŒ๋“ค๊ณ  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์‰ฌ์šด ํŒจํ‚ค์ง• ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋ฅผ ์ฐธ์—ฌ์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋Š” ๋‚˜์ค‘์— ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ์ด๋Ÿฌํ•œ .electron ํŒŒ์ผ์— ๋Œ€ํ•œ ๋Ÿฐํƒ€์ž„๊ณผ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”?

@CiriousJoker ์ „์ž ๋นŒ๋”๋Š” ํœด๋Œ€์šฉ ์•ฑ๊ณผ ์›น ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ Windows ๊ณต์œ  DLL ์ด ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. Shared DLL์€ ๋˜ํ•œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ „์ž ๋Ÿฐํƒ€์ž„์„ ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์ฐธ์กฐ ์นด์šดํŒ…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ, ํ•˜๋‚˜์˜ ํฐ exe(node.dll ์ œ์™ธ)์˜ Windows์—์„œ ์ „์ž ๋Ÿฐํƒ€์ž„. dll๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ „์ž ๋นŒ๋” ์ธก ์†”๋ฃจ์…˜์€ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋””์Šคํฌ ๊ณต๊ฐ„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ๋„ ์ ˆ์•ฝ๋ฉ๋‹ˆ๋‹ค.

@zcbenz @paulcbetts ๊ณต์œ  dll ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•˜์…จ์Šต๋‹ˆ๊นŒ? exe์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ๋ชจ๋“  ์ „์ž ์ฝ”๋“œ๋ฅผ dll๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ(๋”ฐ๋ผ์„œ exe์—๋Š” ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋งŒ ์œ ์ง€)? ์ „์ž 1.7.5 ์ดํ›„ ๊ณต์œ  C ๋Ÿฐํƒ€์ž„์ด node.dll ๋ฐ exe์—์„œ ์ œ๊ฑฐ๋œ ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด์ œ 30MB์˜ ์ฝ”๋“œ๊ฐ€ ์ด๋ฏธ DLL ํŒŒ์ผ์— ์žˆ์œผ๋ฏ€๋กœ(ํ•˜์ง€๋งŒ exe๋Š” ์—ฌ์ „ํžˆ 80MB์ž„) ์‹คํ—˜์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@develar imo, ์ง„์งœ ๋ฌธ์ œ๋Š” dll์„ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋ผ lts ๋ฒ„์ „์˜ ์ „์ž๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Chromium์€ ์ด์ „ ๋ฒ„์ „์— ๋Œ€ํ•œ ๋ณด์•ˆ ์ˆ˜์ •๋„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๋“ค์˜ ์ •์ฑ…์ด "๋ณด์•ˆ์„ ์œ„ํ•ด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ"ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ•ํ•˜๊ฒŒ ๋Š๋‚๋‹ˆ๋‹ค. Chromium์˜ ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ๊ฐ€ ์—†์œผ๋ฉด Electron์˜ LTS๋Š” ๋จผ ์ด์•ผ๊ธฐ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

@sedwards2009 ๊ทผ๋ฐ ์ •๋ง ์œ„ํ˜‘์ด ๊ทธ๋ ‡๊ฒŒ ๋งŽ๋‚˜์š”? ๋ฌผ๋ก  ์—ฌ๊ธฐ์—์„œ ๋‚ด๊ฐ€ ์ˆœ์ง„ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐฉํ˜• ์ธํ„ฐ๋„ท์ด ์•„๋‹Œ (๋Œ€๋ถ€๋ถ„) ๋กœ์ปฌ ์•ฑ์œผ๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. .exe ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ 10000๋ฐฐ ๋” ์œ„ํ—˜ํ•˜๊ณ  .exe ๋ฐ”์ด๋Ÿฌ์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋„ AVG์—์„œ ๋‚ด ํ•ฉ๋ฒ•์ ์ธ ์ „์ž ์•ฑ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐ”์ด๋Ÿฌ์Šค๋ผ๊ณ  ๋ถˆ๋ €์„ ๋•Œ 10000๋ฐฐ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚˜์—๊ฒŒ๋Š” 6๊ฐœ์›” ์ •๋„๋งˆ๋‹ค ํ•ด๋‹น ๋ณด์•ˆ์„ "๊ฐฑ์‹ "ํ•˜๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์ฒด ํŒจํ‚ค์ง€ ๋ฒ„์ „์˜ ํฌ๋กฌ์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ฐฉ๋ฒ•์œผ๋กœ, ์–ด์จŒ๋“  ์šฐ๋ฆฌ๊ฐ€ ๋ง‰์„ ์ˆ˜ ์—†๋Š” ๋” ๋‚˜์œ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ณต์œ  ๋Ÿฐํƒ€์ž„ ๋˜๋Š” ๊ธฐํƒ€ ์‚ฌ์šฉ)

์˜ˆ, ์•ฑ์ด fs ๋ฐ ๋„คํŠธ์›Œํ‚น์— ๋Œ€ํ•œ ์›์‹œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์–ป๋Š” ๊ณณ์—์„œ ๋ณด์•ˆ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
์•ฑ ๊ณต๊ธ‰์—…์ฒด๋ฅผ ์‹ ๋ขฐํ•˜๊ฑฐ๋‚˜ ๋ฉ€๋ฆฌํ•˜์‹ญ์‹œ์˜ค. <- ํ์‡„ ์†Œ์Šค ์•ฑ์šฉ์ž…๋‹ˆ๋‹ค.
OSS์˜ ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„์ด ์ ์–ด๋„ ๋‚˜์œ ์˜๋„๋Š” ์—†์ง€๋งŒ ๋ฒ„๊ทธ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž, ๊ทธ๋Ÿผ lts ๋ฒ„์ „์„ ์–ป๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์‰ฝ์Šต๋‹ˆ๊นŒ? ํ˜„์žฌ ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ณ  lts ๋ฒ„์ „์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๊นŒ?

๋” ํฐ ๋ฌธ์ œ๋Š” ๋‚˜์ค‘์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด ํŠน์ • ๋ฒ„์ „์šฉ ์•ฑ์„ ๋นŒ๋“œํ•˜๋„๋ก ์„ค๋“ํ•  ๋•Œ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์ง€๋งŒ ์–ด์จŒ๋“  ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ๊ณต์œ  ๋Ÿฐํƒ€์ž„์„ ๋นŒ๋“œํ•˜๋ ค๋ฉด ๋จผ์ € ๋Ÿฐํƒ€์ž„์„ ์„ ํƒํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „ ์•ฑ์ด ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์€ ๊ฐœ๋ฐœ์ž์˜ ๊ฒฐ์ •์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
npm ์—”์ง„ ํ•„๋“œ ์™€ ๊ฐ™์€ ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ ๋Ÿฐํƒ€์ž„์˜ ์ž‘์—…์€ ํ•„์š”ํ•œ dll ๋˜๋Š” ๋ฌด์—‡์ด๋“  ๊ฐ€์ ธ์™€์„œ ์•ฑ์ด ์‹คํ–‰๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ˆ˜์‹ญ ๊ฐœ์˜ ๊ฑฐ์˜ ๋™์ผํ•œ ๋Ÿฐํƒ€์ž„ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋ฉด ์š”์ ์„ ์™„์ „ํžˆ ๋†“์น˜๊ฒŒ ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋‹จ์ˆœํžˆ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ฒ˜์Œ์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋™์ผํ•œ ๋Ÿฐํƒ€์ž„์ด ๋™์ผํ•œ ์‹œ์Šคํ…œ์—์„œ ๋‹ค์‹œ ์‚ฌ์šฉ๋  ๊ฐ€๋Šฅ์„ฑ์ด 20๋ถ„์˜ 1์ธ ๊ฒฝ์šฐ ๋Ÿฐํƒ€์ž„ ์ค‘๋ณต ์ œ๊ฑฐ๋Š” ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๋Ÿฐํƒ€์ž„์„ ๊ณต์œ ํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ถ€๋ถ„์œผ๋กœ ์ „ํ™˜ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๊นŒ? ์ดํ•ด๊ฐ€ ๋˜์ง€๋งŒ ๊ตฌํ˜„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ํฌ๊ธฐ ์†Œ๋น„์ž๋Š” Chromium๊ณผ Node์ด๋ฉฐ ๋ฐ€์ ‘ํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋‘˜ ์ด์ƒ์˜ ๋ฒ„์ „์—์„œ ์„œ๋กœ ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์˜์‹ฌ๋ฉ๋‹ˆ๋‹ค.

๋…ธ๋“œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  • ์ผ๋ถ€ ๊ฐœ๋ฐœ์ž๋Š” ์ตœ์‹  v8์„ ์›ํ–ˆ๊ณ  ํŒŒ์†์„ ์šฉ์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€๊ธฐ์—…์€ ์•ˆ์ •์„ฑ๊ณผ ์žฅ๊ธฐ์ ์ธ ์ง€์›์„ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ „์ž ํŒ€์ด ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์ œ๊ฐ€ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์–ด์จŒ๋“  ์ด๊ฒƒ์€ ๋ฒ„์ „ ์ง€์ • ๋ฒ”์œ„์™€ ์ถฉ๋Œํ•˜์ง€ ์•Š์œผ๋ฉฐ ์–ด๋–ค ๋ฒ„์ „์ด "LTS"์ธ์ง€ ๋‚˜ํƒ€๋‚ด๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ์ „์ž ์•ฑ์ด ๋™์ผํ•œ ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜๊ณ  ํ•ด๋‹น ๋Ÿฐํƒ€์ž„์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ๋นŒ๋“œ๋œ .asar ํŒจํ‚ค์ง€์™€ ํ•จ๊ป˜ ์ œ๊ณต๋œ๋‹ค๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„๊นŒ์š”?

๋„ค, ํ•˜์ง€๋งŒ ๊ฐ€๋”์€ ์ตœ์‹  Chrome๊ณผ Node๋ฅผ ์›ํ•˜์‹œ์ฃ ?

์˜ˆ, ํ•˜์ง€๋งŒ 6๊ฐœ์›” ๋™์•ˆ ๋™์ผํ•œ ๋…ธ๋“œ/ํฌ๋กฌ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์‚ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Node์—๋Š” ์–ด์จŒ๋“  LTS ๋ฒ„์ „์ด ์žˆ์œผ๋ฉฐ ํฌ๋กฌ์€ ๋‚ด๊ฐ€ ์•Œ์•„์ฐจ๋ฆฐ ๊ฒƒ๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Imo, ๋ชจ๋“  ์•ฑ ์„ค์น˜ ์‹œ 100MB๋ฅผ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋Š” ์ด์ ์€ Chromium/Electron์˜ ์ƒˆ ๋ฒ„์ „์ด ์ถœ์‹œ๋  ๋•Œ๋งˆ๋‹ค ์•ฝ๊ฐ„์˜ ์†๋„ ํ–ฅ์ƒ์„ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ผ๋‹จ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฐธ์—ฌํ•˜๋ฉด ์ƒˆ ๋ฒ„์ „์˜ ๋Ÿฐํƒ€์ž„ ์‚ฌ์ด์˜ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด ์–ด๋ ต์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ตœ์‹  ๋ฒ„์ „์˜ ๋Ÿฐํƒ€์ž„๊ณผ ํ•˜๋‚˜ ๋˜๋Š” ๋‘ ๊ฐœ์˜ ์ด์ „ ๋ฒ„์ „์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6๊ฐœ์›”๋งˆ๋‹ค .node ํŒŒ์ผ์„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ๋„ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Electron-builder๋Š” ๋ชจ๋“  nsis ๋Œ€์ƒ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์˜ต์…˜์ธ useSharedElectronRuntime์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ๊ธฐ์กด์˜ ๋ชจ๋“  dll์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. exe์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ์ฝ”๋“œ๋ฅผ dll๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋‚˜์ค‘์— ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 30Mb๋ฅผ ์ ˆ์•ฝํ•˜๋Š” ๊ฒƒ์ด ์ด๋ฏธ ์ข‹์€ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

  1. ๋ชจ๋“  ์ „์ž dll์— ๋Œ€ํ•ด ์„œ๋ช…๋œ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  GitHub ๋ฆด๋ฆฌ์Šค์— ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค(bintray๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค).
  2. Nsis ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์€ ์•„์ง ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ โ€” ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์„œ๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Electron-builder๋Š” ๊ธฐ๊ณ„๋‹น ์„ค์น˜๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Windows๋Š” ์‹œ์Šคํ…œ๋ณ„๋กœ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ ๋ณด์•ˆ ์ˆ˜์ค€์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ๊ธฐ๊ณ„๋‹น ์กฐ๋ฆฝํ’ˆ์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ์˜ต์…˜์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์•„์ง ๋ช…ํ™•ํ•˜์ง€ ์•Š์Œ โ€” ๊ธฐ๋ณธ์ ์œผ๋กœ true ๋˜๋Š” false์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „์ž ์•ฑ์„ ๊ด€๋ฆฌ์ž ์—†์ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์ง“์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
  3. ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ „์ž ๋Ÿฐํƒ€์ž„์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ณต์œ  dll์€ ์ฐธ์กฐ ์นด์šดํŒ…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ์ œ๊ฑฐ ์‹œ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ  ๋‹ค๋ฅธ ์•ฑ์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ Windows์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

@CiriousJoker Re: ๋ณด์•ˆ. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด๊ฐ€ ์•…์˜์  ์ธ ๋ณด์•ˆ ๋ฌธ์ œ๋Š” ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๋นจ์•„๋“ค์ด๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์ „์ž ์•ฑ์„ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ „์ž ์•ฑ์ด ์—ด๋ฆฐ ์›น์˜ ์›น ํŽ˜์ด์ง€๋ฅผ webview ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ํ˜•์‹์œผ๋กœ ํ‘œ์‹œํ•  ๋•Œ๋งˆ๋‹ค.

๋งŽ์€ ์•ฑ์ด ๊ฐœ๋ฐฉํ˜• ์›น์— ๋…ธ์ถœ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ด์ „ ์ „์ž์—์„œ ์ž˜ ์‹คํ–‰๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ ๊ทน๋‹จ์€ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ์„œ ์ž์‹ ์„ ๋…ธ์ถœ์‹œํ‚ค๋Š” ๊ฒƒ ์™ธ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๋Š” Brave์™€ ๊ฐ™์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. :-)

@sedwards2009 ye, ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋“  ์‚ฌ๋žŒ๊ณผ ๊ทธ๋“ค์˜ ์—„๋งˆ๋ฅผ ๋Œ๋ณด๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์•„๋ฌด ์ง„์ „๋„ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ญ”๊ฐ€๋ฅผ ํ•˜์ง€ ์•Š๋Š” ๋ฐ์—๋Š” ํ•ญ์ƒ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋ฅผ 100% ์ฐธ์—ฌ์‹œํ‚ค์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์น˜๋Ÿฌ์•ผ ํ•  ํฌ์ƒ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋ณด์•ˆ์ด ์ •๋ง๋กœ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ˆ˜๋™์œผ๋กœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

LTS๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๊ฐ€์žฅ ํ•ฉ๋ฆฌ์ ์ธ ์„ ํƒ์€ Nodejs LTS์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋…ธ๋“œ LTS์— ํ•ด๋‹นํ•˜๋Š” ์ „์ž ๋ฒ„์ „์ด ์‚ฌ์‹ค์ƒ ์ „์ž LTS์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ง‘๋‹จ์ ์œผ๋กœ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ๊ณ (์ด ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋ถ€์ •ํ•˜๋Š”) ์ž์œ ๋กœ์šด ์„ ํƒ์ด๋‚˜ ๋…ผ์Ÿ(์šฐ๋ฆฌ๋ฅผ ์•„๋ฌด๋ฐ๋„ ์ด๋Œ์ง€ ์•Š์Œ)์œผ๋กœ ๋‚จ๊ฒจ๋‘์ง€ ์•Š๊ณ  ์–ด๋Š ์ •๋„ ํ™•์‹ ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ์•ฝ๊ฐ„์˜ ์กฐํ™”์™€ ํ•ฉ์˜๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@CxRes ํ•˜์ง€๋งŒ ์–ด๋–ค ๋ฒ„์ „์˜ Electron์„ ์ง€์›ํ•ฉ๋‹ˆ๊นŒ? ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์ฃผ์š” ๋ฌธ์ œ๋Š” ํŠน์ • ๋ฒ„์ „์˜ Electron(Node๊ฐ€ ์•„๋‹˜)์— ๋Œ€ํ•ด .node ํŒŒ์ผ์„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  Electron ๋ฒ„์ „์„ lts๋กœ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์—ฌ๊ธฐ์—์„œ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์•„์ด๊ณ , ๋ฌธ์ œ๋Š” Node๊ฐ€ ์•„๋‹ˆ๋ผ Electron์ž…๋‹ˆ๋‹ค.

์ข‹์•„์š”, ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์‹œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๋…ธ๋“œ LTS๋Š” ํ˜„์žฌ 6.11.1์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” <=6.11.1 >=6.0.0 ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ๊ฐ€์žฅ ๋†’์€ ๋ฒ„์ „์˜ ๋…ธ๋“œ๋กœ ๊ณต์‹์ ์œผ๋กœ ๊ตฌ์ถ•๋œ ๊ฐ€์žฅ ๋†’์€ ๋ฒ„์ „์˜ ์ „์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋…ธ๋“œ 6์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋œ ์ „์ž์˜ ์ตœ์ƒ์œ„ ๋ฒ„์ „์€ ๋…ธ๋“œ 6.5.0์œผ๋กœ ๊ตฌ์ถ•๋œ ์ „์ž 1.4.15์ž…๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์ „์ž 1.4.15๋Š” ์ „์ž LTS๋ฅผ ๋ถ„๊ธฐํ•˜๊ณ  6.11.1๋กœ ๋‹ค์‹œ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค(์ƒˆ Node v6 ๋ฆด๋ฆฌ์Šค๊ฐ€ ์žˆ์„ ๋•Œ๊นŒ์ง€ ๊ณ„์†).

๋…ธ๋“œ LTS๊ฐ€ v8๋กœ ์ด๋™ํ•˜๋ฉด(LTS๋Š” ์ง์ˆ˜๋งŒ ์žˆ์Œ) ์•„์ง ์ถœ์‹œ๋˜์ง€ ์•Š์€ ์ „์ž๋กœ ํ•จ๊ป˜ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ „์ž๋Š” ๋…ธ๋“œ v8์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋˜๊ฑฐ๋‚˜ ์ „์ž ๋ฒ„์ „์ด ์ถœ์‹œ๋  ๋•Œ๊นŒ์ง€ ํ˜„์žฌ LTS ํฌํฌ์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹ ์˜ ์ตœ๊ณ ๋ฅผ ์›ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

@CxRes @CiriousJoker ์—ฌ๊ธฐ์„œ๋Š” ์ฃผ์ œ๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋„๋ก ํ•ฉ์‹œ๋‹ค. ๋‹ค๋ฅธ Electron ๋ฒ„์ „์˜ ์‚ฌ์šฉ์„ ๋ฐฉํ•ดํ•˜๋Š” ๊ธฐ์ˆ ์ ์ธ ์ด์œ ๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋‹จํŽธํ™”๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(๊ฐœ๋ฐœ์ž๊ฐ€ 1๋…„ ์ „์— ์•ฑ์„ ์ถœ์‹œํ•˜๊ณ  ์žŠ์–ด๋ฒ„๋ ธ๊ณ  ์ตœ๊ทผ์— ์ถœ์‹œ๋œ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์˜ ๋‹ค๋ฅธ ์•ฑ์ด ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•จ).

@YurySolovyov LTS์˜ ์ „์ฒด ์•„์ด๋””์–ด๋Š” ์ตœ์‹ ์ด ์•„๋‹ˆ๋ผ ๊ฐ€์žฅ ์•ˆ์ •์ ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋‚˜์˜ ์†”๋ฃจ์…˜์— ์ง‘์ค‘ํ•˜๋Š” ๋ฐ ๋™์˜ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด, ์–ด๋–ค ๊ทธ๋ฃน๋„ ๋ชจ๋“  ๋ฒ„์ „์„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ณ  ๋ฒ„๊ทธ๋ฅผ ์„ ๋ณ„ํ•  ์‹œ๊ฐ„๊ณผ ๋Šฅ๋ ฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋Ÿฐํƒ€์ž„์ด ์—†๋Š” Pareto ์ฐจ์„ ์ฑ…์œผ๋กœ ๊ณ ํ†ต์„ ๊ฒช์„ ์šด๋ช…์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์œ„์˜ @CiriousJoker ์ฃผ์„์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋„ค, ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋“  ์‚ฌ๋žŒ๊ณผ ๊ทธ๋“ค์˜ ์—„๋งˆ๋ฅผ ๋Œ๋ณด๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค๋ฉด ์ง„์ „์ด ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@develar ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค . ๊ทธ๋Ÿฌ๋‚˜ ๋‹น์‹ ์ด ์ง€์ ํ–ˆ๋“ฏ์ด ์ด๊ฒƒ์€ ๊ธฐ์ˆ ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ์ •์น˜์ ์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค(๋ถ€๋‹ด์ด ๊ณต์œ ๋˜๋„๋ก ์ผ๊ด€๋˜๊ฒŒ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋นŒ๋“œ์— ๋™์˜ํ•˜๋Š” ๊ฒƒ).

์ด์ œ ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ํ•ฉ๋‹ˆ๊นŒ? lts ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ณ  ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋ชจ๋“ˆ์‹ dll์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋Šฅ ๋Ÿฐํƒ€์ž„์„ ๊ตฌ์ถ•ํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์†”๋ฃจ์…˜์„ ์ฐพ ์Šต๋‹ˆ๊นŒ ?

@CiriousJoker ํŠน์ • ์ „์ž ๋ฒ„์ „์— ๋Œ€ํ•œ ๋ณ‘๋ ฌ ์–ด์…ˆ๋ธ”๋ฆฌ. ์˜ˆ: ElectronUserland.ElectronRuntimeAssembly.1.6.11.0 .

@develar Google์—์„œ ์ „์ž๋Ÿฐํ‹ด์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งํฌ๋‚˜ smth๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Imo, ์†๋„๋ฅผ ๋†’์ด๋ ค๋ฉด ์ž„์˜์˜ Electron ๋ฒ„์ „์„ lts ๋ฒ„์ „์œผ๋กœ ์„ ํƒํ•˜๊ณ  ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ๋‚˜์ค‘์— ์–ธ์ œ๋“ ์ง€ ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
@develar ์—ฌ์ „ํžˆ ๋ณ‘๋ ฌ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ๋ชจ๋ฅด์ง€๋งŒ ํฌ๋กœ์Šค ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•ด์•ผ ํ•˜๋ฉฐ ๋‚˜์ค‘์— ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ(๋˜๋Š” ์‹ค์ œ๋กœ ์—ฌ๋Ÿฌ๋ถ„)๋Š” ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ช‡ ๋…„ ๋™์•ˆ ์ด์•ผ๊ธฐํ•ด ์™”์ง€๋งŒ ์•„๋ฌด๋„ ์‹œ์ž‘ํ•˜์ง€ ์•Š์œผ๋ฉด ์•„๋ฌด ๊ฒƒ๋„ ๋ฐ”๋€Œ์ง€ ์•Š์„ ๊ฒƒ์ด๋ฉฐ ์•„์ด๋””์–ด๋ฅผ ๋…ผ์˜ํ•˜๊ณ  ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๋ฐ ๋˜ 3๋…„ ๋™์•ˆ ์•‰์•„ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ „์ž ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•˜๋ฃจ ๋นจ๋ฆฌ ์‹คํ–‰ ํ™˜๊ฒฝ๊ณผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ถ„๋ฆฌ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ์ „์ž ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ํฌ๊ฒŒ ์ด‰์ง„ํ•˜๊ณ  ๋ฐ์€ ๋ฏธ๋ž˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ทธ๋“ค์€ ๋‚˜์—๊ฒŒ ๋ช‡ ๋…„์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋™์•ˆ ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์•ฝ๊ฐ„ ๋น„๊ด€์ ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ต‰์žฅํ•˜๊ฒ ์ง€๋งŒ ๊ทธ๋“ค์€ ์‹ฌ์ง€์–ด ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ ๊ทน์ ์œผ๋กœ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@CiriousJoker ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ €๋Š” ์ „์ž ๋นŒ๋”์˜ ์ฐฝ์— ๋Œ€ํ•œ ๊ณต์œ  ์ „์ž ๋Ÿฐํƒ€์ž„ ์ง€์› ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด https://github.com/electron-userland/electron-builder/issues/1942 ๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. 1๊ฐœ์›” ์•ˆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@develar ๋‚ด ๋‚˜์œ, ๊ทธ๊ฒƒ์„ ๊ฐ„๊ณผํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.. ๊ทธ๋ ‡๋‹ค๋ฉด ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค, ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ต‰์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

https://github.com/electron/electron/issues/673#issuecomment -157980607์˜ ์Šค๋ ˆ๋“œ์—์„œ ์•ž์„œ ์–ธ๊ธ‰ํ•œ ํ•˜์œ„ ํŒŒ์ผ content-defined-chunking ์ค‘๋ณต ์ œ๊ฑฐ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค: https:// github.com/ronomon/deduplication

์ด ๊ธด ์Šค๋ ˆ๋“œ๋Š” ์ง€๋‚œ ๋ช‡ ๋‹ฌ ๋™์•ˆ ํœด๋ฉด ์ƒํƒœ์˜€์ง€๋งŒ ์ด ์Šค๋ ˆ๋“œ๊ฐ€ ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์กฐ์‚ฌํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋ง ๋™์•ˆ ๋‚˜๋Š” ํŒŒ์ผ ์ด๋ฆ„์„ ๋Œ€๋Ÿ‰์œผ๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•œ ์ž‘๊ณ  ์ตœ์†Œํ•œ์˜ ํ•œ ํŽ˜์ด์ง€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ „์ž ๋นŒ๋”๊ฐ€ ํฌํ•จ๋œ ์ตœ์ข… Mac .app ํŒŒ์ผ์€ 121mb ...

๋‚˜๋Š” ์ตœ๊ทผ์— ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚ด ์Šค๋งˆํŠธํฐ์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. Facebook ์•ฑ์€ 600MB ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. Chrome์€ 325MB, Mesenger๋Š” 300MB... ๊ทธ๋ž˜์„œ ๋ฐ์Šคํฌํ†ฑ์˜ 120MB ์•ฑ์€ ๋ณ„๋กœ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

์˜ค๋Š˜๋‚  ํฌ๊ธฐ๋Š” ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋žจ๊ณผ ์†Œ๋น„์ „๋ ฅ์ž…๋‹ˆ๋‹ค.

_ํŽธ์ง‘: ๋™์˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ด์œ ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๊ณต์œ ํ•˜์„ธ์š”_

Windows ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ @develar ์˜ electron-builder(electron-userland/electron-builder#1942) ๋…ธ๋ ฅ์€ ๊ณต์œ  ๋Ÿฐํƒ€์ž„ ๋‹ฌ์„ฑ์— ๊ฐ€๊นŒ์›Œ ๋ณด์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์›น ์•ฑ์„ ๋…๋ฆฝ ์‹คํ–‰ํ˜• Electron ์•ฑ์œผ๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ์•ฑ ์›น ์นดํƒˆ๋กœ๊ทธ๊ฐ€ ์•ฑ ํฌ๊ธฐ๋ฅผ ๋Œ€ํญ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ณต์œ  ๋Ÿฐํƒ€์ž„ ์‚ฌ์šฉ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค: webcatalog/webcatalog/issues/171. ์•ฑ ๊ฐ„์— ๊ณต์œ  ๋ฆฌ์†Œ์Šค๋ฅผ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ํ•˜์—ฌ ํŒจํ‚ค์ง€ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ ˆ์‹œ๋ธŒ ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(PWA)์€ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ ์ธ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. Android์—์„œ๋Š” PWA๋ฅผ ํ™ˆ ํ™”๋ฉด์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹ค์ œ APK์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Chrome ํŒ€์€ ํ˜„์žฌ ๋ฐ์Šคํฌํ†ฑ์— PWA๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค(http://www.androidpolice.com/2017/12/05/google-want-progressive-web-apps-replace-chrome-apps/), Microsoft ๋˜ํ•œ PWA ์ง€์›(https://www.windowscentral.com/faq-progressive-web-apps-windows-10)์— ๊ด€์‹ฌ์„ ๋ณด์ด๋ฉฐ Firefox์™€ Safari๊ฐ€ ๊ณง ๋”ฐ๋ผ์žก๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ด€์‹ฌ์„ ๋ณด์ด๋ฉด ๋ˆ„๋ฝ๋œ API(์˜ˆ: ๊ธฐ๋ณธ ํŒŒ์ผ ์‹œ์Šคํ…œ ์•ก์„ธ์Šค)๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
๋Œ€๋ถ€๋ถ„์˜ ์›น ๊ธฐ๋ฐ˜ Electron ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ PWA๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Atom, VSCode์™€ ๊ฐ™์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋Š” ์•„๋งˆ๋„ WebAssembly์—์„œ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@develar ๋Š” ์ด ์•„์ด๋””์–ด์— ๋Œ€ํ•ด ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ถœ์‹œ๋˜๋ฉด ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

์ตœ๊ทผ์— ์ด๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ๋‚˜๋Š” ๋‹จ์ง€ ๋‚ด ์˜๊ฒฌ์„ ๋˜์ง€๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ „์ฒด ๋ฌธ์ œ๋ฅผ ์ฝ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋„ ๋ชจ๋ฅด๊ฒŒ ๋ช‡ ๊ฐ€์ง€๋ฅผ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Electron ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๊ฐ€ ์ง€๊ธˆ์€ ๊ทธ๋ ‡๊ฒŒ ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž ์ •์˜ ๊ณ„์‚ฐ๊ธฐ์™€ ๊ฐ™์€ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฐํฌํ•  ๋•Œ ์‹ค์ œ๋กœ ๋ณด๊ธฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ ์ด์™€ ๊ฐ™์€ ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ 5-10MB ์ •๋„๊ฐ€ ์ ๋‹นํ•ฉ๋‹ˆ๋‹ค. 60MB ์ด์ƒ์ด๋ฉด ๋ง๋„ ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๋” ํฐ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฝ์šฐ Electron ์ž์ฒด์˜ ํฌ๊ธฐ๋Š” ๋” ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์„ฑ๊ฐ€์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด์ œ ์ด๋Ÿฌํ•œ ๋Ÿฐํƒ€์ž„ ๋ชจ๋“œ์—๋Š” ํ˜„์žฌ ๋ฆด๋ฆฌ์Šค ์†๋„๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์ผ๋ถ€ ์œ ํ˜•์˜ LTS ๋ฆด๋ฆฌ์Šค ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐœ๋ฐœ์ž๋Š” LTS ๋ฆด๋ฆฌ์Šค์— ์˜์กดํ•˜๋„๋ก ๊ถŒ์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ ์ค‘์ธ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฒ„์ „ ๋ชฉ๋ก์„ ์•ฑ ๋””๋ ‰ํ† ๋ฆฌ์— ํ‘œ์‹œํ•˜์—ฌ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์ด ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„ ๋ชจ๋“œ ์ž์ฒด๋Š” IMO์— ๋‹ค๋ฅธ ๋ฒ„์ „์˜ Electron ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ ๋‚ด์žฅ ์‹œ์Šคํ…œ๋„ ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ๋ฒ„์ „์ด ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜๋„๋ก ์š”์ฒญํ•˜๋ฉด ๋Ÿฐํƒ€์ž„ ํ”„๋กœ๊ทธ๋žจ์ด ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ํ”„๋กœ์„ธ์Šค ๋‚ด์˜ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

Electron ์•ฑ์˜ RAM ์‚ฌ์šฉ๋Ÿ‰๋„ ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ์„ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ํ›จ์”ฌ ๋” ์ค‘์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์œ  ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜๋ฉด ๋™์ผํ•œ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” Electron ์•ฑ์ด ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ ์ผ๋ถ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“ , ๋‚˜๋Š” ์–ด์จŒ๋“  Electron ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด ์†Œ์Šค์— ๋Œ€ํ•ด ๋งค์šฐ ์ƒˆ๋กญ๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๋ถ„๋ช…ํ•œ ๊ฒƒ์ด ์žˆ๊ฑฐ๋‚˜ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐ˜๋ณตํ–ˆ๋‹ค๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ๊ตฌํ˜„๋˜๊ธฐ๋ฅผ ์ง„์‹ฌ์œผ๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค. Electron์ด ํ›จ์”ฌ ๋” ๋งŽ์€ ์œ ํ˜•์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•œ ํ›จ์”ฌ ๋” ์œ ๋งํ•œ ํ”Œ๋žซํผ์ด ๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. :+1:

@octacian PWA๊ฐ€ ๋” ๋‚˜์€ ์˜ต์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณดํŽธ์ ์ธ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ PWA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ _๋ชจ๋“  ๊ฒƒ์„_ ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ์‚ฌ์šฉ์ž ์ •์˜ ๊ณ„์‚ฐ๊ธฐ์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์ถฉ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋ฐ์Šคํฌํ†ฑ์—์„œ PWA ์ง€์› ์ด ๋‚˜ํƒ€๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉด 1- ์ž„๋ฒ ๋””๋“œ/์†Œํ˜• ์‹œ์Šคํ…œ์œผ๋กœ ๋ฐฐ์†กํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์šธ ๊ฒƒ์ด๊ณ  2- ๋ฏธ๋ž˜์—๋Š” ๋ชจ๋ฐ”์ผ ์žฅ์น˜์šฉ ์ „์ž ๊ฐ™์€ ์šด์˜ ์ฒด์ œ ๊ธฐ๋ฐ˜์ด ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@yasinaydin ์ด๋ฏธ LG WebOS๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. (Firefox OS๋„ ์žˆ์—ˆ์ง€๋งŒ ๋‹จ์ข…๋จ)

@KeitIG โ€‹โ€‹์„ ์ƒ๋‹˜, Electron์˜ ์œ ์ผํ•œ ๋ฌธ์ œ๊ฐ€ ํฌ๊ธฐ๋ผ๋ฉด ๊ท€ํ•˜์˜ ์ฃผ์žฅ์€ ์ ˆ๋Œ€์ ์œผ๋กœ ์ ์ ˆํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ฝ๊ฐ„ ๋” ํฐ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ€์ง€์ง€๋งŒ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๋ณต์žก์„ฑ๊ณผ ์‹คํŒจ ๊ฐ€๋Šฅ์„ฑ์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๊ฒƒ(์šฐ๋ฆฌ๋Š” Electron์ด ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์—‰๋ง์ด ๋  ์—ฌ์ง€ ์—†์ด ์•ฑ์„ ๊ตฌ์ถ•ํ•˜๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ํƒ์›”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ถ€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค) ๊ต‰์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„์•„, ๊ฐ ์•ฑ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ฉด RAM ์‚ฌ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•˜๊ณ  ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ถ„์‚ฐ๋˜๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ ๋” ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค. ๋‚ด ์ค‘๋ณต ๋ฌธ์ œ ์—์„œ ์ด๊ฒƒ์„ ๋” ์ž˜ ์„ค๋ช…ํ–ˆ์ง€๋งŒ ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ๊ณต์œ  ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ž์ฒด์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋‹ค๋ฅธ Electron ์•ฑ ๊ฐ„์— ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค("๋ผ์ดํŠธ" ๋ฒ„์ „๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. JVM์—์„œ ์‚ฌ์šฉํ•  Java ํŒŒ์ผ์„ ๋ฐฐํฌํ•˜๊ณ  .exe ๋ฒˆ๋“ค๋กœ ๋ฌถ์€ ์ผ๋ถ€ ๊ฐœ๋ฐœ์ž๋Š” ์‹ค์ œ๋กœ Electron์˜ ๊ฑฐ๋ž˜ ์ฐจ๋‹จ๊ธฐ์ด๋ฉฐ ์—„์ฒญ๋‚œ ์ž‘์—…๋Ÿ‰์ด ๋  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ์Šฌํ”„๊ฒŒ๋„ ์•„์ง ๊ฐœ๋ฐœ์ž์˜ ๊ณ„ํš์— ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ๋ฏธ๋ž˜์— ๊ทธ๊ฒƒ์„ ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@dre-hh ์ œ์•ˆ์˜ ์ข‹์€ ์˜๋„๋Š” ์ธ์ •ํ•˜์ง€๋งŒ ๋ฌด์—‡๋ณด๋‹ค๋„ ์ง€๋‚˜์น˜๊ฒŒ ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ €๋Š” ๊ณ ์šฉ์ฃผ๋ฅผ ์œ„ํ•ด ์ƒ์—…์šฉ ์ „์ž ์•ฑ์„ ๊ฐœ๋ฐœํ–ˆ์œผ๋ฉฐ ๊ณ ๋„๋กœ ๊ทœ์ œ๋œ ํ™˜๊ฒฝ(์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ์—†์Œ, ์ถ”์  ๊ฐ€๋Šฅ์„ฑ/๊ฐ์‚ฌ ์š”๊ตฌ ์‚ฌํ•ญ ๋“ฑ)์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ณ ๊ฐ์€ ์†Œํ”„ํŠธ์›จ์–ด ์ž๋™ ์—…๋ฐ์ดํŠธ์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ—ˆ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์ค‘์„ ์œ„ํ•œ ์ผ๋ฐ˜์ ์ธ ์›น ์•ฑ๊ณผ๋Š” ๋งค์šฐ ๋‹ค๋ฅธ ์„ธ์ƒ์ž…๋‹ˆ๋‹ค. ์—๋ฒ„๊ทธ๋ฆฐ ๋ธŒ๋ผ์šฐ์ €์™€ OS ๋ณด์•ˆ ์—…๋ฐ์ดํŠธ์˜ ์ž๋™ ์„ค์น˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ข‹์€ ์•„์ด๋””์–ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œ ์ค‘๋‹จ์˜ ์œ„ํ—˜์ด ํŠนํžˆ ๋‹ค๋ฅธ ๋ณด์•ˆ ์™„ํ™” ๊ธฐ์ˆ ์ด ์žˆ๋Š” ํ†ต์ œ๋œ ํ™˜๊ฒฝ์—์„œ ์˜ค๋ž˜๋œ ๋ฒ„์ „์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ์œ„ํ—˜๋ณด๋‹ค ํ›จ์”ฌ ๋” ํฝ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜ค๋ž˜๋œ ๋ฒ„์ „์˜ ์ „์ž(๋˜๋Š” ์‹ค์ œ๋กœ๋Š” ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ทน๋‹จ์ ์ธ ์กฐ์น˜๋ฅผ ์ทจํ•˜๋Š” ๊ฒƒ์€ ์ด์ƒ์ ์ธ ์†”๋ฃจ์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. (๊ฒŒ๋‹ค๊ฐ€ ๊ด€๋ฆฌ์ž๋Š” ์ด๋ฏธ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ œํ•œํ•˜๋Š” ๋งŽ์€ ์ œ์–ด ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ƒˆ๋กœ์šด OS ๊ธฐ๋Šฅ ์—†์ด๋„ ์ด๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋˜ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋ณด์•ˆ ๋ฌธ์ œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋Š” ์œ„ํ—˜์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ์–ด๋–ค ์ด์œ ๋กœ๋“ (์˜ˆ: ์‹œ๊ฐ„ ๋ถ€์กฑ) ์‚ฌ์šฉ ์ค‘์ธ ๋„๊ตฌ์— ๋Œ€ํ•œ ๋ณด์•ˆ ์ง€์นจ์„ ๋”ฐ๋ฅด์ง€ ์•Š๊ธฐ๋กœ ์„ ํƒํ•œ ๊ฐœ๋ฐœ์ž์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค. (์˜ˆ: ๋ณด์•ˆ, ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ๋ฐ ๊ท€ํ•˜์˜ ์ฑ…์ž„ ) ์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž๋กœ์„œ ๋ชจ๋‘ ์šฐ๋ฆฌ ์ž‘์—…์˜ ํ’ˆ์งˆ(๋ณด์•ˆ ํฌํ•จ)์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Microsoft์™€ ๊ฐ™์€ ์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด ๊ธฐ์—…์„ ์ฐพ๋Š” ๊ฒƒ์€ ์‹ค์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ๋Š” ๋ฐฉ๊ธˆ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์•ˆ ์˜์‹์ด ์—†๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์„ฑํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ ์–ด๋„ ๋‚ด ์ƒ๊ฐ์— Electron์˜ ์•„๋ฆ„๋‹ค์šด ์  ์ค‘ ํ•˜๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์šฉ ์†Œํ”„ํŠธ์›จ์–ด ๊ณต๊ธ‰์—…์ฒด์—๊ฒŒ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹Œ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ ๋‹ค์ค‘ ํ”Œ๋žซํผ ํŠน์„ฑ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž˜ ์ƒ๊ฐํ•˜๊ณ  ์„ฑ๊ณต์ ์ธ ์ง„ํ–‰์„ ์œ„ํ•ด์„œ๋Š” ์ „์ฒด ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์–ด๋Š ์ •๋„ ์ˆ˜์ค€์˜ ํ•ฉ์˜์™€ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์˜๋ฆฌ ๋‹จ์ฒด์˜ ๊ธฐ์—ฌ๋Š” ๋ฌผ๋ก  ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@jacobq ํ˜น์‹œ ๋ชจ๋ฅด์‹œ ๊ฒ ์ง€๋งŒ, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” Electron์˜ ์†Œ์œ ์ฃผ์ž…๋‹ˆ๋‹ค.

ํ˜น์‹œ ๋ชจ๋ฅด๋‹ˆ Microsoft๊ฐ€ Electron์˜ ์†Œ์œ ์ฃผ์ž…๋‹ˆ๋‹ค.

@Jop-V ์ด์— ๋Œ€ํ•œ ์ธ์šฉ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์˜ณ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. electronjs.com ์ฒซ ํŽ˜์ด์ง€ ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

Electron์€ GitHub์™€ ํ™œ๋ฐœํ•œ ๊ธฐ์—ฌ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

Microsoft๋Š” Electron์˜ ์†Œ๋น„์ž(Visual Studio Code์™€ ๊ฐ™์€ ์ œํ’ˆ์—์„œ ์‚ฌ์šฉ)์ด์ž ๊ธฐ์—ฌ์ž์ด๊ธฐ๋„ ํ•˜์ง€๋งŒ ์†Œ์œ ๊ถŒ์€ ์—†์Šต๋‹ˆ๋‹ค. ๋ผ์ด์„ ์Šค ํŒŒ์ผ ์—๋Š” Microsoft๊ฐ€ ์–ธ๊ธ‰๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ Wikipedia ๊ธฐ์‚ฌ ์—์„œ๋„ Microsoft๊ฐ€ ์†Œ์œ ๊ถŒ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค๊ณ  ์ œ์•ˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@jacobq Microsoft๋Š” GitHub๋ฅผ ์ธ์ˆ˜ํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ ํ˜„์žฌ GitHub์—์„œ Electron์„ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ณง Microsoft์—์„œ ์œ ์ง€ ๊ด€๋ฆฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://news.microsoft.com/2018/06/04/microsoft-to-acquire-github-for-7-5-billion/

https://blog.github.com/2018-06-04-github-microsoft/

Microsoft์˜ Github ์ธ์ˆ˜๋Š” Electron์— ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Github์€ ์ž์ฒด ์ œํ’ˆ๊ณผ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ๋ณ„๋„์˜ ํšŒ์‚ฌ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ์•„ํ†ฐ์˜ ์†Œ์œ ๊ถŒ์„ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์„ ๋ณด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ์ „์ž์˜ ์†Œ์œ ๊ถŒ์„ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์„ ๋ณด์ง€ ์•Š๋Š”๋‹ค.

๋‚˜๋Š” ์ด ๋…ผ์Ÿ์ด ๋ฌธ์ œ์˜ ์ดˆ๊ธฐ ์š”์ ์— ์‹ค์ œ๋กœ ๋„์›€์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Carlo๋Š” ๊ฝค ํฅ๋ฏธ๋กญ๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํšŒ์ „์‹œ์ผœ ๋ณด์•˜๊ณ  ๋งค์šฐ ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. pkg ๋กœ ์‹คํ—˜ํ•ด๋ณธ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ตœ์ข… ์‚ฌ์šฉ์ž์˜ ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํŒฝ์ฐฝ์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์ œ์•ˆ์ด ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ 4๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ๋„ ์—ฌ์ „ํžˆ ์•„์ด๋””์–ด์ผ ๋ฟ์ธ ํ™˜์ƒ์ ์ธ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ์™œ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๊ฒƒ๋“ค์ด ํ”„๋กœ์ ํŠธ ์šฐ์„  ์ˆœ์œ„์˜ ๋งจ ์œ„์— ์žˆ์ง€ ์•Š์€์ง€ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@danielo515 ๋˜ ๋‹ค๋ฅธ ๋ถ€์ง€๋Ÿฐํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋Œ€์‹  https://github.com/GoogleChromeLabs/carlo#q -can-a-node-app-using-carlo-be-packaged-as-a-desktop-app์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ฌด์Šจ ์–˜๊ธฐ๋ฅผํ•˜๋Š” ๊ฑด๊ฐ€์š”? ์ด๊ฒƒ์€ ์ด๋ฏธ ์—„์ฒญ๋‚œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์ด ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€์—ฌ์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์‚ฌ๋žŒ๋“ค์„ ์ง€์ ํ•˜๋Š” ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ Carlo๋Š” ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์ด๋ฉฐ ์„ค์น˜๋œ Chrome์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ Electron์˜ ๋ฐ๋ชฌ ๋ฒ„์ „๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์™œ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๊ฒƒ๋“ค์ด ํ”„๋กœ์ ํŠธ ์šฐ์„  ์ˆœ์œ„์˜ ๋งจ ์œ„์— ์žˆ์ง€ ์•Š์€์ง€ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ํ˜„์‹ค๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(์˜ˆ: "์ •๋ง" ์–ด๋ ต์Šต๋‹ˆ๋‹ค).

๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ์•Š๋‹ค๋ฉด(์™„์ „ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Œ), ์ž์œ ๋กญ๊ฒŒ Electron์„ ํฌํฌํ•˜๊ณ  PR์„ ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค.

์˜คํ•ดํ•˜์ง€ ๋งˆ์„ธ์š”. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์‰ฌ์šด ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์—ˆ๋‹ค๋ฉด ์ด๋ฏธ ๊ตฌํ˜„๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@danielo515

... ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ด ํ”„๋กœ์ ํŠธ์˜ ์ผ๋ถ€์—ฌ์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์‹œํ•˜๋Š” ๊ฒƒ์€ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์š”์ ์€ ๊ฐ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ์žฅ๋‹จ์ ์ด ์žˆ๊ณ  Carlo๋Š” ๊ณต๊ฐ„์ด ์ œํ•œ๋œ ๊ฒฝ์šฐ์— ์ ํ•ฉํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๊ฒฝ์šฐ 100MB ์•ฑ ํฌ๊ธฐ๊ฐ€ ์™„๋ฒฝํ•˜๋ฏ€๋กœ ์ด ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์‹ถ์ง€๋งŒ ๋‹ค๋ฅธ ์ „์ž ๊ธฐ๋Šฅ์ด ํ›จ์”ฌ ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

@jacobq ๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ด€์‹ฌ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ๋ฐ์Šคํฌํ†ฑ์—์„œ js ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ์œ ์‚ฌํ•œ ๋„๊ตฌ ๋ชฉ๋ก์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/styfle/awesome-desktop-js

๋‚˜๋Š” ์ˆ˜์‹ญ ๊ฐœ์˜ 100MB ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์—ฌ์œ ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— Electron์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์ด์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์˜๊ฒฌ์ด ์žˆ์ง€๋งŒ ๊ณต์œ ํ•˜๋ฉด ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).
carlo์˜ ์ ‘๊ทผ ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋‚ด๊ฐ€ ์ •๋ง ์ข‹์•„ํ•˜๋Š” ๊ฒƒ์€ ์„ค์น˜๋œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.
๋” ์ข‹์€ ์ ์€ puppeteer๊ฐ€ ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €๋„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— carlo๋Š” ํฌ๋กฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. OSX์—์„œ๋Š” Safari, linux epiphany(webkitgtk) ๋˜๋Š” firefox ๋“ฑ์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค...
๋”ฐ๋ผ์„œ ์‹ค์ œ๋กœ ์•ฑ์„ ์–ป์œผ๋ ค๋ฉด nodejs์™€ ์•ฑ๋งŒ ์„ค์น˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์ด์ œ ์งˆ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์„ค์น˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ธฐ๋ณธ ์• ๋“œ์˜จ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ pkg๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ข‹์€๊ฐ€์š”?
์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ ๊ฐœ๋ฐœ ์ค‘์ธ ์•ฑ์„ ํŒจํ‚ค์ง•ํ•ด์•ผ ํ•œ๋‹ค๋ฉด postgresql, sharp(๋ฐ vips), webkitgtk ๋ฐ exiftool์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. linux debian, fedora ๋˜๋Š” ubuntu ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์•ฑ์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” "๋ฏธ์นœ ๋ฒˆ๋“ค"์—์„œ ๋ฒ—์–ด๋‚˜ ๊ทธ ๋ฐฐํฌํŒ์—์„œ ์ˆ˜ํ–‰ํ•œ ํž˜๋“  ์ž‘์—…์„ ๋ฌด๋ฃŒ๋กœ ํ™œ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@kapouer ... ์„ค์น˜๋œ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉ ...

์ด๋ก ์ƒ์œผ๋กœ๋Š” ์—ฌ๋Ÿฌ ๋ธŒ๋ผ์šฐ์ €์— ๋Œ€ํ•œ ์ง€์›์— ์ง‘์ค‘ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์›น ์ธก์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Chromium์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ตœ์‹  ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•˜๊ณ  ์—ฌ๋Ÿฌ ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์—…์ฒด๊ฐ€ ์—…๋ฐ์ดํŠธ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ค‘๋‹จ์‹œํ‚ค์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ธํƒ€ ์—…๋ฐ์ดํŠธ๋กœ ์ „ํ™˜ํ•˜๊ฑฐ๋‚˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ .asar ํŒŒ์ผ ๋˜๋Š” ๋ฆฌ์†Œ์Šค ํด๋”๋งŒ ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ 50Mb ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•  ๋•Œ๋งŒ ๋Œ€๊ทœ๋ชจ Electron ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ํšŒ์‚ฌ์—์„œ ํ•˜๋Š” ์ผ์ด๋ฉฐ ํ›Œ๋ฅญํ•˜๊ฒŒ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์ˆœ์ง„ํ•œ ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์—์„œ Electron app-shell์„ Shared Runtime์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐํฌ์™€ ์‚ฌ์šฉ์ด ์ •๋ง ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹จ์ผ ์‹œ์Šคํ…œ์— 5๊ฐœ์˜ ์ „์ž ์•ฑ์ด ์žˆ์œผ๋ฉด 5๊ฐœ์˜ app-shell ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ๊ณ  ์•ฝ 300MB์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ฃ ?

๋‚˜๋Š” ์ „์ž๊ฐ€ ๋ฐ์Šคํฌํƒ‘ UX์˜ ๋ฏธ๋ž˜์ด๋ฉฐ ์ด๊ฒƒ์€ ์›น ๊ธฐ์ˆ ์„ ๋” ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ํฐ ๋‹จ๊ณ„๊ฐ€ ๋  ๊ฒƒ์ด๋ผ๊ณ  ๊ตณ๊ฒŒ ๋ฏฟ์Šต๋‹ˆ๋‹ค.

Electron์—๋Š” ์ด๋ฏธ ๊ฐœ๋ฐœ์šฉ ๋Ÿฐํƒ€์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‚˜์š”? "์ „์ž ." ๋ช…๋ น, ๋‚ด ๋ง์€. ์‚ฌ์šฉ์ž ์ธก์—์„œ ์žฌ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Electron์˜ ๋‹ค๋ฅธ ๋ฒ„์ „์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ์•ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด .NET core๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ๋Ÿฐํƒ€์ž„์„ ๋‚˜๋ž€ํžˆ ์„ค์น˜ํ•˜๊ณ  ์•ฑ์ด ํ•„์š”ํ•œ ์ตœ์†Œ(๋˜๋Š” ์ตœ๋Œ€) ๋ฒ„์ „์„ ์„ ์–ธํ•˜๋„๋ก ํ•˜์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ๊ฐœ๋… ์ฆ๋ช… ๋Ÿฐ์ฒ˜๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค: https://github.com/ProPuke/electron-shared

ํฌ๊ธฐ๊ฐ€ 1MB ๋ฏธ๋งŒ์ธ ๋‹จ์ผ ์‹คํ–‰ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์•ฑ ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” asar ํŒจํ‚ค์ง€๋ฅผ ์ „๋‹ฌํ•˜๋ฉด package.json devDependencies์—์„œ ์ „์ž ๋ฒ„์ „ ์š”๊ตฌ ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์œผ๋กœ ๋‹ค์šด๋กœ๋“œ/์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Electron ๋Ÿฐํƒ€์ž„์€ AppData\Local\Local\electron-shared (windows) .cache/electron-shared (linux) Library/Application Support/electron-shared (mac)์— ์ €์žฅ๋˜๋ฏ€๋กœ ์•ฑ ๊ฐ„์— ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด app ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” app.asar (์žˆ๋Š” ๊ฒฝ์šฐ)๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ํŒŒ์ผ๊ณผ app.asar ๋งŒ์œผ๋กœ ์•ฑ์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์ด๊ฒƒ์€ .asar ํŒŒ์ผ๊ณผ ์—ฐ๊ด€๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ asar๋งŒ ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ --downloadOnly ๋ฐ --silent ๋ฅผ ํฌํ•จํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ช…๋ น์ค„ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์„ค์ • ํ”„๋กœ์„ธ์Šค ์ค‘์— ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋™ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(Electron์˜ ํ˜ธํ™˜ ๋ฒ„์ „์ด ์ปดํ“จํ„ฐ์—์„œ ์•„์ง ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์šด๋กœ๋“œ๋จ). ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์‹คํ–‰ ์‹œ ๋˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์„œ๋น„์Šค์— ์˜ํ•ด ์ฃผ๊ธฐ์ ์œผ๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋Ÿฐํƒ€์ž„์ด ๋‹ค์Œ ์œ„์น˜์— ์žˆ๋Š” ํ•œ ์•ฑ์ด ์‹คํ–‰๋  ๋•Œ ์ตœ์‹  ์œ„์น˜๋ฅผ ์ฐพ์•„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„์˜ ์˜ค๋ž˜๋œ ๋ณต์‚ฌ๋ณธ์„ ์‚ญ์ œํ•  ๋•Œ๋ฅผ ์•„๋Š” ๊ฒƒ์€ ๊นŒ๋‹ค๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์Œ“์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜๋œ ์•ฑ์ด ์–ด๋–ค ๋ฒ„์ „์„ ์‚ฌ์šฉํ–ˆ๋Š”์ง€(๋”ฐ๋ผ์„œ ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์•ฑ) ์ถ”์ ํ•˜๊ฑฐ๋‚˜ ๊ฐ ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „์— ๋Œ€ํ•ด ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฌ์šฉํ•œ ๋‚ ์งœ๋ฅผ ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ž๋™ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž ์‹œ ํ›„.

์–ด์จŒ๋“ , ๊ฐœ๋…/์ œ์•ˆ ์ฆ๋ช…. ์ด์™€ ๊ฐ™์€ ๊ฒƒ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ๋ˆˆ์— ๋„๊ณ  ๋ถ„๋ช…ํ•œ ๊ฒƒ์„ ๋†“์นœ ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@ProPuke ์˜ ์ „์ž ๊ณต์œ  ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜๊ณ  ์ „์ž ๋น ๋ฅธ ์‹œ์ž‘ ๋ฐ๋ชจ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ „์ž ์›น ์‚ฌ์ดํŠธ์— ์„ค๋ช…๋œ ์•ฑ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค( ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ์ด ์ผ๋ถ€ ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์„ ์‹œ์ž‘ํ•˜๊ณ  ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๋Š” ๋Œ€๋กœ package.json ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ). ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์ด _๊ฐœ๋… ์ฆ๋ช…/์ œ์•ˆ_์ด ๋‹ค์Œ ํฐ ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

์ „์ž๋Š” ํ˜„์žฌ "electron.exe ๊ฒฝ๋กœ" ๋ช…๋ น์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช…๋ น์ค„์—์„œ ์—ฌ๋Ÿฌ asars๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์—ด ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ๊ทธ๋ƒฅ ์•„์ด๋””์–ด์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•ด ๋ฐฉ๊ธˆ ๋งŒ์กŒ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
______________ ์ค‘๊ตญ์–ด ๋ฒˆ์—ญ ๋ฒ„์ „__________
๋‚˜๋Š” ์•„์ด๋””์–ด๊ฐ€. ํ˜„์žฌ ์ „์ž๋Š” "electron.exe ๊ฒฝ๋กœ" ๋ช…๋ น์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ asar๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์—ด ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ํ˜„์žฌ๋กœ์„œ๋Š” ๊ทธ์ € ์•„์ด๋””์–ด์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ด ์†Œํ”„ํŠธ์›จ์–ด์— ์ด์ œ ๋ง‰ ์ฐธ์—ฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ „์ฒด ๋Œ€ํ™”(๋ฐ ์—ฌ๋Ÿฌ "์•ฑ"๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํ† ๋ก )๋ฅผ ๋Œ€์ถฉ ์‚ดํŽด๋ณธ ํ›„ ์š”์•ฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋Œ€์‹  ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฌ๋Ÿฌ asar๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ์˜ค๋žœ ์—ญ์‚ฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์ง€์›๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ „์ž์˜ default_app์€ ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค(๋‹น๋ถ„๊ฐ„์€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค). ์ „์ž๋ฅผ ํ†ตํ•ด cmd๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด(๊ฐ€๋Šฅํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค) ์ด ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ๋Œ€ํ™”(๋ฐ ์—ฌ๋Ÿฌ "์•ฑ"๊ณผ ๊ฐ™์€ ๊ธฐํƒ€ ํ† ๋ก )๋ฅผ ๋Œ€์ถฉ ์‚ดํŽด๋ณด๋ฉด ์—ฌ๋Ÿฌ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋Œ€์‹  ์—ฌ๋Ÿฌ Asar์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ํ˜ธ์ถœ์ด ์‹œ์ž‘๋œ๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ ธ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์˜ค๋žœ ์—ญ์‚ฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ์ง€์›๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Electron์˜ default_app์€ ๋ช…๋ น์ค„์„ ํ™œ์šฉํ•˜๋Š” ๊ตฌํ˜„(๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ํ•œ๋™์•ˆ์€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.) ๋‚˜๋Š” ์ „์ž๋ฅผ ํ†ตํ•ด cmd๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค(๊ฐ€๋Šฅํ•œ ๊ฒƒ์ฒ˜๋Ÿผ) ์ด ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ ๋ง‰๋Œ€๋ฅผ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์•…์˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” .bat ํŒŒ์ผ ๋˜๋Š” Windows๊ฐ€ ์•„๋‹Œ OS์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  Electron์—์„œ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

app.asar๋‚˜ app โ€‹โ€‹ํด๋”๊ฐ€ ์—†์„ ๋•Œ๋งŒ ์ปค๋งจ๋“œ ์ „์ž์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์œ ํšจํ•œ exe ๊ฒฝ๋กœ

์˜ค, ๊ทธ๋ž˜์„œ ๋‹น์‹ ์€ ๋ชจ๋“  ๊ฒƒ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ „์ž ๋‚ด๋ถ€์˜ exe ๊ฒฝ๋กœ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ „์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์•ฑ์— ๋Œ€ํ•ด ์ „์ž ์„ค์น˜๋ณด๋‹ค ์—ฌ์ „ํžˆ ๋‚ซ์Šต๋‹ˆ๋‹ค. ์•ฑ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ „์ž ๋ฒ„์ „์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ์ „์ž ์„ค์น˜๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ํ•˜๋ ค๋Š” ์•ฑ๊ณผ ๊ถŒ์žฅ ๋ฒ„์ „(์ฆ‰์‹œ ์‹คํ–‰), ํ˜ธํ™˜ ๋ฒ„์ „(์‹คํ–‰ ๋˜๋Š” ๊ถŒ์žฅ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๊ณ  ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๊ถŒ์žฅ Electron ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œ) ๋˜๋Š” ๊ถŒ์žฅ ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์šด๋กœ๋“œ ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„๋งŒ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ๋ฉด ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ์ž˜๋ชป ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์•„์ด๋””์–ด๋Š” ์•„๋งˆ๋„ ๋™์ผํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. bat๋Š” ํ˜„์žฌ ๋งํ•˜๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด์šฉ์€ electron.exe app1.asar์ด๊ณ  ์‹คํ–‰ ํ›„ electron์€ app1.asar์˜ ๋‚ด์šฉ์„ ์—ฝ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด์ง€๋งŒ bat์—์„œ ๋‹ค์Œ ๋ฌธ์žฅ electron.exe app2.asar๋ฅผ ์ž‘์„ฑํ•  ๋•Œ app1.asar์˜ ์ „์ž๊ฐ€ ๋๋‚  ๋•Œ๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐฐํŠธ๊ฐ€ ๊บผ์ง€๋ฉด ์ „์ž๋„ ๊บผ์ง‘๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” electron.exe app3.asar|electron.exe-v ๋˜๋Š” electron.exe app3.asar|start ๋“ฑ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฐ•์ฅ๋ฅผ ๋‹ซ์œผ๋ฉด ์ „์ž๋Š” ์‚ด์•„๋‚จ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ asar๋ฅผ ๊ณ„์† ์—ด ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. bat๋Š” ์—ฌ์ „ํžˆ ๋‹ค์†Œ ์ œํ•œ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋…๋ฆฝ ์‹คํ–‰ํ˜• ํ”„๋กœ๊ทธ๋žจ์ด ์ด ํ”„๋กœ๊ทธ๋žจ๋ณด๋‹ค ๋‚˜์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ž„์‹œ ํด๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ „์ž ๋ฒ„์ „ ํด๋”์— (์•„์นด์ด๋ธŒ ๋˜๋Š” ์•„์นด์ด๋ธŒ๋˜์ง€ ์•Š์€) ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๊ถŒ์žฅ ๋ฒ„์ „ ๋˜๋Š” ์‚ฌ์šฉ ์ค‘์ธ ๋ฒ„์ „์„ ์ž„์‹œ ํด๋”์— ๋ณต์‚ฌํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œํ•œ ์ตœ์‹  ํ˜ธํ™˜ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์™„๋ฃŒํ•œ ํ›„ ํด๋”๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ์— ์ €์žฅ๋œ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋Š” ์ „์ž ํด๋”์— ์žˆ๊ฑฐ๋‚˜ ์‚ฌ์šฉ ์ค‘์ธ ํŒŒ์ผ ์˜†์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ 24์‹œ๊ฐ„ ๋™์•ˆ ๋‚ด๊ฐ€ ์–ธ๊ธ‰ํ•œ ๋‚ด์šฉ์ด ํฌํ•จ๋œ ์•„์นด์ด๋ธŒ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์•„์นด์ด๋ธŒ๋กœ ๋‹ค์‹œ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ์ž„์‹œ ์ „์ž ์ธ์Šคํ„ด์Šค ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์— ์ „ํ˜€ ์ด๋™ํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

SSD?

???

์ž„์‹œ ์ „์ž ํด๋”๋ฅผ ์‚ญ์ œํ•˜๋Š” ์ด์œ ๋Š” ์•ฑ์ด ์ด๋ก ์ ์œผ๋กœ ์„ค๊ณ„์— ๋”ฐ๋ผ ์‹คํ–‰ ์ค‘์ธ ์ „์ž ์„ค์น˜ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚ด ๋ง์€, ์•„์นด์ด๋ธŒ์—๋Š” ์ž„์‹œ ์ „์ž ์„ค์น˜ ๋‚ด์—์„œ ์“ฐ๊ฑฐ๋‚˜ ๋ฎ์–ด์จ์•ผ ํ•˜๋Š” ํŒŒ์ผ๊ณผ ํด๋”๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์„ค์น˜๋ฅผ ์‚ฌ์šฉํ•œ ํ›„์—๋Š” ์‹คํ–‰ํ•œ ์•ฑ์— ์˜ํ•ด ์†์ƒ๋œ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์žฌํ™œ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ์ „์ž ์•ฑ์˜ electron_versions ํด๋”์—์„œ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ๋œ ๊ทธ๋•Œ๊นŒ์ง€ ์†์ƒ๋œ ์„ค์น˜ ๋ฒ„์ „์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์†์ƒ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๊ณ ์œ ํ•œ ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ์•„์นด์ด๋ธŒ๊ฐ€ ์ฝ๊ธฐ ์ „์šฉ์ธ ๊ฒฝ์šฐ ์ด๋ก ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ ๋ฐ์ดํ„ฐ๋ฅผ %appdata%๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ๋ชจ๋“œ ์ „์ž ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” ์•ฑ์€ ์‹ค์ œ๋กœ ์ด์‹ ๊ฐ€๋Šฅ(์ž์ฒด ํฌํ•จ)๋˜๋ฏ€๋กœ ํ•ด๋‹น ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๋ฉด ํ•ด๋‹น ์•ฑ์˜ ๊ตฌ์„ฑ์„ ๊ฐ€์ ธ์˜ค๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ์•„๋งˆ๋„ ๊ทธ ํŒŒ์ผ ์œ ํ˜•์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ƒˆ ์„ค์น˜ ํŒŒ์ผ์—์„œ ์ด์ „ ์„ค์น˜ ํŒŒ์ผ์˜ ์‚ฌ๋ณธ์œผ๋กœ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๊ณ  ๋ฎ์–ด์“ฐ๊ณ  ์ƒˆ ์„ค์น˜ ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ฐ์ดํ„ฐ. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ๋ชจ๋“œ ์ „์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์— ๋‹ค์šด๋กœ๋“œ ๋งํฌ๊ฐ€ ์žˆ์œผ๋ฉด ๋ชจ๋“  ์ž‘์—…์ด ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ถ”๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•  git ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” github ๋ฐ bitbucket์„ ์‚ฌ์šฉํ•˜์—ฌ ์•„์นด์ด๋ธŒ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ์„ ํ˜ธ์ŠคํŒ…ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

"curl, wget, aria2c" ๋‹ค์šด๋กœ๋“œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž๋Š” git์„ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.๏ผŒ์˜ค๏ผŒ "gzip,7z" ์••์ถ• ํ’€๊ธฐ zip์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

electron-builder ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” electron-runtime ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. app.asar ํŒŒ์ผ๋งŒ ๊ฐ„๋‹จํ•œ sh ์Šคํฌ๋ฆฝํŠธ์™€ ํ•จ๊ป˜ ๋ฒˆ๋“ค๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค(๋‚˜์ค‘์— ์ด๊ฒƒ์€ Electron ๋‹ค์šด๋กœ๋“œ์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋ณด์—ฌ์ฃผ๋Š” UI๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค). ํ˜„์žฌ๋Š” macOS์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

electron-runtime ํŒจํ‚ค์ง€๋กœ ๋œ ์•ฑ์„ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด๋‹นํ•˜๋Š” ๋ฉ”์ด์ € ๋ฒ„์ „์˜ Electron์„ ๋‹ค์šด๋กœ๋“œ ํ•˜์ง€๋งŒ, Electron์˜ ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€๋Š” ๋ฉ”์ด์ € ๋ฒ„์ „ ์ฆ๋ถ„์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์ด๋„ˆ ๋ฐ ํŒจ์น˜์˜ ๊ฒฝ์šฐ ์ตœ์‹  ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

electron-quick-start ์•ฑ์€ 62KB์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฐ์ƒท:
image

๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด ๋ณ„, PR ๋˜๋Š” ์ด์Šˆ๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.

electron-builder ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํŒจํ‚ค์ง€๋ฅผ ์•ฝ๊ฐ„ ์—…๋ฐ์ดํŠธ ํ–ˆ์Šต๋‹ˆ๋‹ค(์ž‘๋™ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค ). ์ด์ œ Visual Studio Code๋„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! (๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ macOS์—์„œ๋งŒ).

electron-global ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค! ( electron-runtime ๋ฅผ ๊ฐ€์ ธ๊ฐ”๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.) electron-builder ๋‚ด npm ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Electron ๋‹ค์šด๋กœ๋“œ ์ง„ํ–‰๋ฅ ์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ์ค„์ด ์žˆ๋Š” UI๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ „์ž๋ฅผ ๋” ์ข‹๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋” ๋Œ€์ค‘ํ™”๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” Windows ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  MacOS๋ฅผ ์‚ฌ์šฉํ•  ๋ˆ์ด ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ท€ํ•˜์˜ ํ”„๋กœ์ ํŠธ๋Š” ๋งค์šฐ ์„ฑ๊ณต์ ์ผ ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

@nwdxlgzs Windows, macOS ๋ฐ Linux๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค...

์ด ํ”„๋กœ์ ํŠธ๋Š” MAC๋งŒ ์ง€์›ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ์ด ํ›Œ๋ฅญํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ๋„ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งŒ๋“ค์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•˜๊ณ  ์ตœ์‹  ์ •๋ณด๋ฅผ ์œ ์ง€ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
์ €๋„ ์œˆ๋„์šฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณ€๊ฒฝ๋˜๋ฉด ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์Œ, electron-global ์—…์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ฉํ•˜๊ณ  ์ƒˆ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ ๐Ÿ˜

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰