Microsoft-ui-xaml: ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ“ž WinUI ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฝœ (2020๋…„ 1์›” 22์ผ)

์— ๋งŒ๋“  2020๋…„ 01์›” 17์ผ  ยท  76์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/microsoft-ui-xaml

์—…๋ฐ์ดํŠธ

๋ผ์ด๋ธŒ๋กœ ๋งŒ๋“ค์–ด์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์—์„œ ๋‚˜๋จธ์ง€ ์งˆ๋ฌธ์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ†ตํ™” ๋…น์Œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://youtu.be/MXTVqgB4rW0


์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„ -

๋‹ค์Œ WinUI ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฝœ์€ 1์›” 22์ผ ์ˆ˜์š”์ผ์— ์žˆ์Šต๋‹ˆ๋‹ค!

์„ธ๋ถ€

๋‚ ์งœ: 1์›” 22์ผ ์ˆ˜์š”์ผ
์‹œ๊ฐ„: 17:00-18:00 UTC (ํƒœํ‰์–‘ ํ‘œ์ค€์‹œ ์˜ค์ „ 9:00-10:

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

์งˆ๋ฌธ/์ฃผ์ œ/ํ”ผ๋“œ๋ฐฑ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!

๊ท€ํ•˜์˜ ์งˆ๋ฌธ์— ๋‹ค์‹œ ๋‹ต๋ณ€ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ• ์• ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฃผ์— ๋‹ค๋ฃจ์—ˆ์œผ๋ฉด ํ•˜๋Š” ์งˆ๋ฌธ์ด๋‚˜ ์ฃผ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์ด ํ˜ธ์— ๋Œ“๊ธ€์„ ๋‚จ๊ฒจ ์ฃผ์„ธ์š”!

WinUI 3 Alpha ๋ฅผ

์˜์ œ

  1. WinUI 2.3 ๋ฆด๋ฆฌ์Šค, 2.4 ๋ฏธ๋ฆฌ๋ณด๊ธฐ
  2. WinUI 3.0 ์•ŒํŒŒ ์ƒํƒœ ์—…๋ฐ์ดํŠธ
  3. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ํ† ๋ก /๋ฐ๋ชจ - ์ผ๋ถ€ ์•ฑ ์ƒ˜ํ”Œ, ProgressRing ์—…๋ฐ์ดํŠธ ๋ฐ WinUI 3์—์„œ ์ œ๊ณต๋˜๋Š” Chromium WebView ์ปจํŠธ๋กค์„ ํฌํ•จํ•˜์—ฌ ์ƒˆ๋กœ์šด WinUI 2 ๋ฐ 3 ํ•ญ๋ชฉ์„ ์‹œ์—ฐํ•ฉ๋‹ˆ๋‹ค.
  4. Q&A - ์ด๋ฒˆ ํ˜ธ(๋Œ“๊ธ€์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!)์™€ ํ†ตํ™” ์ค‘์— ๋‚˜์˜ค๋Š” ๋ชจ๋“  ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
discussion hot

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

๋ฐฉ ์•ˆ์˜ ์ฝ”๋ผ๋ฆฌ - WinRT (#1856)

์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ์•ฑ ๋ชจ๋ธ์ด ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ WPF(Win32 API ํฌํ•จ)์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ ์ตœ์‹  WinRT API์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Direct X 12์—์„œ ์‹คํ–‰๋˜๋Š” ์ƒˆ๋กœ์šด XAML์ด ํฌํ•จ๋œ ์˜คํ”ˆ ์†Œ์Šค UI ๋ฐ ์ปจํŠธ๋กค์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

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

์ปจํŠธ๋กค ๋ฐ ๊ธฐ๋ณธ๊ฐ’์—์„œ nullable ๋ฐ์ดํ„ฐ ํ˜•์‹์— ๋Œ€ํ•œ ์ง€์›์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด DateTimeOffset์„ ๋ฐ˜ํ™˜ํ•˜๋Š” DatePicker ์™€ DateTimeOffset?์„ ๋ฐ˜ํ™˜ํ•˜๋Š” CalendarDatePicker ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด ์ค‘ ํ•˜๋‚˜๋Š” nullable์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” nullable์ด ์•„๋‹Œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? DatePicker๊ฐ€ Windows 8 ์‹œ๊ฐ„๋Œ€์— ์ด์ „ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๊นŒ?
  • ์ปจํŠธ๋กค์—์„œ null์„ ํ—ˆ์šฉ/๋น„ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
  • NumberBox์™€ ๊ฐ™์€ ์ƒˆ ์ปจํŠธ๋กค์— ๋Œ€ํ•ด DefaultValue ์†์„ฑ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ, NaN์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๊ธฐ๋ณธ null์„ ์‚ฌ์šฉํ•˜์—ฌ nullable double๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
  • NumberBox์˜ Value ์†์„ฑ์„ nullable๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” nullable ๊ฐ’ ๋ฐ˜ํ™˜ ๋ฐ ์ง€์›์— WinRT/OS XAML ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด CalendarDatePicker๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๊นŒ?
  • ์ด๊ฒƒ์€ #1721 ๋ฐ #1708์˜ NumberBox ํ† ๋ก ๊ณผ ์ง์ ‘์ ์ธ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

ํ† ๋ก ํ•  ๋˜ ๋‹ค๋ฅธ ํฅ๋ฏธ๋กœ์šด ์•„์ด๋””์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. WinUI 3.0์ด ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ „ํ™˜๋˜๋Š” ์ง€๊ธˆ Microsoft์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ณผ๊ฑฐ์— Microsoft๋Š” ์‚ฌ์‹ค์ƒ ํš๊ธฐ์ ์ธ ๋ณ€๊ฒฝ์„ ํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  ํ˜ผ๋ž€์ด ๋ช‡ ๋…„(๋˜๋Š” 10๋…„) ํ›„์— ์Œ“์ผ ๋•Œ๊นŒ์ง€๋Š” ์ข‹์€ ์ผ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์˜ ํ‘œ์ค€์ด ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒฐ๊ตญ ListBox๋Š” ListView์— ๋Œ€ํ•ด ๋‹จ๊ณ„์ ์œผ๋กœ ์ค‘๋‹จ๋˜๊ณ  MessageDialog๋Š” ContentDialog์— ๋Œ€ํ•ด ๋‹จ๊ณ„์ ์œผ๋กœ ์ค‘๋‹จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. API์—๋„ ๋” ๋‚˜์€ ์ž‘์€ ์ •๋ฆฌ๊ฐ€ ๋งŽ์ด ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

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

์ฃผ์š” ๋ฆด๋ฆฌ์Šค(์˜ˆ: WinUI 4.0)๋ฅผ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณผ๊ฑฐ์˜ ๋ชจ๋“  ์‹ค์ˆ˜๋ฅผ ์•ˆ๊ณ  ์‚ด์ง€ ์•Š๊ณ ๋„ ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ณ„์† ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ Microsoft๋Š” .NET Core๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  ์ „์ฒด .NET Framework๋ฅผ ์‚ญ์ œํ•˜์—ฌ .NET 5๋กœ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋กœ ์ด๋ฏธ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋…ผ์˜๊ฐ€ ๋๋‚˜๋ฉด ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ ํ˜ธ์ถœ ์ดํ›„์˜ ์ง„ํ–‰ ์ƒํ™ฉ์— ๋”ฐ๋ผ ํŒ€์€ ์–ธ์ œ WinUI 3๊ฐ€ ์ถœ์‹œ๋  ์ค€๋น„๊ฐ€ ๋  ๊ฒƒ์ด๋ผ๊ณ  ํ˜„์‹ค์ ์œผ๋กœ ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

  • ๋นŒ๋“œ 2020(4์›”-5์›”)
  • Ignite 2020(10์›”-11์›”)
  • ~2021๋…„

๋˜ํ•œ ์ƒˆ๋กœ์šด AOT ์†”๋ฃจ์…˜๊ณผ .NET 5๋ฅผ ํ†ตํ•ฉํ•˜๋Š” .NET ํŒ€์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์ž‘์—…์€ ์–ผ๋งˆ๋‚˜ ์˜์กด์ ์ž…๋‹ˆ๊นŒ?

๋งˆ์ง€๋ง‰์œผ๋กœ, Windows 10X ๋ฆด๋ฆฌ์Šค๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•ด์•ผ ํ•˜๋Š” Windows ์ธก์˜ ์••๋ ฅ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

WinUI 2.X ํ”„๋กœ์ ํŠธ๋ฅผ WinUI 3.0์œผ๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ฐฉ ์•ˆ์˜ ์ฝ”๋ผ๋ฆฌ - WinRT (#1856)

๋ฐฉ ์•ˆ์˜ ์ฝ”๋ผ๋ฆฌ - WinRT (#1856)

์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ์•ฑ ๋ชจ๋ธ์ด ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ WPF(Win32 API ํฌํ•จ)์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ ์ตœ์‹  WinRT API์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Direct X 12์—์„œ ์‹คํ–‰๋˜๋Š” ์ƒˆ๋กœ์šด XAML์ด ํฌํ•จ๋œ ์˜คํ”ˆ ์†Œ์Šค UI ๋ฐ ์ปจํŠธ๋กค์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ์•ฑ ๋ชจ๋ธ์ด ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ WPF(Win32 API ํฌํ•จ)์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ ์ตœ์‹  WinRT API์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Direct X 12์—์„œ ์‹คํ–‰๋˜๋Š” ์ƒˆ๋กœ์šด XAML์ด ํฌํ•จ๋œ ์˜คํ”ˆ ์†Œ์Šค UI ๋ฐ ์ปจํŠธ๋กค์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์šฐ์™€. ์™€์šฐ ์™€์šฐ!!!!

๊ทธ๊ฒƒ์€ ๋†€๋ผ์šด ๊ฒƒ ์ด์ƒ์ž…๋‹ˆ๋‹ค! ์ด์— ๋Œ€ํ•œ ETA๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ํ†ตํ™”์—์„œ ๋…ผ์˜ํ•  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ?

์—„์ฒญ๋‚˜๊ฒŒ ๊ต‰์žฅํ•˜๋‹ค!

์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ์•ฑ ๋ชจ๋ธ์ด ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ WPF(Win32 API ํฌํ•จ)์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ ์ตœ์‹  WinRT API์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Direct X 12์—์„œ ์‹คํ–‰๋˜๋Š” ์ƒˆ๋กœ์šด XAML์ด ํฌํ•จ๋œ ์˜คํ”ˆ ์†Œ์Šค UI ๋ฐ ์ปจํŠธ๋กค์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์šฐ์™€. ์™€์šฐ ์™€์šฐ!!!!

๊ทธ๊ฒƒ์€ ๋†€๋ผ์šด ๊ฒƒ ์ด์ƒ์ž…๋‹ˆ๋‹ค! ์ด์— ๋Œ€ํ•œ ETA๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ํ†ตํ™”์—์„œ ๋…ผ์˜ํ•  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ?

์—„์ฒญ๋‚˜๊ฒŒ ๊ต‰์žฅํ•˜๋‹ค!

๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ WinUI์— ๋Œ€ํ•ด ๋ฐฐ์šด ์ฒซ ๋ฒˆ์งธ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ETA๋Š” ์˜ฌํ•ด๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ //Build/์—์„œ ์ •ํ™•ํ•œ ๋‚ ์งœ๊ฐ€ ์ œ๊ณต๋  ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ†ตํ™” ์ค‘์— ์ž์œ ๋กญ๊ฒŒ ์งˆ๋ฌธํ•˜์‹ญ์‹œ์˜ค.

https://github.com/microsoft/microsoft-ui-xaml/blob/master/docs/roadmap.md

@jtorjo WinUI ๋กœ๋“œ๋งต์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๋˜ํ•œ ์ž์„ธํ•œ ์ •๋ณด(์˜ˆ: VS ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ)๋Š” https://github.com/microsoft/microsoft-ui-xaml/issues/1045 ๋ฅผ ์ฐธ์กฐ

@mdtauk @Felix-Dev ๊ทธ ๋ฌธ์„œ๋ฅผ ๋‹ค์‹œ ์ฝ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ „์— ์ด๊ฒƒ์„ ๋ฌผ์–ด๋ดค๋˜ ๊ธฐ์–ต์ด ๋‚ฉ๋‹ˆ๋‹ค. (์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์•„๋‹Œ) ์•ฑ์—์„œ win2d๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋”ํ•  ๋‚˜์œ„ ์—†์ด ํ–‰๋ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

@jesbis ๋ฉ์ฒญํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค - ํ†ตํ™”์— ์–ด๋–ป๊ฒŒ ์ฐธ์—ฌํ•ฉ๋‹ˆ๊นŒ?

์˜ค๋Š˜ ์˜คํ›„์— ๋‚ด์ผ ํ†ตํ™”๋ฅผ ์œ„ํ•œ ์ •๋ณด๋ฅผ ์„ค์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ์‹œ๊ฐ„ ํ›„์— ์•ˆ๋‚ด๋ฅผ ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ง€์—ฐ์€ ์ƒˆ๋กœ์šด ๋ฐฉ์†ก ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ฒ˜์Œ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ดํ›„์—๋Š” ๋” ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰๋˜๊ณ  ๋” ์ผ์ฐ ์ค€๋น„๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿ™‚

๋‚˜๋Š” (์–ด์จŒ๋“  ๋‚˜์—๊ฒŒ) ํฅ๋ฏธ๋กœ์šด ์ƒ๊ฐ์„ ํ–ˆ๋‹ค.

์˜ค๋Š˜์˜ ASP.NET Community Standup ๋ผ์ด๋ธŒ ์ŠคํŠธ๋ฆผ์„ ์‚ดํŽด๋ณด๋ฉด ๊ธฐ์ˆ  ๋ฐ๋ชจ์— ๊ฐ€๊น๊ธด ํ•˜์ง€๋งŒ ๋ณธ์งˆ์ ์œผ๋กœ 4๋ช…์˜ MS ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ผ์ด๋ธŒ ์ฝ”๋”ฉ ์ŠคํŠธ๋ฆผ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ๋ผ์ด๋ธŒ ์ฝ”๋”ฉ ์„ธ์…˜์—์„œ ์ „์ฒด๋ฅผ ์ˆ˜ํ–‰ ํ•˜๋Š” Twitch์˜ ๋“ฃ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚ด ์ƒ๊ฐ์€ - WinUI 3๊ฐ€ ์ถœ์‹œ๋˜๊ณ  ์ฝ”๋“œ๋ฒ ์ด์Šค(๋˜๋Š” ๋Œ€๋ถ€๋ถ„)๊ฐ€ ๋ชจ๋‘ ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ๋œ ํ›„ ํŒ€ ๊ตฌ์„ฑ์›์ด ๊ฐ€๋” WinUI์—์„œ ์ž‘์—… ์ค‘ ์ผ๋ถ€๋ฅผ ๋ผ์ด๋ธŒ ์ŠคํŠธ๋ฆฌ๋ฐํ•  ์ˆ˜ ์žˆ์„๊นŒ?

WinUI ๋…ธ์ถœ์„ ๋Š˜๋ฆฌ๊ณ  ์‚ฌ๋žŒ๋“ค์ด ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์‰ฝ๊ฒŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๊ณ  ๋•Œ๋•Œ๋กœ ์งˆ๋ฌธ์„ ๋˜์งˆ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ~๋‚˜๋Š” ๋งค์šฐ ๋น„์ƒ์‚ฐ์ ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ•ญ์ƒ ์ „์ฒด ์ฑ„ํŒ… ์ฐธ์—ฌ๋ฅผ ๊ถŒ์žฅํ•˜์ง€ ์•Š์ง€๋งŒ ๊ฐ€๋”์€ Q&A๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ ๊ทผ๋ฌด ์‹œ๊ฐ„์—๋Š” MS ์ •์ฑ…์ด ์–ด๋–ค ์œ ํ˜•์ธ์ง€ ์ „ํ˜€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์ƒ๊ฐ์„ ๋“ฃ๋Š” ๊ฒƒ์ด ํฅ๋ฏธ๋กœ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด์ผ์˜ ์œ ํŠœ๋ธŒ ๋ผ์ด๋ธŒ ์ด๋ฒคํŠธ ๋งํฌ์ž…๋‹ˆ๋‹ค!

https://youtu.be/MXTVqgB4rW0

์ง€๊ธˆ๊นŒ์ง€ ๋ชจ๋“  ์˜๊ฒฌ๊ณผ ์งˆ๋ฌธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒƒ์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ด๊ณ , ์‹œ๊ฐ„์ด ์—†์„ ๊ฒฝ์šฐ ํ›„์† ์กฐ์น˜๋ฅผ ์ถ”์ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ€์ด๋“œ์— UI์˜ ์„ฑ๋Šฅ/fps์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ตœ์‹  Windows 10์— ๋Œ€ํ•œ ๊ฐ€์žฅ ํฐ ๋ถˆ๋งŒ ์ค‘ ํ•˜๋‚˜๋Š” Surface Book๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ์—์„œ ๋†’์€ DPI ๋””์Šคํ”Œ๋ ˆ์ด์—์„œ ๋”์ฐํ•œ ์„ฑ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํˆฌ๋ช…๋„์™€ ์ถ”๊ฐ€ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ๊ฒฐํ•ฉํ•˜๋ฉด ๋”์šฑ ์•…ํ™”๋ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„ ๋ฐ–์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ํŠนํžˆ ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์—์„œ ์–ผ๋งˆ๋‚˜ ์œ ์—ฐํ•˜๊ณ  ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ณ ๋ ค ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํ…Œ๋‘๋ฆฌ ์—†๋Š”/ํˆฌ๋ช…ํ•œ ์ฐฝ์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค(https://github.com/microsoft/microsoft-ui-xaml/issues/1247). ์ด๊ฒƒ์€ ์šฐ๋ฆฌ ์™€ ๊ฐ™์€ ์•ฑ์„ ์œ„ํ•œ WinUI ์ฑ„ํƒ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค.

์ฐธ์กฐ: @crutkas

๊ฒฝ๊ณ„์„ ์ด ์—†๋Š”/ํˆฌ๋ช…ํ•œ ์ฐฝ์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค(a la #1247). ์ด๊ฒƒ์€ ์šฐ๋ฆฌ ์™€ ๊ฐ™์€ ์•ฑ์„ ์œ„ํ•œ WinUI ์ฑ„ํƒ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค.

์ฐธ์กฐ: @crutkas

์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” WPF์™€ ์œ ์‚ฌํ•œ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ WinUI Xaml์— ์ถ”๊ฐ€๋œ ์ตœ์ƒ์œ„ ์ฐฝ ์š”์†Œ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #1323

WinUI์— ๋Œ€ํ•œ '์œˆ๋„์šฐ์˜ ๋ฏธ๋ž˜'์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ ์–ด๋„ ๋…ผ์˜/์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๋ จ ์š”์ฒญ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋งˆ ์ „์— ๋ฌผ์–ด๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ํ•ญ์ƒ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์˜ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋‘ ๊ฐ€์ง€ ์งˆ๋ฌธ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

  1. .NET Core 3 ๋ฐ C# 8.0 ์ง€์›์ด ๊ณง ์ œ๊ณต๋˜๋‚˜์š”?
  2. UWP/WinUI ํŒ€์—์„œ Uno Platform ์•ฑ์„ ๋” ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€ ๋‹จ๊ณ„๋ฅผ ์‚ดํŽด๋ณผ๊นŒ์š”?

๋˜ ํ•˜๋‚˜, UWP์—์„œ ์ง€์›๋˜๋Š” WPF์˜ ๋ˆ„๋ฝ๋œ ๋น„ํŠธ๋Š” ์–ธ์ œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋งˆ ์ „์— ๋ฌผ์–ด๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ํ•ญ์ƒ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์˜ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋‘ ๊ฐ€์ง€ ์งˆ๋ฌธ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

  1. .NET Core 3 ๋ฐ C# 8.0 ์ง€์›์ด ๊ณง ์ œ๊ณต๋˜๋‚˜์š”?
  2. UWP/WinUI ํŒ€์—์„œ Uno Platform ์•ฑ์„ ๋” ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€ ๋‹จ๊ณ„๋ฅผ ์‚ดํŽด๋ณผ๊นŒ์š”?

๋˜ ํ•˜๋‚˜, UWP์—์„œ ์ง€์›๋˜๋Š” WPF์˜ ๋ˆ„๋ฝ๋œ ๋น„ํŠธ๋Š” ์–ธ์ œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

.NET Core ์ฝ”๋“œ๋Š” ๋‘˜ ๋‹ค์—์„œ ์ž‘๋™ํ•ด์•ผ ํ•˜๋ฏ€๋กœ WPF ์•ฑ์€ UI Xaml ๋ฐ UI ์ฝ”๋“œ๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

UWP ์•ฑ์€ WinUI 3.0์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ณ€๊ฒฝ์œผ๋กœ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ๋ฒ—์–ด๋‚˜๋ ค๋ฉด ๋” ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ์•„์ง ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

WPF ๋ˆ„๋ฝ ๋น„ํŠธ๊ฐ€ ํ™•์ธ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ด์— ๋Œ€ํ•ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. #719

@weitzhandler

๊ณต์‹์ ์œผ๋กœ ์ง€์›๋˜์ง€ ์•Š๊ณ  ๋ชจ๋“  C# 8 ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ด๋ฏธ ๋Œ€๋ถ€๋ถ„์˜ C# 8์„ WinUI/UWP์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐ

๋‚˜๋Š” ์ด๊ฒƒ์„ํ•˜๊ณ  ์–ด๋–ค ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ "๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค ๋ฉค๋ฒ„ ๋ฐ ์ธ๋ฑ์Šค ๋ฐ ๋ฒ”์œ„"๊ฐ€ ์œ ์ผํ•˜๊ฒŒ ๋ˆ„๋ฝ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

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

๊ณ ๋งˆ์›Œ์š”.
๋‚ด๊ฐ€ ์—ฌ์ „ํžˆ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด์ „ csproj ์œ ํ˜•๋„ ๋‹ค์†Œ ์„ฑ๊ฐ€์‹œ๋‹ค.

@jesbis

๋ฐฉ๊ธˆ XAML ์ปจํŠธ๋กค ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ์ด ๋ฌธ์ œ ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. ์›ํ•œ๋‹ค๋ฉด ํ†ตํ™” ์ค‘์— ๋…ผ์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์งˆ๋ฌธ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!


๊ฐ€์ด๋“œ์— UI์˜ ์„ฑ๋Šฅ/fps์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@ryvanvel ์—ฌ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ์„ฑ๋Šฅ ์ง€์นจ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

https://docs.microsoft.com/windows/uwp/debug-test-perf/performance-and-xaml-ui

๊ทธ๋ฆฌ๊ณ  ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ ๋ฐ ๋น„๋””์˜ค, ์˜ˆ:

https://blogs.windows.com/windowsdeveloper/2015/10/07/optimizing-your-xaml-app-for-performance-10-by-10/

https://channel9.msdn.com/Events/Build/2015/3-698

https://channel9.msdn.com/Events/Build/2017/P4173

์ด ๋ฒ„๊ทธ๋Š” ๋‚ด๊ฐ€ ๊ธฐ์–ตํ•˜๋Š” ํ•œ Windows 10์—์„œ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ๋” ๋นจ๋ฆฌ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. https://github.com/microsoft/microsoft-ui-xaml/issues/597

๋ถˆํ–‰ํžˆ๋„ ์ œ ์‹œ๊ฐ„์— ๋งž์ถœ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋…น์Œ์ด ๋ ๊นŒ์š”?

ํŽธ์ง‘: ํ†ตํ™” ๋…น์Œ์€ ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: https://www.youtube.com/watch?v=MXTVqgB4rW0

@jesbis ์—ฌ๊ธฐ :

๋‚ด์ผ์˜ ์œ ํŠœ๋ธŒ ๋ผ์ด๋ธŒ ์ด๋ฒคํŠธ ๋งํฌ์ž…๋‹ˆ๋‹ค!
https://youtu.be/MXTVqgB4rW0

YT ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉด ์ •๊ทœ ์‹œ๊ฐ„๋ณด๋‹ค ํ•œ ์‹œ๊ฐ„ ๋Šฆ์€ ์ด ์‹œ๊ฐ„์ด ๋๋‚  ๋•Œ๋งŒ ์‹œ์ž‘๋˜๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ ์‚ฌ์‹ค์ธ๊ฐ€์š”?

@weitzhandler ์‹œ์ž‘ ์‹œ๊ฐ„์€ ๊ฒŒ์‹œ๋ฌผ ์ƒ๋‹จ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋˜ํ•œ ์„ธ ๋ฒˆ์งธ ํ˜ธ์ถœ์ด๋ฏ€๋กœ "regular"๋Š” ํ™•์žฅ์ž…๋‹ˆ๋‹ค.

@weitzhandler ์ง€๊ธˆ๊นŒ์ง€ ์„ธ ๋ฒˆ์˜ ์ „ํ™” ๋ชจ๋‘ ํƒœํ‰์–‘ ํ‘œ์ค€์‹œ๋กœ ์˜ค์ „ 9์‹œ์— ์‹œ์ž‘๋  ์˜ˆ์ •์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๋ถ„ ๊ฐ์‚ฌํ•˜๊ณ  ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ณง ๋ด์š”.

Chromium ๊ธฐ๋ฐ˜ WebView2 ๊ฐ€ ํ˜„์žฌ WebView ์—์„œ WebResourceRequested ์™€ ๊ฐ™์€ ์ด๋ฒคํŠธ๋ฅผ ๋…ธ์ถœํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ณ„ ์›น ์š”์ฒญ์„ ๊ฑธ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๊ฐ€ ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚ด ์•ฑ ์ค‘ ํ•˜๋‚˜์—์„œ ๊ทธ ํŠน์ • ๊ธฐ๋Šฅ์— ๋งŽ์ด ์˜์กดํ•˜๋ฉฐ ๊ทธ๊ฒƒ์ด ์ƒˆ๋กœ์šด ์ปจํŠธ๋กค๊ณผ ํ•จ๊ป˜ ์—ฌ์ „ํžˆ ์ฃผ๋ณ€์— ์žˆ๊ณ  ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋‘๋“ค ๊ณ ์ƒํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ˜„๐Ÿš€

PDF๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? Win2D์—๋Š” ์ด๋ฏธ ๋งŽ์€ ๋†€๋ผ์šด ๋„๊ตฌ๊ฐ€ ์žˆ์œผ๋ฉฐ CanvasRenderTarget ์—์„œ PDF๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ์–ป์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค - vsix๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•? ์–ด๋””์—์„œ ๋‹ค์šด๋กœ๋“œ?

์ €๋งŒ ๊ทธ๋Ÿฐ๊ฑด์ง€๋„ ๋ชจ๋ฅด์ง€๋งŒ ์˜ค๋Š˜ ํ†ตํ™”์— ์‹ค๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๊ธฐ์ˆ  ์ธ๋ ฅ์„ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค. PM์€ ํ† ๋ก ์˜ ์ดˆ์ ์„ ์œ ์ง€ํ•˜๊ณ  ์ผ์ •์— ๋งž๊ฒŒ ์›€์ง์—ฌ์•ผ ํ•˜์ง€๋งŒ ์‘๋‹ต์„ ์ „๋ฌธ๊ฐ€์—๊ฒŒ ์œ„์ž„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋งˆ์ง€๋ง‰์— ๋” ๋งŽ์ด ์ˆ˜ํ–‰๋จ).

์ด ํ†ตํ™”์— ์ฐธ์—ฌํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๊ฐœ๋ฐœ์ž์ด๊ณ  ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์•Œ๊ณ  ๋…ผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. PM์€ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ธ ์ฃผ์ œ์— ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ์žˆ์œผ๋ฉฐ ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์„œ/WebView/ProgressRing์— ๋Œ€ํ•œ ํ˜ธ์ถœ ์‹œ์ž‘ ๋ถ€๋ถ„์˜ ํ† ๋ก ์€ ๊ฐœ๋…์ ์œผ๋กœ๋Š” ํ›Œ๋ฅญํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ๊ธฐ๋ณธ์ ์ด์–ด์„œ ์šฐ๋ฆฌ์—๊ฒŒ ์œ ์šฉํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ˆ˜์‹ญ ๋…„ ๋™์•ˆ XAML์„ ์‚ฌ์šฉํ•ด ์™”์œผ๋ฉฐ ์ „๋ฌธ ์ฒญ์ค‘๊ณผ ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์ฒญ์ค‘์—๊ฒŒ ํ”„๋ ˆ์  ํ…Œ์ด์…˜์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•จ).

@SavoySchuler ๋‹น์‹ ์€ ๋ณธ์งˆ์ ์œผ๋กœ ์šฐ๋ฆฌ ํšŒ์‚ฌ์™€ ์•ฑ์„ ํฌํ•จํ•˜์—ฌ ์šฐ๋ฆฌ๊ฐ€ ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ•„์š”ํ•œ ์žฌ๋ฃŒ์™€ ์ข‹์€ ๊ฒƒ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‘ ๊ฐ€์ง€์— ๋Œ€ํ•ด ๋‹ค๋ฅด๊ฒŒ ์ƒ๊ฐํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๊ธฐ๋Šฅ -- ์ด ๊ฒฝ์šฐ ๊ท€ํ•˜๊ฐ€ ๋งํ•œ ๋‚ด์šฉ์ด ๋Œ€์ฒด๋กœ ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฒ„๊ทธ/์ด์Šˆ -- ์ด ๊ฒฝ์šฐ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ œํ’ˆ์„ ๋ฐฐ์†กํ•  ๋•Œ ํ’ˆ์งˆ์ด ์ตœ์šฐ์„ ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์—๊ฒŒ ๋ฒ„๊ทธ๋ฅผ ๋งํ•˜๊ณ  ๋‹น์‹ ์€, ์Œ, ๋„ค, ๊ทธ๊ฒƒ์€ ์ข‹์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ˆ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•˜์‹ญ์‹œ์˜ค. ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. ์†Œ๋น„์ž์—๊ฒŒ ์•ฑ์„ ์ œ๊ณตํ•œ ์ ์ด ์—†์Šต๋‹ˆ๊นŒ? ์กฐ๊ธˆ์ด๋ผ๋„ ์ž˜๋ชป๋œ ๊ฒƒ์€ ํšŒ์‚ฌ์˜ ๊ฐ€์žฅ ๊ฐ€์น˜ ์žˆ๋Š” ๋ถ€๋ถ„์ธ ์ด๋ฏธ์ง€์™€ ์ธ์‹์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์•ฑ ์‚ฐ์—…์€ ๊ฒฝ์Ÿ์ด ๋งค์šฐ ์น˜์—ดํ•ฉ๋‹ˆ๋‹ค.

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

ํ†ตํ™”์—์„œ ๋‚˜๋Š” ์œˆ๋„์šฐ๋ฅผ ๋‘ ๋ฒˆ ์–ธ๊ธ‰ํ–ˆ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๊ฒƒ์€ ์‹ค์ œ๋กœ WinUI 3์—์„œ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค(๋ฌธ์ œ๊ฐ€ ๊ณ ์ •๋˜์—ˆ์ง€๋งŒ https://github.com/microsoft/microsoft-ui-xaml/issues/1247).
  • ๊ธฐ๋Šฅ ์ถ”์  ํ”„๋กœ์ ํŠธ(์–ด์ œ ์—…๋ฐ์ดํŠธ๋จ)(https://github.com/microsoft/microsoft-ui-xaml/projects/4)๋Š” WinUI 2 ํ•ญ๋ชฉ๋งŒ ์ถ”์ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๊ธฐ์„œ ๋ช…ํ™•์„ฑ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? WinUI 3 ๋ฐฑ๋กœ๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์œ„์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌด์—‡์ด ์˜ค๊ณ  ๋ฌด์—‡์ด ์˜ค์ง€ ์•Š๋Š”์ง€ ์•„๋Š” ๊ฒƒ์€ ๊ณ„ํš ๋ชฉ์ ์— ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

@SavoySchuler @jesbis ๋ฐ ๋‚˜๋จธ์ง€ ๋ฉ‹์ง„ WinUI ํŒ€, ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๊ท€ํ•˜์˜ ํ›Œ๋ฅญํ•œ ์ž‘์—…๊ณผ ์—„์ฒญ๋‚œ ๋…ธ๋ ฅ์— ๊ฐ์‚ฌํ•˜๊ณ  WinUI๋ฅผ ํ›Œ๋ฅญํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ๋ชจ๋“  ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•ด ์ค€ ๊ฒƒ์— ๋Œ€ํ•ด ์–ผ๋งˆ๋‚˜ ๊ฐ์‚ฌํ•œ์ง€ ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์กฐ์ •ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์˜ค๋””์˜ค ๋ฐ ํŒ€ โ€‹โ€‹๋ฌธ์ œ์— ๋Œ€ํ•ด ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ๋ฌธ์ œ๋ฅผ ํ™•์ธํ–ˆ์œผ๋ฉฐ ๋‹ค์Œ ๋‹ฌ์— ๋ชจ๋“  ๊ฒƒ์ด ์ •๋ ฌ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋…น์Œ์ด ๋˜์ง€ ์•Š์€ ๋ถ„๋“ค์„ ์œ„ํ•ด ์ง€๊ธˆ ๋ผ์ด๋ธŒ ์ค‘์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์งˆ๋ฌธ์„ ์‚ดํŽด๋ณด๊ณ  ์žˆ์œผ๋ฉฐ ์ด ์Šค๋ ˆ๋“œ์—์„œ ๋†“์นœ ๋ถ€๋ถ„์„ ์ฐพ์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์งˆ๋ฌธ:

PDF๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@MuziburRahman

์šฐ๋ฆฌ๋Š” WinUI 3.0 RTM์— ๋Œ€ํ•ด ์ด๊ฒƒ์„ ์–ป์„ ์‹œ๊ฐ„์ด ์—†์ง€๋งŒ #672๋กœ ๋ฐฑ๋กœ๊ทธ์—์„œ ์ด๊ฒƒ์„ ์ถ”์ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค - ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ์ž์œ ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค!


vsix๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•? ์–ด๋””์—์„œ ๋‹ค์šด๋กœ๋“œ?

@hannespreishuber

ํ”„๋กœ๋•์…˜ ์•ฑ์— ๋Œ€ํ•œ WinUI 2.x ์‚ฌ์šฉ ์ง€์นจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://docs.microsoft.com/uwp/toolkits/winui/getting-started

vsix๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ ์œ„ํ•œ WinUI 3.0 Alpha ์ง€์นจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://aka.ms/winui/alpha


์ €๋งŒ ๊ทธ๋Ÿฐ๊ฑด์ง€๋„ ๋ชจ๋ฅด์ง€๋งŒ ์˜ค๋Š˜ ํ†ตํ™”์— ์‹ค๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๊ธฐ์ˆ  ์ธ๋ ฅ์„ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค. PM์€ ํ† ๋ก ์— ์ง‘์ค‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. [...] ์šฐ๋ฆฌ๋Š” XAML์„ ์ˆ˜์‹ญ ๋…„ ๋™์•ˆ ์‚ฌ์šฉํ•ด ์™”์œผ๋ฉฐ ์ „๋ฌธ๊ฐ€ ์ฒญ์ค‘๊ณผ ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์ฒญ์ค‘์—๊ฒŒ ํ”„๋ ˆ์  ํ…Œ์ด์…˜์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•จ).

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

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ๋งŽ์€ ์ฒญ์ค‘์ด ์•„์ง WinUI์— ์ต์ˆ™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋•Œ๋•Œ๋กœ ๋„ˆ๋ฌด ๊ธฐ์ˆ ์ ์ด๊ณ  ๋„ˆ๋ฌด ๊นŠ์ด ์žˆ๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๊ณผ๊ฑฐ์— ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๊ทธ ํ”ผ๋“œ๋ฐฑ์˜ ๊ท ํ˜•์„ ๋งž์ถ”๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด: ๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ ํŒ€์˜ ๋งŽ์€ PM์€ ๋›ฐ์–ด๋‚œ ๊ธฐ์ˆ ์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ฃผ์š” ํ”Œ๋žซํผ ๋ฐ ์‹ค์ œ ์•ฑ์„ ์œ„ํ•œ ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค ์ค‘ ์ผ๋ถ€๋Š” ์ด์ „์— Microsoft ๋ฐ ๊ธฐํƒ€ ํšŒ์‚ฌ์—์„œ ์ •๊ทœ์ง ๊ฐœ๋ฐœ์ž์˜€์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ํ•ญ์ƒ PM์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์œ ์ผํ•œ ์ดˆ์ ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๐Ÿ™‚

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฒ„๊ทธ ๋ฐ ํ’ˆ์งˆ: ํ’ˆ์งˆ์€ ์šฐ๋ฆฌ์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•˜๋ฉฐ ๋ฒ„๊ทธ, ํ…Œ์ŠคํŠธ ๋ฐ ํ’ˆ์งˆ ์ธํ”„๋ผ์— ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•ฉ๋‹ˆ๋‹ค. WinUI 2์˜ ์ปค๋ฐ‹ ๋กœ๊ทธ์—์„œ ํ’ˆ์งˆ ์ˆ˜์ • ์‚ฌํ•ญ๊ณผ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์˜ ๋น„์œจ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ๋‹จ ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ๋˜๋ฉด WinUI 3์—์„œ๋„ ๋™์ผํ•œ ๋‚ด์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ฒ„๊ทธ๊ฐ€ ์—†๋Š” ์ฃผ์š” ์ฝ”๋“œ๋ฒ ์ด์Šค๋Š” ์—†์œผ๋ฉฐ ์šฐ๋ฆฌ๋Š” ํ•ญ์ƒ ๋น„์ฆˆ๋‹ˆ์Šค ์šฐ์„  ์ˆœ์œ„์˜ ๊ท ํ˜•์„ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ปจํŠธ๋กค์ด ๋ถˆ์™„์ „ํ•œ ๊ฒƒ ๊ฐ™์œผ๋ฉด ํ•ด๋‹น ์ปจํŠธ๋กค์— ๋Œ€ํ•ด ๊ณต๊ฐœ ๋ฌธ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.


ํ†ตํ™”์—์„œ ๋‚˜๋Š” ์œˆ๋„์šฐ๋ฅผ ๋‘ ๋ฒˆ ์–ธ๊ธ‰ํ–ˆ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ์‹ค์ œ๋กœ WinUI 3์—์„œ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค(๋ฌธ์ œ๊ฐ€ #1247๋กœ ๊ณ ์ •๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ )
๊ธฐ๋Šฅ ์ถ”์  ํ”„๋กœ์ ํŠธ(์–ด์ œ ์—…๋ฐ์ดํŠธ๋จ)(https://github.com/microsoft/microsoft-ui-xaml/projects/4)๋Š” WinUI 2 ํ•ญ๋ชฉ๋งŒ ์ถ”์ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
์—ฌ๊ธฐ์„œ ๋ช…ํ™•์„ฑ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? WinUI 3 ๋ฐฑ๋กœ๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์œ„์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌด์—‡์ด ์˜ค๊ณ  ๋ฌด์—‡์ด ์˜ค์ง€ ์•Š๋Š”์ง€ ์•„๋Š” ๊ฒƒ์€ ๊ณ„ํš ๋ชฉ์ ์— ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

@riverar ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ๋ณด๋“œ ๋Š” ํ˜„์žฌ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์œ ์ผํ•œ ์ฝ”๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ WinUI 2์šฉ์ž…๋‹ˆ๋‹ค.

WinUI 3๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด needs-winui-3 ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์•„์ง WinUI 3 ์ž‘์—…์— ๋Œ€ํ•œ ๊ณต๊ฐœ ์ถ”์  ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋ณ„๋„์˜ ์‚ฌ์–‘ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ Chromium WebView ์‚ฌ์–‘๊ณผ ๊ฐ™์€ ์ฃผ์š” ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ์ œ์•ˆ์„ ๊ณ„์† ๊ฒŒ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://github.com/microsoft/microsoft-ui-xaml-specs/blob/master/active/WebView2/WebView2_spec.md

WinUI 3 Xaml์„ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด ์ถ”์ ์„ GitHub๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ์ƒ์ ์ธ ์ž‘์—… ํ•ญ๋ชฉ ์ถ”์ ์˜ ๋Œ€๋ถ€๋ถ„์€ ํ˜„์‹ค์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ 3.0 ๊ฐœ๋ฐœ์„ ํ†ตํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์œ ์ง€๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์—‰ํ‚ด์„ ํ’€๊ธฐ ์œ„ํ•œ ๊ฐœ์ธ OS ์ข…์†์„ฑ, ๋‹ค๋ฅธ OS ๊ตฌ์„ฑ ์š”์†Œ ๊ฐœ๋ฐœ ํŒ€๊ณผ ๊ธด๋ฐ€ํ•˜๊ฒŒ ์ธํ„ฐํŽ˜์ด์Šคํ•ด์•ผ ํ•˜๋Š” ๋“ฑ)

ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ ๊ธฐ๋Šฅ ์ œ์•ˆ์˜ ๋Œ€๋ถ€๋ถ„์€ ์ดˆ๊ธฐ 3.0 ๋ฆด๋ฆฌ์Šค์—์„œ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์ฃผ์š” ์ดˆ์  ์˜์—ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • OS์—์„œ WinUI๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณ„๋„๋กœ ๋ฐฐ์†ก
  • Xaml ํ”„๋ ˆ์ž„์›Œํฌ ์˜คํ”ˆ ์†Œ์‹ฑ
  • ์ข‹์€ WinUI ๋ฐ์Šคํฌํ†ฑ ์•ฑ ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ๋งŒ๋“ค๊ธฐ(win32 ์‚ฌ์šฉ, ํŒจํ‚ค์ง•, ์œˆ๋„์šฐ ์„ค์ • ๋“ฑ)
  • Windows 10X ํ™œ์„ฑํ™”
  • .NET Core/5 + WinUI ์•ฑ ํ™œ์„ฑํ™”

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

๋ฐ์Šคํฌํƒ‘/์œˆ๋„์šฐ ์ง€์›๊ณผ ๊ฐ™์€ ํฐ ์˜์—ญ์—์„œ ๊ตฌ์ฒด์ ์ธ ์ง„์ „์ด ์ด๋ฃจ์–ด์ง€๋ฉด ์ œ์•ˆ ๋ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ฒŒ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

WinUI 3 Xaml์„ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉด ์ถ”์ ์„ GitHub๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ์ƒ์ ์ธ ์ž‘์—… ํ•ญ๋ชฉ ์ถ”์ ์˜ ๋Œ€๋ถ€๋ถ„์€ ํ˜„์‹ค์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ 3.0 ๊ฐœ๋ฐœ์„ ํ†ตํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์œ ์ง€๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์—‰ํ‚ด์„ ํ’€๊ธฐ ์œ„ํ•œ ๊ฐœ์ธ OS ์ข…์†์„ฑ, ๋‹ค๋ฅธ OS ๊ตฌ์„ฑ ์š”์†Œ ๊ฐœ๋ฐœ ํŒ€๊ณผ ๊ธด๋ฐ€ํ•˜๊ฒŒ ์ธํ„ฐํŽ˜์ด์Šคํ•ด์•ผ ํ•˜๋Š” ๋“ฑ)

๋‚ด๋ถ€ ๋ฌธ์ œ ์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋นˆ ํ•ญ๋ชฉ์œผ๋กœ ํ‘œ์‹œ๋˜๋”๋ผ๋„ ์ด๋Ÿฌํ•œ ๋‚ด๋ถ€ ์ž‘์—… ํ•ญ๋ชฉ์„ ๊ณต๊ฐœ์ ์œผ๋กœ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? To Do์—์„œ In Progress, Complete๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ณด๋ฉด ์ „์ฒด ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์–ด๋Š ์ •๋„์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ ๊ธฐ๋Šฅ ์ œ์•ˆ์˜ ๋Œ€๋ถ€๋ถ„์€ ์ดˆ๊ธฐ 3.0 ๋ฆด๋ฆฌ์Šค์—์„œ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์ฃผ์š” ์ดˆ์  ์˜์—ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • OS์—์„œ WinUI๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณ„๋„๋กœ ๋ฐฐ์†ก
  • Xaml ํ”„๋ ˆ์ž„์›Œํฌ ์˜คํ”ˆ ์†Œ์‹ฑ

๋ฌผ๋ก  ์ด๊ฒƒ์ด์•ผ๋ง๋กœ ๋…ธ๋ ฅ์˜ ํ•ต์‹ฌ์ด์ง€๋งŒ, ํ˜„์žฌ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์ œ์ ์ด๋‚˜ ๋ฌธ์ œ์ ์„ OS ์ฝ”๋“œ์—์„œ ํ•ด๋ฐฉ์‹œ์ผœ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

  • ์ข‹์€ WinUI ๋ฐ์Šคํฌํ†ฑ ์•ฑ ๊ฐœ๋ฐœ ๊ฒฝํ—˜ ๋งŒ๋“ค๊ธฐ(win32 ์‚ฌ์šฉ, ํŒจํ‚ค์ง•, ์œˆ๋„์šฐ ์„ค์ • ๋“ฑ)
  • Windows 10X ํ™œ์„ฑํ™”

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

  • .NET Core/5 + WinUI ์•ฑ ํ™œ์„ฑํ™”

ํ˜„์žฌ ๊ธฐ๋ณธ ์ง€์›์€ C++ ์ฝ”๋“œ ๋ฐ Win32 API์˜ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ๋ชจ๋“  C# ๊ฐœ๋ฐœ์ž๊ฐ€ .NET์„ ๋Œ€์ƒ์œผ๋กœ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ์•ฑ ๋ชจ๋ธ์€ .NET ์—†์ด C# ์ฝ”๋”ฉ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๊นŒ?

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

๋ฐ์Šคํฌํƒ‘/์œˆ๋„์šฐ ์ง€์›๊ณผ ๊ฐ™์€ ํฐ ์˜์—ญ์—์„œ ๊ตฌ์ฒด์ ์ธ ์ง„์ „์ด ์ด๋ฃจ์–ด์ง€๋ฉด ์ œ์•ˆ ๋ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ฒŒ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

CoreWindow ์—†์ด(์•ž์œผ๋กœ๋งŒ UWP๊ฐ€ ๋  ์˜ˆ์ •) - Windowing์€ ์ฒซ๋‚ ๋ถ€ํ„ฐ ์ œ์ž๋ฆฌ์— ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. WPF์—๋Š” ์ปจํŠธ๋กค, ์‹œ๊ฐ์  ์Šคํƒ€์ผ ์ง€์ •, ํˆฌ๋ช…๋„ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” XAML์˜ Window ๊ฐœ์ฒด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๊ธฐ ์กฐ์ •, ์ตœ์†Œํ™” ๋“ฑ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ Win32 ํ”„๋ ˆ์ž„์›Œํฌ๋Š” XAML UI์— ํ•ด๋‹น๋˜์ง€ ์•Š๋Š” ํ‘œ๋ฉด์˜ ์ˆ˜๋™ ํŽ˜์ธํŒ…์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์ด ๊ฐ„๊ฒฉ์„ ์–ด๋–ป๊ฒŒ ๋ฉ”์šธ๊นŒ์š”? ?

์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ด์ค‘ ์Šคํฌ๋ฆฐ ์žฅ์น˜์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์ด๋ฉฐ ๋น„ UWP ์•ฑ ๋ชจ๋ธ ๋ฐ ์ฐฝ ์„ค์ •์ด ์ด์— ์ ์‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋‚ด๋ถ€ ์ž‘์—… ํ•ญ๋ชฉ์ด ๋‚ด๋ถ€ ๋ฌธ์ œ์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋นˆ ํ•ญ๋ชฉ์œผ๋กœ ํ‘œ์‹œ๋˜๋”๋ผ๋„ ๊ณต๊ฐœ์ ์œผ๋กœ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ๋ถ„๋ช…ํžˆ ์šฐ๋ฆฌ์˜ ํ”„๋กœ์„ธ์Šค(๋ฌธ์ œ ์ถ”์  ํฌํ•จ)๋ฅผ ์ฝ”๋“œ ์™ธ์— ์˜คํ”ˆ ์†Œ์Šค๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ์„  ์ƒ์œ„ ์ˆ˜์ค€ ์ถ”์ ์„ ์œ„ํ•œ

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

๋”ฐ๋ผ์„œ ๊ธฐ๋Šฅ ์ˆ˜์ค€ ๋ฌธ์ œ(์˜ˆ: WebView)๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ํ”„๋กœ์„ธ์Šค๋ฅผ GitHub๋กœ ์™„์ „ํžˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


ํ˜„์žฌ ๊ธฐ๋ณธ ์ง€์›์€ C++ ์ฝ”๋“œ ๋ฐ Win32 API์˜ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ๋ชจ๋“  C# ๊ฐœ๋ฐœ์ž๊ฐ€ .NET์„ ๋Œ€์ƒ์œผ๋กœ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ์•ฑ ๋ชจ๋ธ์€ .NET ์—†์ด C# ์ฝ”๋”ฉ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๊นŒ?

.NET ๋„ค์ดํ‹ฐ๋ธŒ์— ๋Œ€ํ•ด ๋ฌป๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด .NET์ด ์ „ํ˜€ ์—†์Šต๋‹ˆ๊นŒ? ๊ธฐ์ˆ ์ ์œผ๋กœ ์–ธ์–ด๋กœ์„œ์˜ C# ์‚ฌ์–‘์€ .NET์— ์˜์กดํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ํ˜„์žฌ C++ ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์œผ๋กœ ๋ณ€ํ™˜ํ•  ๊ณ„ํš์ด ์—†์Šต๋‹ˆ๋‹ค.


CoreWindow ์—†์ด(์•ž์œผ๋กœ๋งŒ UWP๊ฐ€ ๋  ์˜ˆ์ •) - Windowing์€ ์ฒซ๋‚ ๋ถ€ํ„ฐ ์ œ์ž๋ฆฌ์— ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. WPF์—๋Š” ์ปจํŠธ๋กค, ์‹œ๊ฐ์  ์Šคํƒ€์ผ ์ง€์ •, ํˆฌ๋ช…๋„ ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” XAML์˜ Window ๊ฐœ์ฒด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๊ธฐ ์กฐ์ •, ์ตœ์†Œํ™” ๋“ฑ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ Win32 ํ”„๋ ˆ์ž„์›Œํฌ๋Š” XAML UI์— ํ•ด๋‹น๋˜์ง€ ์•Š๋Š” ํ‘œ๋ฉด์˜ ์ˆ˜๋™ ํŽ˜์ธํŒ…์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์ด ๊ฐ„๊ฒฉ์„ ์–ด๋–ป๊ฒŒ ๋ฉ”์šธ๊นŒ์š”? ?

@marb2000 ์€ ์ด์— ๋Œ€ํ•ด ์ž‘์—… ์ค‘์ด๋ฉฐ ๊ฐ€๋Šฅํ•œ ํ•œ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ด์ค‘ ์Šคํฌ๋ฆฐ ์žฅ์น˜์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์ด๋ฉฐ ๋น„ UWP ์•ฑ ๋ชจ๋ธ ๋ฐ ์ฐฝ ์„ค์ •์ด ์ด์— ์ ์‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ ๋งํ•ด์„œ, WinUI 3๋Š” ๋ชจ๋“  win32 ๋ฐ์Šคํฌํ†ฑ์„ HoloLens์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์œผ๋กœ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์žฅ์น˜๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•  ๋•Œ ๋ฒ”์šฉ ์•ฑ๊ณผ API๋Š” ์—ฌ์ „ํžˆ ๊ฐˆ ๊ธธ์ž…๋‹ˆ๋‹ค.

๋„ˆ๋ฌด ์ผ์ฐ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ์˜๊ฒฌ:

@roblo - ๋‚˜๋Š” ๋‹น์‹ ์˜ ๋งŽ์€ ๊ฐ์ •์— ๋™์˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ฆฌ์˜ ๋ชจ๋“  ๊ธฐ์ˆ ์ ์ธ ๋ฌธ์ œ๋กœ ์ธํ•ด ๋งค์šฐ ํ˜ผ๋ž€์Šค๋Ÿฌ์› ๊ณ  ๊ทธ ์งˆ๋ฌธ์„ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋งŒํผ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋‹ค์‹œ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ด ์ฃผ์„ธ์š”.

ํ—Œ์žฅ ๋ฐ ์ž์›

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

  1. WinUI 2์˜ ๋ฐœ์ „
  2. WinUI 3 ์ œ๊ณต
  3. ์˜คํ”ˆ ์†Œ์‹ฑ WinUI 3

์•„์‹œ๋‹ค์‹œํ”ผ, ์šฐ๋ฆฌ๋Š” A) ์ด๊ฒƒ์ด ๊ฒฐํ•ฉ๋œ ๋ชฉํ‘œ์ด๊ณ  B) WinUI๋ฅผ ์˜คํ”ˆ ์†Œ์‹ฑํ•จ์œผ๋กœ์จ ๋ชจ๋“  ์‚ฌ๋žŒ ์ด ์šฐ๋ฆฌ ํŒ€์˜ ํ•œ์ •๋œ ๋ฆฌ์†Œ์Šค์— ์˜ํ•ด ์ฐจ๋‹จ๋˜๋Š” ๊ฒƒ์„ ๋ฉˆ์ถœ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2์™€ 3์„ ํ–ฅํ•ด ํ™•๊ณ ํžˆ ์ „ํ™”๋ฅผ ๊ฑธ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ชฉํ‘œ 2์™€ 3์—์„œ WinUI 2๊ฐ€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์„ฑ์›์—๊ฒŒ ์ œ๋Œ€๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜๋Š” ์ง€์ ๊นŒ์ง€ ๋„ˆ๋ฌด ์•ž์„œ๊ฐ„๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ๋Œ€ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ณ  ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ๋กœ๊ทธ์˜ ๋ชจ๋“  ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด WinUI 3์˜ ์ถœ์‹œ๊ฐ€ 6๊ฐœ์›” ์ •๋„ ์ง€์—ฐ๋œ๋‹ค๋Š” ์ ์„ ์•Œ์•„๋‘์„ธ์š”. ๋Œ€์‹  WinUI ์†Œ์Šค๋ฅผ ๊ณต๊ฐœํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐฉ๋Œ€ํ•œ Win32 ๊ฐœ๋ฐœ์ž ๊ธฐ๋ฐ˜๊ณผ ๊ด€๋ จ์„ฑ์„ ํ™•์žฅํ•˜๋Š” 2์™€ 3์„ ์šฐ์„ ์ˆœ์œ„๋กœ ์ง€์ •ํ•˜๋ฉด ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์šฐ๋ฆฌ ํŒ€์˜ ํž˜์œผ๋กœ ๋ฒ„๊ทธ _๋ฐ_ ๊ธฐ๋Šฅ ์š”์ฒญ์˜ ๋ฐฑ๋กœ๊ทธ๋ฅผ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์ „ํญ์ ์ธ ๊ด€์‹ฌ. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ์˜ ํ˜„์žฌ ๊ทผ๊ฑฐ๋Š” ์ ‘๊ทผ ๊ณ„ํš์ด ์ด ํ”Œ๋žซํผ์„ ๋” ๋น ๋ฅด๊ฒŒ ๋ฐœ์ „์‹œํ‚ฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋” ํฌ๊ด„์ ์œผ๋กœ ๋ฐœ์ „์‹œํ‚ฌ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฒ„๊ทธ์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์„ ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ–ˆ์„ ๋•Œ ์งˆ๋ฌธ์€ "์šฐ๋ฆฌ ํŒ€์ด ํ•ด๊ฒฐํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ๊นŒ?"๊ฐ€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€์‹  "์ด๊ฒƒ์ด WinUI๋ฅผ ๋” ๋นจ๋ฆฌ ์˜คํ”ˆ ์†Œ์‹ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ค‘์š”ํ•ฉ๋‹ˆ๊นŒ?" ํ˜„์žฌ ์ƒํƒœ์—์„œ ์šฐ์„  ์ˆœ์œ„ 1์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ž‘์—…ํ•˜๋Š” ๊ฐœ๋ฐœ์ž์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์ด ์žˆ์œผ๋ฉฐ ์ปค๋ฐ‹ ๊ธฐ๋ก ๋ฐ ํ™œ์„ฑ ๋ฌธ์ œ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋™์ผํ•œ ๋ชฉํ‘œ ๋‚ด์—์„œ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•  ํ•„์š”์„ฑ์— ์ง๋ฉดํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. "์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”"๋ผ๋Š” ๊ฐœ๋…์€ ์š”๊ตฌ ์‚ฌํ•ญ(์˜ˆ: ๋‚ด ์ œํ’ˆ์ด ์ฐจ๋‹จ๋˜์—ˆ์œผ๋ฉฐ WinUI 3์„ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์Œ) ๋Œ€ ์ข‹์€ ๊ฒƒ(์˜ˆ: ์ด ๊ธฐ์ˆ  ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์ง€๋งŒ ๊ธฐ์กด ๊ฐœ๋ฐœ์ด ์—†์Œ)์„ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. WinUI 3)์„ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ถ„๋ช…ํžˆ ๋งํ•˜๊ณ  ์‹ถ์€ ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์€ WinUI 2 ๋ฒ„๊ทธ๋ฅผ ์ œ์ถœํ•˜๊ณ  ๊ธฐ๋Šฅ ์š”์ฒญ์„ ์ž‘์„ฑํ•˜๋Š” ๋“ฑ์˜ ๋ชจ๋“  ์ž‘์—…์ด ์šฐ๋ฆฌ์—๊ฒŒ _ ์žƒ์ง€ _ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. WinUI 3๊ฐ€ ์ถœ์‹œ๋˜๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ํ”Œ๋žซํผ์„ ๋ฐœ์ „์‹œํ‚ค๋Š” ์ž‘์—… ํ•ญ๋ชฉ์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํŒ€์˜ ์ƒ๋‹น ๋ถ€๋ถ„์ด ํ™•๋ณด๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ˜„์žฌ ์šฐ๋ฆฌ ํŒ€์˜ ์ „์ฒด ์ „๋ ฅ์ด ๊ธฐ์กด UWP ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๊ณง Win32์˜ ๋„์›€์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๋ฐฑ๋กœ๊ทธ๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์ถ”๊ฐ€๋กœ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ์€ OS์—์„œ WinUI 3์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋™์•ˆ ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ณ  ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํŠน์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ •์ด WinUI 3์—์„œ ํ•ด๊ฒฐ๋  ๊ฒฝ์šฐ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ํ˜„์ €ํžˆ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

๋„˜๋ฒ„๋ฐ•์Šค

ํŠน์ง•

NumberBox๋กœ ๋Œ์•„๊ฐ€์ž. V1์ด ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์‚ฌ์‹ค ๋งž์Šต๋‹ˆ๋‹ค.
๊ณ„ํš๋œ V1 ๊ธฐ๋Šฅ์€ ์ž…๋ ฅ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ(WinUI 3 ์•ŒํŒŒ์—์„œ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์— ์žˆ์Œ)์™€ ๊ฐ™์€ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์œผ๋กœ ์ธํ•ด V2๊นŒ์ง€ ์ง€์—ฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์‚ฌ์–‘(์—ฌ๊ธฐ)์—์„œ V1์ด ๋  ์ž๊ฒฉ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ธ์ •ํ•จ์œผ๋กœ์จ ์‚ฌ์–‘์„ ์™„์ „ํ•˜๊ฒŒ ๋งŒ๋“ค๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์œผ๋ฉฐ ์ปจํŠธ๋กค์˜ WinUI 3 V2 ๋ฆด๋ฆฌ์Šค๋กœ ๊ทธ ์•ฝ์†์„ ์™„์ „ํžˆ ์ดํ–‰ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

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

๋ฒ„๊ทธ

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

์ €๋Š” NumberBox๋กœ ์ด๋Ÿฌํ•œ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ธฐ ์œ„ํ•ด ์ตœ์„ ์„ ๋‹คํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ œ๊ฐ€ ์ž์‚ฐ์ด ๋  ์ˆ˜ ์žˆ๋Š” ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ, ๋ฒ„๊ทธ ๋ฐ ์งˆ๋ฌธ์— ์‘๋‹ตํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜๋จธ์ง€ ์‹œ๊ฐ„์„ ํ• ์• ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์ฃผ์—๋„ ํ•˜๋ฃจ๋ฅผ ๋น„์›Œ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค. Twitter์—์„œ ์ €์—๊ฒŒ ์งˆ๋ฌธ์„ ๋ณด๋‚ด๊ฑฐ๋‚˜ ์—ฌ๊ธฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ด์— ๋Œ€ํ•ด ์ €์™€ ๊ต๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฒฉ๋ คํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

๋‹ค์Œ ๋‹จ๊ณ„

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

์šฐ๋ฆฌ โค๏ธ WinUI

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

์ด๊ฒƒ์€ ๋‚˜์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜์ง€๋งŒ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์ „์— ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ํŠน์ • ์œ ํ˜•์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด #1846์€ V1์„ ์ œ๊ณตํ•˜๊ธฐ ์ „์— ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ช‡ ์‚ฌ๋žŒ๋„ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@yaichenbaum ๊ฑฐ๊ธฐ์—์„œ ๋‚ด ๋ง์„ ๋” ์ž˜ ์„ ํƒํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ™‚

AD๊ฐ€ _๋ฐ˜๋“œ์‹œ ๊ฐ–์ถ”์–ด์•ผ ํ•˜๋Š”_ ๊ธฐ๋Šฅ์ด๊ณ  EH๊ฐ€ _๊ฐ€์ ธ ์žˆ์œผ๋ฉด ์ข‹์€_ ๊ธฐ๋Šฅ์ธ ๊ฒฝ์šฐ, ์ œ ์šฐ์„ ์ˆœ์œ„๋Š” AD๋ฅผ ๋ฐ–์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ EH๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒ€์ฆ ํŒŒํŠธ๋„ˆ์™€ ํ•จ๊ป˜ ํ”„๋ฆฌ๋ทฐ ๋ธŒ๋žœ์น˜๋ฅผ ์ค€๋น„ํ•˜๋Š” ์ด์œ ๋Š” ์ปจํŠธ๋กค์ด ์•ˆ์ •์ ์ธ ๋ฆด๋ฆฌ์Šค๋กœ ํ‘ธ์‹œ๋˜๊ธฐ ์ „์— #1846๊ณผ ๊ฐ™์€ ๋ฒ„๊ทธ๋ฅผ ์žก๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ ๊ณต์„ ๋†“์ณค์Šต๋‹ˆ๋‹ค. @teaP ์™€ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ํ˜‘๋ ฅํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ๐Ÿ™‚

ํ†ตํ™” ์ค‘ ํ•œ ์‹œ์ ์—์„œ WinUI ์•ฑ์ด AppDomain์„ ํ†ตํ•ด ์ƒŒ๋“œ๋ฐ•์‹ฑ์„ ํ—ˆ์šฉํ•  ๊ฒƒ์ด๋ผ๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฒฉ๋ฆฌ ๋ฐ ๋ฆฌ์†Œ์Šค ์ œ์–ด๋ฅผ ์œ„ํ•ด WinUI 3.0+๊ฐ€ Capabilities์™€ AppDomain์„ ์–ด๋–ป๊ฒŒ ํฌ์ง€์…”๋‹ํ•  ๊ฒƒ์ธ์ง€ ๋ˆ„๊ตฐ๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ .Net Core์— ๋Œ€ํ•ด ๋‚ด๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ์•˜๋˜ AppDomain์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ง€์›์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์—ฐ๋ฝ์ด ๋‹ฟ์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ .Net 5์—์„œ AppDomain์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•œ๋‹ค๋Š” ๋ง์”€์ด์‹ ๊ฐ€์š”?

์˜ค๋Š˜ ์ด ํ†ตํ™”๋ฅผ ์กฐ์งํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฒฉ๋ฆฌ ๋ฐ ๋ฆฌ์†Œ์Šค ์ œ์–ด๋ฅผ ์œ„ํ•ด WinUI 3.0+๊ฐ€ Capabilities์™€ AppDomain์„ ์–ด๋–ป๊ฒŒ ํฌ์ง€์…”๋‹ํ•  ๊ฒƒ์ธ์ง€ ๋ˆ„๊ตฐ๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํ†ตํ™”์—์„œ ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ฃ„์†กํ•˜์ง€๋งŒ AppDomain์ด ์•„๋‹Œ AppContainer ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์•„, ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ค๋ช…ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ์‹œ.

์šฐ์„  ์˜ค๋Š˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฝœ์„ ์ฃผ์ตœํ•ด ์ฃผ์‹  @SavoySchuler ์™€ @jesbis (๋ฐ ๋‚˜๋จธ์ง€ WinUI ํŒ€)์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๊ธฐ์ˆ ์  ์ธ ์–ด๋ ค์›€์ด ์žˆ์—ˆ์ง€๋งŒ์ด ์ „ํ™”๋Š” ๋งค์šฐ ํ†ต์ฐฐ๋ ฅ์ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค !!!

@jesbis๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด WinUI 3.0์— ๋Œ€ํ•ด ์š”์ฒญ๋œ ๋„๊ตฌ ๋ฐ ๊ธฐ๋Šฅ์„ ์ถ”์ ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ์‰ฌ์šด ์ถ”์ ์„ ์œ„ํ•ด WinUI 2.x์—์„œ 3.0์œผ๋กœ ๋ณ€ํ™˜ ๋„๊ตฌ์˜ ์š”์ฒญ์„ ๋ณ„๋„์˜ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ์Šต๋‹ˆ๊นŒ? ๋˜ํ•œ ์ด๋ฏธ ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœ์„ ๋„์šธ ์ˆ˜ ์žˆ๋„๋ก ๋„๊ตฌ๋ฅผ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๋งŒ๋“ค ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

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

๋‚ด ์ƒ๊ฐ์—๋Š” ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด VS ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‹ค์†Œ ์••๋„์ ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•, ์–ด๋–ค ํ…Œ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฌด์—‡์— ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ๋“ฑ์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ๊ทธ ์˜์—ญ์˜ ๊ฐœ์„ ์œผ๋กœ ์‚ฌ๋žŒ๋“ค์ด ๋” ์‰ฝ๊ฒŒ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ˜…

WinUI 3.0 ๋ Œ๋”๋ง ๋ ˆ์ด์–ด๋Š” ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๊นŒ? D3D11, D2D, ์ถ”์ƒํ™” ๊ณ„์ธต ๋˜๋Š” ๋ฌด์—‡์„ ์ง์ ‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง ๋ ˆ์ด์–ด๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ด๋ฅผ ์œ„ํ•ด D3D WARP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

@chingucoding

์—ฌ๊ธฐ์—์„œ ๋ฐฉ๊ธˆ ๋งํ•œ ์š”์ ์„ ๋ฐ˜๋ณต

  • ์˜์›ํžˆ lang์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ 
  • ์˜ค๋Š˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฎ์–ด์“ธ WinUI 3 ๋ฆด๋ฆฌ์Šค์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์ฝ”๋“œ ๋ณ€๋™์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ/๋˜๋Š” ์—„์ฒญ๋‚œ ๋„์›€์ด ๋˜๋Š” ๋งŽ์€ ์†Œ์Šค ์ฝ”๋“œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Œ

ํŽธ์ง‘: ์˜ˆ๋ฅผ ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค. #1555 ๋ฐ #1849๋Š” ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น ์ค‘ ํ…์ŠคํŠธ ์ž…๋ ฅ ๋ฐ ์„ ํƒ์„ ๋ฐฉํ•ดํ•˜๋Š” ํ•ต์‹ฌ ์ปจํŠธ๋กค(TextBox)์˜ ์ฃผ์š” ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

@SavoySchuler

๋ชฉํ‘œ 2์™€ 3์—์„œ WinUI 2๊ฐ€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ตฌ์„ฑ์›์—๊ฒŒ ์ œ๋Œ€๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜๋Š” ์ง€์ ๊นŒ์ง€ ๋„ˆ๋ฌด ์•ž์„œ๊ฐ„๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ๋Œ€ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ณ  ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ๋กœ๊ทธ์˜ ๋ชจ๋“  ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด WinUI 3์˜ ์ถœ์‹œ๊ฐ€ 6๊ฐœ์›” ์ •๋„ ์ง€์—ฐ๋œ๋‹ค๋Š” ์ ์„ ์•Œ์•„๋‘์„ธ์š”.

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

NumberBox๋Š” ํ˜„์žฌ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ˆ˜์šฉํ•ด์•ผ ํ•˜๋Š” ๋ ˆ๊ฑฐ์‹œ ์ปจํŠธ๋กค์ด ์•„๋‹ˆ๋ผ WinUI 2.3์šฉ์œผ๋กœ ์ƒˆ๋กœ ๊ฐœ๋ฐœ๋œ ์ปจํŠธ๋กค์ž…๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ ๋ชจ๋ธ์— ๋Œ€ํ•œ ๋งค์šฐ ๋ฆฌํŠธ๋จธ์Šค ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

AD์— ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ํ•˜๊ณ  EH์— ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ฒฝ์šฐ, ์ €๋Š” AD๋ฅผ ๋ฐ–์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ EH๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์šฐ์„ ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹น์‹ ์€ ๊ธฐ๋Šฅ๊ณผ ๋ฒ„๊ทธ์˜ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. Microsoft์˜ ๋ฆฌ์†Œ์Šค/์ธ๋ ฅ ์ธก๋ฉด์—์„œ๋งŒ ์ƒ๊ฐํ•˜๊ณ  ๊ณ„์‹  ๊ฒƒ ๊ฐ™์•„ ๊ฑฑ์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ปจํŠธ๋กค์˜ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋งŽ์€ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์†Œ์Šค์—์„œ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ํšจ์œจ์ ์ด๋ฉฐ ํ”Œ๋žซํผ/๋„๊ตฌ์— ๋Œ€ํ•œ ์ธ์‹์—๋„ ์‹ค์ œ๋กœ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ถ„๋ช…ํžˆ ๋งํ•˜๊ณ  ์‹ถ์€ ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์€ WinUI 2 ๋ฒ„๊ทธ๋ฅผ ์‹ ๊ณ ํ•˜๊ณ  ๊ธฐ๋Šฅ ์š”์ฒญ์„ ์ž‘์„ฑํ•˜๋Š” ๋“ฑ์˜ ๋ชจ๋“  ์ž‘์—…์ด ์šฐ๋ฆฌ์—๊ฒŒ ์†์‹ค๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. WinUI 3๊ฐ€ ์ถœ์‹œ๋˜๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ํ”Œ๋žซํผ์„ ๋ฐœ์ „์‹œํ‚ค๋Š” ์ž‘์—… ํ•ญ๋ชฉ์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํŒ€์˜ ์ƒ๋‹น ๋ถ€๋ถ„์ด ํ™•๋ณด๋ฉ๋‹ˆ๋‹ค.

Microsoft๋Š” ๋ถˆ์™„์ „ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ถœ์‹œํ•œ ๋‹ค์Œ ๋งˆ์ง€๋ง‰์„ ์™„๋ฃŒํ•  ๊ธฐํšŒ๋ฅผ ๊ฐ–๊ธฐ ์ „์— ์ตœ์‹  ์ตœ์‹  ๊ธฐ์ˆ ๋กœ ๋„˜์–ด๊ฐ€๋Š” ์ •๋ง ๋‚˜์œ ์‹ค์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•ฝ์†์— ํšŒ์˜์ ์ธ ์ €๋ฅผ ์šฉ์„œํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

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

๊ธฐ๋Šฅ๋ฉด์—์„œ ๋‹น์‹ ๊ณผ ์™„์ „ํžˆ ๊ฐ™์€ ํŽ˜์ด์ง€์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋” ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ปค๋ฐ‹ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. NumberBox์™€ ๊ฐ™์€ ์ƒˆ๋กœ์šด ์ปจํŠธ๋กค์„ ์ถœ์‹œํ•˜๊ณ  ์ง€๊ธˆ๋ถ€ํ„ฐ 1๋…„๊นŒ์ง€ ๋ฒ„๊ทธ ์ˆ˜์ •์— ๋ฆฌ์†Œ์Šค๋ฅผ ํˆฌ์ž…ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

WinUI 3.0์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ์ปจํŠธ๋กค์˜ V1 ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•ด ๋‹ฌ๋ผ๋Š” ์š”์ฒญ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ์ƒ๋‹นํžˆ ๊ธฐ๋ณธ์ ์ด๊ณ  ๋‹ค๋ฅธ ์ผ๋ถ€๋Š” ์„ค๊ณ„์—์„œ ๋ˆˆ์— ๋„๋Š” ์‹ค์ˆ˜์ž…๋‹ˆ๋‹ค(์˜ˆ: NaN์ด ์–‘๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ ๋ฐ์ดํ„ฐ ์ถฉ๋Œ). ๊ธฐ๋Šฅ/์ปจํŠธ๋กค์„ ๋ฆด๋ฆฌ์Šคํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋ฉด ๋ฒ„๊ทธ๋ฅผ ๋‹ซ๊ธฐ ์œ„ํ•ด ์‹ ์†ํ•˜๊ฒŒ ์ž‘์—…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ถœ์‹œ๋  ๋•Œ ํ•ญ์ƒ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. (๋‚˜๋จธ์ง€ ์•ฑ ๊ฐœ๋ฐœ์ž์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ) ๋น ๋ฅธ ๋ฒ„๊ทธ ์ˆ˜์ • V2๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณ„ํšํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ’ˆ์งˆ์ด ์ตœ์šฐ์„ ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— NumberBox์—์„œ ๋‹ค์Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค.

1708 - ์ปจํŠธ๋กค์˜ ๋ชจ๋“  ํ˜•์‹ ์‚ฌ์šฉ๊ณผ ์‚ฌ์–‘์— ์ด๋ฏธ ์žˆ๋Š” ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์— ์ž๋ฆฌ ํ‘œ์‹œ์ž ํ…์ŠคํŠธ๊ฐ€ ์ ˆ๋Œ€์ ์œผ๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด NaN์— ๋Œ€ํ•ด ์‹ค์ œ๋กœ ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉด ๋‹ซ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. Null ์ง€์›์€ ์•„๋ž˜์—์„œ ๋‹ค๋ฅธ ์ฃผ์ œ์ž…๋‹ˆ๋‹ค.

1721 - UWP์˜ ํฐ ๋ฌธ์ œ๋Š” ํŠน์ • ์ปจํŠธ๋กค์—์„œ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์— ๋Œ€ํ•œ ๋ถˆ์™„์ „ํ•œ ์ง€์›์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์ž๋Š” ๋ช‡ ๋…„ ์ „์— MVVM ๋””์ž์ธ์— ํˆฌ์žํ•œ ๋‹ค์Œ UWP ์ปจํŠธ๋กค๋กœ ์ „ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์ด ๋ถ€๋ถ„์ ์œผ๋กœ๋งŒ ์ง€์›๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์—„์ฒญ๋‚œ ๊ณจ์นซ๊ฑฐ๋ฆฌ์ด๋ฉฐ MVVM์ด Microsoft์˜ ๋ชจ๋ฒ” ์‚ฌ๋ก€์— ์–ผ๋งˆ๋‚˜ ๊ธฐ๋ณธ์ ์ธ์ง€ ๊ณ ๋ คํ•  ๋•Œ ์šฉ๋‚ฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด์ „ Windows ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ํŒ€์€ ๊ฒฐ์ฝ” ์ด๋ฅผ ์ง€์ง€ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด Windows/๊ธฐ๋ณธ ์‚ฌ๊ณ ์ž…๋‹ˆ๋‹ค.

1839 - ์—ฌ๊ธฐ์— ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ปจํŠธ๋กค ํ…œํ”Œ๋ฆฟ์˜ ๊ธฐ๋ณธ ๋ฒ„๊ทธ์ผ ๋ฟ์ด๋ฉฐ ๋ฐ˜๋“œ์‹œ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๋ช…ํ•˜์ง€.

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

1852, #1853, #1854 - ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ด๋“ค์€ ์ง€๋‚˜์น˜๊ฒŒ ๋ณต์žกํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ฒซ ๋ฒˆ์งธ ๊ตฌํ˜„์—์„œ ๋†“์ณค์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŠน์ • ์ง€์—ญ์—์„œ ํŒ๋งค๋˜๊ฑฐ๋‚˜ ์ •๋ถ€๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ ‘๊ทผ์„ฑ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ๋ฒ•์  ์š”๊ตฌ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์œผ๋กœ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฆ‰์‹œ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋‚˜๋Š” ๋‹น์‹ ๊ณผ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋…ผ์Ÿ์„ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์ถ”๊ฐ€๋กœ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ์€ OS์—์„œ WinUI 3์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋™์•ˆ ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ณ  ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํŠน์ • ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ •์ด WinUI 3์—์„œ ํ•ด๊ฒฐ๋  ๊ฒฝ์šฐ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ํ˜„์ €ํžˆ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

๋†’์€ ์ˆ˜์ค€์—์„œ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์œ„์˜ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ด๋„ WinUI 3.0์ด 6๊ฐœ์›” ๋™์•ˆ ์ง€์—ฐ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด WinUI 3.0์— ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ž ์žฌ์ ์œผ๋กœ #1721 ์ œ์™ธ). NumberBox๋ฅผ ๋ฆด๋ฆฌ์Šคํ•œ ๋‹ค์Œ ๋ฒ„๊ทธ์˜ ์ฒซ ๋ฒˆ์งธ ๋ผ์šด๋“œ๋ฅผ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฅผ ๊ณ ์ˆ˜ํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ ์œ„ํ—˜ํ•œ ์„ ๋ก€๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. UWP ์ž์ฒด์—์„œ ์ด๋ฏธ ์ด ๋‹จ์›์„ ๋ฐฐ์› ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ๊ทธ ์˜์—ญ์˜ ๊ฐœ์„ ์€ ์‚ฌ๋žŒ๋“ค์ด ๋” ์‰ฝ๊ฒŒ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. C++/WinRT๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ถ„๋ช…ํžˆ ๋‚ด๊ฐ€ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋งŒ์งˆ ์ž๊ฒฉ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค์ด ๊ด€๋ฆฌ๋˜๋Š” C#์ด๋ผ๋ฉด ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ธฐ์—ฌ๋ฅผ ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์™œ ๊ทธ๋Ÿฐ ๊ฒƒ์ธ์ง€ ์ดํ•ดํ•˜์ง€๋งŒ ๊ทธ ๊ฒฐ๊ณผ ์ค‘ ํ•˜๋‚˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ์—ฌ๋„๊ฐ€ ์ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์ตœ์ข… ์‚ฌ์šฉ์ž ์•ฑ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

RE: ๊ธฐ์—ฌ:

๋‹ค๋ฅธ ๋น„ WinUI ํŒ€ ๊ตฌ์„ฑ์›์—๊ฒŒ๋„ ํ•ด๋‹น๋˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ผ๋ฐ˜์ ์ธ ์งˆ๋ฌธ์€ ๊ธฐ์—ฌ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์‚ฌ๋žŒ๋“ค์ด ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉํ•ดํ•˜๋Š” ์žฅ์• ๋ฌผ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ธฐ์—ฌ์ž๋ฅผ ์œ„ํ•œ ๋” ๋‚˜์€ ์‹œ์ž‘ ๊ฐ€์ด๋“œ๊ฐ€ ๋„์›€์ด ๋ ๊นŒ์š”?
๋‚ด ์ƒ๊ฐ์—๋Š” ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด VS ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‹ค์†Œ ์••๋„์ ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•, ์–ด๋–ค ํ…Œ์ŠคํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฌด์—‡์— ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ๋“ฑ์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์•„๋งˆ๋„ ๊ทธ ์˜์—ญ์˜ ๊ฐœ์„ ์€ ์‚ฌ๋žŒ๋“ค์ด ๋” ์‰ฝ๊ฒŒ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด ํ˜„์žฌ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค์ธ WinUI 2์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ž‘์—…ํ•˜๊ณ  ์‹ถ์€ WinUI 2 ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ €ํฌ์—๊ฒŒ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ• ๋‹นํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!

์šฐ๋ฆฌ๋Š” ๋งŽ์€ ํ•ญ๋ชฉ์ด ํƒœ๊ทธ๊ฐ€ ์ข‹์€ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ ์™€ ๋„์›€์ด ์›ํ•˜๋Š” ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” (์ƒ๋Œ€์ ์œผ๋กœ)ํ•ด์•ผํ•œ๋‹ค ํ•ญ๋ชฉ ๋„์›€๋ง์„ ์›ํ•œ๋‹ค๋ฉด ๐Ÿ™‚

๋ฒ„๊ทธ์ˆ˜์ •์˜ ๊ฒฝ์šฐ PR์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ์ƒˆ ๊ธฐ๋Šฅ์ธ ๊ฒฝ์šฐ ์ œ์•ˆ์ด WinUI์— ์ ํ•ฉํ•œ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € ๋ฌธ์ œ๋ฅผ ๊ฒ€ํ†  ํ•˜๋Š” ์•ฝ๊ฐ„์˜

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


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

๊ทธ๊ฒƒ๋“ค์€ ์—ฌ์ „ํžˆ โ€‹โ€‹dev ์†Œ์œ ์ž์— ์˜ํ•ด ๋ถ„๋ฅ˜(๋ถ„๋ฅ˜)๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋”ฐ๋ผ์„œ "needs-triage" ๋ ˆ์ด๋ธ” - ํ˜„์žฌ ์•„์ง ๋ถ„๋ฅ˜๋˜์ง€ ์•Š์€ ์ด์œ ๋ฅผ ์ถ”์  ์ค‘์ž…๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ TextBox๊ฐ€ WinUI 2๋Š” WinUI3๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋‹จ ๋ถ„๋ฅ˜๋˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ํ•ด๊ฒฐํ•˜๊ธฐ ์ „์— WinUI 3์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•จ์„ ๋‚˜ํƒ€๋‚ด๋Š” needs-winui-3 ๋ ˆ์ด๋ธ”์ด ์ ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

WinUI 3๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ๋˜๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


C++/WinRT๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ถ„๋ช…ํžˆ ๋‚ด๊ฐ€ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋งŒ์งˆ ์ž๊ฒฉ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค์ด ๊ด€๋ฆฌ๋˜๋Š” C#์ด๋ผ๋ฉด ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ธฐ์—ฌ๋ฅผ ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” C++๊ฐ€ C#๋ณด๋‹ค ๋” ๋†’์€ ์žฅ๋ฒฝ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ WinUI๋Š” C++ ํ”Œ๋žซํผ์œผ๋กœ ๋‚จ์„ ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ํ›Œ๋ฅญํ•œ ํ”„๋กœ์ ํŠธ๋Š” C#์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์—ฌํ•˜๊ธฐ ์‰ฝ๊ณ  ์š”๊ตฌ ์‚ฌํ•ญ์ด ์™„ํ™”๋œ Windows Community Toolkit ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์œ ์ง€ ๊ด€๋ฆฌ์ž์™€ ํ˜‘๋ ฅํ•˜๊ณ  ์ข…์ข… Community Toolkit์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ถ๊ทน์ ์œผ๋กœ Xaml ํ”Œ๋žซํผ์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ์ƒˆ๋กœ์šด ์ปจํŠธ๋กค์„ ๋ฐฐ์–‘ํ•ฉ๋‹ˆ๋‹ค(C++์—์„œ ๋‹ค์‹œ ๊ตฌํ˜„ํ•ด์•ผ ํ•จ).

WinUI์— C++/CX๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๊ฒƒ์ด Win32 ๋ฐ ๊ธฐํƒ€ ๋ฏธ๋ž˜ ๋ชฉํ‘œ์— ๋Œ€ํ•œ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ?

WinUI 3.0 ๋ Œ๋”๋ง ๋ ˆ์ด์–ด๋Š” ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๊นŒ? D3D11, D2D, ์ถ”์ƒํ™” ๊ณ„์ธต ๋˜๋Š” ๋ฌด์—‡์„ ์ง์ ‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง ๋ ˆ์ด์–ด๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ด๋ฅผ ์œ„ํ•ด D3D WARP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

WinUI Xaml ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ Œ๋”๋ง์€ ์ฃผ๋กœ Windows 10 ๊ตฌ์„ฑ ์—”์ง„ ์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์ปดํฌ์ง€์…˜ ๋ ˆ์ด์–ด API๋„ WinUI 3์˜ ์ผ๋ถ€๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Direct3D, Direct2D ๋ฐ DirectWrite๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ๋ Œ๋”๋ง์„ ์˜๋ฏธํ•˜๋ฉฐ ์ผ๋ถ€ ๊ฒฝ์šฐ์—๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.

interop API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • ๋ Œ๋”๋ง๋œ DirectX ์ฝ˜ํ…์ธ ๋ฅผ ํฌํ•จํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.


WinUI์— C++/CX๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๊ฒƒ์ด Win32 ๋ฐ ๊ธฐํƒ€ ๋ฏธ๋ž˜ ๋ชฉํ‘œ์— ๋Œ€ํ•œ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ?

์•„๋‹ˆ์š” - WinUI ํ”Œ๋žซํผ์€ C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์ง€๋งŒ ์•ฑ์€ ๋ฐ˜๋“œ์‹œ ๊ทธ๋Ÿด ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค!

ํ˜„์žฌ WinUI 2๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด .NET(C#, VB.NET) ๋˜๋Š” C++๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UWP ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WinUI 3์˜ ๋ชฉํ‘œ๋Š” ๊ณง ์ถœ์‹œ๋  .NET 5 ๋˜๋Š” C++๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UWP ๋ฐ/๋˜๋Š” win32 API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@jesbis ์ œ ์งˆ๋ฌธ ์˜๋„๋ฅผ ์กฐ๊ธˆ ์˜คํ•ดํ•˜์‹  ๊ฒƒ

1) WinUI๊ฐ€ C++๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ WinUI ์ฝ”๋“œ์—๋Š” Windows ์ „์šฉ VC++/CX ํ™•์žฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? CX ํ™•์žฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ WinUI๊ฐ€ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์œผ๋กœ ํ™•์žฅํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ด์‹์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜ˆ๋ฅผ ๋“ค์–ด UNO ํŒ€์ด ์ฝ”๋“œ๋ฅผ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์„ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


2) ๋ Œ๋”๋ง ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด. ์—ฌ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

2.a) "๋น„์ฃผ์–ผ ๋ ˆ์ด์–ด"๊ฐ€ ๋‚˜์ค‘์— Vulkan ๋ฐฑ์—”๋“œ๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋„๋ก DirectX API์—์„œ ์ถฉ๋ถ„ํžˆ ๋ฉ€๋ฆฌ ์ œ๊ฑฐ๋œ ์ถ”์ƒํ™” API์ž…๋‹ˆ๊นŒ? (์ถœ์ฒ˜๊ฐ€ ๊ณต๊ฐœ๋˜๋ฉด ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ ํ™•์‹ ํ•˜์ง€๋งŒ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.)

