์ฌ๋ฌ๋ถ, ์๋ ํ์ธ์.
์ ๋ฅผ ๋ชจ๋ฅด๋ ์ฌ๋๋ค์ ์ํด ์ ๋ 2008๋ ๋ถํฐ ๋ฒ ํ ๋ XAML ๊ฐ๋ฐ์์์ต๋๋ค. ์ ๋ XAML(WPF, Xamarin Forms ๋ฐ UWP ๋ฑ)๊ณผ ์ต์ํ์ผ๋ก ๊ด๋ จ๋ XAML๊ณผ ๊ด๋ จ๋ ๊ฑฐ์ ๋ชจ๋ ์์ ์ ์ฐธ์ฌํ์ต๋๋ค. ๋ด๊ฐ ์ด ๊ธ์ ์ฐ๋ ์ ์ผํ ์ด์ ๋ ์ด๋ฏธ ๋ฃจํ์์ ๋ฒ์ด๋ฌ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ ๋ชจ๋ธ๊ณผ ๊ด๋ จํ์ฌ ํนํ ์ฌ๋ฐ๋ฅธ ์ผ์ ํ๋ Microsoft์ ๋ํ ํฌ๋ง์ ์์ด ๋ฒ๋ฆฐ ์๋ง์ Forgotten Developers๋ฅผ ๋๊ณ ๋ชฉ์๋ฆฌ๋ฅผ ๋ด๊ธฐ ์ํจ ์ ๋๋ค. ํ ๋ก ์ฃผ์ ์ ๊ฐ์ GUI ๊ด๋ จ.
์ปค๋ฎค๋ํฐ์ ๊ธด ๋ํ๋ฅผ ๋๋๊ณ Uno Platform ๋ฐ AvaloniaUI ์ ๊ฐ์ ํ๋ก์ ํธ์ ์ฐธ์ฌํ๊ฒ ๋ ํ ์ด๊ฒ์ด ์ ๊ฐ ์ป์ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์ ์ ๊ฐ ์ด ๋ํ๋ฅผ ํตํด ์์งํ ๋ชจ๋ ์๊ฒฌ๊ณผ ๊ด์ ์ ์์ถํ๋ ค๊ณ ํฉ๋๋ค. ๋ณด์๋ค์ํผ, ๊ทธ๋ค์ WinUI๊ฐ ํํ๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๊ฒฝ๋ก์ ๋ํด ๋งค์ฐ ๋นํ์ ์ ๋๋ค.
๋ด๊ฐ ์ ์ ๋งํ๋ฏ์ด, ๊ทธ๋ค์ ์ด๋ฏธ ๋ฃจํ์์ ๋ฒ์ด๋ฌ๊ฑฐ๋ ๋จ์ํ ์์ง๋์์ต๋๋ค. ๊ทธ๋ค ์ค ์ผ๋ถ๋ ์๋ ๊ฐ ๋น์ ์ ์ฃผ์๋ฅผ ํ๊ธฐ์ํค๋ ค ํ์ง๋ง ๋ฌด์๋นํ๊ฑฐ๋ ์นจ๋ฌต์ ์ง์ผฐ์ต๋๋ค.
์์ฝํ์๋ฉด, Forgotten Developers:
์์๋ฆฌ๊ฐ ์๋๋ผ ์ํ๊น์ด ํ์ค์ ๋๋ค.
WPF ๋ฐ UWP๋ฅผ ์ต๋ํ ํ์ฉํ์ญ์์ค.
Xamarin์ด .NET 5์ ๋ณํฉ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
UWP XAML์ ํ์ค์ผ๋ก ์ฑํํ๊ณ ๊ฑฐ๊ธฐ์์ ์์
ํ๋ฉด Microsoft์ UNO๊ฐ ๋ฐ์คํฌํฑ, ๋ชจ๋ฐ์ผ, ์น ๋ธ๋ผ์ฐ์ (Azure) ๋ฐ IoT์ ๊ฐ์ฅ ์ ํฉํ๋๋ก ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ทธ๋ค์ ๊ทธ๊ฒ์ ๋ถ๋ฅผ ์ ์์ต๋๋ค
UWP vNext(WinUI ๊ธฐ๋ฐ)/ Silverlight 6(UNO)
Blazor์ ๋
ธ๋ ฅ์ ํ์ฌ ๊ธฐ๋ณธ ๋ ๋๋ง์ ์ฌ์ฉํ์ฌ .NET์ ๊ณต์์ ์ผ๋ก WebBrowser์ ๊ฐ์ ธ์ค๋ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ผ๊ณ ์๊ฐํฉ๋๋ค. HTML DOM
๊ทธ๋ฌ๋ ๋จธ์ง ์์ ๋ค๋ฅธ ๋ ๋๋ง ์์ง, WinUI๋ฅผ ์ํ ๊ฒฝ๋ ๋ณด์, Silverlight, UNO Platform ๋ฐ Xamarin์ ๋๋ ๋ฌด์ธ๊ฐ๋ฅผ Flutter/WPF์ ๊ฐ์ด ์ ๊ณตํ ์ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
UWP XAML์ ํ์ค์ผ๋ก ์ฑํํ๊ณ ๊ฑฐ๊ธฐ์์ ์์ ํ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
์ฌ๋ฌ๋ถ์ด ์ํ๋ ๋ชจ๋ ๊ฒ์ด ์ด๋ฏธ Uno์์ ์ด๋ฃจ์ด์ง๊ณ ์์ต๋๋ค. MS๋ ๊ทธ ์ฌ๋๋ค์ ์ฌ๋ค์ธ ๋ค์ Uno์ ์ต์ข ๊ฐ๋ฐ์ ๋๋๋ก ๊ณ ์ฉํ๋ ๊ฒ์ด ํ๋ช ํ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ์๋ง๋ ์ด์ ๊ฐ์ ๊ธฐ๋ฅ์ ์์ฒญํ๋ ์๋ชป๋ ์ฅ์์ผ ๊ฒ์ ๋๋ค. ์ด ์์ฒญ์ ๋ชจ๋ ๊ฒ์ ๋์ํ๊ณ ์ถ์ ๋งํผ WinUI ํ๊ณผ Windows ์ปค๋ฎค๋ํฐ์ ๋ง์ ์ ์ ๊ฐ๋ฐ์๋ WinUI๋ฅผ ๋งค์ฐ ์ข๊ฒ ์ ์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์์ ์ธ ์ธ๊ณ์์ WinUI๋ ๋จธํฐ๋ฆฌ์ผ ๋์์ธ๊ณผ ๊ฐ์ต๋๋ค. ๊ทธ๊ฒ์ ๊ตฌํํ๋ ๋ชจ๋ ์ข ๋ฅ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ๋ชจ๋ ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ WinUI๋ ๋์์ธ ์ธ์ด๊ฐ ์๋๋ฏ๋ก Fluent Design๋ ์๋๋๋ค. Microsoft๋ ๋ชจ๋ธ ๊ณต๊ฐ์ ์์ง ์๊ธฐ ๋๋ฌธ์ UI ์ ํ์ ๊ฒฝ์์ ์ฒด๋ณด๋ค ํจ์ฌ ๋ ๋ง์ด ๋ง๋ค์์ต๋๋ค.
WinUI๋ Windows ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ ์ด๊ฒ์ ๊ฐ์ฅ ๋ช ํํฉ๋๋ค. ๋์์ธ ์ธ์ด๋ ๊ตฌํ๊ณผ ๋ณ๊ฐ๊ฐ ์๋๋ฉฐ ๊ตฌ์ฑ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ด ํ๋ซํผ ์ข ์์ฑ์ ํฌ๊ฒ ์์กดํ๊ธฐ ๋๋ฌธ์ ๊ตฌํ์ ํ๋ซํผ ๋ฐฐํ์ ์ ๋๋ค. ์ด๊ฒ์ ๋ชจ๋ฐ์ผ/ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ์์ ๊ด์ ์์ ๋ณผ ๋ ์ข์ง ์์ง๋ง ์ฌ๊ธฐ์์ ๋ ธ๋ ฅ์ ์ค์ ๋ก Windows ์ฑ์ ์ํ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ด ๋ํ Uno Platform์ด DX 11์ ๋ชจ๋ ํ๋ซํผ์ ์ด์ํ์ง ์๋ ํ ๋ชจ๋ ๊ณณ์์ ์ง์ ํ WinUI๊ฐ ๋ ์ ์๋ ์ด์ ์ด๊ธฐ๋ ํฉ๋๋ค.
Comet(.Net ๊ธฐ๋ฐ ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ ํ๋ ์์ํฌ)๋ฅผ ์ดํด๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๊ธฐ ๋จ๊ณ์ด์ง๋ง ๊ฐ๋ ์ Flutter์ ๋ค๋ฅด์ง ์์ต๋๋ค. ๋ํ Skia(์ต์ )๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ ๊ฐ๋ฅ/์ ์ธ์ UI ํจํด์ผ๋ก UI๋ฅผ ๊ทธ๋ฆฌ๋ฏ๋ก ๊ฐ๋ฐ์๋ Material Design๊ณผ ๊ฐ์ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌํํ๊ณ ๋ชจ๋ ํ๋ซํผ์์ ์์ ํ ๋์ผํ๊ฒ ๋ณด์ด๊ฒ ํ ์ ์์ต๋๋ค.
์๋์, ํฌ๋ก์ค ํ๋ซํผ์ด ์๋์ด์ผ ํฉ๋๋ค. ์ด์ ๋ Windows UI๋ผ๊ณ ํฉ๋๋ค. ์์ํ๊ธฐ ์ํด ๋ชจ๋ Windows(ํ๋ซํผ ๋ฐ ์ธ์ด)์์ ์๋ํ๋ UI ์์คํ ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๊ฒ์ ์์ง ๋ฌ์ฑ๋์ง๋ ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ ํ .net ํ๋ ์์ํฌ, .net ์ฝ์ด, uwp ๋ฐ C++ ์คํ ๋ฆฌ๋ก ๋๋ฉ๋๋ค. ์ต์ํ uwp๋ ์์ง๋ง ๊ฒ์ ๊ฐ๋ฐ์๋ ์ฌ์ฉํ์ง ์์ต๋๋ค. UWP/WinRT์๋ ์ฌ์ ํ ๋ฐฐํฌ, ๊ฐ์ ์์ ํ์์ค ๋ฐ ์ ๋ชฉ ํ์์ค ํ์ ๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ ์ฒด ํ๋ฉด์ผ ๋(yikes).
ํฌ๋ก์ค ํ๋ซํผ์ ๋ํด ์๊ฐํ๋ ๊ฒ์ ์์ฒญ๋ ์์ ๋ญ๋น์ ๋๋ค. ๋จผ์ Windows์์ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์นํ์ญ์์ค. ๊ทธ๋ฆฌ๊ณ .net 5๋ฅผ ์ถ์ํ๊ณ UWP์ ์๋์ฐ ์คํ ๋ฆฌ๋ฅผ ์์ ํ๊ณ DirectX๋ฅผ C#์ ๋ฃ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ GC๋ฅผ ์์ ํฉ๋๋ค. ์ข์ ์๋๋ฆฌ์ค์์๋ Windows์์๋ง ํด์ผ ํ ์ผ์ด ๋๋ฌด ๋ง์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ OP์๊ฒ.
UWP๋ ๋ณดํธ์ ์ ๋๋ค. ๋ณดํธ์ ์ด์ง ์๋ค๊ณ ๋งํ๋ ๊ฒ์ ์๋ชป๋ ์ฃผ์ฅ์ ๋๋ค(Android๋ฅผ ๋์์ผ๋ก ํ๋ ค๋ ๊ฒ์ด ์๋๋๋ค. ๊ฐ์ฌํฉ๋๋ค). ์๋ ์ฝ์์ด ์ ๋ฌ๋์์ต๋๋ค. ๋ชจ๋ Windows ์ฅ์น๋ UWP๋ฅผ ์คํํฉ๋๋ค. Windows Mobile์ ๋ณ๋์ OS์์ผ๋ฏ๋ก ์ ๊ฑฐํด์ผ ํ์ต๋๋ค. ๋ชจ๋ ์๋ก์ด Windows ํ๋ซํผ์ Windows(10 ๋๋ 10X)์ ๋๋ค. ๊ฒฐ๊ตญ CoreOS๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๋ชจ๋ Windows ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ ๊ฒ์ ๋๋ค. ํ์ฌ Windows Phone์ด ์๊ธฐ ๋๋ฌธ์ ๋ถ์์ ์ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ์ฅ์น ์ ํ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๊ณง Neo์ Duo๋ฅผ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์๋๋ฐ์ค ์ ํ - ์ด๊ฒ์ ์ข์ ๊ฒ์ ๋๋ค. Win32 ์คํ์ผ ์์คํ ์ ์ฒด ์ก์ธ์ค๋ ์ผ๋ฐ์ ์ผ๋ก ๊ธ์ง๋์ด์ผ ํฉ๋๋ค. ํน์ ์๊ตฌ ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ ์๊ตฌ ์ฌํญ์ ์ ์ถํ์ฌ UWP ์ปจํ ์ด๋ ๋ด์์ ์ด๋ฅผ ์ํํ ์ ์๊ฑฐ๋ ์ํํด์ผ ํ๋ ๋ฐฉ๋ฒ๊ณผ ์ ์ํ ๋ฐฉ์์ผ๋ก ์ํํ๋๋ก ํ์ฉํด์ผ ํ๋์ง ์ฌ๋ถ๋ฅผ ๋ ผ์ํ ์ ์๋๋ก ์๊ตฌ ์ฌํญ์ ์ ์ถํด์ผ ํฉ๋๋ค. UWP์ ํด๋น ๊ธฐ๋ฅ์ด ํ์ํ์ง ํ์ธํ์ญ์์ค. UWP๋ก ์์ฑํ ์ ์๋ ์ผ๋ถ ๊ณ ๊ธ ์์ฉ ํ๋ก๊ทธ๋จ์ ์๊ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ๊ฐ์ง ์ ์์ด์! ๊ตฌ์ฒด์ ์ธ ๋ ผ์๊ฐ ํ์ํฉ๋๋ค.
.net ๋ค์ดํฐ๋ธ๊ฐ ๊ต์ฒด๋๊ณ ๋ฐฐํฌ ์คํ ๋ฆฌ๊ฐ .net 5๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. Microsoft์์ ์ด ์์ ์ ์ํํ๊ณ ์๋ค๊ณ ๋งํ๋ ๊ฒ์ด ํ๋นํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์คํ ๊ทธ๋ค์ ๋ฌธ์ ๋ฅผ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์์ ์ค์ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ฅผ ๋์์ผ๋ก ํ๋ ํน์ ๋ฌธ์ ๋ฅผ ์ ์ถํด์ผ ํฉ๋๋ค.
"WinUI๋ฅผ DirectX์ ์ฐ๊ฒฐํ์ง ๋ง์ญ์์ค" - WTF? ๊ธฐ๋ณธ Windows ๊ทธ๋ํฝ ์คํ์ธ DirectX์ ์ ๋์ ์ผ๋ก ๊ฒฐํฉ๋์ด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ๊ฒ์ ๊ณ ๋ ค์กฐ์ฐจ ํ์ง ๋ง์๊ธฐ ๋ฐ๋๋๋ค. ๋๋ ์ ๋์ ์ผ๋ก ํ๋ ์๋์์ OpenGL ๋ ๋๋ง ํ๋ฉด์ ๋ง๋๊ณ ์ถ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ํธํ์ฑ์ ๊นจ๊ณ ๋ชจ๋ ์ข ๋ฅ์ ํผ๋์ ์ผ์ผํฌ ๊ฒ์ ๋๋ค.
@Gavin-Williams
ํ๋ฅญํฉ๋๋ค. WPF๋ฅผ ํตํด ์ฝ๊ฐ ์งํ๋ ์ ๊ทธ๋ ์ด๋๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
UWP๋ ๋ณดํธ์ ์ ๋๋ค
"๋ชจ๋ Windows ์ฅ์น๋ UWP๋ฅผ ์คํํฉ๋๋ค"๋ ๋ชจ๋ฐ์ผ ์์ด๋ ์๋ฌด ์๋ฏธ๊ฐ ์์ต๋๋ค. HoloLens๋ ํ์ ์์ฅ์ด๊ณ Surface Hub๋ ํ์ ์์ฅ์ด๋ฉฐ Windows 10 IoT Core๋ ๋๋ด์ ๋๋ค.
๋ฐ๋์ DirectX์ ๊ฒฐํฉ๋์ด์ผ ํฉ๋๋ค.
๊ฐ๋ฐ์๋ก์ ํ๋ ์ปคํ๋ง์ ์๋ฆ์ด ๋์ต๋๋ค. ๊ทธ๋ํฝ ์คํ์ ๊ตํํ ์ ์๋ ์ฃผ์ ์ด์ ๊ฐ ์์ต๋๊น?
"๋ชจ๋ํ"๋ผ๊ณ ํฉ๋๋ค. ๋ง์ดํฌ๋ก์ํํธ๋ ํญ์ ๊ทธ๊ฒ๊ณผ ์จ๋ฆํด์์ต๋๋ค.
์๋๋ฐ์ค ์ ํ์ ์ข์ ๊ฒ์ ๋๋ค.
์, ๋ง๋ค ์ ์๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฒ์๋ฅผ ์ฌ๊ฐํ๊ฒ ์ ํํ์ง ์๋ ํ ๊ทธ๋ ์ต๋๋ค. UWP์์ ํํฐ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํด ๋ณด์ จ์ต๋๊น?
Google์ด Flutter๋ฅผ ๊ฐ๋ฐ ์ค์ด๋ฉฐ GoogleUI ๋๋ AndroidUI๋ผ๊ณ ๋ถ๋ฅด์ง ์๋๋ค๋ ์ ์ ์ธ๊ธํ๊ณ ์๊ธฐ์ํฌ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์น๊ณผ ๋ฐ์คํฌํ์ ํฌํจํ ๋ชจ๋ ๊ณณ์์ ์๋ํฉ๋๋ค. "๊ทธ๋ฅ Windows์์ ์๋ํ๋๋ก ํ๋" ๊ฒฝํฅ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ ์ ๋ ดํ๊ณ ๋ ๋น ๋ฅด๊ณ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ Windows์ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์์ ์๋ํ๋ ๋ค๋ฅธ ๊ฒฝ์ ์ ํ์ด ์กด์ฌํ๋ค๋ฉด... ๊ฐ๋ฐ์๋ ๋ฌด์์ ํ ๊ฒ์ ๋๊น? ๋ฐ ํด๋น ์์ฅ) ์ ํ? ๋๋ ์๊ธฐ์ ์์ ์๋ก์ ๋ ๊ฐ์ง ์ ํ์ด ์ฃผ์ด์ง๋ฉด ๋ด๊ฐ ์ด๋์ ํฌ์ํ๋์ง ์๊ณ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
DirectX๋ฅผ ๋ค๋ฅธ ํ๋ซํผ์ผ๋ก ์ด์ํ๋ ๊ฒ์ ๋ฐฉ๋ํ ์์ ์ผ๋ก ๋ณด์ ๋๋ค. ์๋ง๋ ํด๊ฒฐ์ฑ ์ DirectX ๋์ OpenGL ๋๋ Vulkan์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
@Gavin-Williams, UWP์ ์ต์ํ์ ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋น๋/๋ฐฐํฌํ ๋ Windows์ ํน์ ๋ฒ์ (๋๋ ๋ฒ์ ๋ฒ์)์ ๋์์ผ๋ก ํฉ๋๋ค. ๊ทธ ์์ด๋์ด๋ ์ ๋์ ์ผ๋ก ๊ฒฐํฉ๋์ด ์์ผ๋ฉฐ UWP๊ฐ WPF๋งํผ ์ฃผ๋ฅ๊ฐ ๋์ง ๋ชปํ ์ด์ ์ค ํ๋์
๋๋ค.
@nerocui UI ์ธ์ด์ ์ ์ฒด ๋ชฉ์ ์ ํ๋ฉด์ ์์ ๋๋ฉด์์ UI ๋์์ธ์ ๋ถ๋ฆฌํ๋ ๊ฒ์
๋๋ค. ์ด๊ฒ์ด HTML์ด ARM/x64/x64์์ ๋ ๋๋ง๋ ์ ์๋ ์ด์ ์
๋๋ค.
XAML์ UI ๊ธฐ๋ณธ ์์/๊ตฌ์ฑ/์ ๋๋ฉ์ด์ ์ ๋ฐ์ด๋ ์ถ์ํ๋ฅผ ์ ๊ณตํ๋ฉฐ ๊ฐ๋ฐ ๋น์ฉ๊ณผ ํ๋ซํผ ๋๋ฌ ๋ฒ์ ๋๋ฌธ์ ์์ฒญ์ด ์ ๋์ ์ผ๋ก ์๋ฏธ๊ฐ ์์ต๋๋ค.
๋๋ @SuperJMN์ ์ ์คํ๊ฒ ๋์ํ์ง ์์ต๋๋ค. ํ์คํ UWP๋ ์์ง WPF์ ๊ธฐ๋ฅ ํจ๋ฆฌํฐ๋ฅผ ๋ฌ์ฑํ์ง ๋ชปํ์ต๋๋ค. ์ปค๋ ์์ค ๋๊ตฌ๋ฅผ ๋น๋ํ๊ธฐ ์ํ ํ๋ ์์ํฌ๋ก์์ ํ๊ณ์๋ ๋ถ๊ตฌํ๊ณ ์ฑ ๋งค๋ํ์คํธ์ ์ง์ ๋ ์ฌ๋ฐ๋ฅธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๊ฑฐ์ ๋ชจ๋ ๋ค๋ฅธ ์ํํธ์จ์ด ๊ฐ๋ฐ ์์ ์ ๋ํด ์ฌ๋ฌ ๊ด์ (๋ณด์, ๋ฐฐํฌ ์ฉ์ด์ฑ, ์ค์น/์ ๊ฑฐ ๊ฒฝํ ๋ฑ). UWP์ ๋ณด์ ์๋๋ฐ์ค๋ ์ค์ํ(ํ์) ๊ธฐ๋ฅ์ ๋๋ค. ์ฌ๋ฌ ๋ฉด์์ UWP๋ ์ด์ WPF๋ณด๋ค ํจ์ฌ ์์ ์์ต๋๋ค.
UWP .Net ์ปดํ์ผ๋ฌ๋ ์ฝ๋ ๋๋ ํ์ ํ์์ฑ๊ณผ ์ด๋ก ์ธํด WPF์ ๋ฐ์ํ ์ ์๋ ๋ถ์์ ์ฑ์ ์ ๊ฑฐํฉ๋๋ค. ์ฑ๋ฅ์ ์ปดํ์ผ๋ฌ๊ฐ ํฅ์๋จ์ ๋ฐ๋ผ ์ฝ๋ ๋ณ๊ฒฝ ์์ด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ํฅ์๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. UWP ์์ฒด๋ DirectX ๋ฐ ๊ธฐํ ์์คํ ์์ค ๋ฆฌ์์ค๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ ์ธก๋ฉด์์ ํจ์ฌ ๋ ๋์ ๋์์ธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ํ ๋ค๋ฅธ ์ธ์ด, ํนํ C++์ ํตํฉํ ๋ WPF๋ณด๋ค ํฐ ์ด์ ์ด ์์ต๋๋ค. ๊ณ ์ฑ๋ฅ C++ ๊ตฌ์ฑ ์์๋ฅผ C#๊ณผ ํตํฉํ๋ ๊ฒ์ UWP์์ ๊ฐ๋จํฉ๋๋ค. DirectX ํ๋ฉด์ ๋ํ ์ก์ธ์ค๋ ํจ์ฌ ํฅ์๋์์ต๋๋ค.
UWP์ ๋๋จธ์ง ๊ตฌ๋ฉ์ ์ฝ๊ฒ ๋ง์ ์ ์์ต๋๋ค. ๋ ํฐ ๋ฌธ์ ๋ Microsoft๊ฐ WPF์ ๊ด๋ จ๋ ํ์ง ์์ค์ ๋ฌ์ฑํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ๋๋ค. WPF๊ฐ ๋ฐฉ๊ธ ์๋ํ์ต๋๋ค. Microsoft๋ ๋ํ Data Grid, INotifyDataErrorInfo, ์ ํจ์ฑ ๊ฒ์ฌ ์ํ๋ฅผ ํน์ง์ผ๋ก ํ๋ ์ปจํธ๋กค ๋ฐ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ๋ ฅํ DB์ ๊ฐ์ LOB ์๊ตฌ ์ฌํญ์ ์ค์์ฑ์ ์ธ์ํ์ง ๋ชปํ์ต๋๋ค. ๋๋ถ๋ถ ํด๊ฒฐ๋์์ง๋ง ์๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ ธ์ต๋๋ค. ์ง์ฌ๊ฐํ์ด ์๋ ์์ญ์ด ๋๋ฝ๋์์ต๋๋ค.
๋ค๋ฅธ ์น๋ช ์ ์ธ ์ค๋ฅ๋ UWP๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ๋ก ์ ํํ ํน์ WPF ๊ฐ๋ฐ์์๊ฒ ์์ต๋๋ค. ์ฑํ์ ์ถ์ง๋ ฅ์ ๊ตฌ์ถํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ๊ทธ๋ฌ๋ Microsoft๊ฐ ์ด๋์ ํฐ๋ธ์ ๋ํด ๋ช ๋ฒ์ด๋ ๋ง์ค์๋์ง๋ฅผ ๊ณ ๋ คํ ๋ ์ฑํ ๋ฌด์ฉ๋ด์ ์ดํดํ ์ ์์ต๋๋ค. ๋ง์ดํฌ๋ก์ํํธ๊ฐ ๋ค์ ํ ๋ฒ ๋นํฉํ๊ณ ์๋ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. WPF๋ฅผ UWP UI ์๋น์ค์ ์ฐ๊ฒฐํ ์ ์๋๋ก ํ์ฌ WPF๋ฅผ ๋ถํ์ํค๋ ๊ฒ์ ํ๋ฉด์ ์ผ๋ก๋ ๋ฉ์ ธ ๋ณด์ด์ง๋ง UWP๋ฅผ ๊ฒฌ๊ณ ํ๊ฒ ๋ง๋๋ ๋ฐ์๋ ๋ฐฉํด๊ฐ ๋ฉ๋๋ค.
๊ฐ๋ฐ์๋ค์ด Microsoft๊ฐ ์ฌ๋ฐ๋ฅธ ์ผ์ ํ ๊ฒ์ด๋ผ๋ ํฌ๋ง์ ์์๋ค๋ @SuperJMN์ ์ฃผ์ฅ์ ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ด๋ค ์ข ๋ฅ์ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ถํ๋๋์ ๋ฐ๋ผ ์ณ์ ๊ฒ์ด ๋ฌ๋ผ์ง๋๋ค. ์ ์ํ๊ฒ ์์ฑ๋์ด์ผ ํ๊ณ ๋ค์ํ ๊ธฐ๋ฅ์ ๋ํ๋ด์ผ ํ๋ ๊ณ ์ฑ๋ฅ LOB ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ผ๋ฉด ์์ ํ๊ณ ์ค์นํ๊ธฐ ์ฌ์ฐ๋ฉฐ ํ์ง ๋ฉด์ ์ ์ธํ๊ณ ๋ UWP๊ฐ ๋๋ถ๋ถ์ ๋๋ค. ๊ทธ ํ์ง ๊ฒฉ์ฐจ๋ ๋ฌด์๋ณด๋ค UWP๋ฅผ ์ฃฝ์ด๋ ๊ฒ์ ๋๋ค.
HTML+JS๋ ์ค๋๋ ์ ํฌ๋ก์ค ํ๋ซํผ ์๋ฃจ์ ์ ๋๋ค. ๋ค์ ๋ฐ๋ช ํ ํ์๊ฐ ์์ต๋๋ค. IOS ๋ฐ Android์์ ๊ณ ์ฑ๋ฅ XAML ๋ ๋๋ง ์์ง์ ์ฌ์ฉํ๋ ๊ฒ์ด XAML์ ๋ ์ด์์ฑ ์๊ฒ ๋ง๋๋ ๊ฒ์ด๋ผ๋ฉด ๋ ์๋ฏธ๊ฐ ์์ต๋๋ค.
๋๋ WinUI๊ฐ ๋ฏธ๋์ ํฌ๋ก์ค ํ๋ซํผ์ ๋ชฉํ๋ก ํด์ผ ํ๋ค๋ ๋ฐ ๋งค์ฐ ๋์ํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ์ถ๊ฐ ์๊ฐ์ด ์์ต๋๋ค.
๋๋ WinUI 3๊ฐ .Net 5 ํตํฉ์ด ํฌํจ๋ Windows์์ ์๋ํ๊ณ ๋ฒ๊ทธ๊ฐ ์์ ๋์๋์ง ํ์ธํ๋ ๊ฒ์ด ์ฆ๊ฐ์ ์ธ ์ฐ์ ์์์ฌ์ผ ํ๋ค๋ ์ผ๋ถ ์๊ฒฌ์ ๋์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์ง ๋ฆ์ง ์์๋ค๋ฉด ์ํคํ ์ฒ ๊ฒฐ์ ์ ๋ด๋ฆด ๋ ํฅํ ํฌ๋ก์ค ํ๋ซํผ ๋ชฉํ๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๋ช ๋ฐฑํ๊ณ ๊ฐ์ฅ ์ค์ํ ์ด์ ๊ฐ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ์ฝ๋๋ฅผ ๋ค์ ์์ฑํ์ง ์๊ณ ์ต๋ํ ๋ง์ ์ฒญ์ค์ ๋์์ผ๋ก ํ๊ธฐ๋ฅผ ์ํ๋ฉฐ C#(๋๋ C++์ ๊ฐ์ ํฉ๋๋ค)/XAML์ด ์ข์ ์กฐํฉ์ ๋๋ค. ํ๋ซํผ ๊ฐ ์คํ ๋ฆฌ๊ฐ ์์ผ๋ฉด Flutter์ ๊ฐ์ ๋ค๋ฅธ ๊ธฐ์ ๋ก ์ด๋ํ ๊ฒ์ ๋๋ค.
๋ ๋ค๋ฅธ ์ด์ ๋ Microsoft์์ WinUI๋ฅผ ๊ณ์ ์ง์ํ๊ธฐ ์ํจ์ ๋๋ค. Microsoft๋ ์์ฒด ์ฑ์์ WinUI๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ๊ณ์ WinUI๋ฅผ ์ง์ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ์์ ์ ์ฑ์ ํฌ๋ก์ค ํ๋ซํผ์ผ๋ก ๋ง๋๋ ๋ฐ ์ ์ ๋ ์ง์คํ๊ณ ์์ต๋๋ค. React Native ๋ฐ Xamarin๊ณผ ๊ฐ์ ์ผ๋ถ ํ๋ซํผ ๊ฐ ํ๋ ์์ํฌ๊ฐ ์๋์์ WinUI๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ฌ์ค์ด์ง๋ง Flutter ๋๋ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ ๋ ๋๋ง๊ณผ ๊ฐ์ ๋ค๋ฅธ ํ๋ ์์ํฌ๊ฐ ์น๋ฆฌํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๊ทธ๋ฌ๋ฉด WinUI๊ฐ ์ค๋ณต๋์ด WPF์ ๊ฐ์ ์ ์ง ๊ด๋ฆฌ ๋ชจ๋๋ก ์ ํ๋ฉ๋๋ค.
Uno๋ ํ๋ฅญํ ํ๋ก์ ํธ์ด์ง๋ง ๋ด ์๊ฐ์๋ ๋ ๋๋ง(๋ฐ ์ ๋ ฅ) ๋ ์ด์ด๋ฅผ ํ๋ซํผ ๊ฐ์ ๋ง๋ค๊ณ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋น๋ํ๋ ๊ฒ์ด ๊ธฐ๋ณธ ์ปจํธ๋กค์ ๋ํํ๋ ๊ฒ๋ณด๋ค Flutter์ AvaloniaUI๊ฐ ํ๋ ์ผ์ ๋๋ค. ๋ ๋ ๋ฐ ์ ๋ ฅ ๋ ์ด์ด๋ฅผ ๊ต์ฐจ ํ๋ซํผ์ผ๋ก ๋ง๋๋ ์ ๊ทผ ๋ฐฉ์์๋ ๋ช ๊ฐ์ง ์ด์ ์ด ์์ต๋๋ค. ๋ ๋ ๋ฐ ์ ๋ ฅ ๋ ์ด์ด์ API ํ๋ฉด์ด ์ปจํธ๋กค๋ณด๋ค ์์ ๊ฒ ๊ฐ์ต๋๋ค(๊ทธ๋ฌ๋ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ๋ ์ด์ด ๋ฑ ์์ ์ปจํธ๋กค์ ๋น๋ํ๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค). ๋์งธ, ๋ค์ดํฐ๋ธ ์ปจํธ๋กค์ ๋ํํ๋ ๋ฐ ์์กดํ๋ ๊ฒฝ์ฐ ํ๋ซํผ์ ์ข ์๋ฉ๋๋ค. ๊ทธ๋ค์ด API๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ API๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ตฌํํด์ผ ํฉ๋๋ค. ์ง์ ์ค๋จ ์ ์ด ์์ ์ ์ถฉ๋ถํ ๋นจ๋ฆฌ ์ํํ์ง ์์ผ๋ฉด ํ๋ ์์ํฌ๊ฐ ์์๋ฉ๋๋ค. ์ปจํธ๋กค์ ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ค๋ฉด ๊ฐ ํ๋ซํผ์ ๋ํด ๊ตฌํํด์ผ ํ ์ ์์ต๋๋ค. ํ๋ซํผ ํ๋ ์์ํฌ์ ๋ฌถ์ฌ ์๊ธฐ ๋๋ฌธ์ ํ๋ ์์ํฌ๊ฐ ์ด๋ป๊ฒ ๋ฐ์ ํ๊ธฐ๋ฅผ ์ํ๋์ง์ ๋ํ '๋น์ '์ ์ค์ ๋ก ๊ฐ์ง ์ ์์ต๋๋ค. ๋ํ ์ปจํธ๋กค์ ๋ชจ์๊ณผ ๋์์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ ๊ฐ ํ๋ซํผ์์ ํญ์ ํ ์คํธํด์ผ ํฉ๋๋ค. ๋ํ ํฉ์ฑ ๋ ์ด์ด์ ๊ฐ์ ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒ์ ์ด๋ ต๊ฑฐ๋ ๋ถ๊ฐ๋ฅํ ๊ฒ์ ๋๋ค. ๋ ๋ ๋ ์ด์ด๋ฅผ ๊ต์ฐจ ํ๋ซํผ์ผ๋ก ๋ง๋ค๋ฉด ์ด๋ฌํ ๋ชจ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ฉฐ, ๊ฐ ํ๋ซํผ์์ ๋ค๋ฅธ ๋ชจ์์ ์ํ๋ฉด ๋ค๋ฅธ ์คํ์ผ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. (์ผ๋ถ ๋์์ Mac์์ ์คํฌ๋กคํ๋ ๊ฒ๊ณผ ๊ฐ์ด ๋ค๋ฅธ ํ๋ซํผ์์ ๋ค๋ฅด๊ฒ ์ ์ง๋๋ค๋ ๊ฒ์ ์ธ์ ํฉ๋๋ค!).
WinUI๋ ํ์ฌ ํ๋ซํผ์์ ์ปจํธ๋กค๊ณผ ๋ ๋๋ง ๋ฐ ์ ๋ ฅ ๋ ์ด์ด๋ฅผ ๋ถ๋ฆฌํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ํํ ์ ์๋ ๊ณ ์ ํ ์์น์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ ๋ ๋ ์ด์ด๋ฅผ ์ถ์ํํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ Skia๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ถ์ํ๋ฅผ ๊ฐ์ ํ์ฌ ์ฑ๋ฅ์ด ์ ํ๋๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค. 2D ๊ทธ๋ํฝ์ ์ํ C++ ์ ์์ธ ๋ ๋ ๋ ์ด์ด๋ฅผ ์ถ์ํํ๊ธฐ ์ํด ์ดํด๋ด์ผ ํ ๋์์ด ์์ต๋๋ค . . ๊ทธ๋ค์ ๋ถ๋ช ํ API ํ๋ฉด์ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์์ผ๋ฉฐ ๊ฝค ํฌ๊ด์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ค์ 2D ๊ทธ๋ํฝ์ '๋ฌธ์ '๊ฐ ๋ณธ์ง์ ์ผ๋ก ๋ช ๋ ์ ์ ํด๊ฒฐ๋์๋ค๊ณ ์ฃผ์ฅํ๋ฉฐ ๋๋ ๊ทธ๋ค์ API ํ๋ฉด์ด ๊ฝค ์๋ฒฝํด ๋ณด์ธ๋ค๋ ๋ฐ ๋์ํด์ผ ํฉ๋๋ค. ์ด ์ ์์ ๋ฐ๋ํ๋ ์ฌ๋๋ค์ด ๋ง์ด ์์ง๋ง ์น์ธ๋์ง ์๋๋ผ๋ API ํ๋ฉด์ ์ฌ์ฉํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด API ํ๋ฉด์ ๋ํด Direct2D ๋ฐฑ์๋๋ฅผ ์์ฑํ๋ฉด ์ ์์ด ์๋ฝ๋๋ฉด MSVC ํ์ด ์์ฑํ์ง ์์๋ ๋ฉ๋๋ค. ์๋ง๋ WinUI ํ์ ์์ ์ ํ์ฉํ๊ฑฐ๋ ํ ๊ตฌ์ฑ์์ ์ถ๊ฐํ๋ ๊ฒ์ ์ ๋นํํ๊ธฐ ์ํด ์ด๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ํ, ์๋ง๋ ๋ ผ๋ฌธ์ ์ ์๋ค์ด ๊ธฐ๊บผ์ด ๋์ธ ๊ฒ์ ๋๋ค. Skia ๋๋ ๊ธฐํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ํ๋ซํผ์ ๋ํ ๋ฐฑ์๋๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ ์ ์์ด ๊ฒฐ๊ตญ ์๋ฝ๋๋ฉด ์ ์์ด ๋ง๋ค์ด์ก์ ๋ ๊ธฐ๋ณธ ๊ตฌํ์ผ๋ก ์ ํํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋ฏธ๋๋ฅผ ๋ด๋ค๋ณด๋ฉด์ WASI - https://wasi.dev/ ๋ฅผ ์ธ๊ธํ๊ณ ์ถ์์ต๋๋ค. ์ด๊ฒ์ ํ์ฌ๋ก์๋ ์์คํ ํ๋ก๊ทธ๋๋ฐ์ ์ด์ ์ ๋ง์ถ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ์์ C++ ์ ์์ด ์๋ง๋ ๋ค์์ ์ํ ์์ฐ์ค๋ฌ์ด ํ๋ณด๋ฅผ ์ ๊ณตํ ์ ์๋ ์์ ํ ํฌ๋ก์ค ํ๋ซํผ ์ฑ ํ๋ ์์ํฌ(ํฌ๋ก์ค ํ๋ซํผ ๋ฐ ๋ณด์์ด ๋ด์ฅ๋์ด ์์)๋ก ์ ํํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ๋ ๋๋ง ๋ ์ด์ด API. (๊ทธ๋ฌ๋ ์ด๊ฒ์ ์๋ง๋ ๋งค์ฐ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์์ ๊ฒ์ ๋๋ค).
์ฆ๊ฑฐ๋ฅผ ์ดํด๋ณด๋ฉด @SuperJMN ๊ณผ ๊ฐ์ ์ฌ๋๋ค์ ์ ์ฅ์์ ๋ด์ฉ์ ๊ณ ๋ คํ ๋ ๋ง์ ์ ๋ขฐ๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค. @SuperJMN ์ด UWP๊ฐ ์์ง ์ฑ์ํ๋ ๋์(์ดํดํ ์ ์์) UWP๋ฅผ ํฌ๊ธฐํ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. Microsoft๋ ์ฌ๊ธฐ์ ๋๊ธ์ ๋ฌ๊ณ ์๋ ์ฌ๋๋ค์ ์ ์ฅ์๋ฅผ ๊ฒํ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ผ๋ถ ๋ชฉ์๋ฆฌ๋ ๊ทธ๋ค์ด ์ธ์์ ์ ์ํ๋ ์์ ์ ๋ณธ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํน๋ณํ ์ ๋ขฐํ ์ ์์ต๋๋ค.
@Noemata ์ ๋ XAML+MVVM์ ์ด๋ ฌํ ํฌ์ด์์ต๋๋ค. Silverlight, WPF, WindowsPhone, Metro(WinRT)์์ ์์ ํ์ต๋๋ค. UWP์ Xamarin์ ์์ ์ง์ณค์ต๋๋ค ...
์๋ก์ด XAML ์คํ์ ์ดํด๋ณธ ๋ค๋ฅธ ๋ชจ๋ ์๊ฐ๊ณผ ์ด ๋ฐ๋ณต์ ๊ตฌ๋ถํ๋ ์์๋ฅผ ํ์ ํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค.
Microsoft๋ ํ์์ ์ธ UWP ์ํ ์ฑ์ ์ถ์ํ์ต๋๋ค. ๊ทธ๋ค์ ์ค์ ๋ก ๊ฐ๋ฅํ ๊ฒ์ ๋ฉ์ง๊ฒ ๋ณด์ฌ์ค๋๋ค.
๋ค์์ ์ผ๋ถ ๋ชฉ๋ก์ ๋๋ค.
https://github.com/Microsoft/Windows-appsample-customers-orders-database
https://github.com/microsoft/InventorySample
https://github.com/microsoft/VanArsdel
https://github.com/microsoft/BuildCast
https://github.com/microsoft/Windows-appsample-shopping
๋ ๋ง์ ์ข์ ์๊ฐ ์์ต๋๋ค. ์ํ์ด ๋ค๋ฅธ ์์ ๊ณผ ์์ง๋ ฅ์ด ์๋๋ก ์ฝ๊ฒ ์ฉ๋ ๋ณ๊ฒฝ๋๊ฑฐ๋ ๊ตฌ์กฐํ๋๋ ๋ฐฉ์์ผ๋ก ๊ตฌ์ถ๋ ๊ฒ์ ์์ต๋๋ค.
ํด๋น WPF ์ํ์ ๋ํ ๋ ธ๋ ฅ์ ๊ฑฐ์ ๊ธฐ์ต๋์ง ์์ต๋๋ค. ์ด๊ฒ์ ๋๋ถ๋ถ ์ข์ต๋๋ค.
๋ฌธ์ ? UWP ๋ฐ XAML์ ์ฌ์ฉํ์ฌ ํ์ฌ ์์น์ ๋๋ฌํ๋ ๋ฐ ๋๋ฌด ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ฉ์์ง๋ ๋ค์ ํ ๋ฒ ํผ๋์ค๋ฌ์์ง๋๋ค. UWP๊ฐ ์ฒ์ ๋ฆด๋ฆฌ์ค๋์์ ๋ Microsoft๊ฐ Visual Studio์ ํจ๊ป ์ ์ ํ ํ๋ก์ ํธ ํ ํ๋ฆฟ์ ์ ๊ณตํ๊ธฐ๋ง ํ๋ค๋ฉด UWP์ ๋ํด ๋ ๋ถ์ ์ ์ด์์ ๊ฒ์ ๋๋ค. ์ต๊ณ ์ VS ํ ํ๋ฆฟ์ ๋ณด๋ ค๋ฉด ์ฌ๊ธฐ๋ก ์ด๋ํด์ผ ํฉ๋๋ค.
https://github.com/microsoft/windowsTemplateStudio
UWP ์ฑ์ ์ํ ๋งค์ฐ ์ ์ฐํ๊ณ ์์ ํ ๊ตฌ์ฑ ์์ ์งํฉ์์๋ ๋ถ๊ตฌํ๊ณ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒ์ ์๋๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ์ด๋ป๊ฒ ์ฐพ์ต๋๊น? ์ค๋ง๋ฆฌ ์์. ์ผ์ ํ๊ธฐ ์ํด ๋ณด๋ฌผ ์ฐพ๊ธฐ์ ๊ฐ๋ ๊ฒ์ ์์ ๊ฐ์ ํค์ฐ์ง ๋ชปํฉ๋๋ค. WinRT ์ฑํ์ ๊ฑฐ๋ถํ Office ํ์ ๋์์ด ๋์ง ์์์ต๋๋ค. ๊ทธ๋ค์ ์ด๋ก ์ ํ ๊ธธ์ด์ ๊ด๊ณ์์ด OS์ ๋ค์ด๊ฐ๋ ๋ง์ ๊ฒ์ ์ถ์งํฉ๋๋ค. ํ์ง ๋ฌธ์ , ๋ฒ๊ทธ, Windows Phone์ ์คํจ ๋ฐ ์ผ๊ด๋์ง ์์ ํฌ์์ ๋ฉ์์ง์ ๋์ง๊ณ ์ฌ๊ธฐ ์์ต๋๋ค.
Microsoft๋ ํ์์ ์ธ UWP ์ํ ์ฑ์ ์ถ์ํ์ต๋๋ค. ๊ทธ๋ค์ ์ค์ ๋ก ๊ฐ๋ฅํ ๊ฒ์ ๋ฉ์ง๊ฒ ๋ณด์ฌ์ค๋๋ค.
@Noemata ๋์ํฉ๋๋ค. ์ ๋ง ๋ฉ์ง ์ํ์ ๋๋ค. ๊ทธ๋ฌ๋ UWP๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์กํ ์ฑ์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋ฏธ์น ์ง์ ๋๋ค. ๋ฌผ๋ก ๊ฐ๋ฅํ์ง๋ง ํจ์ฌ ์ด๋ ต์ต๋๋ค. ์, WPF์ "๊ทธ๋ฅ ์๋ํ๋" ์๊ฐ์ด ๊ทธ๋ฆฌ์์ง๋๋ค.
MS๊ฐ ์ํ๋ก ์ ๊ณตํด์ผ ํ๋ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ ์ค ํ๋๋ MS ์คํ ์ด ์ธ๋ถ์ ๊ฒ์ํ ์ ์๋ ๊ฐ๋จํ UWP ์ฑ์ ๋๋ค(์, ์๊ฐ๋งํผ ์ฝ์ง ์์ต๋๋ค).
๋์ ์ ๋ง์ง ์๋ ๋ ๋ค๋ฅธ ์ ์ UWP๊ฐ ์ฌ๋ฐ๋ฅธ ๋ฐ์คํฌํฑ ๊ฒฝํ์ ๋ฒ๋ฆฌ๊ณ "๋ชจ๋ฐ์ผ ์ฐ์ "์ ์ผ๋์ ๋๊ณ ์๊ฐํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ํ๋ ธ๋ค๋ฉด ์ ์ ํด ์ฃผ์ธ์. ํ์ง๋ง ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๋ UWP๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์คํฌํฑ ์ฑ์ ๊ฐ๋ฐํ๋๋ฐ UI๊ฐ ์ผ์นํ์ง ์์ต๋๋ค. ๊ฐ์ฅ ๋จผ์ ๋ ์ค๋ฅด๋ ๊ฒ์ ์คํฌ๋กค๋ฐ์ ๋๋ค. ์ฒ์๋ถํฐ ํฐ์นํจ๋์ ์ต์ ํ๋์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฐ์คํฌํ ์ฌ์ฉ์์ ๊ฒฝ์ฐ ์คํฌ๋กค ๊ฒฝํ์ด ๋งค์ฐ ๋์ฉ๋๋ค(์ฐธ๊ณ : WinUI ํ์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค). ์คํฌ๋กค๋ฐ๋ฅผ ๋ค์ "์ ์"์ผ๋ก ๋ง๋ค ์ ์๋ ์๋ฃจ์ ์ ์ฐพ๊ธฐ ์ํด ๊ตฌ๊ธ๋ง์ ๋ง์ด ํ์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๊ธฐ ์ํด API ํจ์๋ฅผ ํธ์ถํ ์ ์๋ค๋ ๊ฒ์ ์ ๋ง ๋ฏธ์น ์ง์ ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ๋ผ๋์ค ๋ฒํผ/์ฝค๋ณด ๋ฐ์ค๋ ๋ชจ๋ฐ์ผ์ ์ต์ ํ๋ ์ต์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋จ์ํ ๋ผ๋์ค ๋ฒํผ์ ๋๋น๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋ฌด์๋ฉ๋๋ค. ์ค์ ๋ก "MinWidth=0"์ ์ค์ ํด์ผ ๊ณ ๋ ค๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ ์คํธ ๋ฒํผ ์์์ ํฐ์์ด๊ณ ์ด์ ์ด ๋ง์ถฐ์ง๋ฉด ๊ฒ์ ์์ด ๋ฉ๋๋ค. ๋ฌด์จ ์ผ์ด์ฃ ? ๊ทธ๋ฆฌ๊ณ ํ ์คํธ ๋ฒํผ์๋ ์ง์ฐ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ "x"๊ฐ ์์ต๋๋ค. ๊ทธ๊ฒ ํฐ์นํจ๋์ ๋๋ค. ํฐ์นํจ๋๊ฐ ์๋๋ฐ ์ ๊ฑฐ๊ธฐ์ ์์ฃ ?
๊ธฐ๋ณธ ํ ์คํธ ์์์ ๋ง์ถค๋ฒ์ด ํ์ฑํ๋์ด ์์ต๋๋ค. ์ ํ์ํ ๊น์?
๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์์ง๋ง ํด๊ฒฐํ์ต๋๋ค. ํ์ง๋ง ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ 10๋ถ ๊ฑธ๋ฆด ์ผ๋ค์ด ๋ณดํต 2์๊ฐ ์ด์ ๊ฑธ๋ฆฐ๋ค๋ ์ ์ด๋ค. ๋๋ ๋จ์ํ ์์ธกํ๋ ๋ฅ๋ ฅ์ ์์์ต๋๋ค. ๋ด๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ํ ๋ ๋ฐ๋์ ์ด ๊ฑธ๋ฆด ๊ฒ์ด๋ผ๊ณ ๋งํ ๋๋ง๋ค 2-3์ผ์ด ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค.
์๋
ํ์ธ์ ์ฌ๋ฌ๋ถ,
์ด๊ฒ์ ์ผ๋ฐ์ ์ธ ํ ๋ก ๋ฌธ์ ์ด๊ณ UWP ํฌ๋ง/๊ธฐ๋ฅ ์์ฒญ์ ์ด๋์ ๋์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์..... ์ด ์ค๋ ๋์์ ๊ธฐํ๋ฅผ ์ก์ต๋๋ค.
IServiceProvider
๋๋ฝ๋ UWP ๋งํฌ์
ํ์ฅ ๋ฐ ๋งํฌ์
ํ์ฅ์ด ์ฌ์ฉ๋๋ ์์ ์์ฒด์์ ๋ชจ๋ ๊ธฐ๋ฅ ๋๋ ๋ฌธ์ ๋ ํ์ฌ ์ค๋จ๋ uservoice์์ ํด๊ฒฐ๋์์ต๋๋ค. ์๋ฌด๋ ๊ทธ ๋ฌธ์ ๋ก ๋ฌด์จ ์ผ์ด ์ผ์ด ๋ฌ๋์ง ์๊ณ ์์ต๋๊น? ํผ๋๋ฐฑ ํ๋ธ์์ ๋ค์ ๋ง๋ค์ด์ผ ํ๋์?
"์ํ์ง ๊ฐ๋ฐ์"๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ข์ํฉ๋๋ค. ๋๋ ์ฌ๋ฅ ์๊ณ ๊ฒฝํ์ด ๋ง์ผ๋ฉฐ ๊ธฐ์ ์ ์ด์ ์ ๊ฐ์ง ๋ง์ ์ฌ๋๋ค์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ๋ฒ ํ
๋ .Net ๊ฐ๋ฐ์์
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก iOS ๋ฐ Android์ฉ ์ฑ ๊ฐ๋ฐ๋ก ๋ฒ์ฐฝํ๋ ๋ง์ ์์ด๋ค๋ณด๋ค ๋ ๋์ ์ฑ์ ๋ง๋ค ์ ์๋ค๋ ์ ์๋ ์์ฌ์ ์ฌ์ง๊ฐ ์์ต๋๋ค.
WinUI๊ฐ C# + .Net + Xaml์ ๋ํ ๊ด๋ฒ์ํ ๊ฒฝํ์ ํ์ฉํ์ฌ Windows, Android, iOS ๋ฐ ์น์ฉ ์ฑ์ ๋ง๋ค ์ ์๋ ์พ์ ํ๊ณ ๊ฐ๋ ฅํ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ ์ ์๋ค๋ฉด ๋ง์ ์ฌ๋๋ค์ด ์๊ฑด์ ๋ฐ์ด๋ค ๊ฒ์ด๋ฉฐ ์ ์ธ๊ณ๋ ๋์ ์์ค์ ํํ์ ๋ฐ์ ๊ฒ์
๋๋ค. ์์ง์ ์ฑ.
WinUI + Uno Platform ์ ๊ถ๊ทน์ ์ธ ํธ์ถ์ด ๋ ์ ์์ต๋๋ค.
IServiceProvider๊ฐ ๋๋ฝ๋ UWP ๋งํฌ์ ํ์ฅ ๋ฐ ๋งํฌ์ ํ์ฅ์ด ์ฌ์ฉ๋๋ ์์ ์์ฒด
์ฌ๊ธฐ @mfe- !
์ฌ๊ธฐ @mfe- !
@Mike-EE ์, ๊ต์ฅํฉ๋๋ค! CalcBinding์ UWP๋ก ์ด์ํ๋ ค๊ณ ํ ๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๊ธฐ์ตํฉ๋๋ค. ๋ด๊ฐ ํ ์ผ์ ๋ณด๊ธฐ ๋ชจ๋ธ์ ์ฝ๊ธฐ ์ ์ฉ ํ๋๋ฅผ ์ถ๊ฐํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋๋ค.
"ํ ๋ฒ ์์ฑ, ๋ชจ๋ ๊ณณ์์ ์คํ".
Microsoft๋ ์ผ๋ง ์ ์ ์ด ๋ฌธ์ ์์ ๋ฉ์ด์ก์ต๋๋ค.
๋ฉ์ง ์ํ ๋ชจ๋ ์ฐ๋ฆฌ๋ ์ ๋ช ํฉ๋๋ค! ๐
https://www.theregister.co.uk/2020/02/28/winui_cross_platform/
์ํ์ง ๊ฐ๋ฐ์๋ ์นจ๋ฌตํ๊ฑฐ๋ ๊ทธ๋ฅ ๋ฌด์๋ฉ๋๋ค.
"์ํ์ง ๊ฐ๋ฐ์"๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ข์ํฉ๋๋ค.
๊ทธ ์ด๋ฆ์ผ๋ก ์กฐ์งํ์! ๐ช
Microsoft์์ ๊ฐ๋ฐํ๊ณ ์ง์ํ๋ ํฌ๋ก์ค ํ๋ซํผ UI ํ๋ ์์ํฌ๋ฅผ ์ํฉ๋๋ค. _Uno Platform_ ๋ฐ _Xamarin.Forms_๋ฅผ ์ ์ธํ๊ณ ๋ .NET ์์ฝ์์คํ ์ ์ํ ๊ฒ์ด ์์ต๋๋ค(์์ง ๋ฐ์คํฌํฑ์ ๋์์ผ๋ก ์์ ํ๋ ๊ฒฝ์ฐ).
๊ทธ๋ฆฌ๊ณ Windows ์ ์ฉ ๋น์ฆ๋์ค ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฒ์๋ถํฐ ์์ฑํ๊ธฐ๋ก ๊ฒฐ์ ํ๋๋ผ๋ Microsoft๊ฐ UWP์ ์์ ํ ์ ๋ ํ๋ค๊ณ ๋ ์๊ฐํ์ง ์์ต๋๋ค. ๋ด๊ฐ ํ๋ ธ๋ค๋ฉด ์ ์ ํ์ง๋ง Office Online PWA๋ฅผ ์ํด Office UWP ์ฑ์ ํฌ๊ธฐํ์ง ์์์ต๋๊น? MS๊ฐ ์์ฒด ํ๋ ์์ํฌ๋ฅผ ๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ UWP๋ฅผ ์ ๋ขฐํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? _๊ธฐ์นจ ์ค๋ฒ๋ผ์ดํธ_
๊ณ ๋ง๊ฒ๋ WPF๋ ์์ง ํฌ๊ธฐ๋์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ด ์์ฌ์ ๋ํ ๋ฟ์ ๋๋ค.
๋ฉ์ง ์ํ ๋ชจ๋ ์ฐ๋ฆฌ๋ ์ ๋ช ํฉ๋๋ค! ๐
https://www.theregister.co.uk/2020/02/28/winui_cross_platform/
ํ๋ฆฌ ๐คญ
๊ฐ๋ ์! ๋ค๋ฅธ ํฐ ์ ๋, ์น ์ฌ์ดํธ ๋ฑ์ผ๋ก ํ์ฅํฉ์๋ค ๐
์ฑ ๊ฐ๋ฐ์ ์ํ ํฌ๋ก์ค ํ๋ซํผ ์๋ฃจ์ ์ ์ฐพ๊ณ ์๋ค๋ฉด Unity๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
์ด๋ฌํ ๋ชจ๋ ์๋ฃจ์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฏธ๋ ์ด์ ์ฒด์ ๋ฅผ ํฌํจํ๋ ํ๋ ์์ํฌ๊ฐ ์์ฑ๋ฉ๋๋ค. Java๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ต๋ฌํ๊ฒ ์์ฅํ ์ด์ ์ฒด์ ์์ต๋๋ค.
์ต์ ๋ธ๋ผ์ฐ์ ๋ ์ด์ ๋ฏธ๋ OS์ ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ์ด๊ฒ๋ค๋ก ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํฉ๋๋ค. WinUI/UWP๋ Windows 10 ์ด์์ ๊ธฐ๋ณธ UI์ฌ์ผ ํฉ๋๋ค. ๋ ๋ง์ ๊ณณ์์ ์คํ๋๋ XAML ์์ง์ ๊ฐ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด Unity์ ๊ฐ์ ์ญํ์ ๋ง์ ๋ ์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค. Microsoft๊ฐ ๋ค๋ฅธ ํ๋ซํผ์์ XAML์ ํธ์คํ ํ ์ ์๋๋ก Silverlight๋ฅผ ๋ค์ ๊ฐ๋ฐํ๊ธฐ ์ ์ ์ธ๋ จ๋ ๊ณ ํ์ง UWP๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ๊ทธ๊ฒ์ด ์ผ๋ง๋ ์ ์๋ํ๋์ง ์๋๋ค. Unity๋ฅผ ๋ณด์ง ์์๋ค๋ฉด ๋์น๊ณ ์๋ ๊ฒ์ ๋๋ค. ์ฆ, ๋ง์ ์ฝ๋ฉ๊ณผ ๋ ๋ง์ ๋๋ฒ๊น ์ ์ํํ ์ค๋น๊ฐ ๋์ด ์์ด์ผ ํฉ๋๋ค.
๋ค์ ์ฃผ์๋ ๋ช ์ด ๋ง์ ์ฑ์ ๋ง๋ค ์ ์๋ UWP์ฉ VS ํ ํ๋ฆฟ ์ธํธ๋ฅผ ์ถ์ํ๊ฒ ์ต๋๋ค. ์ด๊ฒ์ "๋ด๋ถ" ํ๋ก์ ํธ์ ์ฌ์ฉ๋์์ต๋๋ค. VS์๋ง ์ฌ๋ฐ๋ฅธ ๋น๋ฉ ๋ธ๋ก์ด ๋ด์ฅ๋์ด ์๋ค๋ฉด UWP๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก RAD ํ๋ ์์ํฌ๊ฐ ๋ ์ ์๋ค๋ ์ ์ ์ฆ๋ช ํ ๊ฒ์ ๋๋ค.
๋ค์ ์ฃผ์๋ ๋ช ์ด ๋ง์ ์ฑ์ ๋ง๋ค ์ ์๋ UWP์ฉ VS ํ ํ๋ฆฟ ์ธํธ๋ฅผ ์ถ์ํ๊ฒ ์ต๋๋ค. ์ด๊ฒ์ "๋ด๋ถ" ํ๋ก์ ํธ์ ์ฌ์ฉ๋์์ต๋๋ค. VS์๋ง ์ฌ๋ฐ๋ฅธ ๋น๋ฉ ๋ธ๋ก์ด ๋ด์ฅ๋์ด ์๋ค๋ฉด UWP๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก RAD ํ๋ ์์ํฌ๊ฐ ๋ ์ ์๋ค๋ ์ ์ ์ฆ๋ช ํ ๊ฒ์ ๋๋ค.
@Noemata ๋ฉ์ง๋ค์ ! ์๋นํ ๊ถ๊ธํฉ๋๋ค!
๋ชจ๋ ๋์์ธ ์ธ์ด์ ์ ์ฉํ ์ ์๋ .Net ๊ธฐ๋ฐ ํฌ๋ก์ค ํ๋ซํผ UI ํ๋ ์์ํฌ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ. ๋ ์ด์ ๋ณด์ง ๋ง์ญ์์ค. Comet์ ๋๋ค.
https://github.com/Clancey/Comet
์์ง ์ด๊ธฐ ๋จ๊ณ์ด๋ฏ๋ก ์ฌ์ ์๊ฐ์ด ์์ผ๋ฉด ์ฐธ์ฌํ์ญ์์ค.
Comet์ ๊ธฐ๋ณธ์ ์ผ๋ก ์กด์ฌํ๋ ๋ชจ๋ ํ๋ซํผ์ ๋์์ผ๋ก ํ๋ฉฐ, ๊ฐ ํ๋ซํผ์์ ๊ธฐ๋ณธ ์ปจํธ๋กค์ ๋์์ผ๋ก ํ๊ฑฐ๋ Skia๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๊ฒ์ ์ผ๊ด์ฑ ์๊ฒ ๊ทธ๋ฆด ์ ์๋๋ก ์ ํํ ์ ์์ต๋๋ค(Flutter๊ฐ ์ํํ๋ ๋ฐฉ์๊ณผ ์ ํํ ์ผ์นํจ).
์ ์ธ์ UI์ MVU ํจํด์ ์ฌ์ฉํฉ๋๋ค. Microsoft์ ์์ ํ๋ก๊ทธ๋จ ๊ด๋ฆฌ์ ์ค๊ณ์์ธ James Clancey๊ฐ ๊ฐ๋ฐํ์ต๋๋ค. ์์ง ๊ณต์์ ์ผ๋ก ์ง์๋์ง๋ ์์ง๋ง ์ปค๋ฎค๋ํฐ์ ๊ด์ฌ์ด ์ถฉ๋ถํ๋ค๋ฉด ๊ฐ๋ฅํฉ๋๋ค.
Comet์์ UI๋ ๋จ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ผ ๋ฟ์ด๋ฏ๋ก Comet์ด Material Design ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉ์(๋๋ Microsoft๊ฐ ํ ์ ์์)๊ฐ WinUI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
๋ชจ๋ ๋์์ธ ์ธ์ด์ ์ ์ฉํ ์ ์๋ .Net ๊ธฐ๋ฐ ํฌ๋ก์ค ํ๋ซํผ UI ํ๋ ์์ํฌ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ. ๋ ์ด์ ๋ณด์ง ๋ง์ญ์์ค. Comet์ ๋๋ค.
@nerocui ๋ฉ์๊ฒ ๋ค๋ฆฌ์ง๋ง ์ ์ด๋ ๋ณด๊ธฐ์๋ XAML ๋์์ด๋๊ฐ ์์ต๋๋ค. ๋ณต์กํ UI๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ์๋ง๋ ํ์ฌ ๋จ๊ณ์์ ๋ฏธ์น ์ง์ผ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ ๋งํด ๋ณด์ ๋๋ค.
๋ชจ๋ ๋์์ธ ์ธ์ด์ ์ ์ฉํ ์ ์๋ .Net ๊ธฐ๋ฐ ํฌ๋ก์ค ํ๋ซํผ UI ํ๋ ์์ํฌ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ. ๋ ์ด์ ๋ณด์ง ๋ง์ญ์์ค. Comet์ ๋๋ค.
@nerocui ๋ฉ์๊ฒ ๋ค๋ฆฌ์ง๋ง ์ ์ด๋ ๋ณด๊ธฐ์๋ XAML ๋์์ด๋๊ฐ ์์ต๋๋ค. ๋ณต์กํ UI๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ์๋ง๋ ํ์ฌ ๋จ๊ณ์์ ๋ฏธ์น ์ง์ผ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ ๋งํด ๋ณด์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋๊ทธ ์ค ๋๋กญ์ด ์๋๋ผ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋ ๋ ๋์์ด๋์์ UI๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ฏธ๋ฆฌ ๋ณด๋ ๊ฒ์ ๋๋ค.
๋ค์ ์ฃผ์๋ ๋ช ์ด ๋ง์ ์ฑ์ ๋ง๋ค ์ ์๋ UWP์ฉ VS ํ ํ๋ฆฟ ์ธํธ๋ฅผ ์ถ์ํ๊ฒ ์ต๋๋ค. ์ด๊ฒ์ "๋ด๋ถ" ํ๋ก์ ํธ์ ์ฌ์ฉ๋์์ต๋๋ค. VS์๋ง ์ฌ๋ฐ๋ฅธ ๋น๋ฉ ๋ธ๋ก์ด ๋ด์ฅ๋์ด ์๋ค๋ฉด UWP๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก RAD ํ๋ ์์ํฌ๊ฐ ๋ ์ ์๋ค๋ ์ ์ ์ฆ๋ช ํ ๊ฒ์ ๋๋ค.
NoesisGUI๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด LOB ์ฑ์ ํ์ํ ๋ง์ ๊ธฐ๋ฅ์ด ๋๋ฝ๋์์ต๋๋ค. ์ด์ Unity๋ฅผ ๋์์ผ๋ก ํ๋ WinUI๋ ๊ต์ฅํ ๊ฒ์ ๋๋ค.
์ ๋ XAML์ ํ์ฌ ์ํ๋ฅผ ๋ฌธ์ํํ๊ธฐ ์ํ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์์ผ๋ฉฐ ์ฌ๋๋ค์ด XAML์ ๋ค์ํ ๋ฒ์ ์์ ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋์ดํ๋ ํต์ฐฐ๋ ฅ๊ณผ ์ค์ ์ฝ๋ ์กฐ๊ฐ์ผ๋ก ๋์์ ์ฃผ๊ณ ๊ธฐ์ฌํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ฐ๋จํ ๋ฌธ์ , ์ค๋๋ ์ ์๋๋ฐ์ค๋ฅผ ๋์ด ํฌ๋ก์ค ํ๋ซํผ์ ํ์ํ ๊ฒ์ ์์ฉํ์ญ์์ค. ์ด๋ฏธ UI๊ฐ ์๋ Windows/OS์ ๋ค๋ฅธ ๋ชจ๋ ์ธก๋ฉด์ ๋ํด ์ํํ๊ณ ์์ต๋๋ค.
์๋๋ฐ์ค ํฌ๋ก์ค ํ๋ซํผ์ ์ด์ฉํ์ธ์.
๋ณด๋ธ ์ฌ๋: anthonyadame [email protected]
๋ณด๋ธ ๋ ์ง: 2020๋
2์ 29์ผ ํ ์์ผ ์คํ 8:00:13
๋ฐ๋ ์ฌ๋: microsoft/microsoft-ui-xaml [email protected]
์ฐธ์กฐ: ๋ ์คํ ๋์ [email protected] ; ๋๊ธ [email protected]
์ ๋ชฉ: Re: [microsoft/microsoft-ui-xaml] ํ ๋ก : WinUI๋ ํ๋ซํผ ๊ฐ(#2024)์ด์ด์ผ ํฉ๋๋ค.
๊ฐ๋จํ ๋ฌธ์ , ์ค๋๋ ์ ์๋๋ฐ์ค๋ฅผ ๋์ด ํฌ๋ก์ค ํ๋ซํผ์ ํ์ํ ๊ฒ์ ์์ฉํ์ญ์์ค. ์ด๋ฏธ UI๊ฐ ์๋ Windows/OS์ ๋ค๋ฅธ ๋ชจ๋ ์ธก๋ฉด์ ๋ํด ์ํํ๊ณ ์์ต๋๋ค.
โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์
๋๋ค.
GitHub์์ ๊ทธ๊ฒ์ ์ง์ ์ด ์ด๋ฉ์ผ์ ํ์ ๋ณผ https://github.com/microsoft/microsoft-ui-xaml/issues/2024?email_source=notifications&email_token=AD3GCLAISGPMJCQ4AYDPDLLRFG6S3A5CNFSM4K3JAUQKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENMOWIY#issuecomment-593029923 , ๋๋ ํํด https://github.com/ ์๋ฆผ/๊ตฌ๋
์ทจ์-์ธ์ฆ/AD3GCLDKTTDCWIJ2ED3OKC3RFG6S3ANCNFSM4K3JAUQA .
๊ณ ์ฑ๋ฅ C++ ๊ตฌ์ฑ ์์๋ฅผ C#๊ณผ ํตํฉํ๋ ๊ฒ์ UWP์์ ๊ฐ๋จํฉ๋๋ค. DirectX ํ๋ฉด์ ๋ํ ์ก์ธ์ค๋ ํจ์ฌ ํฅ์๋์์ต๋๋ค.
@Noemata ๋ด๊ฐ ๊ด์ฌ ์๋ ๊ฒ์ ์ฒ์๋ถํฐ C++๋ฅผ ์์ฑํ ํ์๊ฐ ์๋ค๋ ์ ์ ์ ์ธํ๊ณ WinDev๋ C++ API, Managed Direct X, XNA, .NET์ ์ ์ ํ AOT ์ปดํ์ผ๊ณผ ๊ด๋ จํ์ฌ .NET ์ธ์ด๋ฅผ ๋๊ณผ ๋์ ๋์ผํ๊ฒ ๋ง๋๋ ๋ชจ๋ ์๋๋ฅผ ๊ณ์ ๋ฐฉํดํฉ๋๋ค. ์ฝ๋, COM ๊ธฐ๋ฅ, ....
WinUI 3.0์ ํฌ๋ก์ค ํ๋ซํผ์ผ๋ก ๋ง๋๋ ๊ฒ์ ๊ธฐ์กด .NET/Forms ์ ํ๋ฆฌ์ผ์ด์ ์ WinUI๋ก ์ด์ํ๊ธฐ ์ํ ์ธ์๊ฐ ๋ ๊ฒ์ ๋๋ค.
์ฒ์์๋ macOS๋ฅผ ์ง์ํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํ๋ฉฐ Windows์ ๋์ผํ ์ฑ๋ฅ์ด ์๋๊ฑฐ๋ ์ ๋๋ฉ์ด์ ๊ณผ ๊ฐ์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ์๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค.
Windows๋ ์ฐธ์กฐ ํ๋ซํผ์ ๋๋ค. ๋ฌผ๋ก ์ต์์ ์ฑ๋ฅ์ ์ํด์๋ DirectX์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค.
๋ด ์๊ฐ์ macOS๋ฅผ ์ง์ํ๊ธฐ ์ํด HTML+JS์์ ๋๊ท๋ชจ C# ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์ ์์ฑํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋ํ ์๋ก์ด ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ C#์ด ๋ ๋์ ์ ํ์ ๋๋ค.
๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ C# ๋ฐ XAML์ด HTML+JS๋ณด๋ค ํจ์ฌ ๋ ์์ ์ ์ ๋๋ค.
WinUI 3.0์ ํฌ๋ก์ค ํ๋ซํผ์ผ๋ก ๋ง๋๋ ๊ฒ์ .NET, C# ๋ฐ XAML์ ๋ฏธ๋๋ฅผ ๋ณด์ฅํฉ๋๋ค.
์๋ ๋ชจ๋
์ ๋ ๋ฐ๋์์ ์ผํ๋ WPF ๊ณ์ฝ ๊ฐ๋ฐ์์ ๋๋ค. ์ ๋ 2006๋ ๋ถํฐ ์ฌ๋ฌ ๊ธ์ต ๊ธฐ๊ด์ ์ํด WPF๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์กํ ๊ณ ์ฑ๋ฅ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํด ์์ต๋๋ค. ์ด์ ๋ํ ์ ์๊ฒฌ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1) ๋๋ ์๊ตญ์ ๊ณ ์ฉ ์์ฅ์ ์์์ฃผ์ํ๊ณ ์์ต๋๋ค. 2006๋ ์ดํ ๊ด๊ณ ๋ WPF ์์ ์ 100%(๊ทธ ์ค 1000๊ฐ)๋ ๊ธ์ต ๋ถ๋ฌธ์ ์ํ ๊ณ ์ฑ๋ฅ ๊ธ์ต ๊ฑฐ๋ ๋ฐ์คํฌํ ์ฑ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ๋ชจ๋ ์ฐ์ ๋ถ์ผ์ UWP ๊ฐ๋ฐ์์ ๋ํด ์์ง ๊ตฌ์ธ ๊ด๊ณ ๊ฐ ์์ต๋๋ค.
2) ์ด๋ฌํ ๋ฐ์คํฌํฑ ๊ฑฐ๋ ์ฑ์ UWP ๋๋ ๊ณง ์ถ์๋ WinUI๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๋ฌ ๊ฐ์ง ๋ณต์กํ ์ด์ ๋ก WPF์ ๋นํด ์ถฉ๋ถํ์ง ์์ต๋๋ค. ๋ํ Fluent ๋์์ธ์ ์ด๋ฌํ ์ฌ์ฉ์๊ฐ ๊ด์ฌ์ ๊ฐ๋ ๊ฒ์ด ์๋๋๋ค. Excel ๊ทธ๋ฆฌ๋์ฒ๋ผ ๋ณด์ด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ ๋๋ฉ์ด์ , ์คํ์ผ ์ง์ ์์ด ๋ฐ์ดํฐ์ ๋๋ผ์ด ์ฑ๋ฅ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
3) ์ด ๊ณ ๊ฐ์ ํฌ๋ก์ค ํ๋ซํผ ์๋ฃจ์ ์ ์ ํ ๊ด์ฌ์ด ์์ต๋๋ค. ์๋ฌด๋ Mac์ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๋ชจ๋ฐ์ผ์๋ ๊ด์ฌ์ด ์์ต๋๋ค.
4) ์ด๋ฌํ WPF ๊ฐ๋ฐ ํ์ ํ์ฌ WPF ์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ง๋ํ ํฌ์(์๊ฐ๊ณผ ๋น์ฉ)๋ฅผ ๊ฐํ๊ฑฐ๋ ๋ ๊ฐ์ ์ฌ๋์ ํตํด ๊ฐ๋ฐ๋ ๋ณต์กํ๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ์ง์ ์ ์ด ์ ํ๊ตฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ๋งค์ฐ ์ค์ํ ์ด์ ์ด ์๋ ํ WPF์์ ๋ฉ์ด์ง์ง ์์ ๊ฒ์ ๋๋ค.
5) ์ด๋ฌํ ๊ธ์ต ๊ธฐ๊ด์ ๊ฒฝ์ฐ ๋ฐ์คํฌํ/WPF์ฉ์ผ๋ก ๋ช ์์ ์ผ๋ก ์์ฑํ ํ์๊ฐ ์๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์น ๊ธฐ์ ๋ฐ Javascript๋ก ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ค์ ๊ทธ๋ณด๋ค ๋ ์ด๊ตญ์ ์ธ ๊ฒ์๋ ๊ด์ฌ์ด ์์ต๋๋ค. ํ๋ฌํฐ, ๋ธ๋ ์ด์ ๋ฑ.
์ด๊ฒ์ด ์๊ตญ์ ์ํฉ์ ๋๋ค. ์๋ฐฑ ๋ช ์ WPF ๊ฐ๋ฐ์๊ฐ ๋น ๋ฅธ ์์ผ ๋ด์ ์๋ก์ด ๋ถ์ผ๋ก ์ด๋ํ ์๊ฐ์ ํ์ง ์์ต๋๋ค. UWP ๊ฐ๋ฐ์ ์์
๋ํ ํฌ๋ก์ค ํ๋ซํผ์ ๋ํ ๋ชจ๋ ํ์คํ ๋ฆฌ๋ฅผ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ๋ชจ๋ฐ์ผ๊ณผ ๋ฐ์คํฌํฑ์ ์์ฐ๋ฅด๋ ํฌ๋ก์ค ํ๋ซํผ์ ์ด๋ฆฌ์์ ์ผ์ ๋๋ค. ๊ฒฐ์ฝ ํฅ๋ฏธ๋กญ์ง ์์ ๊ฒ์ ๋๋ค. Microsoft๋ ๋ฐ์คํฌํฑ ๋ฐ ์ ํ์์ ์คํ๋๋ UWP ์ฑ์ผ๋ก ์ด๊ฒ์ ์๋ํ์ต๋๋ค. ์ด๋ ์ฌ์์ด์์ต๋๋ค. ์ฑ์ ๋ณต์กํ๊ฑฐ๋ ํฅ๋ฏธ๋ก์ด ์์ ์ ์ํํ ์ ์๋ ๊ฐ์ฅ ๋จ์ํ UI๋ก ์ ํํ์ต๋๋ค. ๋ฐ์คํฌํฑ ๋ฐ ๋ชจ๋ฐ์ผ ์ฅ์น๋ ๋ค์ํ ์์ ๊ณผ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๊ฒ ์ ์๋์์ผ๋ฉฐ ๋ค์ํ ์ฑ์ด ํ์ํฉ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ด ์ฌ์ค์ ์๊ณ ์์ต๋๋ค.
์ ์๊ฒ๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ํฌ์ํ์ง ์๊ณ Microsoft์์ WPF์ ์ง์ ๋ ๋ง์ ํฌ์๋ฅผ ํ๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ธ์์ ๋ ๊ฐ๊น๊ฒ ์์
ํ ์ ์๋๋ก ๊ด๋ฆฌ๋์ง ์๋ C++์์ WPF ์ง์ ์ ์ด ๊ฐ๋ฐ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ๋ ๋์ ๋ฐ์ธ๋ฉ ๊ธฐ์ , ๋ ๋์ ๋ฐ์ดํฐ ํ
ํ๋ฆฟ, ๋ถ๋ถ ์์์ ํฌํจํ ๋ ๋์ ์ปจํธ๋กค ํ
ํ๋ฆฟ ๊ธฐ๋ฅ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ๋ ๋์ ๋๋ฒ๊น
๋๊ตฌ์ ์๊ฐ์ ํธ๋ฆฌ ๋ถ์๊ธฐ๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค. XAML ๋๋ฒ๊น
์ด ๋ ๊ตฌ์ฒดํ๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค. UI์์ ๋ ๋์ ๋ฉํฐ ์ค๋ ๋ฉ ์ง์์ ์ํฉ๋๋ค. ๋๋ ๋ง์ ๊ฒ์ ์ํ๊ณ ๋๋ฃ ์๊ตญ WPF ๊ณ์ฝ์๋ค๋ ์ํฉ๋๋ค.
ํ์ฌ Microsoft ๋ก๋๋งต์ ๋ด๊ฐ ์ํ๋ ๊ฒ์ ํ๋๋ ์๊ณ ๊ด์ฌ๋ ์๋ ๋ชจ๋ ๊ฒ์ ์ ๊ณตํฉ๋๋ค.
Microsoft๊ฐ ์ด ๋น์ ์ ์ง์ํ์ง ์๋๋ค๋ฉด(์ง๊ธ ๋น์ฅ์ ๋ถ๋ช ํ์ง ์์), ๊ณํ B๋ WPF๋ฅผ ์คํ ์์ค ๊ธฐ์ฌ๋ฅผ ํตํด ํ์ํ ํ๋ซํผ์ผ๋ก ์ฑํํ๋ ์ปค๋ฎค๋ํฐ๊ฐ ๋ ๊ฒ์ ๋๋ค. ์ฝ๋์ ์์ด๋์ด๋ WPF ํ๋ ์์ํฌ์ ์ผ๋ถ๊ฐ ๋ฉ๋๋ค.
@deanchalk ๋๋ ์ด๊ฒ์ ๋๋ถ๋ถ์ด WPF์ ๋ํ ๊ด์ฌ์ด ์์์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด WPF ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ ์ ๋ฐฐ์น๋์์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ๊ธฐ์ ๊ฒ์ํ๋ฉด ๋๋ถ๋ถ WinUI ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ํ๋๋ ์์ /์ด ๋ฌธ์ ์์ ๋ ผ์๋ ์์ ์ ๊ด์ฌ์ด ์๋ค๊ณ ๋งํฉ๋๋ค. ๊ทธ๊ฒ์ด ์ ํจํ ์ ๋ ฅ์ด์ง๋ง ๋ฌดํจ ํ ๋ก ์ ๋์ด ๊ฑด์ค์ ์ธ ๊ฒ์ผ๋ก ์ด์ด์ง์ง๋ ์์ ๊ฒ์ ๋๋ค.
@weltkante @deanchalk WinUI ์์ "๋ ๊ฑฐ์ ์ ์ด ์ง์"์ ์์ฒญํ๋ ์ ์ฅ์์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค: https://github.com/microsoft/microsoft-ui-xaml/issues/1833
์ต์ํ 4) ํญ๋ชฉ์ ํด๋น ๋ฌธ์ ์ ์ ํฉํ๋ฉฐ Microsoft์ ํฌ์ ์ฌ๋ก๋ฅผ ๋ง๋ค๊ธฐ ์ํด ํด๋น ํญ๋ชฉ์ ๋ค์ ๊ฒ์ํด์ผ ํฉ๋๋ค.
@deanchalk , ์ ๋ ์ฌ์ ํ WPF์ ์ด๋ ฌํ ํฌ์ ๋๋ค. ๊ณ ๋ง๊ฒ๋ Microsoft์ ์ฌ๋์ ๋ฐ๊ธฐ ์์ํ ํ๋ฅญํ ๋๊ตฌ์ ๋๋ค. Microsoft๊ฐ ์ฒ์์ WPF๋ฅผ ์ญ์ ํ๊ธฐ๋ก ์ ํํ ๋ฐฉ์์ ๊ฐ์ฅ ๋ถํํ์ต๋๋ค. UWP๋ ๋น๋๋ ์ ์ฅ๋๊ฐ์ด๊ธฐ ๋๋ฌธ์ WPF์ ๋ํ ์ง์์ ์ธ ํฌ์๋ฅผ ๋ฐฉํดํด์๋ ์ ๋ฉ๋๋ค.
UWP๋ ์ฌ๋ฌ ๋ฉด์์ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ด์์ต๋๋ค. ๋ถํํ๋ ์ฒซ ๋ฒ์งธ ๋ฐ๋ณต์์๋ WPF๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ณ ๋ คํ์ ์ ์๋ ์ฌ๋๋ค์๊ฒ ๊ฐ์ฅ ์ค์ํ ์๊ตฌ ์ฌํญ ์ค ์ผ๋ถ๋ฅผ ๋ฌด์ํ์ต๋๋ค. ๋ฌด์๋ณด๋ค๋ ๋จ์ผ ์กฐ์ง์ ๋ฒฝ ๋ด์์ XAML ์กฐ๊ฐํ์ ๋ค์ ๋๋ผ์ด ์ํ์ ๋๋ค. WPF != Silverlight != UWP != ์๋ง๋ฆฐ. ์!
์ ๋ 2020๋ ์ WPF์ ์์ ์ ํ๊ณ ํ ํ๊ธฐ๋ก ์ ํํ WPF ๊ฐ๋ฐ์์๊ฒ ๋ ๋์ ์ ์ ๋๋ค. ์ํฉ์ด ์๋นํ ์งํ๋์์ต๋๋ค. WinRT API๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์๋ XAML ์์ผ๋๋๋ UWP๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ํ๋ ๋งค์ฐ ์ฌ์ด ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋งค ์ ํ์ ์ ํํ ๊ฒฝ์ฐ UWP๊ฐ ๋ ์ด์ ๋ถ์กฑํ์ง ์์ต๋๋ค.
๋ ํฐ ๋ฌธ์ ๋ ๋ค์ ๋จ๊ณ์ ๋ํ Microsoft์ ๋ช ํ์ฑ์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์ ๋๋ค. XAML Nirvana๋ฅผ ๊ธฐ๋ํ๋ ๋ชจ๋ ์ฌ๋๋ค์ UWP๋ก ๋ค์ ํ ๋ฒ ์ฌ์๋๊ณ ์๋ Silverlight์ ์คํจ๋ฅผ ํฌ๊ธฐํ์ต๋๋ค.
WinUI๋ ๋ถ๋ช ํ UWP๋ก ๋ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์์ผ๋ฏ๋ก ๋ชฉ๊ฒฉํ๋ ๊ฒ์ด ๊ณ ํต์ค๋ฝ์ต๋๋ค. Microsoft๋ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ UWP๊ฐ ๋ฌด์์ธ์ง ์์ด๋ฒ๋ฆฌ๊ธฐ๋ฅผ ํฌ๋งํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ง์ดํฌ๋ก์ํํธ์ ์ผ์์ด ์ค๋ฅธ์์ด ํ๋ ์ผ๊ณผ ํญ์ ์ผ์นํ๋ ๊ฒ์ ์๋๋๋ค. WindowsX๋ Win32์ ํจ๊ป ์ ๊ณต๋๋ ๋ชจ๋ ๊ฒ(WPF/Winforms/etc.)์ ๋ฎ์ ์ฑ๋ฅ์ ์๋๋ฐ์ค์์ "์คํ๋ ์ ์๋" ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ ํฌ๋ฏธํ ์ ๋ง์ผ๋ก ๋ง๋ค์์ต๋๋ค. UWP๋ ํ์ฌ Windows 10, WindowsX ๋ฐ ์ดํ ๋ฒ์ ์ ๊ธฐ๋ณธ UI์ ๋๋ค. WinRT API๋ Win32์ ๋นํด ํฌ๊ฒ ๊ฐ์ ๋์์ต๋๋ค. ๊ทธ๋์ 2020๋ ๋๋ก ๋์ด๊ฐ์ง 2010๋ ๋์ ๋ด๋์์ง ์ ํํด์ผ ํ ๊ฒ ๊ฐ์์.
WinUI๋ ๋ถ๋ช ํ UWP๋ก ๋ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์์ผ๋ฏ๋ก ๋ชฉ๊ฒฉํ๋ ๊ฒ์ด ๊ณ ํต์ค๋ฝ์ต๋๋ค. Microsoft๋ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ UWP๊ฐ ๋ฌด์์ธ์ง ์์ด๋ฒ๋ฆฌ๊ธฐ๋ฅผ ํฌ๋งํฉ๋๋ค.
@Noemata WinUI๋ UWP API(XAML, Composition, Input,...)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ ์ ํ์ ๋๋ค. ์ด๋ฆ์ ๊ธฐ๋ณธ ์ฑ ๋ชจ๋ธ์ ๊ด๊ณ์์ด Windows ์ฑ์ฉ UI๋ฅผ ๋น๋ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์๋ฏธ๊ฐ ์์ต๋๋ค.
ํผ๋์ค๋ฌ์์. ๋น์ ์ ๋ง์ง๋ง ๋จ๋ฝ์์ 10X๋ฅผ ์ธ๊ธํ๊ณ ์์ต๋๋ค. UWP ์ฑ ๋ชจ๋ธ ์์ฒด๊ฐ Windows 10X์์ ์ถ์ง๋๊ณ ์์ต๋๋ค. ์ด์ 10X๊ฐ ์ฑ๊ณตํ ์ง ์ฌ๋ถ๋ ์๊ฐ์ด ๋งํ ์ ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ MS๋ ๋ฉ์์ง์์ ๋ถ๋ช ํ์ต๋๋ค. UWP๋ ๊ทํ๊ฐ ์ง์ ํ ๋๋ก 10X(์น๊ณผ ํจ๊ป)์ ๊ธฐ๋ณธ ํ๋ซํผ์ ๋๋ค.
@Noemata ๋ 2020๋ ๊น์ง 2010๋ ์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ๋ฐ๋ผ์ก์๊ณ ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด 2010๋ ์ ๋จธ๋ฌผ๋ฌ์ผ ํ์ต๋๋ค.
์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด Silverlight, XNA๋ฅผ ์ญ์ ํ๊ณ MS๊ฐ .NET Core, WinUI์ ํ์ํ ์ฌ์์ฑ์ ์ด๋ป๊ฒ ์์ผ๋ก ํ๋๋์ง ๋ณด๋ฉด์ ์์ํ๋ ์ฌ์์ฑ ํธ๋ ์ธ์ ์ง์ณค์ต๋๋ค. ๋ ์ ์ ๊ธฐ๋ฅ์ ๋์ฐพ๊ธฐ ์ํด ์ฌ์์ฑ ๋น์ฉ์ ์ง๋ถํด์ผ ํ๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด๋ ์์ ํ ์๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ ๊ณ ๊ฐ.
ํ์ฌ Android ๋ฐ Windows 10 X ํ๋ธ๋ฆฟ์ด ์๋ ์๋ฆฌํจ ๋๋ถ์ ์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ํ๋ ๊ฒ์ WinUI๊ฐ ์๋๋ผ Xamarin ๋ฐ PWA์ ๋๋ค.
@pjmlp , ์๋ง๋. ์ด๋ค ๊ธฐ๋ฅ์ด ๋๋ฝ๋์๋์ง ๊ถ๊ธํฉ๋๋ค. ๊ฝค ํฐ WPF ์ฑ์ UWP๋ก ์ด์ํ์ต๋๋ค. ๊ฐ์ฅ ํฐ ๊ณจ์นซ๊ฑฐ๋ฆฌ๋ ๋ณด์ ์๋๋ฐ์ค์ ์ด์ ๋ง์ ์ธ์ฐ๊ธฐ๋ณด๋ค๋ ํจ๊ป ์ผํ๋ ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ์ด์์ต๋๋ค. ์ด์ ์๋ Data Grid, DB ์ฐ๊ฒฐ, ๊ณ ์ ํต์ ์ ์ํ ์ ์ ํ API ๋ฑ๊ณผ ๊ฐ์ ๋๋ฝ๋ ๋ถ๋ถ์ด ์์์ต๋๋ค. ์ง๊ธ์ ๋ถ์กฑํ ๊ฒ์ด ๊ฑฐ์ ์์ต๋๋ค. WPF์์๋ ๊ฑฐ์ ์ฝ๊ฒ ํ ์ ์๋ ์ผ์ด ๋ง์ด ์์ต๋๋ค. ๊ณตํํ๊ฒ ๋งํด์, ํ์ฌ๋ก์๋ UWP๊ฐ ๋ ์ต์ ์ ๋ฐฉ์์ผ๋ก ๊ธฐ๊ณ ์ฝ๋๋ก ์ปดํ์ผํ๊ณ ๋ ๋์ DirectX ๋ ๋๋ง ์คํ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๋ ๋ฎ๋ค๋ ์ ์ ์ ์ธํ๊ณ WinRT API์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํ์ฌ WPF์์ ํ ์ ์๋ ์ผ์ ์์ต๋๋ค. ๋ํ IP๋ฅผ ๋ณดํธํ๊ฑฐ๋ ์นจ์ ์๋ฅผ ๋ฐฉ์งํ๋ ค๋ ๊ฒฝ์ฐ WPF ์ฝ๋๋ฅผ ๋๋ ํ(๋ ์ทจ์ฝํ๊ฒ ๋ง๋ค๊ธฐ)ํด์ผ ํฉ๋๋ค.
ํด๋ํฐ/ํ๋ธ๋ฆฟ์ ํฌ์ธํธ ์๋ฃจ์ ์ข ๋ฅ์ ์ฑ์ ์ํ ํ๋ฅญํ ์ฅ์น์ ๋๋ค. ๋๋ ์ ํ๋ก ๊ตํฅ๊ณก์ ์ ๋ณดํ๊ฑฐ๋ ๊ณ ์ธต ๊ฑด๋ฌผ์ ๋์์ธํ๊ณ ์ถ์ง ์์ผ๋ฉฐ, ๋ด ๋ฐ์คํฌํฑ์์ ๋ชจ๋ฐ์ผ์ด ์๋ํ๋๋ก ํ๋ ๊ฒ๋ณด๋ค ๋ด ๋ฐ์คํฌํฑ ์ฑ์ ํฌ์ธํธ ์๋ฃจ์ ๋ถ๋ถ์ ๋ชจ๋ฐ์ผ๋ก ํ๊ฒํ ํ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค.
@Felix-Dev WinUI๊ฐ ๋ฌด์์ธ์ง ์์์ต๋๋ค. WPF, Winforms ๋ฐ MFC/Win32 ๊ฐ๋ฐ์๊ฐ ๊ตฌ๋งคํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ ๋ค๋ฅธ ํฌํฌ๊ฐ ํ์ํ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค. ๋ ๋์ ์ ๋ต์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ ๋งค๋ ฅ์ ์ผ๋ก ๋ง๋ค๊ฑฐ๋ ๋ ๊ณ ํต์ค๋ฝ๊ฒ ๋ง๋ค๊ฑฐ๋ ๋ ๋ค๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค.
Microsoft๋ UWP๋ก ๋ง์ ์ผ์ ํด๋์ต๋๋ค. ๋ชจ๋ ์ข ๋ฅ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ค๋ฃจ๋ ํ๋ถํ ์ํ ์ฑ์ด ์์ต๋๋ค. ๋๋ฝ๋ ๊ธฐ๋ฅ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฆ๊ฒ ๋์ฐฉํ์ต๋๋ค. ์ ๋ง ๋๋ฌด ๋ฆ์๋์?
@Noemata WinUI๋ OS์์ UWP UI ์คํ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ ๋์ ์ผ๋ก ํ์ํ ๋จ๊ณ์ด๋ฏ๋ก WinUI Desktop์ด ์๋ ์๋ ์ด๋ ์ชฝ์ด๋ ๋ฐ์ํ์ ๊ฒ์ ๋๋ค. Windows 10์ด ์ฒ์ ์ถ์๋์์ ๋ WinUI๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด ๊ฐ์ฅ ์ข์๊ฒ ์ง๋ง ๊ทธ๋ ์ง ์์ ์ด์ ๊ฐ ์์ต๋๋ค.
๋๋ฌด ๋ฆ์๋ค๋ ๊ฒ์.... UWP ์ปค๋ฎค๋ํฐ ๋์ค์ฝ๋ ์ฑ๋์์ ๊ทธ๋ฐ ํ ๋ก ์ ๋ง์ด ํ๊ณ ์ฌ๊ธฐ์์๋ ์์์ด ์ด์ ์ ์ธ ๊ต๋ฅ๋ฅผ ํ์ต๋๋ค. ์ฐ๋ฆฌ ์ค ์ผ๋ถ๋ ๋ฐฐ๊ฐ ์ด๋ฏธ ํญํดํ๋ค๊ณ ์๊ฐํ๋ ๋ฐ๋ฉด ๋ค๋ฅธ ์ผ๋ถ๋ ์ฌ์ ํ UWP ํ๋ซํผ/WinUI๊ฐ ์ฑ์ฅํ๊ณ ์ฑ์ํ์ฌ ์ฃผ์ ๊ฐ๋ฐ ํ๋ซํผ์ด ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. MS์ ๋ํ ์ต์ ์ ์ ๊ทผ ๋ฐฉ์์ด ์ด๋ป๊ฒ ์๊ฒผ๋์ง ๋ง์ ์์ด๋์ด๋ฅผ ๊ฐ์ง ๋ง์ ์ฌ๋๋ค์ด ์์ต๋๋ค(์: xplatform์ผ๋ก ๊ฐ์ง ๋ง์ง?). ์ฌ์ค, ํ์ ํ์ฌ WinUI 3์ ๋ํด ์ด์ฌํ ์์ ํ๊ณ ์์ผ๋ฉฐ ์ด ๋ฆด๋ฆฌ์ค๋ ์ง์ ํ ๋์ ์ ์ฐฉ์ํ๊ธฐ ์์ํ์์ ์๋ฆด ๊ฒ์ ๋๋ค. ์ปค๋ฎค๋ํฐ์ ๋์์ ๋ฐ์ WinUI๋ฅผ ๋ฐ์ ์์ผ Windows๋ฅผ ๋ชฉํ๋ก ํ๋ ๊ฐ๋ฐ์๊ฐ ์ ํํ๋ ํ๋ ์์ํฌ๊ฐ ๋ ๊ฒ์ ๋๋ค. .
@Noemata , ์ฐ์ Telerik, Component One ๋ฑ๊ณผ ๊ฐ์ ๊ธฐ์กด ํ์ฌ ๊ตฌ์ฑ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํธํ์ฑ...
๊ทธ๋ฐ ๋ค์ ์ฒ์๋ถํฐ ๋ค์ ์์ฑํ ํ์๊ฐ ์์ต๋๋ค. ์ธ๊ธํ ๋๋ก ์ฐ๋ฆฌ๋ ๋ค์ ์์ฑํ๋ ๋ฐ ์ง์ณค์ต๋๋ค.
DirectX์ ๊ด๋ จํ์ฌ WPF์ 3D ๋ชจ๋ธ๋ง ํด๋์ค๊ฐ ์ง์๋์ง ์์ ๋ฟ๋ง ์๋๋ผ Microsoft๊ฐ DirectX์ ๋ํ ๋ฐํ์ ํ๋ก์ ์ ์ ์์ฑํ๋ ๋ฐ ์ ๊ฒฝ์ ์ธ ์ ์๊ณ ๋ค์ ์ ์พํ C++/CX ๋ฐฉ์ธ์ด ๋จ์ด๋ก ๋์ฒด๋์๊ธฐ ๋๋ฌธ์ C++๋ฅผ ์์ฑํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ๋ฅ๋ ฅ์ ๋จ์ด์ง์ง๋ง C++/WinRT์ ๋ ์ ํธํ๋ฉ๋๋ค.
๊ฒ๋ค๊ฐ ์๋ฒฝํ๊ฒ ์๋ํ๋ WPF ์ฝ๋๋ฅผ ๋ฒ๋ ค์ผ ํ ๋ฟ๋ง ์๋๋ผ WCF, EF6 ์ฝ๋์๋ ๋๊ฐ์ด ํด์ผ ํฉ๋๋ค.
๋๋ ์ฌ์ ํ UWP๊ฐ Win32๋ณด๋ค ํจ์ฌ ๋ ๋์ API๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ป๊ฒ๋ Longhorn์ด ์์ด์ผ ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ Microsoft๊ฐ ๋ง์ ์กฐ์ง์ ์ฌ์์ฑ ์์ฐ์ ์์งํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์คํ๋๋ ๋ฐฉ์์ด ๋๋ฌด ๋ง์ ๋ค๋ฆฌ๋ฅผ ํ์๋ฒ๋ ธ์ต๋๋ค.
@pjmlp , ๊ทธ๊ฒ๋ค์ ๋ชจ๋ ๋ค์ ์จ๊ฑดํ ๋ฐ๋ก ์ ๊ฐ์ง ์ข์ ์ ์ด๋ฏ๋ก ์๋์กฐ์ฐจํ์ง ์์ ๊ฒ์ ๋๋ค. WPF 3D API์ ๋ํ ์ง์์ด ์๋ค๋ ๊ฒ์ ๊ฐ์ธ์ ์ผ๋ก ํฐ ํ๊ฒฉ์ด์์ต๋๋ค. 3D์ฉ WPF ๋ฐ์ธ๋ฉ ์ต์ ์ ๊ณ ๋ คํ ๋ ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ ๋ฐฐ์ฐ๋ ๊ฒ์ ์ฌ๋ฏธ๋ ์๊ณ ๋ฅ๋ ฅ๋ ํจ์ฌ ๋จ์ด์ง๋๋ค. UWP์์ 3D์ ๋ํ C# ๋์์ด ์์ง๋ง 3D ๋ชจ๋ธ์ ๋ฐ์ธ๋ฉํ ๋์ ์ด์ ์ ๊ฒฝํํ๊ณ ๋๋ฉด ํจ์ฌ ๋ ์ ์ฉํฉ๋๋ค.
C++/CX๋ C++/WinRT์์ ํด๊ฒฐํ๋ ๋ฐ ๋๋ฌด ์ค๋ ์๊ฐ์ด ์์๋ ๋ ๋ค๋ฅธ ๋ฌธ์ ์์ต๋๋ค.
WCF๋ ์ฃฝ์์ต๋๋ค(์ฃ์กํฉ๋๋ค. ์๋ก์ด ์ต์ ์ด ํจ์ฌ ๋ ์ข์ต๋๋ค). EF6์๋ ํจ์ฌ ๋ ๋์ ๋ง์ด๊ทธ๋ ์ด์ ์คํ ๋ฆฌ๊ฐ ์์ด์ผ ํ์ต๋๋ค. ์ฌ์์ฑ ์์ฐ ์คํจ @pjmlp ์ ๋ํ ๋น์ ์ ์๊ฐ์ ์ ๋์ ์ผ๋ก ์ณ์ต๋๋ค. ๋ถ๋ช ํ ์ด๊ฒ์ Microsoft๊ฐ ์ฌ์ฉํ๋ ๊ฒ์ด์๊ณ ๋ฏธ์น/์ผ๊ด๋์ง ์์ ๊ธฐ์ ๋ณ๋์ ๊ฐ์ํ ๋ ๋ ์ด์ ๊ณ ๋ คํ์ง ์์ต๋๋ค.
@Felix-Dev, ๋น์ ๋ ์์ ํ ์ ํจํ ์ง์ ์ํฉ๋๋ค. UI ๋์ปคํ๋ง์ ์ฒ์๋ถํฐ ์กด์ฌํ์ด์ผ ํฉ๋๋ค. XAML ๊ธฐ๋ฐ xplatform UI๋ฅผ ์์ฒญํ๋ ์ฌ๋๋ค์ ์์ฒญ์ ๋ค์ ํํํ๊ณ API ํ๋ฉด(๋ค๋ฅธ Java/Silveright/Uno Platform/Unity/Whateverโฆ ๊ธ์ ์ฑ์ ๊ฐ๊น์ด HTML๋ก ๋๋๋ ๊ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค). ์ ๋ ํ์ฌ ์ต์ MS ๋ด๋ถ ์ด๋์ ํฐ๋ธ์ ๋ํด ์ ๋ชจ๋ฆ ๋๋ค. ๋ฐ์ ๋ด๋ค๋ณด๋ฉด WinUI๋ ๋ฐฐ๊ฐ ๋ค์ ๊ต์ ๋๊ณ ์์์ ๋ํ๋ด๋ ๊น๋ฐ์ ํ๋ค๊ณ ์์ต๋๋ค(๋ช ๋ฒ ๋?). Silverlight์ ์ฃฝ์์ผ๋ก Microsoft๋ฅผ ๋ฐฉ์ดํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํด์ก์ต๋๋ค. ๋ค์๋ ๊ทธ ๊ฒ์ ๋ค์ง ์์ ๊ฒ์ด๋ค. ๋ด๊ฐ ์ง์ง ํ๊ณ ์๋ ์ผ์ด UWP์ ์ฃฝ์์ ํํํ๋ ๊ฒ ๊ฐ๋ค :-( ... ๊ณ ํต์ค๋ฝ๋ค. https://www.youtube.com/watch?v=uBiewQrpBBA
์ฐฐ๋ฆฌ == ๋ง์ดํฌ๋ก์ํํธ
ํฌ๋ก์ค ํ๋ซํผ? ๋ง์ดํฌ๋ก์ํํธ๋ UNO๋ฅผ ์ฌ์ ๋๋ด์ผ ํฉ๋๋ค.
ํฌ๋ก์ค ํ๋ซํผ? ๋ง์ดํฌ๋ก์ํํธ๋ UNO๋ฅผ ์ฌ์ ๋๋ด์ผ ํฉ๋๋ค.
์ด๋ค ์๋ฃจ์ ์ด ์ ๊ณต๋๋ ์น ๋ธ๋ผ์ฐ์ ๋ ์ผ์ข ์ ์น ๋ณด๊ธฐ์ ์์กดํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ๋ซํผ์ ๊ธฐ๋ณธ ์ฐฝ์ด๋ UI ํ๋ฉด์ด ๋ฌด์์ด๋ ๊ฐ์ UI๋ฅผ ํ์ํ์ง๋ง Windows์์์ ๋์ผํ๊ฒ ๋ณด์ ๋๋ค.
ํฌ๋ก์ค ํ๋ซํผ? ๋ง์ดํฌ๋ก์ํํธ๋ UNO๋ฅผ ์ฌ์ ๋๋ด์ผ ํฉ๋๋ค.
์ด๋ค ์๋ฃจ์ ์ด ์ ๊ณต๋๋ ์น ๋ธ๋ผ์ฐ์ ๋ ์ผ์ข ์ ์น ๋ณด๊ธฐ์ ์์กดํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ๋ซํผ์ ๊ธฐ๋ณธ ์ฐฝ์ด๋ UI ํ๋ฉด์ด ๋ฌด์์ด๋ ๊ฐ์ UI๋ฅผ ํ์ํ์ง๋ง Windows์์์ ๋์ผํ๊ฒ ๋ณด์ ๋๋ค.
์ด๊ฒ์ด Windows 7์ ์ ์ธํ๊ณ UNO๊ฐ ์ํํ๋ ๋ฐฉ์์ ๋๋ค. Windows 7์ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ๋ ์ ์ผํ ์์ธ์ ๋๋ค.
ํฌ๋ก์ค ํ๋ซํผ ๋ฐ์คํฌํฑ ์๋ฃจ์
์ด ํ์ํ WPF ๊ฐ๋ฐ์์๊ฒ๋ Wine์ด ์คํ ๊ฐ๋ฅํ ์ต์
์ผ ์ ์์ต๋๋ค. ์ ๋ Linux์์ Wine์ ์คํํ๊ธฐ ์ํด ๋๊ท๋ชจ WPF ์์ฉ ํ๋ก๊ทธ๋จ(๋๋ถ๋ถ .NET Core WPF)์ ์ด์ํ๋ ๋ฐ ํฐ ์ฑ๊ณต์ ๊ฑฐ๋์์ต๋๋ค. ์์ํ๋ ๋ฐ ๋์์ด ๋๋ ๊ธ์ด ์์ต๋๋ค.
https://ccifra.github.io/PortingWPFAppsToLinux/Overview.html
๋ํ ์ผ๋ถ WinForms ์ฑ์ Linux์ ์ด์ํ๊ธฐ ์์ํ์ต๋๋ค. ์ง๊ธ๊น์ง ๋๋ ์ด๋ค ๋ฌธ์ ๋ ๊ฒช์ง ์์์ต๋๋ค.
Wine์ ๋ํ Mac, Chrome OS ๋ฐ Android์์ ์คํํ ์ ์์ด์ผ ํฉ๋๋ค. ๋๋ ๋ฆฌ๋ ์ค ๋ง ์๋ํ์ต๋๋ค.
๋์๊ฒ ์ด๊ฒ์ DirectX๋ฅผ ์ถ์ํ ๊ณ์ธต์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์๋ํ๊ณ ๋ฐ๋ผ์ผ ํ ์คํ ๊ฐ๋ฅํ ๋ชจ๋ธ์์ ๋ณด์ฌ์ค๋๋ค. .NET WASM์ด ๋ ์ฑ์ํด์ง๋ฉด WebGL์ ์ฌ์ฉํ๋ ์น์์๋ ์ ์๋ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Microsoft๊ฐ Wine์ ๋๋๋ก ํ๋ ๊ฒ(์ต์ํ ์์ธ์ด ๊นจ์ง์ง ์๋๋ก ํ๋ ๊ฒ)์ ๋ง์ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ WineLib์ ์ฌ์ฉํ์ฌ ์ง์ ํ ๊ธฐ๋ณธ ์๋ฃจ์ ์ ๋ง๋๋ ๋ฐ ๋์์ ์ค ์ ์์ผ๋ฉฐ ์ ๋ฌธ ์ง์์ ๊ฐ์ํ ๋ ๋๋ฌด ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
AvaloniaUI๋ ์ด๋ฏธ ํฌ๋ก์ค ํ๋ซํผ์ ๋๋ค. ํ๋ก์ ํธ์ ์ฌ๋๋ค์๊ฒ WinUI ๊ฐ์ ์ ์ํ ๋์๊ณผ ํผ๋๋ฐฑ์ ์์ฒญํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ธ์์, Uno Platform๋งํผ์ ์๋๋๋ค. Uno Platform์ ์น์์๋ ์คํ๋ฉ๋๋ค(WASM). ์๋ฐ๋ก๋์์๋ ์ด ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
Avalonia๋ ๋ํ Uno๊ฐ ํผํ๋ ค๊ณ ํ๋ ์์ฒด XAML ๋ฐฉ์ธ์ ์ฌ์ฉํฉ๋๋ค.
๋ณด๋ธ ์ฌ๋: Shimmy [email protected]
๋ณด๋ธ ๋ ์ง: 2020๋
3์ 27์ผ ๊ธ์์ผ ์ค์ 4:09:30
๋ฐ๋ ์ฌ๋: microsoft/microsoft-ui-xaml [email protected]
์ฐธ์กฐ: ๋ ์คํ ๋์ [email protected] ; ๋๊ธ [email protected]
์ ๋ชฉ: Re: [microsoft/microsoft-ui-xaml] ํ ๋ก : WinUI๋ ํ๋ซํผ ๊ฐ(#2024)์ด์ด์ผ ํฉ๋๋ค.
AvaloniaUI๋ ์ด๋ฏธ ํฌ๋ก์ค ํ๋ซํผ์ ๋๋ค. ํ๋ก์ ํธ์ ์ฌ๋๋ค์๊ฒ WinUI ๊ฐ์ ์ ์ํ ๋์๊ณผ ํผ๋๋ฐฑ์ ์์ฒญํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ธ์์, Uno Platform๋งํผ์ ์๋๋๋ค. Uno Platform์ ์น์์๋ ์คํ๋ฉ๋๋ค(WASM). ์๋ฐ๋ก๋์์๋ ์ด ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์
๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ํ์ ํ๊ฑฐ๋ GitHub https://github.com/microsoft/microsoft-ui-xaml/issues/2024#issuecomment-604893750 ์์ ํ์ธํ๊ฑฐ๋ https://github.com/notifications/unsubscribe-auth/ ๊ตฌ๋
์ ์ทจ์ํฉ๋๋ค.
๋๋ถ๋ถ์ WinUI ๊ธฐ์ ์ Sliverlight์์ ๋์๊ณ Sliverlight๋ ์ค์ ๋ก ํฌ๋ก์ค ํ๋ซํผ์ ๋ฌ์ฑํ์ต๋๋ค. ๋ฐ๋ผ์ WinUI ํฌ๋ก์ค ํ๋ซํผ์ ๊ธฐ์ ์ด ์๋๋ผ ์ ๋ต์ ์์กดํฉ๋๋ค.
์์งํ... ์ค์ ๋ก Microsoft๊ฐ ๋ฐ๋ผ์ก๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์๋ ๊ฒ์ ์ ๋ง ํ์ฌํ ์ผ์ ๋๋ค... ๊ทธ๋ค์ "ํฐ" ์์ฅ ์ ์ ์จ์๋ง ๊ด์ฌ์ด ์๊ณ ๊ณ ๊ฐ/์ ํ ํฌ์ด ์ํ๋ ๊ฒ์ ์ฐพ๊ณ ์์ง ์์ต๋๋ค.
๋ง์ดํฌ๋ก์ํํธ๋ DESKTOP APP ๊ฐ๋ฐ์ด ์น ๊ฐ๋ฐ์ด ๋๋ฌด ๋์ฐํ ๋์๋ ๊ตฌ์ WEB ๊ฐ๋ฐ๋ก ์ฎ๊ฒจ๊ฐ ์ด์ ์ ๋๋ค.
๋ชจ๋ XAML ๊ฐ๋ฐ์๋ HTML/CSS๊ฐ ๋๋ฌด ์ฐ๋ ๊ธฐ๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค.
ํ์ง๋ง ์ฌ์ ํ... HTML, CSS, DOM... React, Angular, Vue์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ข ๋ ์ฆ๊ฒ๊ฒ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. ์ฌ๋๋ค์ ์ฌ์ ํ โโ์ด ๊ตฌ์ ์น์ ์ง์คํ๊ณ , 2-4๋ ๋ง๋ค ์๋ก์ด ํ๋ซํผ์ ์ํด ์ฃฝ๋ Microsoft์ ์๋ก์ด ํ์ ์์ค Windows ์ ์ฉ ํ๋ซํผ์ด ์๋๋๋ค.
XAML ๊ธฐ๋ฐ Win-app ํ๋ซํผ์ ๋ช ๋ ์ ์ ์คํ ์์ค์ฌ์ผ ํฉ๋๋ค. WEBSITE, Windows, Mac, Linux, Android(๊ณ ๊ฐ์ด ์ํ๋ ๋ชจ๋ ํ๋ซํผ)์ ํ ๋ฒ๋ง ๋ฐฐํฌํ ์ ์์ด์ผ ํฉ๋๋ค. Windows ์คํ ์ด๋ XAML/UWP ์ฑ ๋ ๋๋ฌ์ ํ๋ซํผ ๊ฐ์ด์ด์ผ ํฉ๋๋ค. (Google ํฌ๋กฌ์ด HTML/CSS ๋ ๋๋ฌ์ ํฌ๋ก์ค ํ๋ซํผ์ธ ๊ฒ๊ณผ ์ ์ฌ).
Microsoft์ ํฉ๊ธ๊ธฐ์๋ XAML ๊ธฐ๋ฐ ํฌ๋ก์ค ํ๋ซํผ ์ฑ์ด ์น์ ํ๊ดดํ ์ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ๋ ์ด CSS, HTML, DOM ๋ฐ ์๋ง์ ํ๋ ์์ํฌ๋ฅผ ์ฒ๋ฆฌํ ํ์๊ฐ ์์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ์๋๋๋ค. ๋ ์ ์ํํธ์จ์ด์ ๋ํ Microsoft์ ์ง์ฐฉ์ผ๋ก ์ธํด ์น์์ ํจ๋ฐฐํ์ต๋๋ค.
ํํธ Google์ Flutter๋ XAML์ ๋ํด ํญ์ ์ํ๋ ๊ฒ์ด ๋์์ต๋๋ค.
WinUI 3๊ฐ MAUI์ ๋์ ํ๋ซํผ์ด ๋ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค. Uno ํ๋ซํผ์ ์ด๋ฏธ WinUI 3 Preview๊ฐ ์ง์๋๋ค๊ณ ๋ฐํํ์ต๋๋ค.
๊ทธ๋์ @jeromelaban /Microsoft ์ฐ๋ฆฌ๊ฐ ์ ๋ง๋ก ํ์๋ก ํ๋ ๊ฒ์ Uno/MAUI ํตํฉ์
๋๊น? MAUI๋ ์น(๋ธ๋ผ์ฐ์ ) ๋์์ด ์๋ Flutter ๋๋ Uno๋ณด๋ค ๋ ์ ์ฉํ IMO์
๋๋ค.
MAUI ์ ์ฅ์ ์๋ ์๊ฒฌ์ ๋จ๊ฒจ์ฃผ์ธ์.
์ด๋์๋ WPF(์ค๋ฒ๋ผ์ดํธ)!
DirectX๋ฅผ ๋ค๋ฅธ ํ๋ซํผ์ผ๋ก ์ด์ํ๋ ๊ฒ์ ๋ฐฉ๋ํ ์์ ์ผ๋ก ๋ณด์ ๋๋ค. ์๋ง๋ ํด๊ฒฐ์ฑ ์ DirectX ๋์ OpenGL ๋๋ Vulkan์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
Google์๋ ํธ์ถ ๋ฐ ์ ฐ์ด๋๋ฅผ ๊ธฐ๋ณธ API(๋ฐ์คํฌํฑ gl[swiftshader ์ํํธ์จ์ด ๋ ๋๋ฌ์์ ์ ๊ณต], vulkan, directx, metal)๋ก ๋ณํํ์ฌ ๋ชจ๋ ํ๋ซํผ์์ ๊ธฐ๋ณธ์ ์ผ๋ก OpenGL ES๋ฅผ ์คํํ ์ ์๋ ANGLE์ด ์์ต๋๋ค. ๋ํ Skia์ ํจ๊ป ์คํ๋๋ Chrome ๋ฐ Flutter์ ํต์ฌ ๋ถ๋ถ์ ๋๋ค.
Microsoft๋ GUI ์ฑ์ฉ DirectX์ ์์ ๋ถ๋ถ(์์์ ์ผ๋ก ์ผ์ ์ ์์)์ ์ํํ๊ณ ANGLE์ฒ๋ผ ๋ค์ดํฐ๋ธ API๋ก ๋ณํํ ์ ์์ต๋๋ค.
"๋ค๋ฅธ Linux ๋ฐฐํฌํ ์ง์" ๋ฌธ์ ์ ๊ด๋ จํ์ฌ Linux ์ฌ์ฉ์๋ ์ข ์ข ๋นํธํ์ฑ์ ์ค์ค๋ก ํด๊ฒฐํ ๋งํผ ์ถฉ๋ถํ ์๋ จ๋์ด ์์ผ๋ฉฐ Docker๊ฐ ์๋ฒ์ฉ์ผ๋ก ํ๋ ๊ฒ์ฒ๋ผ ๋ฐ์คํฌํ์ฉ ํจํค์ง์ ํตํฉํ๋ Flatpak์ด ์์ต๋๋ค.
Lonje ์ฑํ https://www.lonje.com/message/1968439855/ ์์ ์ธ๊ธ๋จ
๋๋ ์ ๋ง๋ก WinUI๊ฐ ์ฌ์ฉ์ ์ ์ ํ
๋ง๋ฅผ ๊ณ์ ์ง์ํ๋ฉด์ Mac๊ณผ Linux์์ ๊ธฐ๋ณธ ํ
๋ง๋ ์ง์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
Mac ์ฌ์ฉ์์ ๋ํด์๋ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง Linux ์ปค๋ฎค๋ํฐ๋ ๋ฐ์คํฌํ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ์ ์ดํ๋ โโ๊ฒ์ ์ข์ํฉ๋๋ค.
๊ทธ๋ค์ ์ด๋ฏธ Gtk๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ WinUi ํ๋ ์์ํฌ์ ํฌํจ์ํค๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋๋ ์ ๋ง๋ก WinUI๊ฐ ์ฌ์ฉ์ ์ ์ ํ ๋ง๋ฅผ ๊ณ์ ์ง์ํ๋ฉด์ Mac๊ณผ Linux์์ ๊ธฐ๋ณธ ํ ๋ง๋ ์ง์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
Mac ์ฌ์ฉ์์ ๋ํด์๋ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง Linux ์ปค๋ฎค๋ํฐ๋ ๋ฐ์คํฌํ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ์ ์ดํ๋ โโ๊ฒ์ ์ข์ํฉ๋๋ค.
๊ทธ๋ค์ ์ด๋ฏธ Gtk๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ WinUi ํ๋ ์์ํฌ์ ํฌํจ์ํค๋ ๊ฒ์ด ์ข์ต๋๋ค.
WinUI๋ ์คํ์ผ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ํ์คํ ํ๊ธฐ ์ด๋ ค์ด ์์ ์ด๋ฉฐ ๊ธฐ๋ณธ XAML ํ๋ ์์ํฌ์์๋ ๊ธฐ๋ณธ ํ ๋ง๋ ์ ๊ณต๋๋ ๋์ ์ฌ์ฉ์๊ฐ ์ง์ ํ ๋ง๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
๋๋ ๊ณผ๊ฑฐ์ ์ปค๋ฎค๋ํฐ๊ฐ macOS ๋ฐ iOS์ฉ Metal Renderer๋ฅผ ๊ฐ๋ฐํ๊ณ Android์ฉ Skia ๋ ๋๋ฌ๋ฅผ ๊ฐ๋ฐํ ์ ์๋ ๋ฐฉ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํด์ผ ํ๋ค๊ณ ์ ์ํ ์ ์ด ์์ต๋๋ค.
๋ชจ๋ ํ๋ซํผ์์ ๋์ผํ ๊ธฐ๋ณธ ์คํ์ผ ๋ฐ ํ ํ๋ฆฟ์ ์ฌ์ฉํ๊ฑฐ๋ Android ๋ฐ macOS ์คํ์ผ์ ๊ธฐ๋ณธ ํ ํ๋ฆฟ ๋ฐ ๋ฆฌ์์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Google์ด Flutter๋ฅผ ๊ฐ๋ฐ ์ค์ด๋ฉฐ GoogleUI ๋๋ AndroidUI๋ผ๊ณ ๋ถ๋ฅด์ง ์๋๋ค๋ ์ ์ ์ธ๊ธํ๊ณ ์๊ธฐ์ํฌ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์น๊ณผ ๋ฐ์คํฌํ์ ํฌํจํ ๋ชจ๋ ๊ณณ์์ ์๋ํฉ๋๋ค. "๊ทธ๋ฅ Windows์์ ์๋ํ๋๋ก ํ๋" ๊ฒฝํฅ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ ์ ๋ ดํ๊ณ ๋ ๋น ๋ฅด๊ณ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ Windows์ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์์ ์๋ํ๋ ๋ค๋ฅธ ๊ฒฝ์ ์ ํ์ด ์กด์ฌํ๋ค๋ฉด... ๊ฐ๋ฐ์๋ ๋ฌด์์ ํ ๊ฒ์ ๋๊น? ๋ฐ ํด๋น ์์ฅ) ์ ํ? ๋๋ ์๊ธฐ์ ์์ ์๋ก์ ๋ ๊ฐ์ง ์ ํ์ด ์ฃผ์ด์ง๋ฉด ๋ด๊ฐ ์ด๋์ ํฌ์ํ๋์ง ์๊ณ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.