WPF๋ฅผ ํ์ฉํ ๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ์ ๊ณ ํ์ง ์ฌํ ํ๋ก์ ํธ์ ๋๋ค. ์ด ํ๋ก์ ํธ๋ WPF์ ๋ค์ํ ๊ธฐ์ ๊ตฌํ์ ๋ํ ์ฌ๋ก๋ค์ ํฌํจํ๊ณ ์์ผ๋ฉฐ, ๋๊ท๋ชจ ํ๋ก์ ํธ์ ๋ถ์ฐํ ์ค๊ณ์ ๊ดํ ํญ๋์ ๊ธฐ์ ์ ์ ๊ทผ์ ๋ณด์ฌ์ค๋๋ค.
๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ (WPF)
๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ (Uno-Platform)
๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ (WinUI 3)
์ ํฌ๋ 2008๋ ๋ถํฐ WPF ๊ธฐ์ ์ ์ฐ๊ตฌํ๊ณ ๊ฒฝํ์ ์์์์ต๋๋ค. ๊ทธ๋์ Xamarin, MAUI, Uno-Platform, AvaloniaUI, OpenSilver ๋ฑ ๋ค์ํ XAML ๊ธฐ๋ฐ์ ํฌ๋ก์ค ํ๋ซํผ ๊ธฐ์ ์ด ๋ฐ์ ํด ์๊ณ , ์ด๋ฅผ ํตํด WPF์์ ์ถ์ ํ ๊ธฐ์ ์ ํฌ๋ก์ค ํ๋ซํผ์ผ๋ก ํ์ฅํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ์ด๋ ธ์ต๋๋ค.
์ด๋ฒ์ ๊ณต๊ฐํ๋ ๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ WPF ๋ฒ์ ์ XAML ๊ธฐ๋ฐ์ ํ๋ถํ UX, C#์ ๊ฐ์ฒด์งํฅ์ ์ค๊ณ, ๊ทธ๋ฆฌ๊ณ ์ฒด๊ณ์ ์ธ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๋ฐํ์ผ๋ก ๋ง๋ค์ด์ก์ต๋๋ค. ์ด๋ WPF์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ต๋ํ ํ์ฉํ๋ฉด์๋, ํฅํ ๋ค๋ฅธ XAML ๊ธฐ๋ฐ ํ๋ซํผ์ผ๋ก์ ํ์ฅ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ ํ๋ก์ ํธ์ ๋๋ค.
์ด ํ๋ก์ ํธ๋ WPF์์ ๋๊ท๋ชจ ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๋ณต์กํ ์ปจํธ๋กค๋ค์ CustomControl๋ก ๊ตฌํํ์ฌ, ๊ฐ๋ฐ์๋ค์๊ฒ ํ๋ถํ ํ์ต ์๋ฃ๋ฅผ ์ ๊ณตํ๊ณ ์ ํฉ๋๋ค. ๋ํ, WPF์ ๋ค์ํ ๊ธฐ์ ๊ตฌํ ์ฌ๋ก๋ฅผ ํฌํจํ๊ณ ์์ด, WPF์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค์ ์ค์ ํ๋ก์ ํธ์์ ์ด๋ป๊ฒ ํ์ฉํ ์ ์๋์ง ๋ณด์ฌ์ค๋๋ค.
ํนํ ์ด ํ๋ก์ ํธ๋ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถ์ฐํ ์ค๊ณ์ ๋ํ ํญ๋์ ์ ๊ทผ ๋ฐฉ์์ ์ ์ํฉ๋๋ค. ๋ชจ๋ํ๋ ๊ตฌ์กฐ, ํจ์จ์ ์ธ ์ํ ๊ด๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ํคํ ์ฒ๋ฅผ ํตํด ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ป๊ฒ ๊ตฌ์กฐํํ๊ณ ๊ด๋ฆฌํ ์ ์๋์ง ๋ณด์ฌ์ค๋๋ค.
Jamesnet.Core ํ๋ ์์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ WPF์ Uno์์ ๋์ผํ๊ฒ ๋์ํ๋๋ก .NET Standard 2.0 ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ WPF์์๋ Jamesnet.Window๋ก, Uno-Platform์์๋ Jamesnet.Uno๋ก ์ ๊ณต๋ฉ๋๋ค.
์ด ํ๋ก์ ํธ์์๋ Jamesnet.Core์ Jamesnet.Window์ ์ค์ ์์ค ์ฝ๋๋ฅผ ์ง์ ์ฐธ์กฐํ๊ณ ์์ด, XAML ๊ธฐ๋ฐ ํ๋ ์์ํฌ์ ์ค๊ณ ๋ฐฉ์๋ ํจ๊ป ํ์ตํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด ํ๋ก์ ํธ๋ฅผ ํตํด WPF์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๋ณด์ด๋ ๋์์, ํฅํ Uno-Platform, MAUI, AvaloniaUI, OpenSilver, WinUI3 ๊ฐ์ ๋ค์ํ XAML ๊ธฐ๋ฐ ํ๋ซํผ์ผ๋ก์ ํ์ฅ ๊ฐ๋ฅ์ฑ์ ์ ์ํ๊ณ , ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ์ ์๋ก์ด ์งํ์ ์ด๊ณ ์ ํฉ๋๋ค.
๋ ํฌ์งํฐ๋ฆฌ ์์ ํ๋ ์์ํฌ ์์ค์ฝ๋๊ฐ ๋ชจ๋ ํฌํจ๋์ด ์์ต๋๋ค.
- Jamesnet.Core: .NET Standard 2.0 ๊ธฐ๋ฐ์ ํฌ๋ก์ค ํ๋ซํผ ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Jamesnet.Windoww: WPF์ ์ต์ ํ๋ ์๋์ฐ ๊ด๋ฆฌ ๋ฐ UI ํ๋ ์์ํฌ
์ด ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ WPF์ Uno-Platform ๋ชจ๋์์ ๋์ผํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์ํคํ ์ฒ ์ค๊ณ์ ํ์ํ ๋ชจ๋ ํต์ฌ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์์ต๋๋ค.
- ๋๊ท๋ชจ ํ๋ก์ ํธ ์ํคํ ์ฒ
- ๋ชจ๋ํ ๋ฐ ๋ถ์ฐ ์์คํ ์ค๊ณ
- ์์กด์ฑ ์ฃผ์ ์ ํตํ ๋์จํ ๊ฒฐํฉ
- ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ฐ ํ์ฅ ๊ฐ๋ฅํ ๊ตฌ์กฐ
- ๊ณ ๊ธ WPF ๊ธฐ์
- ๋ค์ํ CustomControl ๊ตฌํ
- VisualStateManager๋ฅผ ํ์ฉํ ๋ณต์กํ ์ํ ๊ด๋ฆฌ
- ๋ฐ์ดํฐ ๊ฐ์ํ ๋ฐ UI ๊ฐ์ํ ๊ธฐ์
- ์ฑ๋ฅ ์ต์ ํ
- ํจ์จ์ ์ธ ๋ฆฌ์์ค ๊ด๋ฆฌ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ
- ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ํจํด ์ ์ฉ
- ๋ ๋๋ง ์ต์ ํ ๊ธฐ๋ฒ
- UI/UX ๋์์ธ
- Geometry Path๋ฅผ ํ์ฉํ ๋ณต์กํ ๊ทธ๋ํฝ ๊ตฌํ
- ์ฌ์ฉ์ ์ ์ ์ ๋๋ฉ์ด์ ๋ฐ ์ ํ ํจ๊ณผ
- ๋์ ํ ๋ง ์์คํ
- ํ๋ ์์ํฌ ์ค๊ณ
- ์ด๋ฒคํธ ๊ธฐ๋ฐ ํต์ ์์คํ
- ์ํ ๊ด๋ฆฌ ํจํด ๊ตฌํ
- ํ์ฅ ๊ฐ๋ฅํ ๋ค๋น๊ฒ์ด์ ์์คํ
์ด ํ๋ก์ ํธ๋ WPF์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ต๋ํ ํ์ฉํ๋ฉด์, Jamesnet.Core์ Jamesnet.Window๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ณ ๊ธ ์ค๊ณ ํจํด๊ณผ ๊ธฐ์ ๋ค์ ํฌ๊ด์ ์ผ๋ก ๋ณด์ฌ์ค๋๋ค. ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ค์ํ ๊ธฐ์ ๊ณผ ํจํด๋ค์ด ์ค์ ์ ์ฉ๋ ์ฌ๋ก๋ฅผ ์ ๊ณตํ์ฌ, WPF ๊ฐ๋ฐ์๋ค์๊ฒ ํ๋ถํ ํ์ต ์๋ฃ๊ฐ ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ์ด ํ๋ก์ ํธ๊ฐ WPF ๊ฐ๋ฐ์๋ค์๊ฒ ์๊ฐ์ ์ฃผ๊ณ , ๋๊ท๋ชจ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋ชจ๋ฒ ์ฌ๋ก๋ก ํ์ฉ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ํ, ์ด ํ๋ก์ ํธ๋ฅผ ํตํด WPF์ Uno-Platform ๊ฐ์ ์ฝ๋ ๊ณต์ ์ ๋ต๊ณผ ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ์ ์๋ก์ด ๊ฐ๋ฅ์ฑ์ ํ๊ตฌํ ์ ์๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค.
ํฅํ MAUI, WinUI 3, AvaloniaUI, OpenSilver์ ๊ฐ์ ์๋ก์ด ํ๋ซํผ ๋ฒ์ ๋ ๊ณํ ์ค์ ๋๋ค.
- .NET 8.0
- WPF (Windows Presentation Foundation)
- Jamesnet.Core (.NET Standard 2.0)
- Jamesnet.Windows
- Jamesnet.Uno
- Visual Studio 2022 ์ด์
- .NET 8.0 SDK
- Jamesnet.Wpf NuGet ํจํค์ง
git clone https://github.com/jamesnet214/leagueoflegends.git
- Visual Studio
- Visual Studio Code
- JetBrains Rider
- ์์ ํ๋ก์ ํธ ์ค์
- F5๋ฅผ ๋๋ฅด๊ฑฐ๋ ์คํ ๋ฒํผ ํด๋ฆญ
- Windows 11 ๊ถ์ฅ
์ด ํ๋ก์ ํธ๋ WPF ๊ฐ๋ฐ์๋ค์๊ฒ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค:
- ๋ณต์กํ UI ์ฌํ: ์ ๊ตํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ฌํํ๋ ๊ธฐ์ ํ์ต
- ์ปค์คํ ์ปจํธ๋กค ๊ฐ๋ฐ: WPF ์ปค์คํ ์ปจํธ๋กค ๊ตฌ์ถ ๊ณผ์ ์ดํด
- ์ค์ MVVM: ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์์ MVVM ํจํด์ ์ค์ ๊ตฌํ ์ฌ๋ก ํ์ธ
- Geometry Path ์ฌ์ฉ: ์ ๊ตํ UI ๋์์ธ์ ์ํ Geometry Path ์ฌ์ฉ ๋ง์คํฐ
- ์ฑ๋ฅ ์ต์ ํ: ๋๊ท๋ชจ WPF ์ ํ๋ฆฌ์ผ์ด์ ์ต์ ํ ์ ๋ต ํ์ต
๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ (WPF) ํ๋ก์ ํธ์ ๋ํ ๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค! ์ด์๋ฅผ ์ ์ถํ๊ฑฐ๋, ํ ๋ฆฌํ์คํธ๋ฅผ ์์ฑํ๊ฑฐ๋, ๊ฐ์ ์ฌํญ์ ์ ์ํด ์ฃผ์ธ์.
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.
- ์น์ฌ์ดํธ: https://jamesnet.dev
- ์ด๋ฉ์ผ: [email protected], [email protected]
์ด ๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ ์ฌํ์ ํตํด ๋ณต์กํ ๊ฒ์ ์ธํฐํ์ด์ค๋ฅผ ์ฌํํ๋ WPF์ ํ์ ๊ฒฝํํด๋ณด์ธ์!