2.b) ์†Œํ”„ํŠธ์›จ์–ด ๋ž˜์Šคํ„ฐํ™”์— ๋Œ€ํ•œ ๋‚ด ์งˆ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. WinUI 3.0์ด ์ „์ฒด ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง(๋‹จ์ˆœํ•œ ํ…์ŠคํŠธ ๋ Œ๋”๋ง ๋˜๋Š” ๊ธฐํƒ€ ๊ธฐ๋Šฅ์ด ์•„๋‹Œ)์„ ์ง€์›ํ•ฉ๋‹ˆ๊นŒ? ๋•Œ๋กœ๋Š” ํ™”๋ฉด ๊ณต์œ  ์†Œํ”„ํŠธ์›จ์–ด์— GPU ๊ฐ€์† ์•ฑ(์ตœ์†Œํ•œ D3D9/WPF ์‚ฌ์šฉ)์— ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง์„ ๊ฐ•์ œ ์‹คํ–‰ํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ์•ฑ์ด ํ•˜๋“œ์›จ์–ด GPU๊ฐ€ ์—†๋Š” VM์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ.

vsix๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ ์œ„ํ•œ WinUI 3.0 Alpha ์ง€์นจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://aka.ms/winui/alpha

Edge New๋กœ ๊ทธ๋ ‡๊ฒŒ ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋‹ค์šด๋กœ๋“œ ๋งํฌ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ  ํฌ๋กฌ์œผ๋กœ ๋ฐ˜๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

