Skip to content

Latest commit

ย 

History

History
153 lines (113 loc) ยท 10.1 KB

README.ko.md

File metadata and controls

153 lines (113 loc) ยท 10.1 KB

๋ฆฌ๊ทธ ์˜ค๋ธŒ ๋ ˆ์ „๋“œ ํด๋ผ์ด์–ธํŠธ (WPF)

English ไธญๆ–‡ ํ•œ๊ตญ์–ด

WPF๋ฅผ ํ™œ์šฉํ•œ ๋ฆฌ๊ทธ ์˜ค๋ธŒ ๋ ˆ์ „๋“œ ํด๋ผ์ด์–ธํŠธ์˜ ๊ณ ํ’ˆ์งˆ ์žฌํ˜„ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” WPF์˜ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ  ๊ตฌํ˜„์— ๋Œ€ํ•œ ์‚ฌ๋ก€๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ๋ถ„์‚ฐํ™” ์„ค๊ณ„์— ๊ด€ํ•œ ํญ๋„“์€ ๊ธฐ์ˆ ์  ์ ‘๊ทผ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

License: MIT .NET Stars Forks Issues

๋ฆฌ๊ทธ์˜ค๋ธŒ๋ ˆ์ „๋“œ XAML-Based ์‹œ๋ฆฌ์ฆˆ:


๋ฆฌ๊ทธ ์˜ค๋ธŒ ๋ ˆ์ „๋“œ ํด๋ผ์ด์–ธํŠธ (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 ๋ชจ๋‘์—์„œ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„์— ํ•„์š”ํ•œ ๋ชจ๋“  ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ ๋ฐ ๊ตฌํ˜„ ์‚ฌํ•ญ

  1. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜
  • ๋ชจ๋“ˆํ™” ๋ฐ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ์„ค๊ณ„
  • ์˜์กด์„ฑ ์ฃผ์ž…์„ ํ†ตํ•œ ๋Š์Šจํ•œ ๊ฒฐํ•ฉ
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ธฐ๋ฐ˜ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ
  1. ๊ณ ๊ธ‰ WPF ๊ธฐ์ˆ 
  • ๋‹ค์–‘ํ•œ CustomControl ๊ตฌํ˜„
  • VisualStateManager๋ฅผ ํ™œ์šฉํ•œ ๋ณต์žกํ•œ ์ƒํƒœ ๊ด€๋ฆฌ
  • ๋ฐ์ดํ„ฐ ๊ฐ€์ƒํ™” ๋ฐ UI ๊ฐ€์ƒํ™” ๊ธฐ์ˆ 
  1. ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • ํšจ์œจ์ ์ธ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ
  • ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด ์ ์šฉ
  • ๋ Œ๋”๋ง ์ตœ์ ํ™” ๊ธฐ๋ฒ•
  1. UI/UX ๋””์ž์ธ
  • Geometry Path๋ฅผ ํ™œ์šฉํ•œ ๋ณต์žกํ•œ ๊ทธ๋ž˜ํ”ฝ ๊ตฌํ˜„
  • ์‚ฌ์šฉ์ž ์ •์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ ์ „ํ™˜ ํšจ๊ณผ
  • ๋™์  ํ…Œ๋งˆ ์‹œ์Šคํ…œ
  1. ํ”„๋ ˆ์ž„์›Œํฌ ์„ค๊ณ„
  • ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ†ต์‹  ์‹œ์Šคํ…œ
  • ์ƒํƒœ ๊ด€๋ฆฌ ํŒจํ„ด ๊ตฌํ˜„
  • ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋„ค๋น„๊ฒŒ์ด์…˜ ์‹œ์Šคํ…œ

์ด ํ”„๋กœ์ ํŠธ๋Š” 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 ํŒจํ‚ค์ง€

์„ค์น˜ ๋ฐ ์‹คํ–‰

1. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํด๋ก :

git clone https://github.com/jamesnet214/leagueoflegends.git

2. ์†”๋ฃจ์…˜ ์—ด๊ธฐ

  • Visual Studio
  • Visual Studio Code
  • JetBrains Rider

3. ๋นŒ๋“œ ๋ฐ ์‹คํ–‰

  • ์‹œ์ž‘ ํ”„๋กœ์ ํŠธ ์„ค์ •
  • F5๋ฅผ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ์‹คํ–‰ ๋ฒ„ํŠผ ํด๋ฆญ
  • Windows 11 ๊ถŒ์žฅ

ํ•™์Šต ๊ธฐํšŒ

์ด ํ”„๋กœ์ ํŠธ๋Š” WPF ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๊ท€์ค‘ํ•œ ํ†ต์ฐฐ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  1. ๋ณต์žกํ•œ UI ์žฌํ˜„: ์ •๊ตํ•œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๊ธฐ์ˆ  ํ•™์Šต
  2. ์ปค์Šคํ…€ ์ปจํŠธ๋กค ๊ฐœ๋ฐœ: WPF ์ปค์Šคํ…€ ์ปจํŠธ๋กค ๊ตฌ์ถ• ๊ณผ์ • ์ดํ•ด
  3. ์‹ค์ „ MVVM: ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ MVVM ํŒจํ„ด์˜ ์‹ค์ œ ๊ตฌํ˜„ ์‚ฌ๋ก€ ํ™•์ธ
  4. Geometry Path ์‚ฌ์šฉ: ์ •๊ตํ•œ UI ๋””์ž์ธ์„ ์œ„ํ•œ Geometry Path ์‚ฌ์šฉ ๋งˆ์Šคํ„ฐ
  5. ์„ฑ๋Šฅ ์ตœ์ ํ™”: ๋Œ€๊ทœ๋ชจ WPF ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ตœ์ ํ™” ์ „๋žต ํ•™์Šต

๊ธฐ์—ฌํ•˜๊ธฐ

๋ฆฌ๊ทธ ์˜ค๋ธŒ ๋ ˆ์ „๋“œ ํด๋ผ์ด์–ธํŠธ (WPF) ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ์ด์Šˆ๋ฅผ ์ œ์ถœํ•˜๊ฑฐ๋‚˜, ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๊ฐœ์„  ์‚ฌํ•ญ์„ ์ œ์•ˆํ•ด ์ฃผ์„ธ์š”.

๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LICENSE ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์—ฐ๋ฝ์ฒ˜

์ด ๋ฆฌ๊ทธ ์˜ค๋ธŒ ๋ ˆ์ „๋“œ ํด๋ผ์ด์–ธํŠธ ์žฌํ˜„์„ ํ†ตํ•ด ๋ณต์žกํ•œ ๊ฒŒ์ž„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์žฌํ˜„ํ•˜๋Š” WPF์˜ ํž˜์„ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”!