Tauri 1.0 - ๋งž์ถคํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์ž‘์„ ์œ„ํ•ด Electron๊ณผ ๊ฒฝ์Ÿํ•˜๋Š” ํ”Œ๋žซํผ

์›น ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋œ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–์ถ˜ ๋‹ค์ค‘ ํ”Œ๋žซํผ ์‚ฌ์šฉ์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” Tauri 1.0 ํ”„๋กœ์ ํŠธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Tauri์˜ ํ•ต์‹ฌ์€ Electron ํ”Œ๋žซํผ๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋‹ค๋ฅด๊ณ  ๋ฆฌ์†Œ์Šค ์†Œ๋น„๊ฐ€ ์ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” Rust๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ Apache 2.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

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

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ชจ๋“  ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  HTML, JavaScript ๋ฐ CSS๋ฅผ ์ถœ๋ ฅ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ค€๋น„๋œ ํ”„๋ŸฐํŠธ ์—”๋“œ๋Š” ์‚ฌ์šฉ์ž ์ƒํ˜ธ ์ž‘์šฉ ๊ตฌ์„ฑ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฑ์—”๋“œ์™€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. Linux ํ”Œ๋žซํผ์—์„œ ์ฐฝ์„ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด GTK ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(GTK 3 Rust ๋ฐ”์ธ๋”ฉ)๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ macOS ๋ฐ Windows์—์„œ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐœ๋ฐœ๋˜๊ณ  Rust๋กœ ์ž‘์„ฑ๋œ Tao ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด macOS์šฉ WebKit ๋ธŒ๋ผ์šฐ์ € ์—”์ง„, Windows์šฉ WebView2 ๋ฐ Linux์šฉ WebKitGTK์šฉ ํ”„๋ ˆ์ž„์›Œํฌ์ธ WRY ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฉ”๋‰ด ๋ฐ ์ž‘์—… ํ‘œ์‹œ์ค„๊ณผ ๊ฐ™์€ ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ๊ตฌ์„ฑ ์š”์†Œ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‹ค์ค‘ ์ฐฝ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด๋กœ ์ตœ์†Œํ™”ํ•˜๊ณ , ํ‘œ์ค€ ์‹œ์Šคํ…œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์•Œ๋ฆผ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋žซํผ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Windows 7/8/10(.exe, .msi), Linux(.deb, AppImage) ๋ฐ macOS(.app, .dmg)์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. iOS ๋ฐ Android์— ๋Œ€ํ•œ ์ง€์›์€ ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค. ์‹คํ–‰ ํŒŒ์ผ์€ ๋””์ง€ํ„ธ ์„œ๋ช…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด CLI ์ธํ„ฐํŽ˜์ด์Šค, VS Code ํŽธ์ง‘๊ธฐ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๋ฐ GitHub(tauri-action)์šฉ ์–ด์…ˆ๋ธ”๋ฆฌ ์Šคํฌ๋ฆฝํŠธ ์„ธํŠธ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ Tauri ํ”Œ๋žซํผ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Electron ํ”Œ๋žซํผ๊ณผ์˜ ์ฐจ์ด์ ์—๋Š” ํ›จ์”ฌ ๋” ์ปดํŒฉํŠธํ•œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ(Tauri์˜ ๊ฒฝ์šฐ 3.1MB, Electron์˜ ๊ฒฝ์šฐ 52.1MB), ๋‚ฎ์€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„(180MB ๋Œ€ 462MB), ๋†’์€ ์‹œ์ž‘ ์†๋„(0.39์ดˆ ๋Œ€ 0.80์ดˆ), Rust ๋ฐฑ์—”๋“œ ์‚ฌ์šฉ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Node .js ๋Œ€์‹  ์ถ”๊ฐ€ ๋ณด์•ˆ ๋ฐ ๊ฒฉ๋ฆฌ ์กฐ์น˜(์˜ˆ: ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฒ”์œ„ ํŒŒ์ผ ์‹œ์Šคํ…œ).

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€