Edge New๋กœ ๊ทธ๋ ‡๊ฒŒ ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋‹ค์šด๋กœ๋“œ ๋งํฌ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ  ํฌ๋กฌ์œผ๋กœ ๋ฐ˜๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค.

@hannespreishuber ๋‹ค์šด๋กœ๋“œ ๋งํฌ๋Š” ์„ค๋ฌธ์กฐ์‚ฌ์˜ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ฌธ์กฐ์‚ฌ๊ฐ€ Chromium Edge์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ Chrome์—์„œ๋Š” ์ž‘๋™ํ–ˆ๋‹ค๋Š” ๋œป์ธ๊ฐ€์š”?

๋‹ค์šด๋กœ๋“œ ๋งํฌ๋Š” ์„ค๋ฌธ์กฐ์‚ฌ์˜ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ฌธ์กฐ์‚ฌ๊ฐ€ Chromium Edge์—์„œ > ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ Chrome์—์„œ๋Š” ์ž‘๋™ํ–ˆ๋‹ค๋Š” ๋œป์ธ๊ฐ€์š”?

๋‘˜ ๋‹ค์— ๋Œ€ํ•œ ์„ค๋ฌธ ์กฐ์‚ฌ๋ฅผ ํ–ˆ์ง€๋งŒ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€๋Š” ๋‹ฌ๋ž์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ œ ์ž˜๋ชป์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‘˜ ๋‹ค์— ๋Œ€ํ•œ ์„ค๋ฌธ ์กฐ์‚ฌ๋ฅผ ํ–ˆ์ง€๋งŒ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€๋Š” ๋‹ฌ๋ž์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ œ ์ž˜๋ชป์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒ„์ „์˜ Edge์—์„œ ์„ค๋ฌธ์กฐ์‚ฌ๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์šด๋กœ๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹œ๊ณ  ํŽ˜์ด์ง€ ์ฝ˜ํ…์ธ ๊ฐ€ Chrome๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ Œ๋”๋ง๋˜๋Š” ๊ฒฝ์šฐ Edge์—์„œ๋„ ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ ํ•ด ์ฃผ์„ธ์š”(์„ค์ • > ๋„์›€๋ง ๋ฐ ํ”ผ๋“œ๋ฐฑ > ํ”ผ๋“œ๋ฐฑ ๋ณด๋‚ด๊ธฐ) ๐Ÿ™‚

