Maui: [ํ–ฅ์ƒ] VB ์ง€์› โ€‹โ€‹ํฌํ•จ

์— ๋งŒ๋“  2020๋…„ 10์›” 31์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dotnet/maui

์š”์•ฝ

์ด์ „ Xamarin ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ์€ C#๋งŒ ์ง€์›ํ–ˆ์Šต๋‹ˆ๋‹ค. VB๋„ ์ง€์›ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

API ๋ณ€๊ฒฝ ์‚ฌํ•ญ

API๋Š” ๋‹ค๋ฅธ ์–ธ์–ด๋ผ๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์˜๋„๋œ ์‚ฌ์šฉ ์‚ฌ๋ก€

์‚ฌ์šฉ ์‚ฌ๋ก€์—๋Š” ์ฝ”๋“œ์— VB๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ „์ฒด ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ์•„๋‹Œ ๊ธฐ์กด ์ฝ”๋“œ ์กฐ๊ฐ์„ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ€์žฅ ์œ ์ฐฝํ•œ ์–ธ์–ด์— ๋Œ€ํ•ด Intellisense๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉด ๊ฐœ๋ฐœ ์‹œ๊ฐ„์ด ํฌ๊ฒŒ ๋‹จ์ถ•๋˜๊ณ  ๋””๋ฒ„๊น…์ด ๊ฐ„์†Œํ™”๋ฉ๋‹ˆ๋‹ค.

proposal-open

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

VB.NET ๋ฐ C#์—๋Š” ์ถœ๋ ฅ๊ณผ ๋™์ผํ•œ IL ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. C# ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ VB.NET ๊ณต์œ  ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

VB.NET ๋ฐ C#์—๋Š” ์ถœ๋ ฅ๊ณผ ๋™์ผํ•œ IL ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. C# ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ VB.NET ๊ณต์œ  ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ œ ์งˆ๋ฌธ์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ์งˆ๋ฌธ์€ Visual Studio(๊ด€๋ จ ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ)๊ฐ€ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ฐ ๊ณต์œ ๋˜์ง€ ์•Š๋Š” ๊ธฐํƒ€ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ VB๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ๋„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ง€์†์ ์œผ๋กœ ์ •์‹ ์  ๋ณ€ํ™”๋ฅผ ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ถ€๋‹ด์ด ๋˜๋Š” ์ผ์ด๋ฉฐ... ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  C#์œผ๋กœ ์ „ํ™˜ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ VB์—์„œ ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธ ํ•˜๋ฏ€๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ๋‚ด ์ฃผ์š” ์งˆ๋ฌธ์€ Xamarin์ด ์†Œ์Šค ์ƒ์„ฑ๊ธฐ๋ฅผ ํ™œ์šฉํ•˜๋„๋ก ์ฝ”๋“œ ์ƒ์„ฑ์„ ์žฌ์„ค๊ณ„ํ•  ๊ณ„ํš์ž…๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ํ•„์š”ํ•œ ์†Œ์Šค ์ƒ์„ฑ๊ธฐ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ƒ๋Œ€์ ์œผ๋กœ ์‰ฝ๋„๋ก ์„ค๊ณ„๋˜์–ด(VB ์ปค๋ฎค๋‹ˆํ‹ฐ) ์ด๋Ÿฌํ•œ ์†Œ์Šค ์ƒ์„ฑ๊ธฐ์˜ VB ๋ฒ„์ „์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์†Œ์Šค ์ƒ์„ฑ๊ธฐ๋Š” ์—ฌ์ „ํžˆ ๋งค์šฐ ์ƒˆ๋กญ๊ณ  ์‹ค์ œ๋กœ Xamarin์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ "์ˆจ๊ฒจ์ง„" ์ธก๋ฉด์— ๋งž์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์—์„œ ๊ธฐ์ง€์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ;-)

VB.NET ๋ฐ C#์—๋Š” ์ถœ๋ ฅ๊ณผ ๋™์ผํ•œ IL ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. C# ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ VB.NET ๊ณต์œ  ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

"์—ฌ๋Ÿฌ๋ถ„, ์ œ๊ฐ€ ํ•˜๊ณ  ์‹ถ์€ ๋ง์€, ์šฐ๋ฆฌ ๋ชจ๋‘ ์‚ฌ์ด์ข‹๊ฒŒ ์ง€๋‚ผ ์ˆ˜๋Š” ์—†์„๊นŒ์š”? -- ๋กœ๋“œ๋‹ˆ ํ‚น, 1992๋…„ 5์›” 1์ผ.

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

๊ฟˆ์ด ์žˆ์–ด์š”! ์šฐ๋ฆฌ ๋ชจ๋‘ ์ž˜ ์ง€๋‚ด๊ณ , ํ‰ํ™”๋กญ๊ฒŒ ๊ณต์กดํ•˜๊ณ , "ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ๊ธฐ"์˜ ๊ฐœ์ธ์ ์ธ ์„ ํ˜ธ์— ๋”ฐ๋ผ ์„œ๋กœ์˜ ์„ ํƒ์„ ์กด์ค‘ํ•˜๊ณ , .NET ๊ฐœ๋ฐœ์ž์˜ ํ•˜๋‚˜์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๋กœ ๋‹จ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ? ์˜ค, ๊ทธ๊ฒƒ์€ ์–ผ๋งˆ๋‚˜ ๊ฟˆ์ธ๊ฐ€(๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๊ฑฐ์˜ 20๋…„ ๋™์•ˆ ๊พธ๊ณ  ์žˆ์—ˆ๋˜ ๊ฟˆ).

ํ™•์‹คํžˆ ... ์ด๊ฒƒ์ด ์˜ค๋Š˜๋‚  ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ "UI"์— ๋Œ€ํ•œ C# ํ”„๋กœ์ ํŠธ์™€ "๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง"์— ๋Œ€ํ•œ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  .Net ํ”„๋กœ์ ํŠธ๋Š” Xamarin.Forms๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UI๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ VB/F#์ด ๋น„์ฆˆ๋‹ˆ์Šค ๋…ผ๋ฆฌ์—๋งŒ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค.

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

๊ด€๋ จ ๋ฌธ์ œ

PureWeen picture PureWeen  ยท  9์ฝ”๋ฉ˜ํŠธ

probonopd picture probonopd  ยท  50์ฝ”๋ฉ˜ํŠธ

jsuarezruiz picture jsuarezruiz  ยท  12์ฝ”๋ฉ˜ํŠธ

jsuarezruiz picture jsuarezruiz  ยท  6์ฝ”๋ฉ˜ํŠธ

Joshua-Ashton picture Joshua-Ashton  ยท  9์ฝ”๋ฉ˜ํŠธ