WinUI๊ฐ€ C++๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ WinUI ์ฝ”๋“œ์—๋Š” Windows ์ „์šฉ VC++/CX ํ™•์žฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? CX ํ™•์žฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด์‹์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@zezba9000 ์šฐ๋ฆฌ๋Š” ํ‘œ์ค€ C++17์ธ C++/WinRT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ WinUI 2 ์ปจํŠธ๋กค ๋ฐ ๊ธฐ๋Šฅ(ํ˜„์žฌ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์ƒˆ ์ฝ”๋“œ)์„ ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ ๋‚˜๋จธ์ง€ WinUI 3์€ ํ˜„์žฌ ์—ฌ์ „ํžˆ ์˜์กดํ•  ํ›จ์”ฌ ๋” ํฌ๊ณ  ์˜ค๋ž˜๋œ ์ฝ”๋“œ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. WRL ๋“ฑ์—์„œ. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ์ด์‹์„ฑ์— ์ดˆ์ ์„ ๋งž์ถ”์ง€ ์•Š๊ณ  ์žˆ์ง€๋งŒ ๋ฏธ๋ž˜์— ์ด์— ๋Œ€ํ•ด ๋…ผ์˜ํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‚˜์ค‘์— Vulkan ๋ฐฑ์—”๋“œ๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋„๋ก "๋น„์ฃผ์–ผ ๋ ˆ์ด์–ด" ์ถ”์ƒํ™” API๊ฐ€ DirectX API์—์„œ ์ถฉ๋ถ„ํžˆ ๋ฉ€๋ฆฌ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? (์ถœ์ฒ˜๊ฐ€ ๊ณต๊ฐœ๋˜๋ฉด ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ ํ™•์‹ ํ•˜์ง€๋งŒ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.)

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

์†Œํ”„ํŠธ์›จ์–ด ๋ž˜์Šคํ„ฐํ™”์— ๋Œ€ํ•œ ๋‚ด ์งˆ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. WinUI 3.0์€ ์ „์ฒด ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง(๋‹จ์ˆœํ•œ ํ…์ŠคํŠธ ๋ Œ๋”๋ง ๋˜๋Š” ๊ธฐํƒ€ ๊ธฐ๋Šฅ์ด ์•„๋‹Œ)์„ ์ง€์›ํ•ฉ๋‹ˆ๊นŒ? ๋•Œ๋กœ๋Š” ํ™”๋ฉด ๊ณต์œ  ์†Œํ”„ํŠธ์›จ์–ด์— GPU ๊ฐ€์† ์•ฑ(์ตœ์†Œํ•œ D3D9/WPF ์‚ฌ์šฉ)์— ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง์„ ๊ฐ•์ œ ์‹คํ–‰ํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ์•ฑ์ด ํ•˜๋“œ์›จ์–ด GPU๊ฐ€ ์—†๋Š” VM์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ.

์˜ˆ, ํ™”๋ฉด ๊ณต์œ ๋ฅผ ํ†ตํ•œ ๋ Œ๋”๋ง, VM ๋“ฑ์—์„œ ๋ชจ๋‘ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์ฝ˜ํ…์ธ ์—๋Š” ๋ˆˆ์— ๋„๋Š” ์ฐจ์ด๊ฐ€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ WinUI 2 ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ํŠน์ • ํšจ๊ณผ๊ฐ€ ๋Ÿฐํƒ€์ž„์— ์ง€์›/"๋น ๋ฅธ"์ง€ ์—ฌ๋ถ€๋ฅผ ์ฟผ๋ฆฌํ•˜๊ณ  ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ํŠน์ • ํšจ๊ณผ์˜ ๋” ๊ฐ„๋‹จํ•œ ๋ Œ๋”๋ง์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” API ์‚ฌ์šฉ์„ ๋ณผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์•ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ”Œ๋žซํผ ์ปจํŠธ๋กค ๋ฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹น์‹ ์€ ๊ธฐ๋Šฅ๊ณผ ๋ฒ„๊ทธ์˜ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. Microsoft์˜ ๋ฆฌ์†Œ์Šค/์ธ๋ ฅ ์ธก๋ฉด์—์„œ๋งŒ ์ƒ๊ฐํ•˜๊ณ  ๊ณ„์‹  ๊ฒƒ ๊ฐ™์•„ ๊ฑฑ์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ปจํŠธ๋กค์˜ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋งŽ์€ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์†Œ์Šค์—์„œ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ํšจ์œจ์ ์ด๋ฉฐ ํ”Œ๋žซํผ/๋„๊ตฌ์— ๋Œ€ํ•œ ์ธ์‹์—๋„ ์‹ค์ œ๋กœ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

100% ๋™์˜ - UWP/WinRT์˜ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋ช‡ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ–ˆ๋Š”์ง€ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.

์ œ์‹œ,

์ €๋Š” ์ฃผ๋กœ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ํ˜„์žฌ WinUI 3.0 Alpha๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Xaml, GPRC, ๋‹ค์ค‘ ์ฐฝ ๋ฐ ์ง„์ •ํ•œ ๋‹ค์ค‘ ์Šค๋ ˆ๋”ฉ์ด ๋น„์ฆˆ๋‹ˆ์Šค ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด๋‹ค ์ƒ์‚ฐ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ๊ฐœ๋… ์ฆ๋ช…์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์™œ์š”? ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜/์ž‘์€ ํ™”๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋Œ€์•ˆ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ฃผ์ œ์— ๋Œ€ํ•ด ๋” ํ•  ๋ง์ด ๋งŽ์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ KISS๋ฅผ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

WinUI ํŒ€๊ณผ ์‹ค์ œ๋กœ Microsoft์—์„œ ๋ฐ”๋ผ๋Š” ๊ฒƒ์€ ๋น„์ฆˆ๋‹ˆ์Šค์šฉ ๋ฐ์Šคํฌํ†ฑ ์•ฑ ๊ตฌ์ถ•์„ ์ˆ˜์šฉํ•˜๊ณ  ์ง€์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์›น ์•ฑ์ด ๊ธฐ์—…์—์„œ ๋น ๋ฅด๊ฒŒ ์ฑ„ํƒ๋œ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ ๊ฐ„ ์ง€์›, ๋ณด์•ˆ ๋ฐ ๋ฐฐํฌ ์šฉ์ด์„ฑ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋Œ€์•ˆ์ด ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ์Šคํฌํ†ฑ ์•ฑ์ด ์ด๋Ÿฌํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์‚ฐ์—…์€ ๋ธŒ๋ผ์šฐ์ € ๋ฐ/๋˜๋Š” ๋ชจ๋ฐ”์ผ/ํƒœ๋ธ”๋ฆฟ ํผ ํŒฉํ„ฐ์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ๊ณต์— ์ค‘์ ์„ ๋‘๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ "๋ชจ๋ฐ”์ผ ์šฐ์„ " ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋น„๊ตํ•  ๋•Œ CPU, ํ™”๋ฉด ํฌ๊ธฐ, ๋ฉ”๋ชจ๋ฆฌ, ์Šคํ† ๋ฆฌ์ง€, ๊ทธ๋ž˜ํ”ฝ ๋ฐ ๋Œ€์—ญํญ์ด ๋งŽ์€ ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ LOB ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์‚ฌ์šฉ์ž๋Š” ํ•œ ๋ฒˆ์— ๋ช‡ ์‹œ๊ฐ„์”ฉ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์š”์†Œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์•ฑ ๋””์ž์ธ ์ง€์นจ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ๋งŽ์€ ๋…ผ์˜๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ์ฐจ์›์ธ ์ˆ˜๋ช…๊ณผ ๊ธฐ์ˆ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋„ ํ•  ๋ง์ด ๋งŽ์ง€๋งŒ ์š”์•ฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—…์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์— ๋ˆ์„ ํˆฌ์žํ•˜๊ณ  ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ "์˜ค๋ž˜" ์‚ฌ์šฉํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ๋ณธ ๊ธฐ์ˆ ์ด ์ˆ˜์‹ญ ๋…„ ๋™์•ˆ ์ง€์›๋˜์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. WinUI๊ฐ€ Win32/MFC ๋ฐ WinForms๋ฅผ ๋Œ€์ฒดํ•  ์ฐจ์„ธ๋Œ€ ๊ธฐ์ˆ ์ด ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.

IT ๋ถ€์„œ๋Š” ์ ์ ˆํ•œ ๊ธฐ์ˆ ์„ ๊ฐ–์ถ˜ SE๋ฅผ ์ฐพ๋Š” ๋ฐ ๋Š์ž„์—†์ด ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ๊ธฐ์ˆ ์€ ์ด๊ฒƒ์„ ๋”์šฑ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์Šคํฌํ†ฑ ์•ฑ ๊ตฌ์ถ•์— ์ค‘์ ์„ ๋‘” ์ƒˆ๋กœ์šด ์Šคํƒ C#, Xaml ๋ฐ SQL(C#XS)์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์Šคํƒ€์ผ๋ง๊ณผ ๊ด€๋ จํ•˜์—ฌ ํ•˜๊ณ  ์‹ถ์€ ์†Œ์†Œํ•œ ํฌ์ธํŠธ๋„ ์žˆ๋‹ค. WinUI ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•˜๋ ค๋ฉด "์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ" ์ตœ์†Œํ•œ์˜ ์Šคํƒ€์ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๊ฒƒ์€ Fluent์—์„œ ์ง์ ‘ ์ง€์‹œ๋  โ€‹โ€‹์ˆ˜ ์žˆ์ง€๋งŒ ์ปจํŠธ๋กค(์Šคํฌ๋กค ๋ง‰๋Œ€์™€ ๊ฐ™์€)์„ ์ˆจ๊ธฐ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ์šฉ์ž๋Š” ํ™”๋ฉด์˜ ์‹ค์ œ ์ƒํƒœ๊ฐ€ ์ถฉ๋ถ„ํ•˜๊ณ  ํŽ˜์ด์ง€์— ๋” ๋งŽ์€ ๊ฒƒ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ UI๊ฐ€ ์–ผ๋งˆ๋‚˜ "๋ฉ‹์ง„"์ง€๋Š” ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ•๋ ฅํ•œ(๋ฌด๋ฃŒ) ๋ฐ์ดํ„ฐ ๊ทธ๋ฆฌ๋“œ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํžˆ ๊ฐ•์กฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด ๊ณต์œ ํ•  ์•„์ด๋””์–ด๊ฐ€ ๋” ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ๋ฉˆ์ถ”๊ณ  ์š”์•ฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

โ€ข Microsoft๋Š” ํฌ๊ด„์ ์ธ ๋ฐ์Šคํฌํ†ฑ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
โ€ข WinUI/Fluent๋Š” ๊ธฐ๋Šฅ/์–‘์‹, ๋ฐ์Šคํฌํ†ฑ์šฉ UX, ๋‹ค์ค‘ ์ฐฝ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ฝ”๋“œ ์ƒ˜ํ”Œ/ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ, ์ง„์ •ํ•œ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ, ๋ฐ์ดํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, "์–‘์‹๊ณผ ์œ ์‚ฌํ•œ" ํŽ˜์ด์ง€์™€ ๊ฐ™์€ ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
โ€ข Microsoft๋Š” ์ƒ์‚ฐ์„ฑ์ด ๋†’๊ณ  ์ˆ˜๋ช…์ด ๊ธด ๋น„์ฆˆ๋‹ˆ์Šค LOB ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด WinUI๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Œ์„ ๋ถ„๋ช…ํžˆ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ .Net 5 + WinUI๊ฐ€ ๋˜ ๋‹ค๋ฅธ DLL ์ง€์˜ฅ์ด ์•„๋‹Œ ์ด์œ .
โ€ข WinUI๊ฐ€ Win32/MFC ๋ฐ WinForms๋ฅผ ๋Œ€์ฒดํ•œ๋‹ค๋Š” ์ ์„ ๋ถ„๋ช…ํžˆ ํ•˜์‹ญ์‹œ์˜ค.
โ€ข C#XS๋ฅผ IT๋ฅผ ์œ„ํ•œ ๊ธฐ์ˆ  ์„ธํŠธ๋กœ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.
โ€ข (๋ฌด๋ฃŒ) ๋ฐ์ดํ„ฐ ๊ทธ๋ฆฌ๋“œ

๋„์›€์ด ๋˜์…จ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@roblo ํŽธํžˆ ์‰ฌ์„ธ์š” - ํ† ๋ก ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค! ๐Ÿ™‚ ๋‚˜๋Š” ์ดˆ๊ธฐ ์ฝ”๋ฉ˜ํŠธ์—์„œ ์ด ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ๋กœ ์•ฝ์†ํ–ˆ์œผ๋ฉฐ ์—ฌ์ „ํžˆ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ์ €๋„ ๊ณ„์† ์ผ๋ฐ˜ํ™”๋ฅผ ํ•ด์„œ ๋” ์ผ์ฐ ์‹ค์ˆ˜๋ฅผ ํ•œ ๊ฒƒ ๊ฐ™์•„์š”. ๋‹น์‹ ์ด ๋‚˜์—ดํ•œ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ฉ์‹œ๋‹ค. ์šฐ๋ฆฌ์˜ ์ฃผ์š” ํœด๊ฐ€ ์ง์ „์— ๋‘ ๊ฑด์ด ์ ‘์ˆ˜๋˜์—ˆ๊ณ ( @teaP์— ๋Œ€ํ•ด์„œ๋Š” ๋งํ•  ์ˆ˜ ์—†์ง€๋งŒ 12์›” ๋Œ€๋ถ€๋ถ„์€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ์˜€์Šต๋‹ˆ๋‹ค) ์—”์ง€๋‹ˆ์–ด๋ง ์ธก๋ฉด์—์„œ ๊ด€๋ฆฌ ๋ณ€๊ฒฝ์„ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค(@ranjeshj ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค!). ๋ณ€๋ช…์˜ ์—ฌ์ง€๊ฐ€ ์—†์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ๋ฐ ๋ถ€์žฌ ๊ธฐ๊ฐ„ ๋™์•ˆ ์ด ๋‘ ๊ฐ€์ง€ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ๋ณด๋‹ค ์‹ ์†ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•œ ์ ์— ๋Œ€ํ•ด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋‚˜์—ด๋œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ๋ชจ๋‘ ์ง€๋‚œ 10์ผ ์ด๋‚ด์— ์ œ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

@SavoySchuler ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@SavoySchuler , ๋‹ค์Œ ์ค‘์—์„œ ์„ ํƒํ•˜๊ธฐ ์–ด๋ ค์šด ์œ„์น˜์— ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

a) WinUI 2.x ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ WinUI 3.0 ์ถœ์‹œ ์—ฐ๊ธฐ
๋˜๋Š”
b) WinUI 2.x๋ฅผ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋‚จ๊ฒจ๋‘๊ณ  WinUI 3.0์— ๋‚ด๋ถ€ ๋ฆฌ์†Œ์Šค๋ฅผ ํ• ๋‹นํ•˜์—ฌ ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฆด๋ฆฌ์Šค ๋‚ ์งœ๋ฅผ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ๊ธฐ์กด WinUI 2.x ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ์˜ํ–ฅ์„ ๋ฐ›๊ณ  ์žˆ๋Š” ๋ฒ„๊ทธ๋ฅผ ๋จผ์ € ์ˆ˜์ •ํ•˜๊ธฐ๋ฅผ ์›ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ถฉ๋ถ„ํ•œ ๋ฆฌ์†Œ์Šค( WinUI 3.0์ด 2.x์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ๊ฐ€์ •).

๊ฐœ์ธ์ ์œผ๋กœ ์ €๋Š” WinUI 3.0 ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ง€์—ฐ๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ WinUI 2.x(๊ฒฐ๊ตญ ์˜คํ”ˆ ์†Œ์Šค์ž„)์—์„œ ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์ฐธ์—ฌํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ฒƒ์ด ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ ํ”„๋กœ์ ํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์ผ์„ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ธฐ๋Œ€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ๊ทธ๊ฒƒ์€ ํ˜„์‹ค์ ์ด์ง€ ์•Š์œผ๋ฉฐ ๋‹ค๋ฅธ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๋„ ์•„๋‹™๋‹ˆ๋‹ค.

@jesbis , WinUI 3.0๊ณผ ๊ด€๋ จํ•˜์—ฌ Visual Layer์— ๋Œ€ํ•ด ํฅ๋ฏธ๋กญ๊ฒŒ ๋“ฃ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๋ฆด๋ฆฌ์Šค์˜ ๊ฒฝ์šฐ WinUI 3.0์ด Windows.UI.Composition ํด๋ž˜์Šค์— ์ข…์†๋œ๋‹ค๋Š” ๋ง์”€์ด์‹ ๊ฐ€์š”? WinUI 3.0์œผ๋กœ ์ถ”์ถœํ•˜๊ธฐ ์ „์— Visual Layer๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด OS์— ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ฐธ๊ณ ๋กœ ์ œ๊ฐ€ ๊ด€์‹ฌ ์žˆ๋Š” ๋ถ„์•ผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Win32 "AppContainer" ๋ชจ๋ธ. ์šฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ OS์—์„œ ์™„์ „ํžˆ ์ƒŒ๋“œ๋ฐ•์Šค ํ˜ธํ™˜๋˜์ง€๋งŒ "์ตœ์‹ " API์— ์•ก์„ธ์Šคํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
  • ๋น„์ฃผ์–ผ ๋ ˆ์ด์–ด( Windows|Microsoft.UI.Composition )
  • ๋น„์ฃผ์–ผ ๋ ˆ์ด์–ด์˜ DXGI ์Šค์™‘ ์ฒด์ธ / SwapChainPanel
  • ์ฐฝ ๊ด€๋ฆฌ API(AppWindow ๋“ฑ)

@infoequipt ์ž์„ธํ•œ ์ •๋ณด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ํ™•์‹คํžˆ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์‹œ์„ฑ์„ ์œ„ํ•œ @marb2000

WinUI 3.0๊ณผ ๊ด€๋ จํ•˜์—ฌ Visual Layer์— ๋Œ€ํ•ด ๋“ฃ๋Š” ๊ฒƒ์€ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๋ฆด๋ฆฌ์Šค์˜ ๊ฒฝ์šฐ WinUI 3.0์ด Windows.UI.Composition ํด๋ž˜์Šค์— ์ข…์†๋œ๋‹ค๋Š” ๋ง์”€์ด์‹ ๊ฐ€์š”?

@MarkIngramUK ์•„๋‹ˆ์š”, ํ˜ผ๋ž€์„ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ์š”์ ์€ ์˜คํ”ˆ ์†Œ์‹ฑ์— ๊ด€ํ•œ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

Microsoft.UI.Composition์€ WinUI 3์˜ ์ผ๋ถ€๊ฐ€ ๋˜๋ฉฐ Microsoft.UI.Xaml์€ ์ด์— ์ข…์†๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ด๋ฏธ WinUI 3 Alpha์˜ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” Xaml์„ ์˜คํ”ˆ ์†Œ์‹ฑํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, Xaml ํ”„๋ ˆ์ž„์›Œํฌ ์ฝ”๋“œ๊ฐ€ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์žˆ๊ณ  ์—”์ง€๋‹ˆ์–ด๋ง ํŒ€์ด ์•ž์œผ๋กœ GitHub์˜ Xaml์— ๋Œ€ํ•ด ํ•˜๋ฃจ ์ข…์ผ ์ž‘์—…์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Xaml์ด ์˜์กดํ•˜๋Š” Microsoft.UI.Composition ํŒจํ‚ค์ง€๋Š” ์—ฌ์ „ํžˆ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹์œผ๋กœ๋งŒ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

@jebis ์— ๋Œ€ํ•œ ์„ค๋ช… ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์–ด๋–ค ๋ฐฐํฌ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ํ”Œ๋žซํผ ๊ฐ„ ์•ฑ์ด๋ฏ€๋กœ CMake๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Windows.UI.Composition์— ์ข…์†๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ƒˆ dll, lib, ํ—ค๋” ๋“ฑ์„ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

OS์—์„œ Visual Layer๋ฅผ ์ถ”์ถœํ•  ๋•Œ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ฆ‰, Visual Layer์—๋งŒ ์˜์กดํ•œ๋‹ค๋ฉด ์ƒˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ถ๊ทน์ ์œผ๋กœ Microsoft.UI.Composition์„ ๊ณต๊ฐœํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@MarkIngramUK ๋‚˜๋Š” ๋‹น์‹ ์ด ๋งํ•˜๋Š” ๊ฒƒ๊ณผ @SavoySchuler ๊ฐ€ 'ํฐ ๊ทธ๋ฆผ' ๊ด€์ ์—์„œ ๋งํ•˜๋Š” ๊ฒƒ์— ๋Œ€์ฒด๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์ง€์ ํ–ˆ๋“ฏ์ด, ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ํ”„๋กœ๋•์…˜ ์•ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— WinUI 2.0 ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„๊ทธ๋ฅผ ๋ฐ›์•„๋“ค์ด๊ธฐ๊ฐ€ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. WinUI 3.0์„ ์ง€์—ฐ์‹œํ‚ค์ง€ ์•Š๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๊ณผ WinUI 3.0์„ ์ •์ƒ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ ์‚ฌ์ด์—์„œ ํƒ€ํ˜‘์ ์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. NumberBox๊ฐ€ ์ฆ‰์‹œ ๋ฌด์‹œ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ์ปจํŠธ๋กค์ด๋ผ๋Š” ์ถ”๊ฐ€์ ์ธ ์ขŒ์ ˆ๊ฐ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Microsoft๊ฐ€ 1๋…„ ์ด์ƒ ์ด๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๋Š” ์˜๊ฒฌ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๋‚˜๋Š” WinUI 3.0์ด ์šฐ์„ ์ˆœ์œ„๋ผ๋Š” ๋ฐ ํ™•์‹คํžˆ ๋™์˜ํ•˜๋ฉฐ, ๊ทธ๊ฒƒ์ด ์ƒ๋‹นํ•œ ์šฉ๋Ÿ‰์œผ๋กœ ์ง€์—ฐ๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ด๋ฅผ ์œ„ํ•ด ์–ด๋–ค ๋ฐฐํฌ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ํ”Œ๋žซํผ ๊ฐ„ ์•ฑ์ด๋ฏ€๋กœ CMake๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Windows.UI.Composition์— ์ข…์†๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ƒˆ dll, lib, ํ—ค๋” ๋“ฑ์„ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

@MarkIngramUK ๊ฐ€ NuGet ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ WinUI 2.x ๋ฐ WinUI 3 Alpha๋กœ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ Visual Studio ํŒ€๊ณผ ์ผ๋ถ€ ๋ฐฐํฌ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ WinUI 3 Alpha๋Š” 1๊ฐœ์˜ ํŒจํ‚ค์ง€์— Xaml ๋ฐ Composition ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜์ง€๋งŒ ์˜คํ”ˆ ์†Œ์Šค Xaml์„ ์ง€์›ํ•˜๊ณ  Xaml์„ ๋ณ„๋„๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ถ„๋ฆฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


OS์—์„œ Visual Layer๋ฅผ ์ถ”์ถœํ•  ๋•Œ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ฆ‰, Visual Layer์—๋งŒ ์˜์กดํ•œ๋‹ค๋ฉด ์ƒˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ณ„์† ์ง€์ผœ๋ด ์ฃผ์„ธ์š” ๐Ÿ™‚ ์„ฑ๋Šฅ ๋ฒค์น˜๋งˆํ‚น ๋ฐ ์ž‘์—…์€ ์˜ฌํ•ด ํ›„๋ฐ˜์— ๋Œ€ํ•œ ๋กœ๋“œ๋งต์— ์žˆ์œผ๋ฏ€๋กœ ์ˆซ์ž๋ฅผ ๊ฐ–๊ธฐ์—๋Š” ๋„ˆ๋ฌด ์ด๋ฆ…๋‹ˆ๋‹ค.


๊ถ๊ทน์ ์œผ๋กœ Microsoft.UI.Composition์„ ๊ณต๊ฐœํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ž ์žฌ์ ์œผ๋กœ ๊ณ ๋ คํ•  ๋ฐฑ๋กœ๊ทธ์— ์žˆ์ง€๋งŒ ๊ณ„ํš์ด ์—†์Šต๋‹ˆ๋‹ค.

@MarkIngramUK ์งˆ๋ฌธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด: ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ํ†ตํ•ด ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

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

@roblo ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์šฐ๋ฆฌ๋Š” ์ •๋ง๋กœ ํˆฌ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ทธ๊ฒƒ์ด ๊ฐ€์น˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•„๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค ๐Ÿ™‚

Savoy๊ฐ€ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๊ธฐ ์œ„ํ•ด WinUI 2.x์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ(PR ๋กœ๊ทธ์—์„œ๋„ ๋ณผ ์ˆ˜ ์žˆ์Œ) ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ WinUI 2์™€ 3 ๋ชจ๋‘์— ๋ณ‘๋ ฌ๋กœ ํˆฌ์žํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๋Š” WinUI 3์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ํŠนํžˆ ์•ฝ๊ฐ„์˜ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•œ NumberBox์— ๋Œ€ํ•ด ๋™์˜ํ•˜๋ฉฐ Xaml ์ปจํŠธ๋กค ๊ฐœ๋ฐœ ๋ฆฌ๋“œ๊ฐ€ ์ง€๊ธˆ ์กฐ์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@roblo ๋‹น์‹ ์€ ์ตœ๊ณ ์ž…๋‹ˆ๋‹ค! ๐Ÿ˜„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ˜ผ๋ž€์„ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์–ธ๊ธ‰๋œ ~1๋…„ ์ง€์—ฐ์˜ ๋Œ€์ƒ์€ 3.0์œผ๋กœ ์˜ˆ์ •๋œ ์ „์ฒด ์ž…๋ ฅ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ž‘์—… ์—์„œ ์ฐจ๋‹จ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— NumberBox์˜ ์ถ”๊ฐ€ ์ž…๋ ฅ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ชจ๋“œ ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด @teaP , @ranjeshj , ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ๋‹ค์Œ ์ฃผ๋ถ€ํ„ฐ NumberBox ๋ฒ„๊ทธ ๋ชฉ๋ก์— ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค. ๐Ÿ™‚

@jebis ๊ฐ€ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค๋ฃจ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค!

@์ œ์Šค๋น„์Šค ,

@MarkIngramUK ๊ฐ€ NuGet ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ WinUI 2.x ๋ฐ WinUI 3 Alpha๋กœ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ Visual Studio ํŒ€๊ณผ ์ผ๋ถ€ ๋ฐฐํฌ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ WinUI 3 Alpha๋Š” 1๊ฐœ์˜ ํŒจํ‚ค์ง€์— Xaml ๋ฐ Composition ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜์ง€๋งŒ ์˜คํ”ˆ ์†Œ์Šค Xaml์„ ์ง€์›ํ•˜๊ณ  Xaml์„ ๋ณ„๋„๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ถ„๋ฆฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์†”์งํžˆ ๋งํ•ด์„œ, ์ €๋Š” NuGet์— ์ต์ˆ™ํ•˜์ง€ ์•Š์ง€๋งŒ ์ด SO ๋‹ต๋ณ€ ์„ ๋ณด๋ฉด CMake๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VS ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹™๋‹ˆ๋‹ค(์ผ๋ฐ˜์ ์œผ๋กœ ํด๋” ์—ด๊ธฐ , ์ƒ์„ฑ๊ธฐ๋กœ Ninja๋ฅผ ์‚ฌ์šฉํ•จ). vcpkg ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์€ ์œ ๊ฐ์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์šฐ๋ฆฌ๋Š” ์†Œ์Šค์—์„œ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค(ํŠนํžˆ Windows์—์„œ๋„ Clang/LLVM์œผ๋กœ ๋นŒ๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์ž ์žฌ์ ์ธ ABI ๋ฌธ์ œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Œ).

๊ถ๊ทน์ ์œผ๋กœ Microsoft.UI.Composition์„ ๊ณต๊ฐœํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ž ์žฌ์ ์œผ๋กœ ๊ณ ๋ คํ•  ๋ฐฑ๋กœ๊ทธ์— ์žˆ์ง€๋งŒ ๊ณ„ํš์ด ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์— ๊ด€์‹ฌ์ด ์žˆ์œผ๋ฏ€๋กœ, ๊ทธ๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ํ† ๋ก ์— ์ฐธ์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@MarkIngramUK ์งˆ๋ฌธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด: ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ํ†ตํ•ด ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

์ดˆ๊ธฐ ์ƒ๊ฐ์€ ๊ธฐ์—ฌ/ํ™•์žฅ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์ด์ „์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด Xaml Framework/UWP๊ฐ€ ์•„๋‹Œ Windows.UI.Composition์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์žˆ์Œ). ํ”Œ๋žซํผ์€ ํฅ๋ฏธ๋กœ์šธ ์ˆ˜ ์žˆ์ง€๋งŒ ์ €๋Š” ๋ง ๊ทธ๋Œ€๋กœ 30์ดˆ ๋™์•ˆ๋งŒ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜คํ”ˆ ์†Œ์‹ฑ์€ ๋ช‡ ๋…„ ์•ˆ์— Microsoft์—์„œ ๊ฒฐ๊ตญ ํฌ๊ธฐํ•˜๊ฒŒ ๋  ๋˜ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ฑ„ํƒํ•ด์•ผ ํ•˜๋Š” ๊ณจ์น˜ ์•„ํ”ˆ ๊ฑฑ์ •์„ ๋œ์–ด์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. , ๋‹น์‹ ์€ ๋‚ด๊ฐ€ ์—ฌ๊ธฐ์—์„œ ์˜ค๋Š” ๊ณณ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ...).

๋„˜๋ฒ„๋ฐ•์Šค

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„! @teaP , @ranjeshj , ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ์˜ค๋Š˜ ์—ด๋ ค ์žˆ๋Š” ๋ชจ๋“  NumberBox ํ•ญ๋ชฉ์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

  • ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ๋ช‡ ๊ฐœ๋ฅผ ๋‹ซ์•˜์Šต๋‹ˆ๋‹ค.
  • @teaP ๋Š” ๋” ๋งŽ์€ ๊ฒƒ์— ๋Œ€ํ•œ ๊ฒฐํ•ฉ๋œ PR ์„ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค( ์—ฌ๊ธฐ์—์„œ ๋ ˆ์ด๋ธ” ํ•„ํ„ฐ๋ง ).
  • ๋‚˜๋จธ์ง€(#1721 ์ œ์™ธ)์— ๋Œ€ํ•œ ์กฐ์น˜๊ฐ€ ๊ฒฐ์ •๋˜์—ˆ์œผ๋ฉฐ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ˆ˜์ • ์‚ฌํ•ญ์— ์‘๋‹ตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. #1721 ์•ž์œผ๋กœ ์ตœ์„ ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง„๋‹จํ•˜๋ ค๋ฉด ๋” ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณ„์† ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์™€ ํ•จ๊ป˜ ์ผํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ™‚ ์šฐ๋ฆฌ โค๏ธ WinUI!

WinUI ์ปค๋ฎค๋‹ˆํ‹ฐ ํ˜ธ์ถœ์— ๋Œ€ํ•œ "์บ˜๋ฆฐ๋”"๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์˜ˆ: ํ†ตํ™” ์„ธ๋ถ€์ •๋ณด์˜ ์ž๋™ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด live/google/* ์บ˜๋ฆฐ๋”์— ์ถ”๊ฐ€/ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐœ ์บ˜๋ฆฐ๋” ํ˜•์‹์ž…๋‹ˆ๋‹ค.

YouTube ์ด๋ฒคํŠธ๋Š” ๋ฏธ๋ฆฌ ์˜ˆ์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ " ์˜ˆ์ •๋œ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆผ"์—์„œ Google ์•Œ๋ฆผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://www.youtube.com/channel/UCzLbHrU7U3cUDNQWWAqjceA

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

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