Microsoft-ui-xaml: ํ† ๋ก : WinRT์— ๊ฐ€์น˜๋ฅผ ๋”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ

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

ํ† ๋ก : WinRT์— ๊ฐ€์น˜๋ฅผ ๋”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ

๋‚ด๊ฐ€ ์™œ ์—ฌ๊ธฐ์— ๊ธ€์„ ์“ฐ๊ณ  ์žˆ์ง€? ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์‹ค์ œ๋กœ ๋“ค์–ด์ค„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š”(๊ทธ๋ฆฌ๊ณ  ํฌ๋งํ•˜๋Š”) ์œ ์ผํ•œ ์žฅ์†Œ์ด๊ธฐ ๋•Œ๋ฌธ์—...

๋‚˜๋Š” ๋‚˜๋ฅผ ์•„๋Š” ํ•œ(22.5๋…„) Windows ์•ฑ์„ ๊ฐœ๋ฐœํ•ด ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๋‚œ ๋ช‡ ๋‹ฌ ๋™์•ˆ WPF์—์„œ UWP๋กœ ์•ฑ์„ ํฌํŒ…ํ•˜๋Š” ๋™์•ˆ ๋‚˜๋Š” ๋Š์ž„์—†์ด ์ž์‹ ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜จํ™”ํ•˜๊ฒŒ ๋งํ•ด์„œ ๋ชจ๋“  ๊ฒƒ์„ ํฌ๊ธฐํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ธ์ •์ ์ธ ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • UWP ํŒ€๊ณผ WinUI ํŒ€์„ ์œ„ํ•ด - ์กด๊ฒฝํ•  ๋ฟ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋ž‘ํ•ด์š” ์—ฌ๋Ÿฌ๋ถ„!
  • ๋˜ ๋‹ค๋ฅธ ๋ฉ‹์ง„ ์ ์€ AppCenter๋กœ, ๊ทธ ์ด์ƒ์ž…๋‹ˆ๋‹ค!

WinRT ์ธก์˜ ๊ฒฝ์šฐ ๊ธ์ •์ ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์•„๋ฌด๊ฒƒ๋„ ์ƒ๊ฐ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ถ€์ •์ ์ธ ์ธก๋ฉด์—์„œ ๋‹ค์Œ์€ ์ฐจ๋‹จ๊ธฐ๋ฅผ ๋„˜์–ด์„  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฐจ๋‹จ๊ธฐ ๋ณด๋‹ค ๊ฐ•๋ ฅํ•œ ๋‹จ์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ ์ฟผ๋ฆฌ API๋Š” ๋Š๋ฆผ์„ ๋„˜์–ด

https://docs.microsoft.com/answers/questions/608/Please-either-allow-systemio-all-over-hdd-or-dast.html
์ด๊ฒƒ์€ ์ˆ˜๋…„ ๋™์•ˆ ์•Œ๋ ค์ ธ

broadSystemAccess API

https://docs.microsoft.com/answers/questions/6483/is-uwp-the-right-development-tool-for-my-project.html (ํ•ด๋‹น ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‚ด ๋‹ต๋ณ€ ์ฐธ์กฐ)
๋‚˜๋Š” "์ „์ฒด HDD ์•ก์„ธ์Šค๋ฅผ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค"(์–ด์จŒ๋“  ์–ด๋ฆฌ์„์€ ์ผ์ž…๋‹ˆ๋‹ค) ์ „์ฒด๋ฅผ ๋น„ํŒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋น„ํŒํ•  ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์€ ์–ด๋ฆฌ์„์€ ์ผ์ด๋‹ค.

  1. broadSystemAccess๋ฅผ ์š”์ฒญํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ํ•ด๋‹น ์•ก์„ธ์Šค ๊ถŒํ•œ ์ด ์—†์Šต๋‹ˆ๋‹ค .
  2. ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ(์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋จ, btw)์— ๋Œ€ํ•ด ์•ฑ์„ ํƒ„๋ ฅ์ ์œผ๋กœ ๋งŒ๋“ค๊ณ  "์•ก์„ธ์Šค ๊ฑฐ๋ถ€" ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ "ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฐœ์ธ ์ •๋ณด ์„ค์ •"์„ ์—ด๋„๋ก ์ง€์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ข€ ๋” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค).
  3. ์‚ฌ์šฉ์ž๋Š” ํ•ด๋‹น ์„ค์ • ์ฐฝ์—์„œ ์ข…๋ฃŒํ•˜๊ณ  ์•ฑ์„ ์ผœ๊ธฐ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค...
  4. .. ์ด ์‹œ์ ์—์„œ Windows๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.
  5. ์‚ฌ์šฉ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์š”์  4. ๋‹จ์ˆœํžˆ ์–ด๋ฆฌ์„์Œ์„ ๋„˜์–ด์„  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ˆ„๊ตฌ๋‚˜ ์ƒ๊ฐํ•ด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ตœ์•…์˜ UI ๋””์ž์ธ ํ๋ฆ„์ž…๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๊ฐ€ ์œ„์™€ ๊ฐ™์ด ๋งŒ์กฑํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ์•„๋‹ˆ์š”. ์‹ค์ œ๋กœ๋Š” 79.8%๊ฐ€ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋‚ด AppCenter ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฅผ ๋’ท๋ฐ›์นจํ•จ). ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด ์•ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‚ด ์•ฑ์ด ๋‹ค๋ฅธ ๊ธฐ๋ณธ ์•ฑ์— ๋น„ํ•ด ํ•˜์œ„ ์ˆ˜์ค€์œผ๋กœ ๋ณด์ด๋„๋ก ๋‘ก๋‹ˆ๋‹ค.

MS ์Šคํ† ์–ด ์™ธ๋ถ€์—์„œ ์‚ฌ์ด๋“œ๋กœ๋”ฉ์„ ์œ„ํ•œ ์•ฑ ๋งŒ๋“ค๊ธฐ

https://docs.microsoft.com/answers/questions/4027/uwp-cant-install-signed-application-non-ms-storeco.html
์ด๊ฒƒ์€ ๋ฏธ์นœ ์ง“์„ ๋„˜์–ด์„  ๊ฒƒ์ž…๋‹ˆ๋‹ค. MS์˜ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ๋žŒ๋“ค์ด MS ์Šคํ† ์–ด ์™ธ๋ถ€์— ๋ฐฐํฌํ•  ์•ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  MS ์Šคํ† ์–ด๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์€ ๋‹ค๋ฆฌ์— ์ˆ˜๊ฐ‘์„ ์ฐจ๊ณ  ์ž์ „๊ฑฐ๋ฅผ ํƒ€๊ณ  ๋‹ฌ๋ฆฌ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. MS ์Šคํ† ์–ด ์™ธ๋ถ€์—์„œ ์‚ฌ์ด๋“œ๋กœ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊นŒ์šด ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

.appinstaller ํŒŒ์ผ, ๋งˆ์นจ๋‚ด ์†”๋ฃจ์…˜์„ ์ฐพ๊ณ  ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "๋ฐฐํฌ" ํ”„๋กœ์„ธ์Šค์˜ ์ผ๋ถ€์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. Visual Studio์—์„œ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์„œํ™”ํ•˜์‹ญ์‹œ์˜ค. github ์–ด๋”˜๊ฐ€์— ์ œ๊ฐ€ ์ฐพ๋Š” ๋ฐ ๊ฝค ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•œ ์ž‘์€ ๋ฌธ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฌธ์„œ์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค!

๋˜ํ•œ .appinstaller ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์šด ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐœ๊ฒฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์„œ๋ฒ„์— ์˜ฌ๋ ค ๋†“๊ณ  ๊ฑฐ๊ธฐ์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ ๋‹ค์Œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ์ˆ˜์ •ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์–ด๋””์—๋„ ์“ฐ์—ฌ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ (์ •๋ง๋กœ) ์–ด๋ ค์šด ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ–ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

"์ƒˆ ์ธ์ฆ์„œ" ๋ฌธ์ œ

https://docs.microsoft.com/answers/questions/6112/updating-existing-app-with-new-certificate-uwp.html
์ด๊ฒƒ์ด ๋‚˜๋ฅผ ์Šค๋ƒ…ํ•˜๊ฒŒ ๋งŒ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์ƒ๊ฐ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด ๋‚ด๊ฐ€ ๊ฐ™์€ ํšŒ์‚ฌ์— ๋Œ€ํ•œ ์ƒˆ ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UWP ์•ฑ์„ ๋ฐฐํฌํ•  ๋•Œ Windows์—์„œ ๋‹ค๋ฅธ ์•ฑ์œผ๋กœ ๋ณผ ๊ฒƒ์ด๋ผ๊ณ  ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๋‚ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ป๊ฒŒ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์˜ค, ๋‹น์‹ ์€ ๋ฐฉ๊ธˆ ๋‚ด ์•ฑ์„ ์—…๋ฐ์ดํŠธํ–ˆ๊ณ  ๋ชจ๋“  ์„ค์ •์„ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๋˜๋Š” ๋” ๋‚˜์œ ๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ™์€ ์ด๋ฆ„, ๊ฐ™์€ ์•„์ด์ฝ˜์„ ๊ฐ€์ง„ ๋‘ ๊ฐœ์˜ ์•ฑ์„ ๋ณด๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ ์ˆ˜๋งŽ์€ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ(์˜ˆ: ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ๋ฏธ์นœ ๋“ฏ์ด ๋Š๋ฆฝ๋‹ˆ๋‹ค!), ์œ„์˜ ๊ฒƒ๊ณผ ๋น„๊ตํ•  ๋•Œ ๋‹จ์ˆœํžˆ ์ฐฝ๋ฐฑํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด์— ๋Œ€ํ•ด ์•„๋ฌด๋Ÿฐ ๋ง๋„ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์ด ๋งค์šฐ ์•ˆํƒ€๊น์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ๊ณณ์œผ๋กœ ์ฒœ์ฒœํžˆ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค... ์Šฌํ”„๊ฒŒ๋„ ๋” ์ด์ƒ MS๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค...

๊ทธ๋ฆฌ๊ณ  ๋ณด๋„ˆ์Šค:

์ƒํ˜ธ ์šด์šฉ์„ฑ: ์ œ๋กœ

WinRT์˜ ์ œํ•œ ์‚ฌํ•ญ์€ ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜๊ณ  ์–ด๋ฆฌ์„์–ด์„œ ์ œ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ๋„ ํƒ€๊ฒŸํŒ…ํ•  ๋•Œ์—๋„ ์˜๋ฏธ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์€ ๋งํ•  ๊ฒƒ๋„ ์—†๊ณ  -- ์ œํ•œ ์‚ฌํ•ญ์„ ์ค‘๋‹จํ•˜์‹ญ์‹œ์˜ค.

์ €๋Š” ์‹ค์ œ๋กœ UWP ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ  ์‹œ๋„ํ•œ ๊ทน์†Œ์ˆ˜์˜ ์‚ฌ๋žŒ ์ค‘ ํ•œ ๋ช…์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ์ •๋ง ๋นจ๋ฆฌ ํฌ๊ธฐํ•˜์ง€๋งŒ win2d๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿฐ ์‚ฌ์น˜๋ฅผ ๋ˆ„๋ฆฌ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

discussion

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

๋จผ์ € ๋‹ค๋ฃจ์ง€ ์•Š์„ ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์„ ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

โ€ข ์Šค๋ ˆ๋“œ ํ•˜๋‹จ ๋ถ€๊ทผ์—์„œ Windowing, ์ฐฝ ์œ„์น˜ ๋“ฑ์— ๋Œ€ํ•ด ๋งŽ์€ ํ† ๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์•„๋งˆ๋„ ์—ฌ์ „ํžˆ WinUI์˜ ์ฃผ์ œ์—์„œ ์กฐ๊ธˆ ๋ฒ—์–ด๋‚˜ ์žˆ์ง€๋งŒ ์ง‘์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. WinUI ์‚ฌ๋žŒ๋“ค์ด ์ฐฝ ์œ„์น˜, ์ „์ฒด ํ™”๋ฉด ๋“ฑ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ๋ฆฌ๋””๋ ‰์…˜์„ ๋•๋„๋ก ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. @StephenLPeters , ์ด๊ฒƒ์„ ๋„์™€์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

โ€ข ๋‚˜๋Š” VS ํ”ผ๋“œ๋ฐฑ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. VS ํ’ˆ์งˆ ๋ฐ ์„ฑ๋Šฅ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑด๊ฐ•ํ•œ ํฌ๋Ÿผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Visual Studio์—์„œ Windows ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ์ข€ ๋” ๋ณต์žกํ•ด์ง€๊ณ  ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ์กŒ๋‹ค๋Š” ๋…ผ์˜์— ์ฃผ๋ชฉํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๋‘˜์งธ, @verelpode : ์ €๋ฅผ ์›ƒ๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ด๊ฒƒ์— ๋งค๋‹ฌ๋ฆฌ๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ?
"์ง์ ‘์ ์ธ ์ง„์‹ค์€ ๋‹ค๋ฃจ์ง€ ๋ชปํ•˜์‹ค ๊ฒƒ ๊ฐ™์•„์„œ ๋‘ํˆผํ•œ ์†œ์žฅ๊ฐ‘์„ ๋ผ๊ณ  ๋ฝ๋ฝ์ด๋กœ ์‹ธ์„œ ๋ณด๋‚ด๋“œ๋ฆฝ๋‹ˆ๋‹ค"

์ž, ์ด์ œ ์‹ค์ œ ์ฃผ์ œ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

WinRT vs. UWP vs. .NET โ€“ ์•ฝ๊ฐ„์˜ ๋ฐฐ๊ฒฝ ์ง€์‹

Windows ๋Ÿฐํƒ€์ž„์€ ์‹ค์ œ๋กœ ๋‘ ๊ฐ€์ง€๊ฐ€ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉ๋˜๊ณ  ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ์••์ถ•๋˜์–ด ์‹ค์ œ๋กœ ์˜คํ•ด๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Windows ๋Ÿฐํƒ€์ž„ ์œ ํ˜• ์‹œ์Šคํ…œ์€ ์‹ค์ œ๋กœ ์–ด๋–ค ์˜๋ฏธ์—์„œ๋Š” COM V2์ž…๋‹ˆ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ ํŠธ๋ฆฌ๊ฑฐ์—์„œ Win32 ํ˜ธ์ถœ, COM API ํ˜ธ์ถœ์— ์ด๋ฅด๋Š” ์ง„ํ–‰์˜ ์˜์  ๋‹ค์Œ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์œ ํ˜• ์‹œ์Šคํ…œ์€ COM์—์„œ ์–ด๋–ค ๋ฉด์—์„œ ํ‘œํ˜„๋ ฅ์ด ์•ฝ๊ฐ„ ๋–จ์–ด์ง€์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ƒ๋‹นํ•œ ์ƒ์œ„ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์›๋ž˜ ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. VS๊ฐ€ .NET ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋ฉ‹์ง„ ๋ž˜ํผ๋ฅผ ๋งŒ๋“ค ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ํ•„์š” ์—†์ด .NET ๋˜๋Š” ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ WinRT API๋ฅผ ๋” ์‰ฝ๊ฒŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

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

UWP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋ธ์€ ๋‘ ๋ฐœ๋กœ winrt์— ๋›ฐ์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, OS API๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ž‘์„ฑํ•˜๋ฉด JS ๊ธฐ๋ฐ˜ ์•ฑ, .NET ์•ฑ ๋ฐ ๊ธฐ๋ณธ ์•ฑ์—์„œ ์‰ฝ๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ž์ฒด๊ฐ€ ์„ ํ•จ์ด์—ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  Win32 API๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์•„์ง ๋ฌธ์„œ ์ž‘์—…์ด ๋ช‡ ๊ฐ€์ง€ ๋‚จ์•„ ์žˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์Šคํ† ์–ด ์•ฑ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ›จ์”ฌ ๋” ๊ณ ์ „์ ์ธ Win32 API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ, ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ์žฅ์น˜์— ๋Œ€ํ•œ ์†Œ๊ทœ๋ชจ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜์œผ๋กœ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ์•ฑ ํ”Œ๋žซํผ์„ ๋งŒ๋“ค์—ˆ์œผ๋ฉฐ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฐ ์•Œ์•„. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ์”ฉ ์ˆ˜์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋„ ๋งŽ์€ ๊ฒƒ์„ ์–ป์—ˆ๊ณ , ๋‘ ์„ธ๊ณ„์˜ ์ตœ์„ ์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ–ฅํ•ด ์ฒœ์ฒœํžˆ ๊ทธ๋Ÿฌ๋‚˜ ๊พธ์ค€ํžˆ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ์–ธ์  ์„ค์น˜ ์‹œ์Šคํ…œ์€ ๋Œ€๋ถ€๋ถ„์˜ ๋ฉด์—์„œ ํ›Œ๋ฅญํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

UWP ์•ฑ๊ณผ ๋ฐ์Šคํฌํ†ฑ ์•ฑ ๊ฐ„์˜ ์ฝ”๋“œ ์ด์‹์„ฑ๋„ ์ด ์Šค๋ ˆ๋“œ์—์„œ ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. UWP ๋ชจ๋ธ์ด ๋„ˆ๋ฌด ๋‹ค์–‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ณ ์ถฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ "์ฃผ์š” ํœด์‹"์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์šฐ๋ฆฌ๋Š” CRT DLL์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์™„ํ™”์ฑ…์ธ VC ํฌ์›Œ๋” ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์„ฑํ–ˆ์ง€๋งŒ ์‹ค์ œ ์ˆ˜์ •์€ ๊ฒฐ๊ตญ ํŒŒ์ผ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ์™€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ณธ์งˆ์ ์œผ๋กœ ํ•„์š”ํ•œ CRT์˜ ํ–ฅํ›„ ๋ฒ„์ „์—์„œ ๊ตฌ๋ถ„์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐฉํ•ด๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜๋„์ ์œผ๋กœ ์ด ์ž‘์—…์„ ๋“œ๋ฌผ๊ฒŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

WinRT ์ž์ฒด๋Š” ํˆด๋ง ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ์ ์  ๋” ๋งŽ์ด ์˜ฎ๊ธฐ๊ณ  ์žˆ์œผ๋ฉฐ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ์ง€๋Š” ์•Š์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ WinRT๋Š” ๋ฐ์Šคํฌํ†ฑ ์•ฑ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. XAML์€ ํฐ ๊ฒฉ์ฐจ์˜€์Šต๋‹ˆ๋‹ค. XAML Islands๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๋‹จ๊ณ„์˜€์ง€๋งŒ ์ €๋Š” WinUI๊ฐ€ ํ›จ์”ฌ ๋” ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

ํŠน์ • API์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ

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

์ตœ์‹  ์•ฑ์„ ์œ„ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ API๋Š” ๊ณ ํ†ต์Šค๋Ÿฝ๊ณ  ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

https://docs.microsoft.com/answers/questions/608/Please-either-allow-systemio-all-over-hdd-or-dast.html
์šฐ๋ฆฌ๋Š” ๊ณ ๊ฐ๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ์šฐ๋ฆฌ ํŒ€ ๋ชจ๋‘๋กœ๋ถ€ํ„ฐ ์ด ํ”ผ๋“œ๋ฐฑ์„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„์— ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋” ๋งŽ์•˜์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ๋ถˆํ–‰ํžˆ๋„ "์šฐ๋ฆฌ๋Š” ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BroadSystemAccess API/๊ธฐ๋Šฅ์€ ๊ตฌํ˜„๋œ ๋Œ€๋กœ ์‹ค์šฉ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

https://docs.microsoft.com/answers/questions/6483/is-uwp-the-right-development-tool-for-my-project.html
ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ ํ•ญ๋ชฉ์„ ์ œ์ถœํ•˜๊ณ  ๋งํฌ๋ฅผ ๋ณด๋‚ด์ฃผ์„ธ์š”. ๊ฐœ์ธ์ ์œผ๋กœ ํ™๋ณดํ•ด์„œ ์ œ๋Œ€๋กœ ๋œ ์ฃผ์ธ์—๊ฒŒ ๊ฑด๋„ค๊ฒ ์Šต๋‹ˆ๋‹ค. 80% ๊ฐ์†Œ์œจ์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ๋„ ์ ์‹ ํ˜ธ๋ผ๋Š” ์ ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. IF, ํŒŒ์ผ API๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๋ฉด ํ–ฅํ›„ ์•ก์„ธ์Šค ๋ชฉ๋ก์ด ์ตœ์†Œํ•œ์˜ ๊ณ ํ†ต์„ ์™„ํ™”ํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ ์ง€๊ธˆ์ฒ˜๋Ÿผ '๋งค๋„๋Ÿฝ์ง€' ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋•Œ, ๋‹น์‹ ์€ ๋ฐ”์œ„์™€ ์–ด๋ ค์šด ์žฅ์†Œ ์‚ฌ์ด์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์ง€๊ธˆ ํ•˜๊ณ  ์žˆ๋Š” ๋ฐฉ์‹์ด ๋งˆ๋ฒ•์ฒ˜๋Ÿผ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ, ๊ทธ๋“ค์˜ ๋ฉ”์ผ ํด๋”, ๊ทธ๋“ค์˜ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ๋“ฑ. ๋‹น์‹ ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‹น์‹ ์˜ ์•ฑ์€ ์‚ฌ์šฉ์ž๋“ค์ด ๊ทธ๋“ค์˜ ์„ธ๊ณ„๋ฅผ ๋„˜๊ฒจ์ฃผ๊ธฐ ์ „์— ์ž ์‹œ ๋ฉˆ์ถ”๊ณ  ๊ทธ๋“ค์ด ๋‹น์‹ ์„ ์–ผ๋งˆ๋‚˜ ์‹ ๋ขฐํ•˜๋Š”์ง€ ์ƒ๊ฐํ•˜๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ฑ์„ ๋‹ซ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ์•„์ด๋””์–ด๊ฐ€ ์–ด์ƒ‰ํ•œ ๋‹จ๊ณ„๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ ์–ด๋„ ์ฒซ ์ถœ์‹œ์—์„œ ๋ถ„๋ฅ˜๋˜์–ด์•ผ ํ•˜๋Š” ์œ ํ˜•์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ•ญ๋ชฉ์€ ๋ณ„๋„๋กœ ์ œ์ถœํ•ด ์ฃผ์„ธ์š”. ๊ฐ™์€ ์ œ์•ˆ. ํ™๋ณด ๋ฐ ์ „๋‹ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ–ฅํ›„ ์•ก์„ธ์Šค ๋ชฉ๋ก์ด ํ•˜์œ„ ํด๋”์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๋ จํ•˜์—ฌ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋ฌธ์„œ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/MicrosoftDocs/windows-uwp/issues/2322. ๋ฌธ์„œ ํŽ˜์ด์ง€๊ฐ€ github์— ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์„œ์— ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ฑฐ๋‚˜ ๋‚ด์šฉ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์„ ์ œ์•ˆํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ์„ ์•ฑ์œผ๋กœ ๋“œ๋ž˜๊ทธํ•˜๋ฉด ์“ฐ๊ธฐ ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ๋Œ€ํ•œ ๋™์ผํ•œ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค. ์ œ์ถœํ•ด ์ฃผ์‹œ๋ฉด ๊ทธ์— ๋”ฐ๋ผ ์•ˆ๋‚ดํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

MS ์Šคํ† ์–ด ์™ธ๋ถ€์—์„œ ์‚ฌ์ด๋“œ๋กœ๋”ฉ์„ ์œ„ํ•œ ์•ฑ ๋งŒ๋“ค๊ธฐ

์—ฌ๊ธฐ์„œ ์–ป์€ ๊ฒฐ๋ก ์€ ๋ฌธ์ œ์˜ ๋Œ€๋ถ€๋ถ„์ด ๋ฌธ์„œ ๋ฌธ์ œ์ด์ง€๋งŒ ๋˜ ๋‹ค๋ฅธ ์ฃผ์š” ์ธก๋ฉด์„ ๋‹ค๋ฃฌ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋„๊ตฌ๊ฐ€ github ํ”„๋กœ์ ํŠธ ๋ฐ ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ด๋™ํ•จ์— ๋”ฐ๋ผ ์„ค๋ช…์„œ๋„ ํ•จ๊ป˜ ์ด๋™ํ–ˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด Windows ์„ค๋ช…์„œ๋ฅผ ๋ชจ๋“  ๊ฒƒ์„ ์›์Šคํ†ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ๋” ์–ด๋ ค์›Œ์กŒ์Šต๋‹ˆ๋‹ค. .appinstaller ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ํŠน์ • ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋‚ด๋ถ€์ ์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ณ  ๋” ๋‚˜์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ฝ˜ํ…์ธ  ํŒ€๊ณผ ๋ณด๋‹ค ์ผ๋ฐ˜์ ์œผ๋กœ ๋…ผ์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋””๋ฒ„๊ทธ๋ฅผ ์œ„ํ•ด ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…ํ•ด์•ผ ํ•˜๋Š” ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด github ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋กœ ์ œ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ ๊ทœ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ์‚ฌ์„ค์œ ํ†ต

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

WinRT ์œ ํ˜• ์‹œ์Šคํ…œ์€ ํ›Œ๋ฅญํ•œ API ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋Šฅ๋ ฅ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

ํ˜•์‹ ์ด๋ฆ„์— ์˜ค๋ฒ„๋กœ๋“œํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์€ ์˜๋„์ ์œผ๋กœ ์„ค๊ณ„๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. javscript(Node / V8์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ํฅ๋ฏธ๋กญ์ง€ ์•Š์„๊นŒ์š”?) ์•ฑ์ด WinRT API์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค์‹œ ์ƒ๊ฐํ•  ๋•Œ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๋‹ค์‹œ ์‚ดํŽด๋ณผ ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์†์„ฑ ๋ฐ NaN์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ์ข‹์€ ๋…ผ์˜๊ฐ€ ์žˆ๋Š” ๋ณ„๋„์˜ ๋ฌธ์ œ์— ์žˆ์œผ๋ฏ€๋กœ ์ด ๋‹ต๋ณ€์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃจ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋„ค, +1ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์ œ์ถœํ•˜์„ธ์š”. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ๋Œ€ํ•œ ์•ฑ ์•„๋ž˜ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ๋ฒ”์ฃผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋ฉ”ํƒ€์ž…๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ API๋Š” ์—ฌ์ „ํžˆ ์†์— ์žกํžˆ์ง€ ์•Š๊ณ  ๋น„๋™๊ธฐ๊ฐ€ ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ์–ด์ƒ‰ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

๋„ค. ์ด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ๋„ ๋…ผ๋ž€์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋‹ค. ์œ ๋ชจ์™€ ์ข‹์€ ํ–‰๋™์„ ์žฅ๋ คํ•˜๋Š” ๊ฒƒ ์‚ฌ์ด์—๋Š” ์•„์ง ์ž˜ ๋งž์ง€ ์•Š์€ ๊ท ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋™๊ธฐ์‹์œผ๋กœ ๋ณด๊ณ  ์‹ถ์€ ํŠน์ • API์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๊ณ„์† ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค.

WinRT์—๋Š” ์ข‹์€ ์˜ค๋””์˜ค API๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ €๋Š” ์˜ค๋””์˜ค ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ์ž์œ ๋กญ๊ฒŒ ํŒŒ์ผ์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ๊ตฌ๋ช…์ค„์— ์ „ํ™”๋ฅผ ๊ฑธ์–ด ๋ช‡ ๊ฐ€์ง€ ๋ฌผ์–ด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํด๋ฆฝ๋ณด๋“œ ๊ณ ํ†ต

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

์ฆ‰, ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์•Œ๋ฆผ์€ ํด๋ฆฝ๋ณด๋“œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Windows์™€ ์ „๊ฒฝ์ด ๊ณ„์‚ฐ๋˜๋Š” ๋ฐฉ์‹ ๋•Œ๋ฌธ์— ํŠน๋ณ„ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ํ•ฉ๋ฆฌ์ ์ด์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. API ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ์ œ์ถœํ•ด ์ฃผ์‹œ๋ฉด ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๋ฒ„๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋„ ํ™๋ณดํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ

๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋ฅผ ์ถ”์ ํ•˜๊ณ  ์œ„์˜ ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๋ฉด ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ํ›„์† ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ๋งŽ์€ ๊ฒƒ์„ ์†์— ๋„ฃ์€ WinUI ํŒ€์— ๋Œ€ํ•œ ์กด๊ฒฝ์˜ ํ‘œ์‹œ๋กœ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  ์ด ์Šค๋ ˆ๋“œ์—์„œ ์ œ๊ธฐ๋œ WinUI ๋ฐ Windowing ์ธก๋ฉด์—๋งŒ ์ง‘์ค‘ํ•˜์‹ญ์‹œ์˜ค. ์ด ๋ฌธ์ œ๋Š” ๋„ˆ๋ฌด ๊ธธ๊ณ  ๊ตฌ๋ถˆ๊ตฌ๋ถˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„ ๋ชจ๋‘๊ฐ€ ํ”ผ๋“œ๋ฐฑ์„ ์ œ์ถœํ•˜๊ณ  ๋งํฌ๊ฐ€ ํฌํ•จ๋œ ์˜๊ฒฌ์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋ฉฐ์น  ๋™์•ˆ ์—ด์–ด ๋‘” ๋‹ค์Œ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋‹ซ๊ฒ ์Šต๋‹ˆ๋‹ค.

WinRT ์œ ํ˜• ์‹œ์Šคํ…œ ํ† ๋ก ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด xlang ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํŠน์ • Windows API ๋™์ž‘์˜ ๊ฒฝ์šฐ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๊ฐ€ ๋” ๋‚˜์€ ์„ ํƒ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๋Œ“๊ธ€ ์‹œ์Šคํ…œ๋„ ์žˆ์œผ๋ฏ€๋กœ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋งŽ์€ ์ฃผ์ œ์— ๋Œ€ํ•œ ํ›Œ๋ฅญํ•œ ํ† ๋ก ๊ณผ ์ž์„ธํ•œ ํ”ผ๋“œ๋ฐฑ์— ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋ฒค ์ฟค
๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ

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

๋ช‡ ๋…„ ์ „ ์ฒ˜์Œ WPF ์•ฑ์„ ํฌํŒ…ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ๋‚˜๋Š” ๋‹น์‹ ์˜ ์ขŒ์ ˆ ์ˆ˜์ค€์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ํ™•์‹คํžˆ ๋‹น์‹ ์˜ ๋งˆ์Œ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ดํ›„๋กœ ์•ฝ๊ฐ„์˜ ์ง„์ „์ด ์žˆ์—ˆ๊ณ  ๋‹น์‹ ์ด ๋งํ–ˆ๋“ฏ์ด WinUI ํŒ€์€ ์ •๋ง๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

WinRT๋Š” Sinofsky์˜ Windows ํŒ€์—์„œ๋„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ทธ๋“ค์€ ์ž์‹ ์˜ ์„ธ๊ณ„์— ์‚ด์•˜๊ณ  ๊ธฐ์กด ์ตœ์ข… ์‚ฌ์šฉ์ž ๊ฐœ๋ฐœ์ž ์—์ฝ”์‹œ์Šคํ…œ๊ณผ ํ•จ๊ป˜ ์ž‘์—…ํ•œ ๊ฒฝํ—˜์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐœ๋ฐœ์ž์™€ ๊ด€๋ฆฌ ๊ฐœ๋ฐœ์ž ๋ชจ๋‘๊ฐ€ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š” '์ตœ์†Œ ๊ณตํ†ต ๋ถ„๋ชจ' API๋ฅผ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ทผ๋ณธ์ ์œผ๋กœ Windows Phone์ด ์ฃฝ์€ ์ฃผ์š” ์›์ธ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์•ฑ์„ ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœ/ํฌํŒ…ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์•ฑ์ด ์—†์œผ๋ฉด ๊ณ ๊ฐ๋„ ์—†์Šต๋‹ˆ๋‹ค. Microsoft๋Š” ์ด ๊ตํ›ˆ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ˆ˜๋…„ ๋™์•ˆ ์ต์ˆ™ํ•ด์ ธ ์˜จ ๊ด€๋ฆฌ ์ฝ”๋“œ์˜ ๋ช‡ ๊ฐ€์ง€ ํŠน์ „์„ ์žƒ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ์—ฌ์ „ํžˆ WPF์—์„œ ํ•œ ๊ฑธ์Œ ๋’ค๋กœ ๋ฌผ๋Ÿฌ๋‚œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์ €๋Š” ํ•ญ์ƒ ๋ฒ„๊ทธ์™€ ๋ถˆ์™„์ „ํ•œ ๊ธฐ๋Šฅ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. #1830์€ WPF ์‹œ๋Œ€์—๋Š” ์ ˆ๋Œ€ ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ์–ด๋–ป๊ฒŒ๋“  ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

WinUI 3.0์€ ์ ์–ด๋„ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” Microsoft๊ฐ€ ์ƒˆ๋กœ์šด ์ปจํŠธ๋กค์„ ์ถœ์‹œํ•˜๊ธฐ ์ „์— ๋” ๊ฐ•๋ ฅํ•œ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์™€ ๋” ๋งŽ์€ ํ…Œ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค... ๊ฐœ๋ฐœ์ด ์ด์ œ ํ‘ธ์‹œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๋‚˜์ค‘์— ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์—์„œ๋Š” ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋‹จ ์„ค์ •๋˜๋ฉด ๋‚˜์ค‘์— ๋ณ€๊ฒฝํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ค์šด ํ”Œ๋žซํผ์—๋Š” ์ข‹์€ ํŒจํ„ด์ด ์•„๋‹™๋‹ˆ๋‹ค. (TreeView, NumberBox ๋“ฑ์€ 15๋…„ ์ „์˜ ๊ณ„ํš ๋‹จ๊ณ„๋Š” ๊ณ ์‚ฌํ•˜๊ณ  ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค์— ๋„ˆ๋ฌด ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.)

ํ•œ๋•Œ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ UI ํ”Œ๋žซํผ์ด์—ˆ๋˜ WPF๊ฐ€ ์ด๊ฒƒ์œผ๋กœ ์ง„ํ™”ํ•˜๋Š” ๊ฒƒ์„ ๋ณด๋‹ˆ ์•ˆํƒ€๊น์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Microsoft๋Š” ์ด์ œ ๋Š๋ฆฌ์ง€๋งŒ ํ™•์‹คํ•˜๊ฒŒ ํ”ผ๋“œ๋ฐฑ์„ ๋“ฃ๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด์•ผ ํ•  ์ผ์ด ๋” ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์œ„์™€ ๊ฐ™์ด ๋งŒ์กฑํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ์•„๋‹ˆ์š”. ์‹ค์ œ๋กœ๋Š” 79.8%๊ฐ€ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋‚ด AppCenter ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฅผ ๋’ท๋ฐ›์นจํ•จ). ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด ์•ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‚ด ์•ฑ์ด ๋‹ค๋ฅธ ๊ธฐ๋ณธ ์•ฑ์— ๋น„ํ•ด ํ•˜์œ„ ์ˆ˜์ค€์œผ๋กœ ๋ณด์ด๋„๋ก ๋‘ก๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ๋‹น์‹ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ œ๋กœ ๋ฉˆ์ถฐ์„œ "์ž ๊น๋งŒ, ์ด ์•ฑ์— ๋‚ด ์ „์ฒด ๋“œ๋ผ์ด๋ธŒ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?"๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ฑ/๊ฐœ๋ฐœ์ž/ํšŒ์‚ฌ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ๋นจ๊ฐ„๋ถˆ ๊ฒฝ๊ณ ์ž…๋‹ˆ๋‹ค.

๋‚ฎ์€ ์œ ์ง€์œจ์„ ์œ„ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ „์ฒด ๋“œ๋ผ์ด๋ธŒ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์•ฑ์— ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ํƒ“ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ฒ˜์Œ๋ถ€ํ„ฐ broadFileSystemAccess์— ๋Œ€ํ•œ "ํ•„์š”์„ฑ"์„ ์žฌ๊ณ ํ•ด์•ผ ํ•˜๋ฉฐ, ์˜คํžˆ๋ ค ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ํด๋”๋ฅผ ํŽธ์•ˆํ•˜๊ฒŒ ์„ ํƒํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ, ์•ฑ์„ ์‚ฌ์šฉํ•ด ๋ณด๊ณ  ์„ค์น˜ ํ›„ "์–ด์ด, ์–ด๋””์„œ๋‚˜ ๋ชจ๋“  ๊ฒƒ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์ฃผ์„ธ์š”"์™€ ๊ฐ™์•˜์œผ๋ฉด ๋‚˜๋„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

broadSystemAccess๋ฅผ ์š”์ฒญํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ํ•ด๋‹น ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ... ๋‹น์‹ ์€ ๋‹จ์ง€ ์š”์ฒญ์„ ํ–ˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์‚ฌ์šฉ์ž๋Š” ์‹ค์ œ๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํŽธ์•ˆํ•˜๋‹ค๊ณ  ๋Š๋ผ๋ฉด ๋‹น์‹ ์—๊ฒŒ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ Microsoft Open Source Code of Conduct ๋ฅผ ์œ„๋ฐ˜ํ•˜๋Š” ๋ฌด๋ก€ํ•œ ์ œ๋ชฉ๊ณผ WinUI์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ๊ทผ๊ฑฐ๋กœ ์ด ๋ฌธ์ œ๋Š” ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. @jevansaks @jesbis

๋งˆ์ง€๋ง‰์œผ๋กœ ์ถ”๊ฐ€ํ•  ์‚ฌํ•ญ. Rich Lander๊ฐ€ 1์›” 15์ผ .NET ์ปค๋ฎค๋‹ˆํ‹ฐ ์Šคํƒ ๋“œ์—… (1:12:40์—์„œ ์‹œ์ž‘)์—์„œ ๊ฐ€์žฅ ์ž˜ ๋งํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@verelpode ๋‹น์‹ ์€ ์œ„์˜ ๋น„๋””์˜ค์—์„œ ์–ธ๊ธ‰ํ•œ ๋ผ์ธ์„ ํƒ€๊ณ  ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๊ฑด์„ค์ ์ด๊ณ  ์ฃผ์ œ์— ์ง‘์ค‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— WinUI ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๋‹น์‹ ์˜ ๊ธฐ์—ฌ๋ฅผ ์†Œ์ค‘ํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋ฉ˜ํŠธ).

broadSystemAccess๋ฅผ ์š”์ฒญํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ํ•ด๋‹น ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ... ๋‹น์‹ ์€ ๋‹จ์ง€ ์š”์ฒญ์„ ํ–ˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์‚ฌ์šฉ์ž๋Š” ์‹ค์ œ๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํŽธ์•ˆํ•˜๋‹ค๊ณ  ๋Š๋ผ๋ฉด ๋‹น์‹ ์—๊ฒŒ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ ์–ด๋„ Android/iOS์—์„œ๋Š” ์•ฑ์ด HDD์— ์•ก์„ธ์Šคํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๋™์•ˆ ํ•ด๋‹น ํ•ญ๋ชฉ์„ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ๋‹ซํžˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค .

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

๋Œ€์‹  ๋‹น์‹ ์€ ๋ชจ๋“  ๊ฒƒ์„ ์›ํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ทจํ•ด์•ผ ํ•˜๋Š” ์‚ฌ์†Œํ•œ ์ผํšŒ์„ฑ ์ถ”๊ฐ€ ๋‹จ๊ณ„์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณ  ์ด ๋‹จ๊ณ„์—์„œ ์œ ์ง€์œจ์„ ๋น„๋‚œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Microsoft Open Source Code of Conduct ๋ฅผ ์œ„๋ฐ˜ํ•˜๋Š” ๋ฌด๋ก€ํ•œ ์ œ๋ชฉ๊ณผ WinUI์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ๊ทผ๊ฑฐ๋กœ ์ด ๋ฌธ์ œ๋Š” ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. @jevansaks @jesbis

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

์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์‹ค์ œ๋กœ WinRT ํŒ€๊ณผ ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์€ ์–ด๋””์ž…๋‹ˆ๊นŒ? ๋“ฃ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

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

๋Œ€์‹  ๋‹น์‹ ์€ ๋ชจ๋“  ๊ฒƒ์„ ์›ํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ทจํ•ด์•ผ ํ•˜๋Š” ์‚ฌ์†Œํ•œ ์ผํšŒ์„ฑ ์ถ”๊ฐ€ ๋‹จ๊ณ„์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๊ณ  ์ด ๋‹จ๊ณ„์—์„œ ์œ ์ง€์œจ์„ ๋น„๋‚œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ง„๊ณผ ๋น„๋””์˜ค๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ „ ์Šคํƒ€์ผ์˜ ํŒŒ์ผ ์„ ํƒ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์›ํ•˜๋Š” ๋Œ€๋กœ ์‰ฝ๊ฒŒ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋„ค, ๋ชจ๋“  HDD์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋‹ˆ์š”. "์‚ฌ์ง„" ๋ฐ "๋™์˜์ƒ" ๊ฐ€์ƒ ํด๋”๋Š” Microsoft๊ฐ€ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ง„๊ณผ ๋™์˜์ƒ์„ ๋ณด๊ด€ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ํด๋”์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฑด ํ˜„์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ „์—๋„ ๋งํ–ˆ์ง€๋งŒ WinRT์— ๋Œ€ํ•ด ์“ธ ๊ณณ์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ๋งํฌ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ๊ท€ํ•˜๋Š” ์ด๋ฏธ UWP Q&A ํฌ๋Ÿผ์—์„œ WinRT์— ๋Œ€ํ•ด ํ˜ธ์–ธ์žฅ๋‹ดํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์—ฌ๊ธฐ์— ๊ฒŒ์‹œํ•˜๋ฉด ์‹ค์ œ๋กœ ๋ฌด์—‡์ด๋“  ๋‹ฌ์„ฑํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋” ๋งŽ์€ ์ฒญ์ค‘์„ ์›ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค(WinUI ํŒ€์€ WinRT์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—).

๊ท€ํ•˜์˜ ๋งํฌ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ๊ท€ํ•˜๋Š” ์ด๋ฏธ UWP Q&A ํฌ๋Ÿผ์—์„œ WinRT์— ๋Œ€ํ•ด ํ˜ธ์–ธ์žฅ๋‹ดํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ์—†์Šต๋‹ˆ๋‹ค. Q&A์—์„œ๋Š” ์งˆ๋ฌธํ•˜๊ณ  ๋‹ต๋ณ€์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ (๋ถˆํ–‰ํžˆ๋„) ๋ณ€๊ฒฝํ•  ๊ฒƒ์„ ์ œ์•ˆํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋‚ด ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ง„๊ณผ ๋น„๋””์˜ค๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ „ ์Šคํƒ€์ผ์˜ ํŒŒ์ผ ์„ ํƒ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์›ํ•˜๋Š” ๋Œ€๋กœ ์‰ฝ๊ฒŒ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋„ค, ๋ชจ๋“  HDD์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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

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

@kmgallahan ๋ฌผ๋ก , ํ†ค์„ ์•ฝ๊ฐ„ ๋˜๋Œ๋ฆด ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ์ „์— ์ขŒ์ ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ฐฑํ•œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋”์šฑ ์‹ค๋ง์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ์ž ์žฌ์ ์ธ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๋Ÿผ์—์„œ ์ด๋Ÿฌํ•œ ์ขŒ์ ˆ๊ฐ์„ ํ‘œ์ถœํ•˜๋Š” ๊ฒƒ์ด ๋•Œ๋•Œ๋กœ ๊ฑด์„ค์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์˜ ๊ธฐ์ˆ  ์š”์ ์€ ์œ ํšจํ•˜๋ฉฐ WinRT ๋ฐ ์•ฝ๊ฐ„์˜ UWP์—๋งŒ ํ•ด๋‹น๋˜๋ฉฐ ๋‘˜ ๋‹ค ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” WinUI XAML ์ปจํŠธ๋กค์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ด์œ ๋กœ ์ด๊ฒƒ์€ ์ฃผ์ œ๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฒƒ์œผ๋กœ ๋‹ซ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ํ† ๋ก ์ด ์ขŒ์ ˆ๊ณผ ๊ฐœ๋ฐœ ์ƒํƒœ๊ณ„์˜ ์„ฑ๊ณต์— ๋Œ€ํ•œ ๋งŽ์€ ๊ธฐ๋“๊ถŒ์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ์ž„์„ ์•Œ๊ณ  ์ „๋ฌธ์ ์œผ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก , ํ†ค์„ ์•ฝ๊ฐ„ ๋˜๋Œ๋ฆด ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ์ด์ „์— ์ขŒ์ ˆํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ฐฑํ•œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋”์šฑ ์‹ค๋ง์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š” :)

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

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

๋ถ„๋ช…ํžˆ, ๊ทธ๋“ค์€ ๊ทธ ํŠน์ • ์œ„์น˜์— ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค....

๋ฌผ๋ก , ๋‚˜๋Š” ๊ทธ FutureAccessList๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์‚ฌ์šฉ์ž๋“ค์ด ์‚ฌ์ง„/๋น„๋””์˜ค๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ์œ„์น˜๋ฅผ ๊ธฐ์–ตํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(๋‚ด ์•ฑ์ดํ•˜๋Š” ์ผ) ํด๋”๋ฅผ ๋ฉ‹์ง€๊ฒŒ ๋ฏธ๋ฆฌ๋ณด๊ณ  ์‚ฌ์ง„ / ๋น„๋””์˜ค๊ฐ€์žˆ๋Š” ํด๋”๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋Œ€์‹ .

๋ช‡ ๊ฐ€์ง€ ์ฐธ๊ณ  ์‚ฌํ•ญ:

์‹œ๊ฐ„์„ ๋‚ด์–ด ๊ฒฝํ—˜๊ณผ ํ”ผ๋“œ๋ฐฑ์„ ์ž‘์„ฑํ•˜๊ณ  Q&A ํŽ˜์ด์ง€ ์— ์‹œ๊ฐ„์„ ๋‚ด์ฃผ์‹  @jtorjo ๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

@robloo ์™€ @kmgallahan์ด ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ด ๋Œ€๋ถ€๋ถ„์€ WinUI์™€ ์ง์ ‘์ ์ธ ๊ด€๋ จ์ด ์—†์œผ๋ฉฐ ํ–‰๋™ ๊ฐ•๋ น์„ ์•ฝ๊ฐ„ ๋ฐ€๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ™‚

๊ทธ๋Ÿฌ๋‚˜ Windows ๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ์˜ ๋‹ค๋ฅธ ์˜์—ญ๊ณผ ๊ด€๋ จํ•˜์—ฌ Q&A ์‚ฌ์ดํŠธ ๋ฐ Feedback Hub์— ๋Œ€ํ•œ ์ฐธ์—ฌ๊ฐ€ ๋” ๋‚˜์„ ์ˆ˜ ์žˆ์Œ๋„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์‹ค์ œ๋กœ ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ ๊ทน์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์ง€๋งŒ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ์žฅ์†Œ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๋‹ต๋‹ตํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Feedback Hub๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‹ค์ œ๋กœ ๋ณด๊ณ  ์žˆ์ง€๋งŒ ํ† ๋ก ์— ์‘๋‹ตํ•˜๊ฑฐ๋‚˜ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฑด์„ค์ ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ  Windows ์•ฑ UX/๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จ์ด ์žˆ๋Š” ํ•œ ์ฃผ์ œ๊ฐ€ ํ˜„์žฌ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ž˜ ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ํ”Œ๋žซํผ ํ”ผ๋“œ๋ฐฑ์„ ๋…ผ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ทธ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ฃผ์ œ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ๋„ ์‹ฌ๊ฐํ•œ ๊ด€์‹ฌ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์ผ๋ถ€ WinRT ์ „๋ฌธ๊ฐ€ ์—๊ฒŒ ์—ฐ๋ฝํ•˜์—ฌ ์ „์ฒด ํ”Œ๋žซํผ ๋ฐ ๋„๊ตฌ์˜ ์ฃผ์š” ๋ฌธ์ œ ์ค‘ ์ผ๋ถ€๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์š”์•ฝํ•˜์—ฌ


๋ฐ์Šคํฌํ†ฑ ์•ฑ ๊ฐœ๋ฐœ์˜ ๊ฒฝ์šฐ: WinUI 3์€ Windows ๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์ƒํ˜ธ ์šด์šฉ์„ฑ ์žฅ๋ฒฝ์„ ์ œ๊ฑฐํ•˜๊ณ  WinUI ๋ฐ UWP๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ ์ง„์ ์œผ๋กœ ์ฑ„ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋Š” ์šฐ๋ฆฌ ๋…ธ๋ ฅ์˜ ํฐ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ์˜ ๋ชจ๋“  ์ œํ•œ ์‚ฌํ•ญ์„ ์š”๊ตฌํ•˜์ง€ ์•Š๊ณ  ์ตœ์‹  UX๋กœ ๋ฐ์Šคํฌํ†ฑ ์•ฑ์„ ๋” ์ž˜ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. WPF์˜ ์ฃผ์š” ์ œ์ž‘์ž ์ค‘ ์ผ๋ถ€๋ฅผ ํฌํ•จํ•˜์—ฌ ๋งŽ์€ ์ „๋ฌธ๊ฐ€๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ, ์šฐ๋ฆฌ๋Š” Xaml ์„ฌ๊ณผ ๋ฐ์Šคํฌํ†ฑ ์•ฑ์šฉ WinUI์— ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์˜ฌํ•ด ํ›„๋ฐ˜์— ์‚ฌ๋žŒ๋“ค์ด ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ๋ฆด๋ฆฌ์Šคํ•  ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ”ผ๋“œ๋ฐฑ ์ค‘์‹ฌ์˜ ํˆฌ๋ช…๋„๋ฅผ ๋†’์ด๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ „์ฒด Xaml ํ”Œ๋žซํผ(์˜ˆ: WinUI 3)์„ ์˜คํ”ˆ ์†Œ์Šค๋กœ ์˜ฎ๊ธฐ๋ฉด ๋” ์‰ฌ์›Œ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด ๋ฐ์Šคํฌํ†ฑ ๊ณ„ํš์˜ ํ˜„์žฌ ์ƒํƒœ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์›”๊ฐ„ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ˜ธ์ถœ ์ค‘ ํ•˜๋‚˜์—์„œ ์ข€ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ฃผ์ œ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ œ์•ˆํ•˜์„ธ์š”.

WinUI ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฝœ(2020๋…„ 1์›” 22์ผ) #1857

์•ˆ๋…•ํ•˜์„ธ์š” @jesbis ๋‹˜

๋‚ด ๋ฌธ์ œ๋ฅผ ๋ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@robloo ์™€ @kmgallahan์ด ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ด ๋Œ€๋ถ€๋ถ„์€ WinUI์™€ ์ง์ ‘์ ์ธ ๊ด€๋ จ์ด ์—†์œผ๋ฉฐ ํ–‰๋™ ๊ฐ•๋ น์„ ์•ฝ๊ฐ„ ๋ฐ€๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ™‚

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

๊ทธ๋Ÿฌ๋‚˜ Windows ๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ์˜ ๋‹ค๋ฅธ ์˜์—ญ๊ณผ ๊ด€๋ จํ•˜์—ฌ Q&A ์‚ฌ์ดํŠธ ๋ฐ Feedback Hub์— ๋Œ€ํ•œ ์ฐธ์—ฌ๊ฐ€ ๋” ๋‚˜์„ ์ˆ˜ ์žˆ์Œ๋„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์‹ค์ œ๋กœ ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ ๊ทน์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์ง€๋งŒ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ์žฅ์†Œ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๋‹ต๋‹ตํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ „์ ์œผ๋กœ ๋™์˜ ํ•œ. ์ฐธ๊ณ ๋กœ ์ €๋Š” ์‹ค์ œ๋กœ Feedback Hub์—์„œ broadSystemAccess๋ฅผ ๋ณด๊ณ ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ๋ชจ๋“  ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์•ฝ 15๋ถ„์„ ๋ณด๋‚ธ ํ›„ "๋’ค๋กœ"์— ํ•ด๋‹นํ•˜๋Š” ๋‹จ์ถ•ํ‚ค๋ฅผ ์–ด๋–ป๊ฒŒ๋“  ๋ˆŒ๋ €์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž‘์—…์„ ์žƒ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค(์‹คํ–‰ ์ทจ์†Œ ์—†์Œ, ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ๋˜๋Š” ํ…์ŠคํŠธ ์—†์Œ, ์•„๋ฌด๊ฒƒ๋„ ์—†์Œ). ๋ถ„๋ช…ํžˆ, ๋‚˜๋Š” ๋ฏธ์นœ ๋“ฏ์ด ์ขŒ์ ˆํ•˜๊ณ  ๊ทธ๋ƒฅ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ฃผ์ œ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ๋„ ์‹ฌ๊ฐํ•œ ๊ด€์‹ฌ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์ผ๋ถ€ WinRT ์ „๋ฌธ๊ฐ€ ์—๊ฒŒ ์—ฐ๋ฝํ•˜์—ฌ ์ „์ฒด ํ”Œ๋žซํผ ๋ฐ ๋„๊ตฌ์˜ ์ฃผ์š” ๋ฌธ์ œ ์ค‘ ์ผ๋ถ€๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์š”์•ฝํ•˜์—ฌ

๋ฉ‹์žˆ๋Š”!

๋ฐ์Šคํฌํ†ฑ ์•ฑ ๊ฐœ๋ฐœ์˜ ๊ฒฝ์šฐ: WinUI 3์€ Windows ๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์ƒํ˜ธ ์šด์šฉ์„ฑ ์žฅ๋ฒฝ์„ ์ œ๊ฑฐํ•˜๊ณ  WinUI ๋ฐ UWP๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ ์ง„์ ์œผ๋กœ ์ฑ„ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋Š” ์šฐ๋ฆฌ ๋…ธ๋ ฅ์˜ ํฐ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ์˜ ๋ชจ๋“  ์ œํ•œ ์‚ฌํ•ญ์„ ์š”๊ตฌํ•˜์ง€ ์•Š๊ณ  ์ตœ์‹  UX๋กœ ๋ฐ์Šคํฌํ†ฑ ์•ฑ์„ ๋” ์ž˜ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. WPF์˜ ์ฃผ์š” ์ œ์ž‘์ž ์ค‘ ์ผ๋ถ€๋ฅผ ํฌํ•จํ•˜์—ฌ ๋งŽ์€ ์ „๋ฌธ๊ฐ€๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ต‰์žฅํ•ด! ํ™•์‹คํžˆ ๋” ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์ง€๋งŒ ๊ทธ๋•Œ๊นŒ์ง€๋Š” ๋งŽ์€ ๋ฌธ์ œ์— ๋ด‰์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ๋žŒ๋“ค์ด ๋ฐ์Šคํฌํ†ฑ ๊ณ„ํš์˜ ํ˜„์žฌ ์ƒํƒœ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์›”๊ฐ„ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ˜ธ์ถœ ์ค‘ ํ•˜๋‚˜์—์„œ ์ข€ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ฃผ์ œ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ œ์•ˆํ•˜์„ธ์š”.

WinUI ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฝœ(2020๋…„ 1์›” 22์ผ) #1857

์—ฌ๊ธฐ์„œ ์–ธ๊ธ‰ํ•œ WinRT ์ฃผ์ œ๋ฅผ ์ œ์•ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์˜ˆ๋ฅผ ๋“ค์–ด Feedback Hub๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‹ค์ œ๋กœ ๋ณด๊ณ  ์žˆ์ง€๋งŒ ํ† ๋ก ์— ์‘๋‹ตํ•˜๊ฑฐ๋‚˜ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฑด์„ค์ ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์•ฑ ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จ์ด ์žˆ๋Š” ํ•œ ์ฃผ์ œ๊ฐ€ ํ˜„์žฌ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ž˜ ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์ธ ํ”Œ๋žซํผ ํ”ผ๋“œ๋ฐฑ์„ ์—ฌ๊ธฐ์—์„œ ๋ฐ›์•„๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

@jesbis
์ด๊ฒƒ์€ ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค! ์ด๋Ÿฌํ•œ ์œ ์—ฐ์„ฑ์„ ๋ณด์—ฌ์ฃผ๊ณ  (์ธ์‹๋œ) WinRT ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ ๋ฌธ์ œ๋ฅผ ์™„ํ™”ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ํ•„์š”๊ฐ€ ์—†์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  WinUI ํŒ€์—๊ฒŒ ๋งŽ์€ ๊ฐ์‚ฌ๋ฅผ ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@kmgallahan

Rich Lander๊ฐ€ 1์›” 15์ผ .NET ์ปค๋ฎค๋‹ˆํ‹ฐ ์Šคํƒ ๋“œ์—…(1:12:40์—์„œ ์‹œ์ž‘)์—์„œ ๊ฐ€์žฅ ์ž˜ ๋งํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ Rich Lander๋Š” ์•ฝ๊ฐ„์˜ ๊ณต๊ฒฉ์„ฑ์ด ์žˆ์ง€๋งŒ ๋™์‹œ์— ์ข‹์€ ์‚ฌ๋žŒ๋“ค์„ ์„ ํ˜ธํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์‚ฌํšŒ์˜ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋„ˆ๋ฌด '์˜ˆ์˜๋ฐ”๋ฅด๊ฒŒ' ํ–‰๋™ํ•˜์—ฌ ๊ทน๋‹จ์ฃผ์˜๊ฐ€ ๋˜์–ด ๋ฌด๋ก€ํ•จ๊ณผ ๋ฌด๋ก€ํ•จ์œผ๋กœ ๋ฐ”๋€Œ๋ฉด์„œ ํ‘œ๋ฉด์ ์œผ๋กœ๋Š” '์˜ˆ์˜๋ฐ”๋ฅธ' ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ "์˜ˆ์˜๋ฐ”๋ฅธ" ์‚ฌ๋žŒ๋“ค์€ ๊ฐ„์ ‘์ ์ด๊ณ  ๋ชจํ˜ธํ•˜๊ฒŒ ๋งํ•˜๋ฉฐ, ์ด๋Š” ์˜์‚ฌ์†Œํ†ต์„ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค๊ณ  ์ž˜๋ชป ํ•ด์„ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ "์ •์ค‘ํ•œ" ์‚ฌ๋žŒ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ง์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ก€ํ•˜๊ณ  ๋ฌด๋ก€ํ•ฉ๋‹ˆ๋‹ค.

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

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

@jtorjo
๋ฌธ์ œ์˜ ์›์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋…ธํ‚ค์•„์˜ ์น˜๋ช…์ ์ธ ์‹ค์ˆ˜ ๋ฐ˜๋ณต

WinRT/UWP๋Š” ์‹ค์ˆ˜๋กœ ๋…ธํ‚ค์•„, ๋ธ”๋ž™๋ฒ ๋ฆฌ, ์• ํ”Œ๊ณผ ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ํ•œ ์ง€์ ์—์„œ ๋ฐ˜๋ณตํ–ˆ๋‹ค. Nokia ์ด์•ผ๊ธฐ: Nokia๋Š” ๋งค์šฐ ์„ฑ๊ณต์ ์ธ ๊ฑฐ๋ฌผ์ด์—ˆ์ง€๋งŒ ๋‚˜์ค‘์— Nokia๋Š” ์Šค๋งˆํŠธํฐ ๊ธฐ์ˆ ์—์„œ ๋’ค์ณ์ ธ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋“ค์€ ๊ธฐ์กด ์‹œ์Šคํ…œ์˜ ์ผ๋ จ์˜ ๊ฐœ์„ ๋œ ๋ฒ„์ „์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์ตœ์šฐ์„  ๊ณผ์ œ๋กœ ์‚ผ์•„์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๋Œ€์‹ , ๊ทธ๋“ค์€ ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ์œผ๋กœ ์ „ํ™˜ํ•˜๋ ค๊ณ  ํ–ˆ๊ณ , ๊ทธ๊ฒƒ์€ ๊ทธ๋“ค์„ ์ฃฝ์˜€์Šต๋‹ˆ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ๊ทธ๋“ค์„ ์ฃฝ์˜€๋‹ค. ๋…ธํ‚ค์•„ ๋ชจ๋ฐ”์ผ์€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ ์ธ์ˆ˜๋ฅผ ๋ฐ›์•„๋“ค์ผ ์ˆ˜๋ฐ–์— ์—†์—ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ๋…ธํ‚ค์•„์˜ ์‹ค์ˆ˜๋กœ๋ถ€ํ„ฐ ๊ตํ›ˆ์„ ์–ป๊ณ  ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ•  ๊ฒƒ์ด๋‹ค. ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” ๋…ธํ‚ค์•„์™€ ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ–ˆ๋‹ค. Microsoft๋Š” WPF ๋ฐ .NET Framework์˜ ์ƒˆ ๋ฒ„์ „์„ ์ƒ์„ฑํ•˜๋Š” ๋Œ€์‹  WinRT/UWP์— ์ฐฉ์ˆ˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€ ๋งž์ถฐ๋ณด์„ธ์š”? ๋…ธํ‚ค์•„์™€ ๋˜‘๊ฐ™์€ ์žฌ์•™์ด ๊ทธ๋“ค์„ ์ฃฝ์˜€์Šต๋‹ˆ๋‹ค. Windows Mobile์€ ์ฃฝ์—ˆ๊ณ  Microsoft ๊ฒฝ์˜์ง„์— ์˜ํ•ด ์ทจ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” ๋…ธํ‚ค์•„์˜ ์น˜๋ช…์ ์ธ ์‹ค์ˆ˜๋กœ๋ถ€ํ„ฐ ๊ตํ›ˆ์„ ์–ป์ง€ ๋ชปํ–ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  ์Šค๋งˆํŠธํฐ์€ WinRT/UWP ๋Œ€์‹  Android ๋˜๋Š” Apple์„ ์‹คํ–‰ํ•˜๋ฏ€๋กœ WinRT/UWP๋Š” Microsoft๊ฐ€ ์ˆ˜์‹ญ์–ต ๋‹ฌ๋Ÿฌ ๊ทœ๋ชจ์˜ ์Šค๋งˆํŠธํฐ ์‚ฐ์—…์—์„œ ์™„์ „ํžˆ ์ž๋ฆฌ๋ฅผ ์žƒ๊ฒŒ ๋งŒ๋“  ์น˜๋ช…์ ์ธ ์‹คํŒจ์˜€์Šต๋‹ˆ๋‹ค. WinRT/UWP๋Š” Microsoft์— ์ˆ˜์‹ญ์–ต ๋‹ฌ๋Ÿฌ์˜ ์†์‹ค์„ ์ดˆ๋ž˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ธ”๋ž™๋ฒ ๋ฆฌ๋Š” ๋…ธํ‚ค์•„์™€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์™€ ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ์ €์งˆ๋ €๋‹ค. ๋ธ”๋ž™๋ฒ ๋ฆฌ๋Š” ๋งค์šฐ ์„ฑ๊ณต์ ์ด์—ˆ์ง€๋งŒ ๋‚˜์ค‘์— ๋ธ”๋ž™๋ฒ ๋ฆฌ๋Š” ์Šค๋งˆํŠธํฐ ๊ธฐ์ˆ ์—์„œ ๋’ค์ณ์ ธ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋“ค์€ ๊ธฐ์กด ์‹œ์Šคํ…œ์˜ ์ผ๋ จ์˜ ๊ฐœ์„ ๋œ ๋ฒ„์ „์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์ตœ์šฐ์„  ๊ณผ์ œ๋กœ ์‚ผ์•„์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๋Œ€์‹  ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ์œผ๋กœ ์ „ํ™˜ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ธ”๋ž™๋ฒ ๋ฆฌ๋Š” ์›๋ž˜ ๋ธ”๋ž™๋ฒ ๋ฆฌ OS๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ 2013๋…„๊ฒฝ์— QNX ์‹œ์Šคํ…œ์œผ๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด์—์š”? WinRT ๋ฐ Nokia์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ทธ๋“ค์„ ์ฃฝ์˜€๋‹ค. 2016๋…„ ๋ธ”๋ž™๋ฒ ๋ฆฌ๋Š” ์ž์ฒด ํœด๋Œ€ํฐ ์„ค๊ณ„๋ฅผ ์ค‘๋‹จํ•˜๊ฒ ๋‹ค๊ณ  ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณผ๊ฑฐ ์–ด๋Š ์‹œ์ ์—์„œ Apple์—์„œ๋„ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ์€ ๊ฑฐ์˜ ๋ฌด๋„ˆ์งˆ ๋ป”ํ–ˆ๊ณ  ์‚ด์•„๋‚จ์€ ๊ฒƒ์€ ์šด์ด ์ข‹์•˜๋‹ค. ๋ช‡ ๋…„ ํ›„, ์• ํ”Œ์€ ๊ฒฐ๊ตญ ์Šค๋งˆํŠธํฐ์„ ํ†ตํ•ด ๊ฐ•๋ ฅํ•œ ํšŒ๋ณต์„ธ๋ฅผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์น˜๋ช…์ ์ธ ์‹ค์ˆ˜ ์ดํ›„์— ์‚ด์•„์„œ ์šด์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ

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

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

๊ด€๋ฆฌ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ด€์ ์˜ ๋ฐ˜์ „

Microsoft๋Š” ๊ด€๋ฆฌ ์ฝ”๋“œ๊ฐ€ ๋›ฐ์–ด๋‚œ ์ด์ ์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ๋งํ–ˆ์œผ๋ฉฐ ๊ด€๋ฆฌ ์ฝ”๋“œ์™€ ๋น„๊ด€๋ฆฌ ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ ๊ฒฝํ—˜์— ๋”ฐ๋ฅด๋ฉด ์ด๋Š” ์ ˆ๋Œ€์ ์œผ๋กœ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ๋น„๊ด€๋ฆฌ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฒฝ๋ ฅ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— Microsoft์˜ ์ฃผ์žฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๊ด€๋ฆฌ ์ฝ”๋“œ๋กœ ์ „ํ™˜ํ–ˆ์œผ๋ฉฐ ์ƒ์‚ฐ์„ฑ๊ณผ ์•ˆ์ •์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” ๊ธฐ์ดํ•˜๊ฒŒ๋„ ๊ทธ๋“ค์˜ ์ž…์žฅ์„ ๋ฐ”๊พธ์–ด 1993๋…„๋ถ€ํ„ฐ ๋น„๊ด€๋ฆฌ ์ฝ”๋“œ์™€ ๊ณ ๋Œ€ COM(๊ตฌ์„ฑ ์š”์†Œ ๊ฐœ์ฒด ๋ชจ๋ธ), ๊ทธ๋ฆฌ๊ณ  Win16(Win32๋ผ๊ณ ๋„ ํ•จ)์˜ ๊ณผ๋„ํ•œ ์‚ฌ์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ WinRT๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. WinRT์˜ ๊ธฐ๋ฐ˜์€ ์ˆ˜์‹ญ ๋…„์ด ์ง€๋‚œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ, COM ๋ฐ Win16(์ผ๋ช… Win32)์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ WinRT/UWP๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๊บผ๋ฆฌ๋Š” ๊ฒƒ์€ ๋†€๋ผ์šด ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค.

Android๋Š” ์ด์ œ ์‹œ์žฅ์˜ ๋ฆฌ๋”์ž…๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Android ์•ฑ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ด€๋ฆฌ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. Java๋ฅผ ์‹ซ์–ดํ•˜๊ณ  C#์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜์ง€๋งŒ Java๊ฐ€ ๊ธฐ๋ณธ Win16 ๋ฐ COM๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ๋‹ค๊ณ  ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ Microsoft ์ง์›์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ข‹์€ ์ผ์ธ ๊ฒƒ์ฒ˜๋Ÿผ "๋„ค์ดํ‹ฐ๋ธŒ"๋ผ๊ณ  ๊ณ„์† ๋งํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” "๋„ค์ดํ‹ฐ๋ธŒ"๋กœ ๊ฒฝ๋ ฅ์„ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ ์ˆ˜๋…„๊ฐ„์˜ ๊ฒฝํ—˜์„ ํ†ตํ•ด "๋„ค์ดํ‹ฐ๋ธŒ"๊ฐ€ ๋‚˜์œ ๊ฒƒ์ž„์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋งŽ์€ Android ๊ฐœ๋ฐœ์ž๋“ค๋„ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ๋‚˜์˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋„ˆ๋ฌด ๋งŽ์€ UWP ์ง์›์ด ์ข‹์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋งํ•ฉ๋‹ˆ๋‹ค. @jtorjo ์˜ ๋ง์„ ์‚ฌ์šฉํ•˜๋ฉด WinRT ํŒ€์€ "ํ˜„์‹ค๊ณผ

์ด ๋ง์„ ๊ณ„์†ํ•ด์„œ ๋ฐ˜๋ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. WinRT/UWP๋Š” ์น˜๋ช…์ ์ธ ์‹คํŒจ์˜€์Šต๋‹ˆ๋‹ค. WinRT ํŒ€์ด WinRT/UWP๊ฐ€ ์น˜๋ช…์ ์ธ ์‹คํŒจ์˜€์œผ๋ฉฐ Microsoft๊ฐ€ ๋™์ผํ•œ ์‹ค์ˆ˜๋ฅผ ๊ณ„์† ๋ฐ˜๋ณตํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ์ ์„ ์ธ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ์—์„œ WinRT ํŒ€์ด "ํ˜„์‹ค๊ณผ ๋™๋–จ์–ด์ง„" ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ง์„ ๊ณ„์† ๋ฐ˜๋ณตํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด ์ผ๋„ ์—†์—ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ WinRT.

์˜ˆ๋ฅผ ๋“ค์–ด, ํ˜„์žฌ DataGrid ๋Š” ์ตœ์‹  ๊ด€๋ฆฌ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์ง€๋งŒ WinUI ํŒ€์€ "๋„ค์ดํ‹ฐ๋ธŒ" ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก DataGrid๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•˜๋ฉฐ ์‹ค์ œ๋กœ๋Š” ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ๋ฐ ๊ด€ํ–‰์œผ๋กœ ํšŒ๊ท€ํ•  ๋•Œ ์ด๊ฒƒ์ด "์—…๊ทธ๋ ˆ์ด๋“œ"๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹ญ ๋…„์ด ์ง€๋‚œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ WinRT/UWP๋Š” ์ตœ์‹  ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ๋ฐฉ์‹๊ณผ ๊ตฌ์‹ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ๋ฐฉ์‹์ด ํ˜ผ์žฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ @jtorjo๊ฐ€ _"ํ˜„์‹ค๊ณผ

_"ํ˜„์‹ค๊ณผ ๋™๋–จ์–ด์ง„"_์˜ ๋˜ ๋‹ค๋ฅธ ์˜ˆ๋Š” WebView2 ์˜ ๋””์ž์ธ์„ ๋ณด์„ธ์š”. ๋งˆ์น˜ ์ˆ˜์‹ญ ๋…„ ์ „ ์“ธ๋ชจ์—†๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ–ˆ๋˜ ์ œ ์ปค๋ฆฌ์–ด์˜ ์‹œ์ž‘์œผ๋กœ ์‹œ๊ฐ„ ์—ฌํ–‰์„ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„๋Œ€์ ์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋Œ€์‹  HRESULT ์ž…๋‹ˆ๋‹ค. WebView2๊ฐ€ 2020๋…„์— ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋กœ ์ถœ์‹œ๋˜์—ˆ์ง€๋งŒ HRESULT ๋ฐ LPCWSTR ์™€ ๊ฐ™์€ ๊ณ ๋Œ€ ๊ธฐ์ˆ ์„ ์—ฌ์ „ํžˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณด๋Š” ๊ฒƒ์€ ๋†€๋ผ์šด ์ผ์ž…๋‹ˆ๋‹ค. WebView2์˜ ๋””์ž์ธ์€ ํ˜„๋Œ€์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ๋ฐฉ์‹๊ณผ ๋™๋–จ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ฒ•์ •์— ์„ฐ๋‹ค๋ฉด ํŒ์‚ฌ์˜ ๋ฐฐ์งฑ์ด ์‹ซ๋”๋ผ๋„ ์•„์ฃผ ์ •์ค‘ํ•˜๊ฒŒ ํŒ์‚ฌ์—๊ฒŒ "ํŒ์‚ฌ๋‹˜"์ด๋ผ๊ณ  ๋งํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทน๋„์˜ ๊ณต์†ํ•จ์€ ๋ฌด๋ก€ํ•จ์ž…๋‹ˆ๋‹ค. ํŒ์‚ฌ๋“ค์€ "Your Honor"๋ฅผ ์กด๊ฒฝ์œผ๋กœ ํ•ด์„ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋ฌด๋ก€ํ•ฉ๋‹ˆ๋‹ค.

Microsoft๋Š” WPF ๋ฐ .NET Framework์˜ ์ƒˆ ๋ฒ„์ „์„ ์ƒ์„ฑํ•˜๋Š” ๋Œ€์‹  WinRT/UWP์— ์ฐฉ์ˆ˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ...

๋™์˜. ๋‚˜๋Š” ์ง€๊ธˆ ๊ฝค ๋ช‡ ๋‹ฌ ๋™์•ˆ UWP๋ฅผ ๊ฐœ๋ฐœํ•ด ์™”์Šต๋‹ˆ๋‹ค... ๊ฝค ๋งŽ์€ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์ง€๋งŒ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด "์„ "ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์„ ์„ ๋‹คํ–ˆ๊ณ  ์–ด๋Š ์ •๋„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ผ์„ ํ•˜๋ฉด ํ• ์ˆ˜๋ก ํ•œ๊ณ„๊ฐ€ ์‚ฌ์‹ค์€ UWP๊ฐ€ ์•„๋‹ˆ๋ผ WinRT๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋ฉฐ ๋ถ„๋ช…ํžˆ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. UWP๋Š” WinRT๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ตœ๋Œ€ํ•œ ์ˆจ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. WinRT๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ (๋ถˆํ•„์š”ํ•œ) ์ œํ•œ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ฃผ์š” ์ดˆ์ ์€ ๋ฐ์Šคํฌํƒ‘์ด์–ด์•ผ ํ•˜๊ณ  ๊ทธ ๋‹ค์Œ ๋‹ค๋ฅธ ํ”Œ๋žซํผ(Hololens, xbox ๋“ฑ)์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

(ps ํŒŒ์ผ์˜ ์†์„ฑ์„ ์–ป์œผ๋ ค๋ฉด ๋น„๋™๊ธฐ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์ด ์—ฌ์ „ํžˆ ์ €๋ฅผ ์›€์ฐ”ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค)

๊ด€๋ฆฌ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ด€์ ์˜ ๋ฐ˜์ „

WinRT์—์„œ COM์„ ๋‹ค๋ฃจ์–ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ์ •๋ง ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ค๋ž˜๋œ DCOM ์ฝ”๋“œ๋‚˜ ๋‹ค๋ฅธ ๊ฒƒ์„ ํฌ์žฅํ•œ ๊ฒƒ ๊ฐ™์ง€๋งŒ WinRT ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” 100% ์ˆจ๊ฒจ์ ธ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
COM์„ ์•Œ์•„์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์ •๋ง ๋‚˜์œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ, ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์ด ์ˆจ๊ฒจ์•ผ ํ•˜๋ฉฐ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์ž์ธ ๋‚˜์—๊ฒŒ ์ˆจ๊ฒจ์ ธ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

[๋‚˜์ค‘์— ํŽธ์ง‘] ์ด์ œ ์ƒ๊ฐํ•ด ๋ณด๋‹ˆ DirectX๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ์ตœ์†Œํ•œ COM์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ์ˆจ๊ฒจ์ ธ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ Microsoft ์ง์›์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์ข‹์€ ์ผ์ธ ๊ฒƒ์ฒ˜๋Ÿผ "๋„ค์ดํ‹ฐ๋ธŒ"๋ผ๊ณ  ๊ณ„์† ๋งํ•ฉ๋‹ˆ๋‹ค.

๋„ค์ดํ‹ฐ๋ธŒ๋Š” ".net ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ปดํŒŒ์ผ"์ด๋ผ๋Š” ๋งฅ๋ฝ์—์„œ ์ข‹์€ ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ œํ•œ ์‚ฌํ•ญ์ด ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” UWP๋กœ ํฌํŒ…ํ•œ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ Store ์ง์›์ด "ํ—ˆ์šฉํ•  ์ˆ˜ ์—†๋‹ค"๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ผ๋ถ€ API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— .net ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ปดํŒŒ์ผํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” https://github.com/naudio/NAudio - ์—„์ฒญ๋‚˜๊ฒŒ ๊ฐ•๋ ฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ๋‚˜๋Š” ๋‹จ์ˆœํžˆ ๋‚ด ์•ฑ์„ MS ์Šคํ† ์–ด์— ๊ฒŒ์‹œํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

_"ํ˜„์‹ค๊ณผ ๋™๋–จ์–ด์ง„"_์˜ ๋˜ ๋‹ค๋ฅธ ์˜ˆ๋Š” WebView2 ์˜ ๋””์ž์ธ์„ ๋ณด์„ธ์š”. ๋งˆ์น˜ ๋‚ด ๊ฒฝ๋ ฅ์˜ ์‹œ์ž‘์ ์œผ๋กœ ์‹œ๊ฐ„ ์—ฌํ–‰์„ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

100% ํ™•์‹ ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ์•„๋งˆ๋„ ๋‹น์‹ ์ด ๋งž์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. WebView๊ฐ€ Win32 ์ปจํŠธ๋กค์— ๋Œ€ํ•œ ๋ž˜ํผ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ WebView๊ฐ€ ๋‹ค๋ฅธ ์ปจํŠธ๋กค ์œ„์— ์žˆ์„ ๋•Œ WebView ๋งํฌ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ด์ƒํ•œ ๋ฒ„๊ทธ๋ฅผ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @roblo ๋‹˜

๋Šฆ์€ ๋‹ต๋ณ€ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค

๋ช‡ ๋…„ ์ „ ์ฒ˜์Œ WPF ์•ฑ์„ ํฌํŒ…ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ๋‚˜๋Š” ๋‹น์‹ ์˜ ์ขŒ์ ˆ ์ˆ˜์ค€์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ํ™•์‹คํžˆ ๋‹น์‹ ์˜ ๋งˆ์Œ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ดํ›„๋กœ ์•ฝ๊ฐ„์˜ ์ง„์ „์ด ์žˆ์—ˆ๊ณ  ๋‹น์‹ ์ด ๋งํ–ˆ๋“ฏ์ด WinUI ํŒ€์€ ์ •๋ง๋กœ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. 2016-2017๋…„์—๋Š” UWP๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€๋„ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ์šฐ๋ฆฌ๊ฐ€ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ทผ๋ณธ์ ์ธ ๋””์ž์ธ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. WinRT๋Š” C++ ๋ฐ JavaScript์™€ ์ง์ ‘ ์ƒํ˜ธ ์šด์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์ˆ ์ ์œผ๋กœ ์žฅ์• ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์Šฌํ”ˆ ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค... JS ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ์›ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

...๋Š” ์˜ˆ์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” )์ž…๋‹ˆ๋‹ค. ์ œ๋„ค๋ฆญ๊ณผ ๊ฐ™์€ ๋งŽ์€ ๊ณ ๊ธ‰ ๊ฐœ๋…๊ณผ ์‹ค์ œ๋กœ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด ์•„ํ‚คํ…์ฒ˜์—๋Š” ํ•œ ๊ฐ€์ง€ ํฐ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  Windows์—์„œ ๋™์ผํ•œ WinRT API๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ WinRT์— ๋Œ€ํ•ด ์‹ซ์–ดํ•˜๋Š” ๊ฒƒ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชฉ๋ก์— ํ•˜๋‚˜๊ฐ€ ๋” ์žˆ์Šต๋‹ˆ๊นŒ?

image

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

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ˆ˜๋…„ ๋™์•ˆ ์ต์ˆ™ํ•ด์ ธ ์˜จ ๊ด€๋ฆฌ ์ฝ”๋“œ์˜ ๋ช‡ ๊ฐ€์ง€ ํŠน์ „์„ ์žƒ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ์—ฌ์ „ํžˆ WPF์—์„œ ํ•œ ๊ฑธ์Œ ๋’ค๋กœ ๋ฌผ๋Ÿฌ๋‚œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์ €๋Š” ํ•ญ์ƒ ๋ฒ„๊ทธ์™€ ๋ถˆ์™„์ „ํ•œ ๊ธฐ๋Šฅ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. #1830์€ WPF ์‹œ๋Œ€์—๋Š” ์ ˆ๋Œ€ ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ์–ด๋–ป๊ฒŒ๋“  ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜, ์šฐ๋ฆฌ๋Š”...

WinUI 3.0์€ ์ ์–ด๋„ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Microsoft๋Š” ์ƒˆ๋กœ์šด ์ปจํŠธ๋กค์„ ์ถœ์‹œํ•˜๊ธฐ ์ „์— ๋” ๊ฐ•๋ ฅํ•œ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์™€ ๋” ๋งŽ์€ ํ…Œ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค... [...]

100% ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

ํ•œ๋•Œ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ UI ํ”Œ๋žซํผ์ด์—ˆ๋˜ WPF๊ฐ€ ์ด๊ฒƒ์œผ๋กœ ์ง„ํ™”ํ•˜๋Š” ๊ฒƒ์„ ๋ณด๋‹ˆ ์•ˆํƒ€๊น์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Microsoft๋Š” ์ด์ œ ๋Š๋ฆฌ์ง€๋งŒ ํ™•์‹คํ•˜๊ฒŒ ํ”ผ๋“œ๋ฐฑ์„ ๋“ฃ๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด์•ผ ํ•  ์ผ์ด ๋” ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, MS์—๋Š” ๋ถ„๋ช…ํžˆ ๋“ฃ๊ณ  ์žˆ๋Š” ๋ฉ‹์ง„ ์‚ฌ๋žŒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค . ์šฐ๋ฆฌ๊ฐ€ ์ด๊ฒƒ์„ ๋’ค์ง‘์„ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค...

ํŒŒ์ผ ์ฟผ๋ฆฌ API๋Š” ๋Š๋ฆผ์„ ๋„˜์–ด

๋ถ„๋ช…ํžˆ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ, ์ด ์ž‘์—…์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋Š” ๊ฒƒ์€ ์ •๋ง ์Šฌํ”ˆ ์ผ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์ œ๊ฐ€ ํŒŒ์ผ ๊ฒ€์ƒ‰์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์„ ํ˜ธํ•˜๋Š” ๋ฐฉ์‹์€ ์•„๋‹ˆ์ง€๋งŒ ์ ์–ด๋„ ์‹ค์ œ๋กœ๋Š” ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
https://github.com/microsoft/microsoft-ui-xaml/issues/1465#issuecomment -575987737

@duke7553 ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

@jtorjo ๊ธฐ๊บผ์ด ๋„์™€์ฃผ์„ธ์š”!

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

Windows์˜ UI์— ๋Œ€ํ•œ ๋น„์ „๊ณผ ๋กœ๋“œ๋งต์ด ์žˆ์ง€๋งŒ ์Šคํƒ์˜ ๋งจ ์œ„์— ์žˆ๊ณ  ํ•ด๋‹น ํ‘œ๋ฉด ๋ ˆ์ด์–ด ์•„๋ž˜์— ์žˆ๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•œ ๋น„์ „์ด ์—†์Šต๋‹ˆ๋‹ค.
WinUI๊ฐ€ ์ข‹์•„ ๋ณด์ด๋‚˜์š”? ์˜ˆ
์ง€๊ธˆ(2020๋…„ 1์›”) Windows์—์„œ ํ˜„๋Œ€์ ์ด๊ณ  ๋ฉ‹์ง„ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ์š”
UWP๋กœ ์ข‹์€ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‚˜์š”? ์ง€์˜ฅ NO!

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

๋ฐฉ์— ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ฝ”๋ผ๋ฆฌ. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ƒˆ Windows ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๊ณ  ๋ฌป๋Š”๋‹ค๋ฉด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? 2020๋…„ 1์›” ์ •๋‹ต์€ ์—†๋‹ค! ๋‹ต๋ณ€์— UWP๋ฅผ ๋„ฃ์œผ๋ ค๊ณ  ํ•˜๋ฉด ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. (๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•œ ๋Œ“๊ธ€, ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ, YouTube ๋™์˜์ƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? UWP๋กœ ํ›Œ๋ฅญํ•œ ์•ฑ์„ ๋งŒ๋“ค์—ˆ๊ณ  ๊ทธ ๊ณผ์ •์ด ๋งˆ์Œ์— ๋“ค์—ˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ์•„๋ฌด๋„ UWP๋กœ ์•ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ธ€์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ง ๊ทธ๋Œ€๋กœ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์— ์กด์žฌํ•˜์ง€ ์•Š์Œ). WPF? ํ˜„๋Œ€์ ์ธ ์ปจํŠธ๋กค์ด ์—†์Œ - ์ฃฝ์€ ๊ธฐ์ˆ , ์ข‹์€ ์ƒ๊ฐ์€ ์•„๋‹™๋‹ˆ๋‹ค(๊ทธ๋ž˜๋„ UWP๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค). ์ •์งํ•œ ๋Œ€๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ „์ž๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค. ์•„๋งˆ๋„? VSCode๋Š” ๊ทธ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ข‹์€ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์ด ์›ํ•˜๋Š” ์–ด๋–ค ์–ธ์–ด๋กœ๋“  ์œˆ๋„์šฐ์šฉ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด ์•„์ด๋””์–ด๋Š” ๊ทธ์ € ๋ง‰์—ฐํ•œ ์ƒ๊ฐ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์ด ์›ํ•˜๋Š” ์–ด๋–ค ์–ธ์–ด๋กœ๋„ ์•„์ฃผ ๋‚˜์œ UWP ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ด‡์€ ์ ์–ด๋„ ํ•˜๋‚˜์˜ ํ›Œ๋ฅญํ•œ ๋ฐฉ๋ฒ•์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ „์— ์“ฐ๋ ˆ๋“œ์—์„œ ์–ธ๊ธ‰ํ•œ ๋„ค์ด๋น„? ์™„์ „ํžˆ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. Visual Studio - Juggernaut ์ž์ฒด(UI)๋Š” ๊ด€๋ฆฌ ์ฝ”๋“œ์ธ WPF๋กœ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ํ™˜์ƒ์ ์ž…๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋„ ์ด ์Šˆํผ๋ฆฌ์˜จ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ OK ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†์ง€๋งŒ. ๋‚˜๋Š” OneNote, ๋‚ ์”จ, ์‹ฌ์ง€์–ด ์‹œ์ž‘/๊ฒ€์ƒ‰/์ž‘์—… ํ‘œ์‹œ์ค„์—์„œ ๋งค์ผ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋™์ž‘์„ ๋ด…๋‹ˆ๋‹ค. ๋ถˆ์•ˆ์ •ํ•œ ๋Š๋‚Œ์ด ๋“ค๊ณ  ๋•Œ๋•Œ๋กœ ์ดˆ์ ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํ’๋ถ€ํ•˜๊ณ  ์ค‘์š”ํ•œ ์ฃผ์ œ์ž…๋‹ˆ๋‹ค. WinUI์™€ ๋งค์šฐ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ ์Šฌํ”„๊ฒŒ๋„ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ธฐ์— ๋” ์ข‹์€ ๊ณณ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์€ Microsoft์—์„œ ๊ณต๊ฐœ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Windows์˜ UI์— ๋Œ€ํ•œ ๋น„์ „๊ณผ ๋กœ๋“œ๋งต์ด ์žˆ์ง€๋งŒ ์Šคํƒ์˜ ๋งจ ์œ„์— ์žˆ๊ณ  ํ•ด๋‹น ํ‘œ๋ฉด ๋ ˆ์ด์–ด ์•„๋ž˜์— ์žˆ๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•œ ๋น„์ „์ด ์—†์Šต๋‹ˆ๋‹ค.
WinUI๊ฐ€ ์ข‹์•„ ๋ณด์ด๋‚˜์š”? ์˜ˆ

๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค!

์ง€๊ธˆ(2020๋…„ 1์›”) Windows์—์„œ ํ˜„๋Œ€์ ์ด๊ณ  ๋ฉ‹์ง„ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ์š”

๋‚˜๋Š” ๋‹น์‹ ์ด ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค - ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์€ ์ •๋ง ์ •๋ง ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์‚ฌ์†Œํ•œ ์ผ์€ ํ•˜๊ธฐ๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ์–ด๋ ต์Šต๋‹ˆ๋‹ค(๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์‚ด์•„์žˆ๋Š” ์ฆ๊ฑฐ์ด์ง€๋งŒ, ๋‹น์‹ ์€ ํ™•์‹คํžˆ ๊ฐ•์ฒ ์˜ ์‹ ๊ฒฝ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค):

  • UI ์ „๋ฉด์—๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
  • "๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ" ์ „๋ฉด์—์„œ๋Š” ์ƒํ™ฉ์ด ๋งค์šฐ ์–ด๋‘ก์Šต๋‹ˆ๋‹ค.
  • UWP์—์„œ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ StorageFile/Folder API๋กœ ์ธํ•ด ์™„์ „ํžˆ ์ง€์˜ฅ์ž…๋‹ˆ๋‹ค.

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

๋™์˜. ์‹ค์ œ๋กœ WPF์—์„œ SystemSounds.Beep.Play() ์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ ์‚ฌ์šด๋“œ๋ฅผ ์žฌ์ƒํ•˜๋Š” ๊ฒƒ์€ UWP์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ "ํ›Œ๋ฅญํ•œ" WinRT ์ œํ•œ์œผ๋กœ ์ธํ•ด UWP์—๋Š” ์‚ฌ์šด๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ win32์ธ DLL์—์„œ ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋ชจ๋“  ์ ์ ˆํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ UWP๋กœ ์ด์‹ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์•ฑ๋„ ์—†์Šต๋‹ˆ๋‹ค.

UWP์˜ "์‚ฌ์šด๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ"์—์„œ naudio๋Š” UWP์—์„œ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์„ ์„ ๋‹คํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ, ๊ทธ๊ฒƒ์€ ํ‰ํ‰ํ•˜๊ฒŒ ๋–จ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ํฌํฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋งŽ์€ #ifdef๋ฅผ ์ œ๊ฑฐํ–ˆ์œผ๋ฉฐ ์ด์ œ ํ•„์š”์— ๋งž๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์•ฑ์„ MS Store์— ๊ฒŒ์‹œํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ณ  ์‹ถ์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด ์ƒ๊ฐ์— ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋‹จ๊ณ„๋Š” MS๊ฐ€

  1. ๋งˆ์ง€๋ง‰์œผ๋กœ Windows Desktop FIRST์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค . Hololens, Xbox ๋“ฑ๊ณผ ๊ฐ™์€ ์ˆ˜์ฒœ ๊ฐœ์˜ ํ”Œ๋žซํผ์„ ์ฐพ์ง€ ๋งˆ์„ธ์š”. ๋ฌผ๋ก  ์ด๋Ÿฌํ•œ ํ”Œ๋žซํผ์„ ์œ„ํ•ด ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ ๋น„์œจ์€ ๋ฏธ๋ฏธํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ชจ๋“  ์ œํ•œ API๋ฅผ ํ˜„๋ช…ํ•˜๊ฒŒ ์ œ๊ฑฐ ํ•˜์—ฌ ์‚ฌ๋žŒ๋“ค์ด ์‹ค์ œ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ UWP๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  3. BroadSystemAccess๋ฅผ ์š”์ฒญํ•˜๋ฉด ์ œ๊ณตํ•˜๊ณ  ๋„ˆ๋ฌด ๋ณดํ˜ธํ•˜์ง€
  4. broadSystemAccess๋ฅผ ์š”์ฒญํ•˜๋ฉด ๋ชจ๋“  HDD์— ๋Œ€ํ•ด System.IO๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  5. MS ์Šคํ† ์–ด ์™ธ๋ถ€์— ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค (+ "์ƒˆ ์ธ์ฆ์„œ" ๋ฌธ์ œ ์ˆ˜์ •).

๋ฐฉ์— ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ฝ”๋ผ๋ฆฌ. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ƒˆ Windows ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๊ณ  ๋ฌป๋Š”๋‹ค๋ฉด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? 2020๋…„ 1์›” ์ •๋‹ต์€ ์—†๋‹ค! ๋‹ต๋ณ€์— UWP๋ฅผ ๋„ฃ์œผ๋ ค๊ณ  ํ•˜๋ฉด ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. (๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•œ ๋Œ“๊ธ€, ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ, YouTube ๋™์˜์ƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? UWP๋กœ ํ›Œ๋ฅญํ•œ ์•ฑ์„ ๋งŒ๋“ค์—ˆ๊ณ  ๊ทธ ๊ณผ์ •์ด ๋งˆ์Œ์— ๋“ค์—ˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ์•„๋ฌด๋„ UWP๋กœ ์•ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ธ€์„ ์“ฐ์ง€ ์•Š๊ณ  ๋ง ๊ทธ๋Œ€๋กœ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์— ์กด์žฌํ•˜์ง€ ์•Š์Œ). WPF? ํ˜„๋Œ€์ ์ธ ์ปจํŠธ๋กค ์—†์Œ -

์˜ˆ, ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. UWP์—์„œ ์ข‹์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ 0์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ์Šค์Šค๋กœ ํ•ด๊ฒฐํ•˜๊ณ  ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฃฝ์€ ๊ธฐ์ˆ , ์ข‹์€ ์ƒ๊ฐ์€ ์•„๋‹™๋‹ˆ๋‹ค(๊ทธ๋ž˜๋„ UWP๋ณด๋‹ค๋Š” ๋‚ซ์Šต๋‹ˆ๋‹ค). ์ •์งํ•œ ๋Œ€๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ „์ž๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค. ์•„๋งˆ๋„? VSCode๋Š” ๊ทธ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ข‹์€ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค.

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

๋‚ด ์•ฑ์„ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด win2d๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— UWP๋กœ ์ด๋™ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. UI์™€ ๊ด€๋ จํ•˜์—ฌ UWP์—์„œ ๋ˆ„๋ฝ๋œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ํฌํŒ…์„ ์‹œ์ž‘ํ•  ๋‹น์‹œ ์ปจํŠธ๋กค์— ๋Œ€ํ•ด Cursor ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ธฐ๋ณธ ๋ฐฉ๋ฒ•์ด ์—†์Œ). ํ•˜์ง€๋งŒ ๋Œ€์ฒด๋กœ ์ €๋Š” ํ•ญ์ƒ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. .

์ „์— ์“ฐ๋ ˆ๋“œ์—์„œ ์–ธ๊ธ‰ํ•œ ๋„ค์ด๋น„? ์™„์ „ํžˆ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. Visual Studio - Juggernaut ์ž์ฒด(UI)๋Š” ๊ด€๋ฆฌ ์ฝ”๋“œ์ธ WPF๋กœ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ํ™˜์ƒ์ ์ž…๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์กฐ์ฐจ ํ•  ์ˆ˜ ์—†๋Š” ๋™์•ˆ

๋ถ„๋ช…ํžˆ, ๋‚˜๋Š” ํ‰์ƒ UWP์—์„œ Visual Studio๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. UI์— ๋Œ€ํ•ด ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Visual Studio์˜ UI์™€ ์ผ์น˜ํ•˜๊ณ  ๋Šฅ๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚˜๋จธ์ง€๋Š” ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ...

์ด๊ฒƒ์€ ํ’๋ถ€ํ•˜๊ณ  ์ค‘์š”ํ•œ ์ฃผ์ œ์ž…๋‹ˆ๋‹ค. WinUI์™€ ๋งค์šฐ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ ์Šฌํ”„๊ฒŒ๋„ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ธฐ์— ๋” ์ข‹์€ ๊ณณ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์€ Microsoft์—์„œ ๊ณต๊ฐœ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

100% ๋™์˜ํ•ฉ๋‹ˆ๋‹ค!

์ง€๊ธˆ(2020๋…„ 1์›”) Windows์—์„œ ํ˜„๋Œ€์ ์ด๊ณ  ๋ฉ‹์ง„ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ์š”

๋‚˜๋Š” ๋‹น์‹ ์ด ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค - ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์€ ์ •๋ง ์ •๋ง ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์‚ฌ์†Œํ•œ ์ผ์€ ํ•˜๊ธฐ๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ์–ด๋ ต์Šต๋‹ˆ๋‹ค(๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์‚ด์•„์žˆ๋Š” ์ฆ๊ฑฐ์ด์ง€๋งŒ, ๋‹น์‹ ์€ ํ™•์‹คํžˆ ๊ฐ•์ฒ ์˜ ์‹ ๊ฒฝ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค):

  • UI ์ „๋ฉด์—๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
  • "๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ" ์ „๋ฉด์—์„œ๋Š” ์ƒํ™ฉ์ด ๋งค์šฐ ์–ด๋‘ก์Šต๋‹ˆ๋‹ค.
  • UWP์—์„œ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ StorageFile/Folder API๋กœ ์ธํ•ด ์™„์ „ํžˆ ์ง€์˜ฅ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์—์„œ ๊ตฌํƒ€๋‹นํ•œ ๊ฐœ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. Windows ๋ฐ์Šคํฌํƒ‘์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์ตœ์‹  ์•ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์‹ค์ œ๋กœ ๋„ˆ๋ฌด ์–ด๋ ต์Šต๋‹ˆ๋‹ค! ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” ํ›Œ๋ฅญํ•œ ๋ฐฉ๋ฒ•์ด ์ ์–ด๋„ ํ•˜๋‚˜๋Š” ์žˆ์–ด์•ผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? Windows์—์„œ Microsoft Store๋กœ ์ด๋™ํ•˜์—ฌ ์•ฑ ๋ฒ”์ฃผ๋ฅผ ์Šคํฌ๋กคํ•˜๋ ค๊ณ  ํ•˜๋ฉด UWP๋กœ ๋งŒ๋“  ๊ดœ์ฐฎ์€ ์•ฑ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Btw ๋‚ด๊ฐ€ ์ง์ ‘ ํ™•์ธํ•  ์ˆ˜๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ...
image

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

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๋„ˆ๋ฌด ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Window10์€ ์ธํ„ฐ๋„ท, ์•ˆ๋“œ๋กœ์ด๋“œ ๋‹ค์Œ์œผ๋กœ ํฐ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค!!! ๊ทธ๋Ÿฌ๋‚˜ ์•„๋ฌด๋„ ๊ทธ ๋ชฉ์ ์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋„๊ตฌ๋กœ ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค! ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ณด์‹ญ์‹œ์˜ค. UWP๊ฐ€ ์žˆ๋Š” Windows์šฉ๋ณด๋‹ค 3๊ฐ€์ง€ ์šด์˜ ์ฒด์ œ์šฉ Electron ์•ฑ์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค!

์šฐ์ˆ˜ํ•œ ๋„๊ตฌ๋ฅผ ์š”๊ตฌํ•˜๋Š” Windows ๋ฐ์Šคํฌํ†ฑ ์•ฑ์„ ๊ตฌ์ถ•ํ•˜๋ ค๋Š” ๊ตฌํƒ€๋‹นํ•œ ์šฐ๋ฆฌ์—๊ฒŒ ๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋‹น๋‹นํ•˜๊ฒŒ ์˜ˆ๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ์—๊ฒŒ ์žˆ๋Š” ๊ฒƒ์€ Microsoft์˜ ๋ฌด์ „ ๋ฌด์Œ๋ฟ์ž…๋‹ˆ๋‹ค. ์•ฑ์ด Holo Lens, Windows Phone ๋˜๋Š” Xbox์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋™ํ™”๋ฅผ ๋ˆ„๊ฐ€ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ? ์•„๋ฌด๋„. 5๋…„ ํ›„ UWP์— ๋Œ€ํ•ด ์•ฝ์†๋œ ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•˜๋Š” ์ƒ์šฉ ์•ฑ์ด ์—†์Šต๋‹ˆ๋‹ค. (๋Œ€๋ถ€๋ถ„ ํ•ด๋‹น ํ”Œ๋žซํผ์ด ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค). ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ƒ๊ฐํ•ด๋ณด์„ธ์š”! ์šฐ๋ฆฌ์—๊ฒŒ ์ผ์–ด๋‚œ ๊ฐ€์žฅ ์ข‹์€ ์ผ์€ WinUI๊ฐ€ ์ด์ „ win32๋กœ ๋‹ค์‹œ ํฌํŒ…๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €๋Š” Windows ๋ฐ์Šคํฌํƒ‘์„ ์ข‹์•„ํ•˜๊ณ  WinForms ๋ฐ WPF์—์„œ C#์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜ ๊ฐ™์€ ๋ฉ์ฒญํ•œ ๋†ˆ์—๊ฒŒ๋Š” ์‰ฝ๊ณ  ํ›Œ๋ฅญํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์ €๋Š” WinUI์˜ ์ด ๋ฉ‹์ง„ ์ปจํŠธ๋กค์„ ๋ณด๊ณ  ์นจ์ด ๊ณ ์ด์ง€๋งŒ, ๋ˆ„๊ตฐ๊ฐ€๋Š” ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ํฐ ๊ทธ๋ฆผ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ผ๋ถ€ MS ๋น„์ฆˆ๋‹ˆ์Šค ์ž„์›์˜ ์‹œ์žฅ ์—ด๋ง์ด ์•„๋‹ˆ๋ผ ์‹ค์šฉ์ ์ธ ๊ธฐ์ˆ  ๋ฆฌ๋”์‹ญ์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚˜๋Š” ์ด ํ† ๋ก ์— ์กฐ๊ธˆ ๋Šฆ์—ˆ์ง€๋งŒ ์–ด์จŒ๋“  ๋‚˜์˜ ๊ฒธ์†ํ•œ ์˜๊ฒฌ์„ ๋งํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.
์ƒ์šฉ UWP ์•ฑ์— ๊ด€ํ•˜์—ฌ: ๋‚ด ๋งˆ์Œ์— ๋– ์˜ค๋ฅด๋Š” ๊ฒƒ์€ Adobe XD์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ UWP์ด๋ฉฐ ๋งค์šฐ ์„ฑ์ˆ™ํ•˜๊ณ  ์™„์„ฑ๋œ ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค.
13๋…„ ๋™์•ˆ .Net ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•˜๋ฉด์„œ UWP์— ๋Œ€ํ•œ ์ œ ๊ฒฝํ—˜: ๋ฌผ๋ก  ์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๊ธฐ ์ข‹๊ณ  ์„ฑ๋Šฅ์ด ์ข‹์€ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ... ๊ทธ๊ฒƒ์€ ์•„๋ฆ„๋‹ค์šด ๊ฒฝํ—˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์˜๋ฃŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •์— ์žˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์™€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ด๋ฏธ ์–ธ๊ธ‰ํ•œ ๋งŽ์€ ๊ฒƒ๋“ค๋„ ์šฐ๋ฆฌ๊ฐ€ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฏฟ์„ ์ˆ˜ ์—†๋Š” ๋Š๋ฆฐ ํŒŒ์ผ API
  • ๋งค์šฐ ๋Š๋ฆฐ "F5 ์‹œ๊ฐ„". ๋”ฐ๋ผ์„œ ๋””๋ฒ„๊ทธ๋กœ ์ด๋™ํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œ/์‹œ์ž‘ํ•˜์—ฌ ๋ฌด์–ธ๊ฐ€๋ฅผ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์€ WPF์—์„œ๋ณด๋‹ค ์ตœ์†Œ 10๋ฐฐ ๋Š๋ฆฝ๋‹ˆ๋‹ค. (Surface Book 2์—์„œ ์•ฝ 2๋ถ„ ์ •๋„)
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒŒ๋“œ๋ฐ•์Šค์— ์˜ํ•ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
    ์ด๊ฒƒ๋“ค์€ ๋‚ด ๋จธ๋ฆฌ ๊ผญ๋Œ€๊ธฐ์—์„œ ๋‚˜์˜จ ๊ฒƒ๋“ค์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ XamlIslands๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์„ ๋•Œ ์šฐ๋ฆฌ๋Š” WPF ์ฐฝ์—์„œ ์ „์ฒด UWP UI๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ๋กœ ์„ ํƒํ–ˆ์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ ๋’ค์— ๋น ๋ฅธ .net ์ฝ”์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด ์ •๋„ ๊ทœ๋ชจ๋กœ XamlIsland๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  github ๋ฌธ์ œ/PR์—์„œ ๊ฒฐ๋ก ์„ ๋‚ด๋ฆผ). ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ธฐ์ˆ ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ๋งค์šฐ ์‹ฌ๊ฐํ•œ ์ œํ•œ ์‚ฌํ•ญ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ํ›จ์”ฌ ๋” ๊ธธ์–ด์ง‘๋‹ˆ๋‹ค. Xaml์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์žƒ์Šต๋‹ˆ๋‹ค. ์‹ฌ๊ฐํ•œ WPF/XamlIsland/UWP ์•ฑ์šฉ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์•„ํŒŒ์š”. ๋“ฑ...
    ์š”์•ฝํ•˜์ž๋ฉด ์•„๋ฆ„๋‹ค์šด UWP ์•ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋ฌผ๋ก  ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋„ˆ๋ฌด ๋น„์ƒ์‚ฐ์ ์ด๊ณ  ๋Š๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค.
    ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์šฐ๋ฆฌ๋Š” "UWP" ํ”„๋ก ํŠธ์—”๋“œ์™€ .net ์ฝ”์–ด(๋˜๋Š” .net 5 ;-) ) ๋ฐฑ์—”๋“œ๋ฅผ ํŠธ๋ฆญ ์—†์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” WinUI 3์˜ ์ถœ์‹œ์™€ ์„ฑ์ˆ™์„ ๊ธฐ์˜๊ฒŒ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@jasonwurzel ์•„์ฃผ ์ข‹์€ ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค.

  • ํŒŒ์ผ API๋Š” ๋Š๋ฆฌ์ง€๋งŒ ๊ทธ๋™์•ˆ @duke7553 ์€ #1465(๋Œ“๊ธ€)์— ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.
    ๊ทธ๊ฒƒ์€ ์‚ฌ์‹ค์ด์ง€๋งŒ ๊ทธ๋•Œ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์•Œ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งํ•  ๊ฒƒ๋„ ์—†์ด, ๋‹จ์ง€ ๋น ๋ฅธ ํŒŒ์ผ I/O๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ๋ฏธ์นœ ์ง“์ž…๋‹ˆ๋‹ค...
  • F5 ์‹œ๊ฐ„์€ ์†๋„๋ฅผ ๋Šฆ์ถ”๊ณ  ๋ช‡ ๊ฐ€์ง€ ๊ฐœ์„  ์‚ฌํ•ญ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
  • xaml ์„ฌ ๋ฃจํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฐ˜๋Œ€๋กœ ์ผ๋ฐ˜ UWP ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์–ด๋–ค ํ•œ๊ณ„์— ๋ถ€๋”ชํ˜”๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์ง€๊ธˆ ๋ช‡ ๊ฐ€์ง€ ์•ฑ์„ ์ž‘์—… ์ค‘์ด๋ฉฐ Win32 ํ”„๋กœ์„ธ์Šค๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ์ œํ•œ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์•ฑ์„ ๋งŒ๋“œ๋Š” ๋ฐ ํ•ญ์ƒ ์ด์ƒ์ ์ธ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
    ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋‚œ ์žฅ์• ๋ฌผ์˜ ์ดํ•ฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜์‹ฌํ•  ์—ฌ์ง€ ์—†์ด ์ผ๋ถ€๋Š” ์™ธ๋ถ€ ํ”„๋กœ์„ธ์Šค๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠน๋ณ„ํ•œ ์ˆœ์„œ ์—†์ด:
  • ์‚ฝ์ž…๋œ ๋ฏธ๋””์–ด์˜ CD ํŠธ๋ ˆ์ด/USB ํฌํŠธ ๊ด€์ฐฐ
  • ๋กœ์ปฌ PC์˜ ์–ด๋Š ๊ณณ์—์„œ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ด€์ฐฐํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์•ฑ/Windows๊ฐ€ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ธฐ์–ตํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • broadFileSystemAccess ์š”๊ตฌ, ์˜ˆ์™ธ ๋ฐœ์ƒ, ํ•ด๋‹น Windows ์„ค์ • ํŽ˜์ด์ง€ ์—ด๊ธฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์˜ ํ† ๊ธ€์„ ํ™•์ธํ•˜๊ณ , ์•ฑ์ด ๊ฒฝ๊ณ  ์—†์ด ๋‹ซํžˆ๊ณ , ๊ฐœ์ž…ํ•  ๊ธฐํšŒ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋™์ผํ•œ ๋„๋ฉ”์ธ: ์‚ฌ์šฉ์ž๊ฐ€ Windows ์Šคํƒ€์ผ์˜ FolderPicker๋ฅผ ์—ด์ง€ ์•Š๊ณ ๋„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ญ๊ณผ ๊ณ„๋ž€ ๋ฌธ์ œ: ๋„ˆ๊ฒŸ ํŒจํ‚ค์ง€์˜ ๊ฐ€์šฉ์„ฑ/์ง€์›(๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์—ฌ์ „ํžˆ WPF๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ž‘์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์„ ์ฐพ๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ๋น ๋ฆ„)
  • ์„ค์น˜ ์œ„์น˜ ์ œ์–ด

@AndrewPawlowski GitHub์˜ ์˜คํ”ˆ ์†Œ์Šค์ธ ์†Œ์ˆ˜๋ฅผ ํฌํ•จํ•˜์—ฌ ํ˜„๋Œ€์ ์ด๊ณ  ๋ณด๊ธฐ ์ข‹์€ ํ›Œ๋ฅญํ•œ UWP ์•ฑ์ด ๋งŽ์ด ์žˆ์„ ๋•Œ ๋‹น์‹ ์ด ๋งํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์— ๋†€๋ž์Šต๋‹ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ์ง€ ๋ชฐ๋ผ์„œ ์•ฑ ๋งŒ๋“ค๊ธฐ๋ฅผ ํฌ๊ธฐํ–ˆ๋‹ค๊ณ  ํ•ด์„œ ํ”Œ๋žซํผ์ด ์‹คํŒจํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์•ฑ์ด ์‹คํŒจํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฃผ๋ณ€์„ ๋‘˜๋Ÿฌ๋ณด๋ฉด ์•ฑ์ด ์ดˆ์ ์„ ์žƒ์„ ๋•Œ ์†Œ๋ฆฌ๋ฅผ ๊ณ„์† ์žฌ์ƒํ•˜๋Š” ์•ฑ์„ ํฌํ•จํ•˜์—ฌ ์ •๋ง ์ข‹์€ ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์—ด์‹ฌํžˆ ์ผํ•œ ๊ฐœ๋ฐœ์ž๋ฅผ ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋ง์€ ์•„๋‹ˆ์ง€๋งŒ ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ๋‹จ์ˆœํ•œ "๋ฉ”๋ชจ์žฅ๊ณผ ๊ฐ™์€" ์•ฑ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ UI / ๋น„๋””์˜ค ํŽธ์ง‘ / ์‚ฌ์šด๋“œ ํŽธ์ง‘ / ๋””์Šคํฌ์— ๋งŽ์€ ํ•ญ๋ชฉ ๋กœ๋“œ/์ €์žฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋งค์šฐ ๋ณต์žกํ•œ ์•ฑ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ) ์ถœ์‹œ(๊ทธ๋ฆฌ๊ณ  fullTrust API์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ์ง€ ๋งˆ์‹ญ์‹œ์˜ค). 50-100K ์ด์ƒ์˜ ์ฝ”๋“œ ์ค„ ์•ฑ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•ฑ์ด ์ดˆ์ ์„ ์žƒ์„ ๋•Œ ์†Œ๋ฆฌ๋ฅผ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค - ์•„๋ฌด๋„ ๋‹น์‹ ์ด ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋งํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์ง€๊ธˆ๋ณด๋‹ค ํ›จ์”ฌ ์‰ฌ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

UWP ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์„ ์ฆ๊ธฐ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋Š๋ƒ๊ณ  ๋ฌป์ž ๋Œ€๋‹ต์€ ๋งŽ๊ณ  ์ตœ๊ทผ ๋ช‡ ๋‹ฌ๊ฐ„ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค๋กœ๋ถ€ํ„ฐ ์•ฑ์— ๋Œ€ํ•œ ๋„์›€์„ ์š”์ฒญํ•˜๋Š” ์š”์ฒญ์„ ๋งŽ์ด ๋ฐ›์•„ ํ”Œ๋žซํผ์ด ๋ถ„๋ช…ํžˆ ๊ด€์‹ฌ์„ ์–ป๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‹ค์ œ๋กœ ๋‚ด ์•ฑ์„ UWP๋กœ ์ด์‹ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋งค์šฐ ์šธํ‰๋ถˆํ‰ํ•œ ๊ธธ์ด์—ˆ๊ณ , ์ง€๊ธˆ๋„ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ๋˜ํ•œ UWP ์•ฑ ๊ฐœ๋ฐœ์— ๋Œ€ํ•ด ๊ธ€์„ ์“ฐ๋Š” ์‚ฌ๋žŒ์ด ์—†๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋ฉฐ ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๊ฑฐ์ง“์ด๋ผ๊ณ  ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. @rudyhuyn , Martin Zikmund๋Š” UWP์— ๋Œ€ํ•ด ๊ธ€์„ ์“ฐ๋Š” ๊ฐœ๋ฐœ์ž์˜ ๋‘ ๊ฐ€์ง€ ์˜ˆ์ผ ๋ฟ์ด์ง€๋งŒ ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ „์ ์œผ๋กœ ๋™์˜ํ•˜์ง€๋งŒ wpf์— ๋Œ€ํ•ด ์“ฐ๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ๋น„๊ตํ•˜์‹ญ์‹œ์˜ค. ๋ฌผ ํ•œ ๋ฐฉ์šธ์ž…๋‹ˆ๋‹ค.

"c# wpf"(3701๊ฐœ ๊ฒฐ๊ณผ) ๋Œ€ "c# uwp"(337๊ฐœ ๊ฒฐ๊ณผ)์™€ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ github ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.
๊ฐ™์€ ๊ฒƒ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  "์ปค๋ฐ‹ ์ˆ˜ > 500"์œผ๋กœ ํ•„ํ„ฐ๋งํ•˜๋ฉด(์ด๋Š” ์ผ์ข…์˜ '์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ์ ํŠธ์— ๊ฐ‡ํ˜€ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค) -> ์–ด๋‘์ปด์ปดํ•œ ํฌ๋ฏธํ•œ ๊ทธ๋ฆผ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Š” 2020๋…„์— ๋ณด๊ธฐ ์ข‹์€ ์•ฑ๊ณผ ์ตœ์‹  UWP ์•ฑ์„ ๋ชจ๋‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ท€ํ•˜์˜ ์ง„์ˆ  ์ค‘ ๋งŽ์€ ๋ถ€๋ถ„์ด ์ •ํ™•ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ๊ฑฐ์˜ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. UWP ๋ณต์žกํ•œ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ํ–‰๋ณตํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ -> ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ๊ณผ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ‰๋‹ˆ๋‹ค.

  • xaml ์„ฌ ๋ฃจํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฐ˜๋Œ€๋กœ ์ผ๋ฐ˜ UWP ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์–ด๋–ค ํ•œ๊ณ„์— ๋ถ€๋”ชํ˜”๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์ง€๊ธˆ ๋ช‡ ๊ฐ€์ง€ ์•ฑ์„ ์ž‘์—… ์ค‘์ด๋ฉฐ Win32 ํ”„๋กœ์„ธ์Šค๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋“  ์ œํ•œ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์•ฑ์„ ๋งŒ๋“œ๋Š” ๋ฐ ํ•ญ์ƒ ์ด์ƒ์ ์ธ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ 9์›”์— Xaml Islands๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ win2d๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. MS์˜ ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ ์‹œ์ ์—์„œ ์ €๋Š” ์•ฑ์„ UWP๋กœ ์ด์‹ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋” ์ตœ๊ทผ์˜ ํ…Œ์ŠคํŠธ์— ๊ด€ํ•ด์„œ๋Š” - https://github.com/microsoft/Win2D/issues/731

  • ๋งค์šฐ ๋Š๋ฆฐ "F5 ์‹œ๊ฐ„". ๋”ฐ๋ผ์„œ ๋””๋ฒ„๊ทธ๋กœ ์ด๋™ํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œ/์‹œ์ž‘ํ•˜์—ฌ ๋ฌด์–ธ๊ฐ€๋ฅผ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์€ WPF์—์„œ๋ณด๋‹ค ์ตœ์†Œ 10๋ฐฐ ๋Š๋ฆฝ๋‹ˆ๋‹ค. (Surface Book 2์—์„œ ์•ฝ 2๋ถ„ ์ •๋„)

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

  • ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒŒ๋“œ๋ฐ•์Šค์— ์˜ํ•ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

์˜ค ์˜ˆ :)

  • ํŒŒ์ผ API๋Š” ๋Š๋ฆฌ์ง€๋งŒ ๊ทธ๋™์•ˆ @duke7553 ์€ #1465(๋Œ“๊ธ€)์— ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

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

Google ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์ฐจ๋ฆฌ๊ธฐ๊นŒ์ง€ ๋ช‡ ๊ฐœ์›”์ด ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@jasonwurzel

๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์šฐ๋ฆฌ๋Š” "UWP" ํ”„๋ก ํŠธ์—”๋“œ์™€ .net ์ฝ”์–ด(๋˜๋Š” .net 5 ;-) ) ๋ฐฑ์—”๋“œ๋ฅผ ํŠธ๋ฆญ ์—†์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” WinUI 3์˜ ์ถœ์‹œ์™€ ์„ฑ์ˆ™์„ ๊ธฐ์˜๊ฒŒ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

MS๊ฐ€ .NET 5๊ฐ€ ์ถœ์‹œ๋˜๋ฉด UWP ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. "ํŠธ๋ฆญ"์ด๋‚˜ .NET Core 3.x์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ .NET 5 ๋ฐœํ‘œ ๊ฒŒ์‹œ๋ฌผ์ž…๋‹ˆ๋‹ค. https://devblogs.microsoft.com/dotnet/introducing-net-5/

๋„ค ์ œ๊ฐ€ ์–ธ๊ธ‰ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค๐Ÿ‘

_"ํ˜„์‹ค๊ณผ ์™„์ „ํžˆ ๋™๋–จ์–ด์ง„ "_์˜ "์™„์ „ํžˆ"๋ผ๋Š” ๋‹จ์–ด๋Š” ๋ถˆ๊ณตํ‰ํ•˜๊ณ  ์ •ํ™•ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์™„์ „ํžˆ ๋™ ๋–จ์–ด์ ธ ์žˆ์—ˆ๋‹ค๋ฉด WinUI ํŒ€์€ UWP์—์„œ WinUI๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์ž‘์—…์„ ํ•˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ WinUI ํŒ€์€ UWP/WinRT์˜ ๋‹ค๋ฅธ ๋ถ€์„œ๋ณด๋‹ค โ€‹โ€‹๋” ๋งŽ์€ ์—ฐ๋ฝ์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ˜„ ์‹œ์ ์—์„œ ๋ช‡๋ช‡ ํŒ€๋“ค ์‚ฌ์ด์— ์–ด๋Š ์ •๋„์˜ ์ ‘์ด‰ ๋ถˆ๊ฐ์ฆ์ด ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์ด ์ •ํ™•ํ•œ ์„ค๋ช…์ด ์•„๋‹๊นŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

list-with-columns GUI์˜ ์ค‘์š”์„ฑ

WinUI ํŒ€์ด UWP/WinRT์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํŒ€ ์ค‘์—์„œ ๊ฐ€์žฅ ์‹ค์ ์ด ์ข‹์€ ํŒ€์ด์ง€๋งŒ WinUI์˜ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์—์„œ ์—ฌ์ „ํžˆ ๋ช‡ ๊ฐ€์ง€ ์‹ค์ˆ˜๊ฐ€ ์žˆ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์—ด์ด ํฌํ•จ ๋œ DataGrid )๋Š” ๋ชจ๋“  ๊ณ ๊ฐ์ด ๋งค์ผ ์‚ฌ์šฉํ•˜๋Š” ํ•„์ˆ˜ ์ฃผ์š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค(์˜ˆ: Windows ํƒ์ƒ‰๊ธฐ ๋ฐ Spotify ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ๊ธฐํƒ€ ์˜ˆ). WinRT๊ฐ€ ์‹œ์ž‘๋œ ์ด๋ž˜๋กœ ์—ด์ด ํฌํ•จ๋œ ๋ชฉ๋ก GUI์— ๋Œ€ํ•œ ๊ณต์‹ ์ง€์› ์ด ์—†๋Š”์ง€ ! ๋‚˜๋Š” ์ด ์ƒํ™ฉ์ด ์ถฉ๊ฒฉ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋Ÿฐ ์ด์œ ๋กœ UWP๋Š” ์˜ค๋Š˜๋‚ ์—๋„ ์—ฌ์ „ํžˆ ์•ŒํŒŒ ๋ฒ„์ „์ด๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค(์•„์ง ๊ธฐ๋Šฅ์ด ์™„์ „ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ง„์ •ํ•œ ๋ฒ ํƒ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค). ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ UWP๋ฅผ ์ง„์ง€ํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์ด์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— Windows Mobile์ด ์ทจ์†Œ๋œ ๊ฒƒ์€ ๋†€๋ผ์šด ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค.

WinUI์˜ DataGrid ๊ณต์‹ ๋ฒ„์ „์€ ์ง€๋‚œ 8๋…„ ๋™์•ˆ ์ง€์—ฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. DataGrid๋Š” WinRT 1.0์ด ์ถœ์‹œ๋˜์—ˆ์„ ๋•Œ ๊ธฐํ•œ์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค. Microsoft๊ฐ€ ์ƒˆ ์‹œ์Šคํ…œ์„ ์‹œ์ž‘ํ•ด์„œ๋Š” ์•ˆ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(Nokia ๋“ฑ์— ๋Œ€ํ•œ ์ด์ „ ๋ฉ”์‹œ์ง€์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ). ๊ธฐ๋ณธ์ด ๋ˆ„๋ฝ๋œ 8๋…„, ์ง€์—ฐ๋œ 8๋…„, ์ด์ œ WinUI ํŒ€์€ DataGrid๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•จ์œผ๋กœ์จ ๋”์šฑ ์ง€์—ฐ๋œ DataGrid๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ UWP๋ฅผ ์ง„์ง€ํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์ด๊ณ  ์‹ ๋ขฐํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

C++/CX๋Š” ์ตœ๊ทผ์— C++/WinRT๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ "ํ˜„์‹ค๊ณผ ๋™๋–จ์–ด์ง„" ์ƒํƒœ์˜ ๋˜ ๋‹ค๋ฅธ ์˜ˆ์ž…๋‹ˆ๋‹ค.
๋ถ„๋ช…ํžˆ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ œ์ •์‹ ์ด ์•„๋‹Œ ๋ฐฉ์‹์œผ๋กœ ์ž‘์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. "์ œ์ •์‹ "์ด๋ผ๋Š” ์šฉ์–ด๋Š” ๋‹จ์ˆœํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจํ˜ธํ•œ ๋ณต์žกํ•œ ํ‘๋งˆ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
C++/CX๋Š” ์ตœ๊ทผ์— C++/WinRT๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. C++/WinRT๋Š” ์ •์  ๋””์ŠคํŒจ์น˜๋ฅผ โ€‹โ€‹ํ†ตํ•œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์œ„ํ•ด ์†Œ์œ„ _"๊ธฐ๋ฌ˜ํ•˜๊ฒŒ ๋ฐ˜๋ณต๋˜๋Š” ํ…œํ”Œ๋ฆฟ ํŒจํ„ด"_์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจํ˜ธํ•œ ๋ณต์žกํ•œ ํ‘๋งˆ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ œ์ •์‹ ์ด ์•„๋‹Œ ๋””์ž์ธ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ง ๋”์ฐํ•œ ๋””์ž์ธ์ž…๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ CLR/C#์€ ์ด๋ฏธ ์ˆ˜์‹ญ ๋…„ ์ „์— ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋Š”๋ฐ ์™œ WinRT ํŒ€์€ ์ˆ˜์‹ญ ๋…„ ์ „์— ์ด๋ฏธ ํ•ด๊ฒฐ๋œ ์•„์ฃผ ์˜ค๋ž˜๋˜๊ณ  ์›์‹œ์ ์ธ ์ฃผ์ œ๋กœ ์—ฌ์ „ํžˆ ์–ด์ง€๋Ÿฝํžˆ๊ณ  ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? WinRT ํŒ€์ด ๋ฐ”ํ€ด๋ฅผ ์žฌ๋ฐœ๋ช…ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‚˜๋Š” C++/WinRT์˜ ์ƒˆ๋กœ์šด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ฐพ์•„๋ณด์•˜๊ณ  ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋‚˜์˜ ์ธ์ƒ์€ ๊ทธ๊ฒƒ์ด ๋งค์šฐ ๋‚ฎ์€ ํ’ˆ์งˆ์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ WinRT ํŒ€์€ ๊ทธ๊ฒƒ์„ ํ›Œ๋ฅญํ•˜๊ฒŒ ๋ฐœ์ „๋œ ๊ฒƒ์œผ๋กœ ๋ด…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "ํ˜„์‹ค๊ณผ ๋™๋–จ์–ด์ง„"์ด ์ •ํ™•ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

UWP ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์•„์ง ์•ŒํŒŒ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

@jtorjo ์™€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ UWP ํŒŒ์ผ ์‹œ์Šคํ…œ API์˜ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์€ ๊ธฐ๋Šฅ์ด ์™„์ „ํ•œ ๋ฒ ํƒ€ ๋ฒ„์ „์œผ๋กœ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ˆ˜์ค€ ์ดํ•˜์ž…๋‹ˆ๋‹ค. UWP FS API๊ฐ€ ์—ฌ์ „ํžˆ ์•ŒํŒŒ ๋ฒ„์ „์ธ ๋˜ ๋‹ค๋ฅธ ์ด์œ ๋Š” ํด๋”๋ฅผ ์ด๋™ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 25๋…„ ์ „ Windows 95์—๋Š” ํด๋”๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์—ˆ์ง€๋งŒ UWP์—๋Š” ์—ฌ์ „ํžˆ ์ด ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฉด์—์„œ Windows 95๋Š” UWP๋ณด๋‹ค ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฉด์—์„œ WPF ๋ฐ .NET Framework๋Š” ์—ฌ์ „ํžˆ UWP๋ณด๋‹ค ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค. Microsoft๋Š” ์•ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ UWP๋ฅผ ์ง„์ง€ํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์ผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์ง€๋งŒ Microsoft๊ฐ€ UWP๋ฅผ ์•ŒํŒŒ์—์„œ ๋ฒ ํƒ€ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Š” ๋งค์šฐ ๋น„ํ•ฉ๋ฆฌ์ (๋˜๋Š” "ํ˜„์‹ค๊ณผ ๋™๋–จ์–ด์ง„" ์ƒํƒœ)์ด์—ˆ์Šต๋‹ˆ๋‹ค.

Windows๋Š” "App Dev"์™€ ๊ฐ™์€ ๋ชจ๋ฐ”์ผ์ด ๊ธ‰์„ฑ์žฅํ•˜๋Š” ์‹œ์žฅ์ด๊ณ  ๋ณด์•ˆ๊ณผ ๋ฐฐํ„ฐ๋ฆฌ ์ˆ˜๋ช…์ด ํ•ต์‹ฌ์ด๋ผ๋Š” ์ ์—์„œ ํ˜„๋Œ€์ ์ด๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋“ค์€ ์‹œ์žฅ์˜ ํž˜์œผ๋กœ ์ธํ•ด ๋ชจ๋ฐ”์ผ ์‹œ์žฅ์—์„œ ๋ฐ€๋ ค๋‚ฌ์Šต๋‹ˆ๋‹ค. Hololens ๋ฐ Xbox์™€ ๊ฐ™์€ ์žฅ์น˜๋Š” Win32 ๋ ˆ๊ฑฐ์‹œ ์ง€์›์„ ์ œ๊ฑฐํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ๋” ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ๋” ์„ฑ๋Šฅ์ด ์ข‹์€ OS ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

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

๋”ฐ๋ผ์„œ Microsoft๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ํ˜ผ ๊ฒ€์ƒ‰ ํ›„ UI ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ตœ์‹  ์•ฑ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

WinUI 3.0์€ ์–ธ์–ด ํ”„๋กœ์ ์…˜, ์ตœ์‹  ์ฝ”๋”ฉ ํ‘œ์ค€ ๋ฐ ๋ชจ๋ฐ”์ผ ์นœ์ˆ™ํ•จ์˜ ์ด์ ์„ ์ œ๊ณตํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ตœ์‹  API์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ๋‘ ์„ธ๊ณ„ ๋ชจ๋‘์—์„œ ์ตœ๊ณ ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์•ฑ์ด ๋œ ์•ˆ์ „ํ•˜์ง€๋งŒ ๋” ๊ฐ•๋ ฅํ•œ Win32 ๋ฐ .NET ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  Win32 ์•ก์„ธ์Šค์— ์˜์กดํ•˜๋ฉด ์‹คํ–‰๋˜๋Š” ํ”Œ๋žซํผ์ด ์ œํ•œ๋˜๊ณ  ํ–ฅํ›„ ์‹œ์žฅ์ด ์–ด๋””๋กœ ์ด๋™ํ• ์ง€ ๋ˆ„๊ฐ€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?


๋‚˜๋Š” ๋˜‘๊ฐ™์€ ์˜ค๋ž˜๋œ ๊ทผ๊ฑฐ์™€ ๋ถˆ๋งŒ์„ ์ฐธ์ž‘ํ•˜๋Š” ๋Œ€์‹  ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ž์œผ๋กœ ๋ฌด์—‡์„ ์›ํ•˜๋Š”์ง€ ๋ฌป๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ๋น„๋‚œํ•˜๊ฑฐ๋‚˜ ๋น„๋‚œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@mdtauk ์€ ๋‹ค์Œ

๊ทธ๋“ค์€ ์‹œ์žฅ์˜ ํž˜์œผ๋กœ ์ธํ•ด ๋ชจ๋ฐ”์ผ ์‹œ์žฅ์—์„œ ๋ฐ€๋ ค๋‚ฌ์Šต๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ UWP/WinRT ์ง์›์€ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ฌ๋Š”์ง€ _๊ธฐ๋ถ„_์ข‹๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ ์„ค๋ช…์„ ๋งค์šฐ ๋ฏฟ๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์„ค๋ช…์„ ๋ฏฟ์ง€ ์•Š๋Š”๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ UWP๊ฐ€ ์‹คํŒจํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  1. ์ž˜๋ชป๋œ ๊ด€๋ฆฌ์™€
  2. UWP๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์•˜๊ณ  ์—ฌ์ „ํžˆ ํ™ฉ๊ธˆ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์ธ์ƒ ๋•Œ๋ฌธ์— ์•ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ฑ์˜ UWP ๋ฒ„์ „์„ ์˜๊ตฌ์ ์œผ๋กœ ์—ฐ๊ธฐํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๊ณ 
  3. ๋น„์ƒ์‚ฐ์ ์ธ ์˜ค๋ž˜๋œ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ๊ธฐ์ˆ ์˜ ๊ณผ๋„ํ•œ ์‚ฌ์šฉ ๋ฐ
  4. ๋Œ€๋‹ค์ˆ˜์˜ ์•ฑ ๊ฐœ๋ฐœ์ž์˜ ์‹ ๋ขฐ๋ฅผ ์–ป์ง€ ๋ชปํ•˜๊ณ ,
  5. Java ๋Œ€์‹  JavaScript ์‚ฌ์šฉ์„ ์ด‰์ง„ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด UWP๋ฅผ ๋ฐ”๋ณด์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๋งŒ๋“  ๊ฒƒ์€ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ฐจ์ด์ ์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์•ˆํƒ€๊น๊ฒŒ๋„ ๊ด€๋ฆฌ ๋ถ€์‹ค์ด UWP ์‹คํŒจ์˜ ์ฃผ์š” ์›์ธ์ž„์„ ๊ณ ๋ คํ•  ๋•Œ UWP๊ฐ€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์€ ์•„์ด๋Ÿฌ๋‹ˆํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด "๊ด€๋ฆฌ๋˜์ง€ ์•Š๋Š”"์ด๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ์‹ค์ œ๋กœ ์‹คํŒจ์˜ ์›์ธ์„ ์š”์•ฝํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์†Œ์Šค ์ฝ”๋“œ์™€ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ์˜ ๋ถ€์‹ค ๊ด€๋ฆฌ์ž…๋‹ˆ๋‹ค.

@jtorjo ๋Š” ๋‹ค์Œ

๋„ค์ดํ‹ฐ๋ธŒ, ".net ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ปดํŒŒ์ผ"์ด๋ผ๋Š” ๋งฅ๋ฝ์—์„œ ๋‚˜๋Š” ์ข‹์€ ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋™์˜ํ•œ๋‹ค. ์ฐจ์ด์ ์€ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ์˜ ์ž๋™ ์ƒ์„ฑ๊ณผ ์ˆ˜๋™ ์ƒ์„ฑ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๊ฐ€ ์ปดํŒŒ์ผ๋Ÿฌ๋‚˜ ๋„๊ตฌ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ์ข‹์€ ์ผ์ด์ง€๋งŒ ๋„ค์ดํ‹ฐ๋ธŒ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ์ƒ์‚ฐ์„ฑ, ๊ธฐ๋Šฅ ์ง‘ํ•ฉ ๋ฐ ์•ˆ์ •์„ฑ์ด ํฌ๊ฒŒ ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค.

WPF ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„๊ณผ WinUI ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์„ ๋น„๊ตํ•˜๋ฉด WinUI๊ฐ€ WPF๋ณด๋‹ค ๊ฐœ๋ฐœํ•˜๊ธฐ ์‰ฝ๊ณ  ๋นจ๋ผ์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  WPF์˜ ๊ฐœ๋ฐœ์€ ํ›จ์”ฌ ๋” ๋นจ๋ž์Šต๋‹ˆ๋‹ค(ํ›จ์”ฌ ๋” ๋‚˜์€ ์ƒ์‚ฐ์„ฑ). WPF์šฉ์œผ๋กœ _์ด๋ฏธ_ ๋งŒ๋“  ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ Microsoft๋Š” ์ด์ „์˜ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ๊ธฐ์ˆ ์„ ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์—ฌ ์ด์ „์˜ ๊ด€์ ๊ณผ ๋ชจ์ˆœ๋˜๊ณ  ์ƒ์‚ฐ์„ฑ์ด ์ €ํ•˜๋˜์–ด ์•ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ UWP ์•ฑ ๊ฐœ๋ฐœ์„ ์˜๊ตฌ์ ์œผ๋กœ ์—ฐ๊ธฐํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ณผ๊ฑฐ์˜ ์‹ค์ˆ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ง€๊ธˆ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? UWP ์‹คํŒจ๋กœ ์ด์–ด์ง„ ๋™์ผํ•œ ์‹ค์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋‚˜์œ ์ผ์ด ์—†์—ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๊ณ„์†ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์—ฌ๊ธฐ์„œ๋Š” DataGrid ๋ฅผ ์˜ˆ๋กœ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. DataGrid๋ฅผ ๋” ์ง€์—ฐ์‹œํ‚ค๋Š” ๋Œ€์‹  DataGrid ์ƒˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์“ธ๋ชจ์—†๋Š” ์ˆ˜๋™ ์žฌ์ž‘์„ฑ/๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ์˜ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•˜์—ฌ DataGrid๋ฅผ 8๋…„ ์ด์ƒ ์ง€์—ฐ์‹œํ‚ค์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ตœ์ข… ์‚ฌ์šฉ์ž๋Š” DataGrid๊ฐ€ ๊ด€๋ฆฌ๋˜๋Š” ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ๋˜๋Š” ๋น„๊ด€๋ฆฌ๋˜๋Š” ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ์‹ ๊ฒฝ์„ ๋œ ์“ธ ์ˆ˜ ์—†์—ˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ์šฉ์–ด๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ›จ์”ฌ ๋” ์ค‘์š”ํ•˜๊ณ  ํ•ฉ๋ฆฌ์ ์ธ ๊ฒƒ์€ ๊ด€๋ฆฌ ์ฝ”๋“œ๋ฅผ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. DataGrid์˜ ๊ธฐ๋Šฅ/ํŠน์ง•. UWP์—์„œ ์ˆ˜๋™์œผ๋กœ ์ž‘์„ฑ๋œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ์˜ ์–‘์€ ์ด๋ฏธ ์žฌ์•™์ ์ธ ์ƒํ™ฉ์ธ๋ฐ, Win16/32 ๋ฐ COM์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋” ๋งŽ์€ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ์™€ ํ›จ์”ฌ ๋” ์˜ค๋ž˜๋œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ƒํ™ฉ์„ ๋”์šฑ ์•…ํ™”์‹œํ‚ค๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

UWP ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์•„์ง ์•ŒํŒŒ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
@jtorjo ์™€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ UWP ํŒŒ์ผ ์‹œ์Šคํ…œ API์˜ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์€ ๊ธฐ๋Šฅ์ด ์™„์ „ํ•œ ๋ฒ ํƒ€ ๋ฒ„์ „์œผ๋กœ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ˆ˜์ค€ ์ดํ•˜์ž…๋‹ˆ๋‹ค. [...]

๋‚˜๋Š” ์ด๊ฒƒ์„ ์ „์— ์–ธ๊ธ‰ํ–ˆ๊ณ  ๋‹ค์‹œ ์–ธ๊ธ‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค - StorageFolder/StorageFile API๋Š” ๋‚ด๊ฐ€ ๋ณธ ์ตœ์•…์˜ API ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” 21์„ธ๊ธฐ์— ์ ‘์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. "์•„ ์ œ๋ฐœ, ์ด๊ฒƒ๊ณผ ์ €๊ฒƒ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ›Œ๋ฅญํ•œ FuturesAccessList์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?"๋ผ๊ณ  ๋ฌป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

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

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

์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค...

[....] ๋ฌผ๋ก  Win32 ์•ก์„ธ์Šค์— ์˜์กดํ•˜๋ฉด ์‹คํ–‰๋  ํ”Œ๋žซํผ์ด ์ œํ•œ๋˜๊ณ  ํ–ฅํ›„ ์‹œ์žฅ์ด ์–ด๋””๋กœ ์ด๋™ํ• ์ง€ ๋ˆ„๊ฐ€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? [...]

์ „์ ์œผ๋กœ ๋™์˜ํ•˜์ง€๋งŒ, ๋„ˆ๋ฌด ๋ฏธ๋ž˜์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ๋„ ๊ณ ํ†ต์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค...
์ฆ‰, ์ฒ˜์Œ๋ถ€ํ„ฐ Win32 ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์‹ํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ "๊ธˆ์ง€"์ด๋ฏ€๋กœ ๋ฏธ๋ž˜๋Š” ๊ณ ์‚ฌํ•˜๊ณ  ํ˜„์žฌ๋„ ์—†์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ Win32 ์ฝ”๋“œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ์œผ๋กœ์จ ๋‹ค๋ฅธ (์˜ˆ์ •๋œ) ํ”Œ๋žซํผ์œผ๋กœ ์ด์‹ํ•  ์ˆ˜ ์—†์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ ์–ด๋„ ์˜ค๋Š˜์„ ์œ„ํ•œ ์ฝ”๋“œ๋Š” ๊ฐ–๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด์ผ, ๊ทธ๊ฒƒ์€ ๋˜ ๋‹ค๋ฅธ ๋‚ ์ด ๋  ๊ฒƒ์ด๊ณ , ์šฐ๋ฆฌ๊ฐ€ ๊ฑฐ๊ธฐ์— ๋„์ฐฉํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ •๋ง๋กœ ์›ํ•  ๋•Œ ์šฐ๋ฆฌ์˜ ์ฝ”๋“œ๋ฅผ ์ด์‹ํ•  ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์„ ํƒ์— ์ฃผ์–ด์ง„ ์ผ์„ ํ•˜๊ณ  ์œ„ํ—˜์„ ์ดํ•ดํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜‘๊ฐ™์€ ์˜ค๋ž˜๋œ ๊ทผ๊ฑฐ์™€ ๋ถˆ๋งŒ์„ ์ฐธ์ž‘ํ•˜๋Š” ๋Œ€์‹  ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ž์œผ๋กœ ๋ฌด์—‡์„ ์›ํ•˜๋Š”์ง€ ๋ฌป๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ๋น„๋‚œํ•˜๊ฑฐ๋‚˜ ๋น„๋‚œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ๋˜‘๊ฐ™์€ ์˜ค๋ž˜๋œ ๊ทผ๊ฑฐ์™€ ๋ถˆ๋งŒ์„ ์ฐธ์ž‘ํ•˜๋Š” ๋Œ€์‹  ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์•ž์œผ๋กœ ๋ฌด์—‡์„ ์›ํ•˜๋Š”์ง€ ๋ฌป๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ๋น„๋‚œํ•˜๊ฑฐ๋‚˜ ๋น„๋‚œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

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

๋˜ํ•œ ์ด์ œ ์šฐ๋ฆฌ๋Š” Win32/.NET ์•ฑ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ WinUI 3.0๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์—๋งŒ WinRT์˜€๋‹ค๊ณ  ์—ฌ์ „ํžˆ ๋น„ํŒํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๐Ÿ˜

@jtorjo

์šฐ๋ฆฌ๋Š” 21์„ธ๊ธฐ์— ์ ‘์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. "์•„ ์ œ๋ฐœ, ์ด๊ฒƒ๊ณผ ์ €๊ฒƒ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ›Œ๋ฅญํ•œ FuturesAccessList์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?"๋ผ๊ณ  ๋ฌป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

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

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

UX ํฌ์ธํŠธ์—์„œ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ์ตœ์•…์˜ ์ƒํ™ฉ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋””์Šคํฌ ์ž‘์—…์— ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์žŠ์–ด๋ฒ„๋ ค ์•ฑ์ด ๋” ์ด์ƒ ์‘๋‹ตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— UI ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ๊ทผ๊ฑฐ์˜€๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. await๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์–ด๋Š ์‹œ์ ์—์„œ UI ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จ ํ•ด์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์ ์–ด๋„ ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ async wait๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค).


@mdtauk์ด ์ •ํ™•ํžˆ ์ง€์ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ํ† ๋ก  ์ œ๋ชฉ์ด ๋‹ค์†Œ ๋ถ€์ •์ ์ธ ๊ฒƒ์€ ์‚ฌ์‹ค์ด๋ฉฐ, ๊ฐ™์€ ์˜ค๋ž˜๋œ ๋ถˆ๋งŒ์„ ๋ฐ˜๋ณตํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ๊ทธ๋Ÿฌํ•œ ํ† ๋ก ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์•„์ด๋””์–ด๋ฅผ ๋„์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

https://opensource.microsoft.com/codeofconduct/

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

๋”ฐ๋ผ์„œ WPF ์•ฑ์— ๋น„ํ•ด ํฐ ๋‹จ์ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ•œ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค - ๋‹ค๋ฅธ ๊ฒƒ์€

  1. ์„ค์น˜ ์‹œ ์ด๋ฏธ ๋ฌป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์‚ฌ์šฉ์ž๊ฐ€ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด์ง€ ์•Š๋”๋ผ๋„ Windows๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ "์ด ์•ฑ์€ ํŒŒ์ผ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค์‹œ ํ‘œ์‹œํ•˜๊ณ  ์‚ฌ์šฉ์ž๋Š” ์˜ˆ/์•„๋‹ˆ์š”๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์œผ๋กœ ์™„์ „ํžˆ ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š” ๊ฒƒ๊ณผ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋‹ค.

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

UX ์‹œ์ ์—์„œ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ์ตœ์•…์˜ ์ƒํ™ฉ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์žŠ์–ด๋ฒ„๋ ค์„œ ์•ฑ์ด ๋” ์ด์ƒ ์‘๋‹ตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— UI ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ๊ทผ๊ฑฐ๊ฐ€ ์•„๋‹๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ ํฌ๊ธฐ๋Š” ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋งˆ์ง€๋ง‰ ์•ก์„ธ์Šค ๋‚ ์งœ/๋งˆ์ง€๋ง‰ ์“ฐ๊ธฐ ๋‚ ์งœ์™€ ๋™์ผ) - ๋งค์šฐ ์ค‘์š”ํ•˜๋ฏ€๋กœ ํŒŒ์ผ์„ ์ฟผ๋ฆฌํ•  ๋•Œ ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@mdtauk์ด ์ •ํ™•ํžˆ ์ง€์ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ํ† ๋ก  ์ œ๋ชฉ์ด ๋‹ค์†Œ ๋ถ€์ •์ ์ธ ๊ฒƒ์€ ์‚ฌ์‹ค์ด๋ฉฐ, ๊ฐ™์€ ์˜ค๋ž˜๋œ ๋ถˆ๋งŒ์„ ๋ฐ˜๋ณตํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ๊ทธ๋Ÿฌํ•œ ํ† ๋ก ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์•„์ด๋””์–ด๋ฅผ ๋„์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ๋“ค์ด ์™„์ „ํžˆ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค.

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

์ด ํ† ๋ก ์€ ์‹ค์ œ๋กœ ์ด๋Ÿฌํ•œ ์งˆ๋ฌธ์„ ํ•  ์žฅ์†Œ๊ฐ€ ์žˆ๊ณ  WinRT๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ํ”ผ๋“œ๋ฐฑ์„ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ์žฅ์†Œ๊ฐ€ ์žˆ์—ˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์—์„œ ์ผ์–ด๋‚˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์•ฝ๊ฐ„ ๋ถ€์ •์ ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ•œ ๋ฒˆ, WinRT ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•  ๋‹ค๋ฅธ ๊ณณ์ด ์žˆ์—ˆ๋‹ค๋ฉด ์ด๋Ÿฐ ์ผ์€ ์ผ์–ด๋‚˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด์ œ ์šฐ๋ฆฌ๋Š” Win32/.NET ์•ฑ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ WinUI 3.0๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์—๋งŒ WinRT์˜€๋‹ค๊ณ  ์—ฌ์ „ํžˆ ๋น„ํŒํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๐Ÿ˜

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

๋”ฐ๋ผ์„œ WPF ์•ฑ์— ๋น„ํ•ด ํฐ ๋‹จ์ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ•œ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค - ๋‹ค๋ฅธ ๊ฒƒ์€

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

  1. ์„ค์น˜ ์‹œ ์ด๋ฏธ ๋ฌป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

"broadFileSystemAccess" ๊ธฐ๋Šฅ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ์ œ ์ƒ๊ฐ์—๋Š” ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ •๋‹นํ•œ ์ด์œ ๊ฐ€ ์žˆ๋Š” ์•ฑ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ( @kmgallahan์ด ์ด๋ฏธ ์ง€์ ํ–ˆ๋“ฏ์ด)
๋งค์ผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์•ฑ์„ ์‚ดํŽด๋ณด์„ธ์š”. ๊ทธ ์ค‘ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ํŒŒ์ผ์ด ํ•ญ์ƒ ๋ชจ๋“  ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์•„๋งˆ ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ง€๋Š” ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ์ดˆ๊ธฐ ์˜๊ฒฌ์—์„œ ๋งํ–ˆ๋“ฏ์ด :

์‚ฌ์šฉ์ž๊ฐ€ ์œ„์™€ ๊ฐ™์ด ๋งŒ์กฑํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? ์•„๋‹ˆ์š”. ์‹ค์ œ๋กœ๋Š” 79.8%๊ฐ€ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋‚ด AppCenter ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฅผ ๋’ท๋ฐ›์นจํ•จ).

๋‚˜๋Š” ์•„๋งˆ๋„ ์‚ฌ์šฉ์ž๋“ค์ด ์ด๊ฒƒ์„ ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ๊ทธ๋“ค์ด ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ณด์•ˆ ์„ค์ •์ด๋ผ๋Š” ์‚ฌ์‹ค ์™ธ์—).

๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๋ชจ๋“  ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ๋ก€๋ฅผ ์•Œ์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๊ธฐ๊บผ์ด ๋“ฃ์Šต๋‹ˆ๋‹ค. ํ•˜๋ฃจ์˜ ๋์—์„œ ์šฐ๋ฆฌ๋Š” ์‹ธ์šฐ๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์— ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์„œ๋กœ์˜ ๊ด€์ ์„ ํ’๋ถ€ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค(์ž˜ํ•˜๋ฉด) ๐Ÿ˜…

ํŽธ์ง‘ํ•˜๋‹ค:

ํŒŒ์ผ ํฌ๊ธฐ๋Š” ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋งˆ์ง€๋ง‰ ์•ก์„ธ์Šค ๋‚ ์งœ/๋งˆ์ง€๋ง‰ ์“ฐ๊ธฐ ๋‚ ์งœ์™€ ๋™์ผ) - ๋งค์šฐ ์ค‘์š”ํ•˜๋ฏ€๋กœ ํŒŒ์ผ์„ ์ฟผ๋ฆฌํ•  ๋•Œ ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” ํ™•์‹คํžˆ ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ์šฐ๋ฆฌ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋‹ค์†Œ ๋ถˆํŽธํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์ด ํ† ๋ก ์€ ์‹ค์ œ๋กœ ์ด๋Ÿฌํ•œ ์งˆ๋ฌธ์„ ํ•  ์žฅ์†Œ๊ฐ€ ์žˆ๊ณ  WinRT๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ํ”ผ๋“œ๋ฐฑ์„ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ์žฅ์†Œ๊ฐ€ ์žˆ์—ˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์—์„œ ์ผ์–ด๋‚˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ณต์‹์ ์œผ๋กœ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๋Š” (๋‚ด ์ƒ๊ฐ์—) ๊ทธ๊ฒƒ์„ ์œ„ํ•œ ๊ฒƒ์ด์ง€๋งŒ ์˜ˆ, ์–ธ์  ๊ฐ€๋Š” ์•ฝ๊ฐ„ ๋ฐ˜์‘์ด ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๊ฐ€ ๊ฐœ์„ ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณผ ๋•Œ, ๊ทธ๋“ค์€ ์ด๋ฏธ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์•ฝ๊ฐ„์˜ ๋ณ€๊ฒฝ์„ ๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@Felix-Dev

์—ฌ๊ธฐ .NET 5 ๋ฐœํ‘œ ๊ฒŒ์‹œ๋ฌผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋งํฌํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์ด ๋ถ€๋ถ„์ด ํฅ๋ฏธ๋กญ๊ณ  ๊ธ์ •์ ์ธ ์†Œ์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

"์ž๋ฐ” ์ƒํ˜ธ ์šด์šฉ์„ฑ์€ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Rich Lander๊ฐ€ ์–‘๋ฐฉํ–ฅ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ํ™•์ธํ•˜๋Š” ํ•ด๋‹น ์›น ํŽ˜์ด์ง€์˜ ๋์— ์žˆ๋Š” ์ฃผ์„์— ์•ฝ๊ฐ„์˜ Java ํ† ๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ด๊ฒƒ์„ Microsoft๊ฐ€ ํ˜„์‹ค์— ๋‹ค์‹œ ์ ‘๊ทผํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ธ์ •์ ์ธ ์‹ ํ˜ธ๋กœ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” Java ํŒฌ์ด ์•„๋‹ˆ์ง€๋งŒ(C# ์„ ํ˜ธ) Java ์ƒํ˜ธ ์šด์šฉ์„ฑ์ด ๋งค์šฐ ์œ ์šฉํ•˜๋ฉฐ ์ฒ˜์Œ๋ถ€ํ„ฐ UWP/WinRT์˜ ์ดˆ์ ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค. UWP/WinRT๊ฐ€ ํˆฌ๋ฐ•ํ•œ ์ด์ „ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ(C++/CX, Win16/32, COM) ๋Œ€์‹  Java ๋ฐ C#(๊ด€๋ฆฌ ์ฝ”๋“œ)์— ์ตœ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  UWP๊ฐ€ JavaScript์™€ Java์˜ ๋ชฉ์ ์„ ํ˜ผ๋™ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ทธ๋ ‡๋‹ค๋ฉด UWP๋Š” ๋” ๋งŽ์€ ์•ฑ ๊ฐœ๋ฐœ์ž๋ฅผ ๋Œ์–ด๋“ค์˜€์„ ๊ฒƒ์ด๊ณ  Windows Mobile์€ ์˜ค๋Š˜๋‚ ์—๋„ ์‚ด์•„์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ข‹๋“  ์‹ซ๋“  ์ผ์–ด๋‚˜์„œ ์ƒํ™ฉ์˜ ํ˜„์‹ค์„ ์ธ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์žฅ ๋ฆฌ๋”๋Š” Java ์•ฑ ๊ฐœ๋ฐœ์— ์ค‘์ ์„ ๋‘” Android์ž…๋‹ˆ๋‹ค. Java ๋ฐ C#์€ ๊ด€๋ฆฌ ์ฝ”๋“œ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Microsoft๋Š” ๊ด€๋ฆฌ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ž…์žฅ์„ ๋’ค์ง‘์—ˆ์„ ๋•Œ ๋ง‰๋Œ€ํ•œ ๋น„์šฉ์ด ๋“œ๋Š” ์‹ค์ˆ˜๋ฅผ ์ €์งˆ๋ €์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ž๋ฐ”๋ฅผ ๋ณ„๋กœ ์ข‹์•„ํ•˜์ง€ ์•Š์ง€๋งŒ, ์•ˆ๋“œ๋กœ์ด๋“œ์˜ ์ž๋ฐ” ๊ธฐ์ˆ ์ด ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ 16๋น„ํŠธ ๋Œ€ 32๋น„ํŠธ ํฌ์ธํ„ฐ์™€ ๊ฐ™์€ ๊ณ ๋Œ€ Win16 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ WebView2๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ํˆฌ๋ฐ•ํ•œ ์˜›๋‚  ๋ฐฉ์‹๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ๋‹ค๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. , ๋ฐ HRESULT ๋Œ€์‹  ํ˜„๋Œ€์ ์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋“ฑ. WebView2๋Š” LPCWSTR ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  L ๋Š” 16๋น„ํŠธ๊ฐ€ ์•„๋‹Œ 32๋น„ํŠธ ํฌ์ธํ„ฐ๋ฅผ ์˜๋ฏธํ•˜๋Š” "๊ธด ํฌ์ธํ„ฐ"๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Win16์˜ "์งง์€" ํฌ์ธํ„ฐ. W ๋Š” 8๋น„ํŠธ ASCII/ANSI ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ์œ ๋‹ˆ์ฝ”๋“œ(UTF-16)๋ฅผ ์˜๋ฏธํ•˜๋Š” "์™€์ด๋“œ ๋ฌธ์ž"๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋น„ํ•ด Android์˜ Java ์‚ฌ์šฉ์€ Microsoft์˜ ์ผ๋ถ€ ๋ถ€์„œ์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์ „๋ฌธ์ ์ด๊ณ  ํ˜„๋Œ€์ ์ด๋ฉฐ ์‹ ๋ขฐ๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ธ์ •์ ์ธ ์ธก๋ฉด์—์„œ Microsoft๊ฐ€ Java๋ฅผ ์ง€์›ํ•  ๊ฒƒ์ด๋ผ๋Š” ์†Œ์‹์„ ๋“ฃ๊ฒŒ ๋œ ๊ฒƒ์€ ์ •๋ง ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค(๊ฐœ์ธ์ ์œผ๋กœ๋Š” Java๋ณด๋‹ค C#์„ ์„ ํ˜ธํ•˜์ง€๋งŒ). Android ์•ฑ ๊ฐœ๋ฐœ์ž๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” Java interop์ด ์ถœ์‹œ๋˜๋Š” ์ฆ‰์‹œ Windows์— ๋Œ€ํ•œ ๊ด€์‹ฌ์„ ๋†’์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด์ œ ์šฐ๋ฆฌ๋Š” Win32/.NET ์•ฑ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ WinUI 3.0๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์—๋งŒ WinRT์˜€๋‹ค๊ณ  ์—ฌ์ „ํžˆ ๋น„ํŒํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๐Ÿ˜

  1. ๋ฏธ๋ž˜๋Š” ๋ฐ์Šต๋‹ˆ๋‹ค. ์ €๋Š” WinUI์—์„œ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๊ณผ๊ฑฐ๋Š” ๋งค์šฐ ์•”์šธํ–ˆ์Šต๋‹ˆ๋‹ค. 9์–ต ๊ฐœ์˜ ์žฅ์น˜๊ฐ€ ์žˆ๋Š” ํ”Œ๋žซํผ์—์„œ UWP์˜ ๋‚ฎ์€ ๋ณด๊ธ‰๋ฅ ์€ ๋ฐฉ์–ดํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํŽธ์ง‘: ๊ณผ๊ฑฐ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์žฅ์†Œ์ด๋ฏ€๋กœ ํ† ๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋‚ด ์ƒ๊ฐ์— ํ˜„์žฌ ๋Š” ์ด ์Šค๋ ˆ๋“œ์˜ ์š”์ ์ด๋ฉฐ ๋‹ค๋ฃจ์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์— 1~1.5๋…„์ด ์†Œ์š”๋˜๋Š” ๊ฐ„๋‹จํ•œ ์•ฑ์„ ์˜ค๋Š˜ ์‹œ์ž‘ํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ์–ด๋–ค ์†”์งํ•œ ์กฐ์–ธ์„ ํ•ด์ค„ ์ˆ˜ ์žˆ์„๊นŒ์š”? ๋‚ด ๋Œ€๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. WinUI๋กœ ์‹คํ—˜ํ•˜๊ณ , dotnet Core์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ , ์‹ค์ œ๋กœ ์•ฑ ๋งŒ๋“ค๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด WinUI3.0์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์„ธ์š”. ์–ด์จŒ๋“  UWP๋ฅผ ์•ฑ์—์„œ ๋ฒ„๋ฆฌ๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์— UWP๋ฅผ ์‹ ๊ฒฝ ์“ฐ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ํ˜„์žฌ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์€ ์‚ฌ์†Œํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๊ฒฐ์ •์€ ์˜ค๋Š˜ ๋‚ด๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š” ์ผ์€ UWP ๋ฐ ์ตœ์‹  UI๊ฐ€ win32๋กœ ํ™•์žฅ๋˜์ง€ ์•Š๊ณ  ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ UWP๊ฐ€ ์Šคํƒ์—์„œ ๋ฆฌํŒฉํ„ฐ๋ง๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. dotnet standard 2์™€ dotnet core 3, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์™œ UWP๋ฅผ ๋‹ค๋ฃจ๋ ค๊ณ  ํ• ๊นŒ์š”?

UWP์— ์†Œ๊ฐœ๋œ ์ƒŒ๋“œ๋ฐ•์‹ฑ ๋ฐ ๊ธฐํƒ€ ์ข‹์€ ์•„์ด๋””์–ด: ์ข‹์€ ์•„์ด๋””์–ด์˜€์ง€๋งŒ ํ›จ์”ฌ ๋” ์ž˜ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ๋Œ์•„์™€์„œ ์ƒŒ๋“œ๋ฐ•์Šค์— OPT-IN ๋˜๋Š” UWP์™€ ์œ ์‚ฌํ•œ ์ƒํƒœ ๊ด€๋ฆฌ์— OPT-IN์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋กœ์„œ ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์ง€๋งŒ UWP์—์„œ๋Š” ํ”Œ๋žซํผ์ด ํฌํ•จํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋กœ ์œ„ํ˜‘์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ •์งํ•œ ์กฐ์–ธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ธฐ๋‹ค๋ฆฌ๋‹ค?

@AndrewPawlowski UWP์™€ ์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค๋ฉด WinUI 3์ด ์ถœ์‹œ๋  ๋•Œ๊นŒ์ง€ MSIX ํŒจํ‚ค์ง€ WPF ์•ฑ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ์„ ํƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ Windows 10 ๋…์  API๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ์ตœ์‹  ์„ค์น˜/์ œ๊ฑฐ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ณ , ์ผ๋ฐ˜์ ์œผ๋กœ Windows 10 API ํ‘œ๋ฉด์—์„œ ์›ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ฆ‰, Windows 10 Shell API ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ). ์ผ๋ถ€ WinRT API๋Š” ๊ณผ๊ฑฐ์˜ win32 ๋ฐฉ์‹์— ๋น„ํ•ด ์ž‘์—…ํ•˜๊ธฐ๊ฐ€ ์ •๋ง ์ฆ๊ฒ๊ณ  ์ผ๋ถ€ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์ˆœ์ˆ˜ UWP๊ฐ€ ์•„๋‹Œ DesktopBridge์—์„œ ๊ฐ€์žฅ ์ž˜ ์ˆ˜ํ–‰๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์‚ฌ๋ก€: ๋กœ๊ทธ์ธ ์‹œ ์ž๋™ ์‹œ์ž‘์„ ์œ„ํ•œ ์•ฑ ๋“ฑ๋ก, UWP์™€ DesktopBridge ๋™์ž‘ ๋น„๊ต๋Š” ์ด ๊ฒŒ์‹œ๋ฌผ ์„ ์ฐธ์กฐ ๋‘ ๋ฒˆ ๋ฌป์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ฒ˜์Œ์—๋Š” ์•ฑ์—์„œ ํ† ๊ธ€ํ•œ ๋‹ค์Œ ํ™•์ธ์„ ์š”์ฒญํ•˜๋Š” ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ). ์•ฑ์—์„œ.

๋ถˆํ–‰ํžˆ๋„, WPF API์˜ ๋งŽ์€ ๋ถ€๋ถ„์ด UWP UI API์™€ ๋น„๊ตํ•  ๋•Œ ์‹ค์ œ๋กœ ์ˆ˜๋ช…์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ตœ์†Œํ•œ ๋ช‡ ๊ฐœ์›”์€ ๋” ๊ฒฌ๋ŽŒ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋งŽ์€ WPF ๋„๊ตฌ ํ‚คํŠธ๊ฐ€ ์ด๋Ÿฌํ•œ ์‚ฌ์‹ค์„ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Windows ๋ฐ์Šคํฌํ†ฑ ์•ฑ(๋ฐ ์ตœ์‹  XAML ๊ฐœ๋ฐœ ํ™˜๊ฒฝ!)์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๋ชจ์–‘๊ณผ ๋Š๋‚Œ์„ ์ง„์ •์œผ๋กœ ์›ํ•˜๋Š” ๊ฒฝ์šฐ UWP UI API(๋ฐ ๋‚˜์ค‘์— WinUI 3 API). ์ฆ‰, ๋‚˜์ค‘์— WinUI์šฉ WPF UI ์ฝ”๋“œ ์ค‘ ์ผ๋ถ€๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด๋„ UI ํ˜„๋Œ€ํ™”๋Š” ์—ฌ์ „ํžˆ ๊ฝค ํฐ ์ž‘์—… ํ•ญ๋ชฉ์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

WinUI 3๊ฐ€ ์ถœ์‹œ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†๊ณ  UWP๊ฐ€ ์˜ต์…˜์ด ์•„๋‹ ๋•Œ ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธ Windows ์•ฑ ๊ฐœ๋ฐœ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

@AndrewPawlowski

  1. ๋ฏธ๋ž˜๋Š” ๋ฐ์Šต๋‹ˆ๋‹ค. ์ €๋Š” WinUI์—์„œ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์˜

  1. ๊ณผ๊ฑฐ๋Š” ๋งค์šฐ ์•”์šธํ–ˆ์Šต๋‹ˆ๋‹ค. 9์–ต ๊ฐœ์˜ ์žฅ์น˜๊ฐ€ ์žˆ๋Š” ํ”Œ๋žซํผ์—์„œ UWP์˜ ๋‚ฎ์€ ๋ณด๊ธ‰๋ฅ ์€ ๋ฐฉ์–ดํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํŽธ์ง‘: ๊ณผ๊ฑฐ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์žฅ์†Œ์ด๋ฏ€๋กœ ํ† ๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‚ด ์ƒ๊ฐ์— ํ˜„์žฌ ๋Š” ์ด ์Šค๋ ˆ๋“œ์˜ ์š”์ ์ด๋ฉฐ ๋‹ค๋ฃจ์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์— 1~1.5๋…„์ด ์†Œ์š”๋˜๋Š” ๊ฐ„๋‹จํ•œ ์•ฑ์„ ์˜ค๋Š˜ ์‹œ์ž‘ํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ์–ด๋–ค ์†”์งํ•œ ์กฐ์–ธ์„ ํ•ด์ค„ ์ˆ˜ ์žˆ์„๊นŒ์š”? ๋‚ด ๋Œ€๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. WinUI๋กœ ์‹คํ—˜ํ•˜๊ณ , dotnet Core์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ , ์‹ค์ œ๋กœ ์•ฑ ๋งŒ๋“ค๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด WinUI3.0์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์„ธ์š”. UWP๋กœ ๊ท€์ฐฎ๊ฒŒํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ฒ˜์Œ ์ƒ๊ฐ์€ ๋˜‘๊ฐ™์•˜๋Š”๋ฐ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ ....

UWP์— ์†Œ๊ฐœ๋œ ์ƒŒ๋“œ๋ฐ•์‹ฑ ๋ฐ ๊ธฐํƒ€ ์ข‹์€ ์•„์ด๋””์–ด: ์ข‹์€ ์•„์ด๋””์–ด์˜€์ง€๋งŒ ํ›จ์”ฌ ๋” ์ž˜ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

100% ๋™์˜

๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๋ชจ๋“  ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ๋ก€๋ฅผ ์•Œ์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๊ธฐ๊บผ์ด ๋“ฃ์Šต๋‹ˆ๋‹ค. ํ•˜๋ฃจ์˜ ๋์—์„œ ์šฐ๋ฆฌ๋Š” ์‹ธ์šฐ๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์— ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์„œ๋กœ์˜ ๊ด€์ ์„ ํ’๋ถ€ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค(์ž˜ํ•˜๋ฉด) ๐Ÿ˜…

์ž๋ฃŒ๋ฅผ ๋ฏธ๋ฆฌ ๋ณด๊ณ  ์‹ถ์€ ๊ณณ์ด๋ฉด ์–ด๋””์—์„œ๋‚˜ ํŒŒ์ผ์— ๋น ๋ฅด๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์ง„/๋น„๋””์˜ค๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ํด๋”๋ฅผ ๋ฏธ๋ฆฌ ๋ณด๊ณ  ์‹ถ๊ณ , ๋น„๋””์˜ค์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•˜๊ธฐ ์ „์— ๋น„๋””์˜ค๋ฅผ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ์š”์ ์€ ํŒŒ์ผ ์„ ํƒ๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ์ˆ˜์ค€ ์ดํ•˜์˜ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ์ด๋ฅผ ํ’๋ถ€ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ณต์‹์ ์œผ๋กœ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๋Š” (๋‚ด ์ƒ๊ฐ์—) ๊ทธ๊ฒƒ์„ ์œ„ํ•œ ๊ฒƒ์ด์ง€๋งŒ ์˜ˆ, ์–ธ์  ๊ฐ€๋Š” ์•ฝ๊ฐ„ ๋ฐ˜์‘์ด ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๊ฐ€ ๊ฐœ์„ ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋ณผ ๋• ์ด๋ฏธ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ์•ฝ๊ฐ„์˜ ๋ณ€๊ฒฝ์„ ๊ฐ€ํ–ˆ์œผ๋‹ˆ ์ด๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜๋ฆฌ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(^โˆ‡^)

๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋Š” ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๋ฅผ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค ์ค‘์—์„œ ๋„ˆ๋ฌด ๊ตฌ์ฒด์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@jtorjo @chingucoding WinRT API์šฉ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๋Š” ๊ณง Microsoft Q&A์™€ ๊ต์ฒด/ ํ•˜์„ธ์š” .

Chigusa๊ฐ€ ๊ฑฐ๊ธฐ์— ์–ธ๊ธ‰๋œ ๊ฒƒ์„ ๋ณด๋ฉด: @chigy Microsoft Q&A ํ”Œ๋žซํผ์ด WinUI๊ฐ€ ์•„๋‹Œ WinRT API์— ๋Œ€ํ•ด ์„ ํ˜ธ๋˜๋Š” ํ”ผ๋“œ๋ฐฑ ํ”Œ๋žซํผ์ด ๋ ๊นŒ์š”? ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์™€ ์–ด๋–ค ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ(์˜ˆ: Q&A์˜ ๋ฒ„๊ทธ/์งˆ๋ฌธ, ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์˜ API ์š”์ฒญ...)?

์„ธ ๊ฐ€์ง€ ๋‹ค๋ฅธ ํ”ผ๋“œ๋ฐฑ ํ”Œ๋žซํผ์œผ๋กœ ๋๋‚˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ˜†

์ด๊ฒƒ์€ UWP์— ๋Œ€ํ•œ ํ† ๋ก ์ด๋ฏ€๋กœ ๊ธฐ๋Šฅ ์š”์ฒญ์„ ์Šน๊ฒฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://aka.ms/AA71n2t btw ํŒŒ์ผ ํ˜•์‹ ์—ฐ๊ฒฐ ์—†์ด ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ ํ†ตํ•ฉ์œผ๋กœ ์ƒํ™ฉ์— ๋งž๋Š” ๋ฉ”๋‰ด ๋™์‚ฌ ํ—ˆ์šฉ. https://aka.ms/AA6rmrk (ํ•˜์ง€๋งŒ ์ž˜๋ชป๋œ ์นดํ…Œ๊ณ ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?)

๊ธฐ๋Šฅ ์š”์ฒญ์˜ ์ข‹์€ ์ถœ์ฒ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://web.archive.org/web/20161221051552/https://wpdev.uservoice.com/forums/110705-universal-windows-platform/category/171141-missing-apis
์œ ๊ฐ์Šค๋Ÿฝ๊ฒŒ๋„ ์ด ์‚ฌ์šฉ์ž ์Œ์„ฑ์˜ ์Šค๋ƒ…์ƒท์€ ๊ฝค ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค(2016). ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์ด ์žˆ์—ˆ๋˜ ๊ฒƒ์œผ๋กœ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค.

  • ์นด๋ฉ”๋ผ, ์œ„์น˜, ์‹œ์ž‘ ์‹œ ์•ฑ ์‹œ์ž‘์„ ์š”์ฒญํ•  ๋•Œ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ broadFileSystemAccess ์š”์ฒญ ๋™์ž‘์„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ž๋™. ์ธ์‡„(ํ˜„์žฌ ๋‚ด๊ฐ€ ๊ธฐ์–ตํ•˜๋Š” ํ•œ IoT์˜ POS์—๋งŒ ์ง€์›๋จ)
  • ์ธ์‡„๋ฅผ ๋” ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ

@jtorjo

์ž๋ฃŒ๋ฅผ ๋ฏธ๋ฆฌ ๋ณด๊ณ  ์‹ถ์€ ๊ณณ์ด๋ฉด ์–ด๋””์—์„œ๋‚˜ ํŒŒ์ผ์— ๋น ๋ฅด๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์ง„/๋น„๋””์˜ค๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ํด๋”๋ฅผ ๋ฏธ๋ฆฌ ๋ณด๊ณ  ์‹ถ๊ณ , ๋น„๋””์˜ค์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•˜๊ธฐ ์ „์— ๋น„๋””์˜ค๋ฅผ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ์š”์ ์€ ํŒŒ์ผ ์„ ํƒ๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ์ˆ˜์ค€ ์ดํ•˜์˜ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ์ด๋ฅผ ํ’๋ถ€ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์ƒ๊ฐ์—๋Š” ๋จผ์ € ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ํด๋”๋ฅผ ์„ ํƒํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ๋น„๋””์˜ค๋ฅผ ์ €์žฅํ•œ ์œ„์น˜๋ฅผ ๊ฐ€์žฅ ์ž˜ ์••๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค์Œ์„ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://docs.microsoft.com/en-us/windows/uwp/files/quickstart-managing-folders-in-the-music-pictures-and-videos-libraries

๊ทธ๋Ÿฌ๋‚˜ ์†”์งํžˆ ๋งํ•ด์„œ, ๋‚˜๋Š” ๊ทธ ๊ฒฝ์šฐ์— broadFileSystemAccess๊ฐ€ ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๋„์šธ ๊ฒƒ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์™€ ๋‹ฌ๋ฆฌ ํŒŒ์ผ์ด ์ •ํ™•ํžˆ ์–ด๋””์— ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•ฑ์˜ ๊ฐœ๋…์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.


@Felix-Dev
์ •๋ณด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. WinRT ํ”ผ๋“œ๋ฐฑ์ด ์›€์ง์ผ ์ค„์€ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค.

์„ธ ๊ฐ€์ง€ ๋‹ค๋ฅธ ํ”ผ๋“œ๋ฐฑ ํ”Œ๋žซํผ์œผ๋กœ ๋๋‚˜์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ˜†

ํ•˜ํ•˜ ์˜ˆ, ์•„๋‹ˆ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค!

@jtorjo -- WPF์—์„œ UWP๋กœ ์•ฑ ์ด์‹์„ ์ทจ์†Œ ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๊นŒ? ์ทจ์†Œํ•˜๊ณ  WinUI 3์ด ์ถœ์‹œ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋ฉด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” UWP ํŒŒ์ผ ์‹œ์Šคํ…œ API, broadFileSystemAccess ๋“ฑ์„ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ WinUI 3์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ๊ณ„์†ํ•ด์„œ ์•ฑ์˜ WPF ๋ฒ„์ „์„ ๊ณ„์† ๊ฐœ๋ฐœํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒˆ ๋ฒ„์ „์˜ ์•ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

@AndrewPawlowski ๋Š” "

UWP์—์„œ WinUI 3์˜ ๋ถ„๋ฆฌ๊ฐ€ ํฐ ๋„์›€์ด ๋˜์ง€๋งŒ ์™„์ „ํ•œ ์†”๋ฃจ์…˜์€ ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. WinUI 3์€ WinUI์˜ ๋‚ฎ์€ ์ƒ์‚ฐ์„ฑ/๋Š๋ฆฐ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. WPF๋Š” WinUI๋ณด๋‹ค ํ›จ์”ฌ ์–ด๋ ค์› ์ง€๋งŒ WPF๋Š” WinUI๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

WinUI ํŒ€์€ WinUI 3๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค์ผ ๋•Œ ์†๋„๊ฐ€ ๋นจ๋ผ์งˆ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์•„๋งˆ๋„ ๊ทธ๋Ÿด ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ WinUI 3์— ๋Œ€ํ•œ C++/CX, C++/WinRT, Win16/32 ๋˜๋Š” COM ๊ธฐ์—ฌ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹ญ ๋…„ ์ „์— Win16/Win32๋กœ ๊ฒฝ๋ ฅ์„ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ Win32๋Š” ์•…๋ชฝ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ทธ๋Ÿฐ ์˜ค๋ž˜๋˜๊ณ  ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ๋กœ ๋˜๋Œ๋ฆด ์ƒ๊ฐ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ˆ˜๋…„์— ๊ฑธ์ณ ์ €๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ๊ธฐ์ˆ ์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ณ  C# ๋ฐ .NET Framework๋กœ ์ „ํ™˜ํ–ˆ์œผ๋ฉฐ ์ด๋Š” ์ฃผ์š” ๊ฐœ์„  ์‚ฌํ•ญ์ด์ž ์ด์ ์ด์—ˆ์œผ๋ฉฐ ์ด์ „ Win16/32์˜ ์•…๋ชฝ์œผ๋กœ ๋Œ์•„๊ฐ€์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๊ณผ ๋งŽ์€ ์–‘์˜ ์ˆ˜๋™์œผ๋กœ ์ž‘์„ฑ๋œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ.

@AndrewPawlowski ๋Š” ๋‹ค์Œ

์–ด๋–ค ์ •์งํ•œ ์กฐ์–ธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ธฐ๋‹ค๋ฆฌ๋‹ค?

์ •๋ง ๋Œ€๋‹ตํ•˜๊ธฐ ์–ด๋ ค์šด ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•œํŽธ์œผ๋กœ๋Š” WinUI 3์„ ๊ธฐ๋‹ค๋ฆฌ์ง€๋งŒ, ๋‹ค๋ฅธ ํ•œํŽธ์œผ๋กœ๋Š” WinUI 3์ด 8๋…„ ์ „์— WinRT์—์„œ ์‹œ์ž‘๋œ ํฐ ๋ฌธ์ œ์˜ ์™„์ „ํ•œ ํ•ด๊ฒฐ์ด ์•„๋‹™๋‹ˆ๋‹ค. WinUI 3์€ ์œ ์šฉํ•œ ๋ถ€๋ถ„ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Ignite์˜ ๋ฉ‹์ง„ ๋น„๋””์˜ค: https://youtu.be/Ul5JcdIJv5s
image

๋‚˜๋Š” ์—ฌ๊ธฐ์„œ ๋งŽ์€ ํ† ๋ก ์ด WinRT์˜ ๋ชฉ์ ์— ์˜๋ฌธ์„ ์ œ๊ธฐํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์™€ ์‚ฌ์šฉ์ž๋Š” ์—ฌ์ „ํžˆ WinUI 3 ๋ฐ .NET 5.0์ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ์ˆ  ๊ฐ„์˜ ์‰ฌ์šด ์ƒํ˜ธ ์šด์šฉ์„ ํ—ˆ์šฉํ•˜๋ฉด ์–ด๋–ค ์—ญํ• ์„ ํ• ์ง€ ๊ถ๊ธˆํ•ดํ•ฉ๋‹ˆ๋‹ค. ๋งํ•  ๊ฒƒ๋„ ์—†์ด ์ƒŒ๋“œ๋ฐ•์Šค์™€ ํด๋ž˜์‹ ์•ฑ ๋ชจ๋ธ ์‚ฌ์ด์—์„œ ์„ ํƒํ•˜๋Š” ๊ถ๊ทน์ ์ธ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

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

์ฆ‰, UWP ๋ฐ์Šคํฌํ†ฑ ํ™•์žฅ ํŒฉ์ด ๊ธฐ์กด Windows ์…ธ๊ณผ ๋” ๋‚˜์€ ํ†ตํ•ฉ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค๋ฉด ์œ ๋‹ˆ๋ฒ„์„ค ์•ฑ์˜ ๊ฐ€์น˜๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฐ ๋ชจ๋‘ ๋™์˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ ์•Œ๊ฒ ์Šต๋‹ˆ๊นŒ? Microsoft๋Š” ๊ฒฐ๊ตญ Windows ํƒ์ƒ‰๊ธฐ ์…ธ์„ Windows 10X ๋“ฑ์—์„œ ๋ฐœ๊ฒฌ๋œ ์ตœ์‹  ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์…ธ(CShell)๋กœ ๊ต์ฒดํ•  ๊ณ„ํš์„ ๊ฐ€์ง€๊ณ  ์žˆ์„์ง€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. Twitter์˜ ์ „๋ฌธ๊ฐ€๋“ค๋„ Windows์—์„œ ๋ฐœ๊ฒฌ๋œ ์ƒˆ๋กœ์šด UDK(๋„ํ‚น๋˜์ง€ ์•Š์€ ๊ฐœ๋ฐœ ํ‚คํŠธ)๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ์ด ์ƒˆ๋กœ์šด ์‰˜๊ณผ ๋” ์ž˜ ํ†ตํ•ฉ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@AndrewPawlowski

900million ํ•˜๋‚˜๊ฐ€ ์ถฉ๋ถ„ํžˆ ํฌ๋ฏ€๋กœ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์„ ์›ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฌด์Šจ ๋ง์ธ์ง€ ์•Œ๊ฒ ์ง€๋งŒ UWP์™€ .NET์€ ๋” ์ด์ƒ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ธ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ๊นจ๋‹ฌ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ ๋‹ˆ๋ฒ„์„ค ๊ธฐ๋Šฅ์œผ๋กœ ์•ฑ์„ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๋ฉด WinRT์˜ ์ผ๋ถ€๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ํˆฌ์žํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

@jtorjo ๋œ ๋ถ€์ •์ ์œผ๋กœ ์ธ์‹๋  ์ œ๋ชฉ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด
์•„๋งˆ๋„ "WinRT์— ๊ฐ€์น˜๋ฅผ ๋”ํ•  ๊ธฐํšŒ"

@verelpode

@jtorjo -- WPF์—์„œ UWP๋กœ ์•ฑ ์ด์‹์„ ์ทจ์†Œ ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๊นŒ? ์ทจ์†Œํ•˜๊ณ  WinUI 3์ด ์ถœ์‹œ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋ฉด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” UWP ํŒŒ์ผ ์‹œ์Šคํ…œ API, broadFileSystemAccess ๋“ฑ์„ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ WinUI 3์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ๊ณ„์†ํ•ด์„œ ์•ฑ์˜ WPF ๋ฒ„์ „์„ ๊ณ„์† ๊ฐœ๋ฐœํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒˆ ๋ฒ„์ „์˜ ์•ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ์˜ค๋žซ๋™์•ˆ ์—ด์‹ฌํžˆ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ €๋Š” ์ •๋ง๋กœ win2d(๋˜๋Š” ๊ทธ ์ด์ƒ, Direct2D์— ๋Œ€ํ•œ ์ข‹์€ ๋ž˜ํผ)๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ShapDX(Direct2D์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ๋ž˜ํผ)๋Š” ํ›จ์”ฌ ๋” ๋ณต์žกํ•ด ๋ณด์˜€์œผ๋ฏ€๋กœ win2d(UWP)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ๊ฒƒ์„ UWP๋กœ ์ด์‹ํ•˜์‹ญ์‹œ์˜ค.

๋‚ด ์ƒ๊ฐ์—๋Š” ๋จผ์ € ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ํด๋”๋ฅผ ์„ ํƒํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ๋น„๋””์˜ค๋ฅผ ์ €์žฅํ•œ ์œ„์น˜๋ฅผ ๊ฐ€์žฅ ์ž˜ ์••๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ฌ์šฉ์ž(์‚ฌ์šฉ์ž)๊ฐ€ ์–ด๋–ป๊ฒŒ๋“  ์‚ฌ์ง„/๋น„๋””์˜ค๋ฅผ ์ƒˆ ํด๋”์— ๋ณต์‚ฌํ•  ๋•Œ๋งˆ๋‹ค ๋‚ด ์•ฑ์— ํ•ด๋‹น ํ•ญ๋ชฉ๋„ ํฌํ•จํ•˜๋„๋ก ์•Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค...

"ํ›Œ๋ฅญํ•œ" FutureAccessList - ์‹ค์ œ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์Œ -> ํด๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ชจ๋“  ํ•˜์œ„ ํด๋”์— ๋‚ด ์•ฑ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ FutureAccessList์— ๋ฌด์–ธ๊ฐ€๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค๋ฉด ๊ฑฐ๊ธฐ์—์„œ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด GetFolderFromPathAsync/GetFileFromPathAsync๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ(์ „์ž๋Š” ์ ˆ๋ฒฝ์—์„œ ๋›ฐ์–ด๋‚ด๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค)?

๊ทธ๋ฆฌ๊ณ  FutureAccessList.AddOrReplace๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ๊ณ„์…จ์Šต๋‹ˆ๊นŒ? ์–ผ๋งˆ๋‚˜ ์‚ฌ๋ ค๊นŠ์€๊ฐ€... (์„ค๋ช… ์–ด๋””์—๋„ ์—†์Œ)

WinUI 3 ๋ฐ .NET Core๋Š” ํ–ฅํ›„ ์˜ต์…˜์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. UWP์˜ ์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์—†๋Š” ์กฐํ•ฉ์€ WPF์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ์ตœ์‹  XAML ์ปจํŠธ๋กค, Visual Layer ๋ฐ ๊ฐ„๋‹จํ•œ WinRT API ์•ก์„ธ์Šค๋ฅผ ํ†ตํ•ด ์ž‘๋™ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์ƒ๊ฐ์—๋Š” ๋จผ์ € ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ํด๋”๋ฅผ ์„ ํƒํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ๋น„๋””์˜ค๋ฅผ ์ €์žฅํ•œ ์œ„์น˜๋ฅผ ๊ฐ€์žฅ ์ž˜ ์••๋‹ˆ๋‹ค.

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

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

๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ฌ์šฉ์ž(์‚ฌ์šฉ์ž)๊ฐ€ ์–ด๋–ป๊ฒŒ๋“  ์‚ฌ์ง„/๋น„๋””์˜ค๋ฅผ ์ƒˆ ํด๋”์— ๋ณต์‚ฌํ•  ๋•Œ๋งˆ๋‹ค ๋‚ด ์•ฑ์— ํ•ด๋‹น ํ•ญ๋ชฉ๋„ ํฌํ•จํ•˜๋„๋ก ์•Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค...

์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์œผ๋ฉด ํ–ฅํ›„ ํ•˜์œ„ ํด๋”์—๋„ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(100% ํ™•์‹ ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ).

๊ทธ๋ฆฌ๊ณ  FutureAccessList.AddOrReplace๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ๊ณ„์…จ์Šต๋‹ˆ๊นŒ? ์–ผ๋งˆ๋‚˜ ์‚ฌ๋ ค๊นŠ์€๊ฐ€... (์„ค๋ช… ์–ด๋””์—๋„ ์—†์Œ)

์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ™•์‹คํžˆ ๋ฌธ์„œํ™”๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค!


๊ฐœ์ธ์ ์œผ๋กœ ๋งŽ์€ ์•ฑ์ด ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— "broadFileSystemAccess"๋ฅผ ์š”์ฒญํ•˜๋Š” ์•ฑ์˜ ํŒฌ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ดํ•ด๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ(ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ ์ž‘์„ฑ ๋“ฑ) ์ผ๋ถ€ ํด๋”์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๋งŽ์€ ๊ฒฝ์šฐ์—๋Š” "๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ด ์ฃผ์„ธ์š”"๋ผ๊ณ  ๋งํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ํ•ด๋‹น ํด๋”.

๊ทธ๋Ÿฌ๋‚˜ ์•„๋งˆ๋„ ๋‚˜๋Š” ๊ทธ๋Ÿฌํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ๋ก€๋ฅผ ์ถฉ๋ถ„ํžˆ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋” ์žˆ์œผ๋ฉด ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค!

๊ทธ๋Ÿฌ๋‚˜ ์•„๋งˆ๋„ ๋‚˜๋Š” ๊ทธ๋Ÿฌํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ๋ก€๋ฅผ ์ถฉ๋ถ„ํžˆ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋” ์žˆ์œผ๋ฉด ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค!

  • ์••์ถ• ํ•ด์ œ ๋„๊ตฌ์™€ ๊ฐ™์€ ๋„๊ตฌ ๋ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์†Œํ”„ํŠธ์›จ์–ด. ํ˜„์žฌ ํŒŒ์ผ์ด ์žˆ๋Š” ๋™์ผํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์••์ถ• ํŒŒ์ผ์„ ์ถ”์ถœํ•˜๋ ค๋Š” ๊ฒฝ์šฐ Windows ํƒ์ƒ‰๊ธฐ ์ƒํ™ฉ์— ๋งž๋Š” ๋ฉ”๋‰ด์—์„œ ์•ฑ์„ ํ˜ธ์ถœํ•  ๋•Œ ์„ ํƒํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ๋งŒ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ (์••์ถ•๋˜์ง€ ์•Š์€ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ) ์ƒˆ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

(์••์ถ• ํ•ด์ œ ๋„๊ตฌ์ฒ˜๋Ÿผ). ํ˜„์žฌ ํŒŒ์ผ์ด ์žˆ๋Š” ๋™์ผํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์••์ถ• ํŒŒ์ผ์„ ์ถ”์ถœํ•˜๋ ค๋Š” ๊ฒฝ์šฐ Windows ํƒ์ƒ‰๊ธฐ ์ƒํ™ฉ์— ๋งž๋Š” ๋ฉ”๋‰ด์—์„œ ์•ฑ์„ ํ˜ธ์ถœํ•  ๋•Œ ์„ ํƒํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ๋งŒ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ (์••์ถ•๋˜์ง€ ์•Š์€ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ) ์ƒˆ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ์„ uwp ์•ฑ์œผ๋กœ ๋“œ๋ž˜๊ทธํ•˜๋ฉด ํ•ด๋‹น ํŒŒ์ผ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค!
https://stackoverflow.com/questions/48001601/c-sharp-uwp-drag-and-drop-file-folder-permission?rq=1

๊ธ€์Ž„, ๊ทธ๊ฒƒ์€ ์‚ฌ์šฉ์ž์™€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์•ฝ๊ฐ„ ์ง€๋‚˜์น˜๊ฒŒ ๋ณต์žกํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์‚ญ์ œ๋œ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ตœ์†Œํ•œ ์“ฐ๊ธฐ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ์ด๊ฒƒ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ถˆํ•„์š”ํ•œ ์ œ์•ฝ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

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

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

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

๊ฐœ์ธ์ ์œผ๋กœ ๋งŽ์€ ์•ฑ์ด ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— "broadFileSystemAccess"๋ฅผ ์š”์ฒญํ•˜๋Š” ์•ฑ์˜ ํŒฌ์ด ์•„๋‹™๋‹ˆ๋‹ค.

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

์‚ฌ์‹ค, ํŒŒ์ผ/ํด๋”๋ฅผ ์ƒŒ๋“œ๋ฐ•์Šค ์ฒ˜๋ฆฌํ•˜๋Š” ํ›จ์”ฌ ๋” ํ˜„๋ช…ํ•œ ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณดํ˜ธํ•˜๋ ค๋Š” ํŒŒ์ผ/ํด๋”๋ฅผ ๊ฒฐ์ •ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๋งค์šฐ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ ํด๋ฆญ ๋ช…๋ น์œผ๋กœ). .

์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ์ฐจ๋‹จํ•œ ๋‹ค์Œ ์‹ค์ˆ˜๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ๊ธฐ๋ฐ€ ํŒŒ์ผ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๋Œ€์กฐ๋ฉ๋‹ˆ๋‹ค.

์ง์„ค์ ์œผ๋กœ ๋งํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์‚ฌ์†Œํ•˜์ง€ ์•Š์€ ์•ฑ์€ ์ง„๊ณต ์ƒํƒœ์— ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๋„ค, ๊ทธ๋Ÿด ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–ธ์ œ ํด๋”๋ฅผ ์Šค์บ”ํ•  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์—์„œ ์ •ํ™•ํžˆ ์–ด๋–ค ํด๋”๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚œ ์ƒ๊ด€์—†์–ด.

์—ฌ๊ธฐ์„œ ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๋งํ•˜๋ ค๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

์‚ฌ์‹ค, ํŒŒ์ผ/ํด๋”๋ฅผ ์ƒŒ๋“œ๋ฐ•์Šค ์ฒ˜๋ฆฌํ•˜๋Š” ํ›จ์”ฌ ๋” ํ˜„๋ช…ํ•œ ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณดํ˜ธํ•  ํŒŒ์ผ/ํด๋”๋ฅผ ๊ฒฐ์ •ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๋งค์šฐ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ ํด๋ฆญ ๋ช…๋ น์œผ๋กœ). . ์‚ฌ์šฉ์ž๋Š” ์–ด๋–ค ๋ฌธ์„œ/ํŒŒ์ผ์ด ๊ธฐ๋ฐ€์ธ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ๊ณ  ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ „์ฒด ์•ก์„ธ์Šค ๋ณดํ˜ธ๋Š” "๊ธฐ๋ฐ€" ํŒŒ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ ๊ฐœ์ธ ์ •๋ณด, ์˜ˆ๋ฅผ ๋“ค์–ด ๊ตฌ์„ฑ ํŒŒ์ผ(์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์—†๋Š” ํด๋”์— ์ˆจ๊ฒจ์ ธ ์žˆ์Œ) ๋˜๋Š” ์„ค์น˜๋œ ํ”„๋กœ๊ทธ๋žจ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์€ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ, ํŠนํžˆ ๋‹น์‹ ์ด ๋ถ€๋ฅด๋Š” "์‚ฌ์†Œํ•œ ์•ฑ"์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š” ์ •๋ณด์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ๋น„์œ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ seifs๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”.

์˜ˆ, ๊ธˆ๊ณ ์—์„œ ๋ฌผ๊ฑด์„ ๋ฉ€๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋‹น์‹ ์ด ์•„ํŒŒํŠธ๋‚˜ ์ง‘์˜ ์—ด์‡ ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฐ”๊พธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ๊ธˆ๊ณ ์— ์žˆ๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ ๊ท€์ค‘ํ’ˆ์„ ์œ„ํ•œ ๊ธˆ๊ณ ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•„ํŒŒํŠธ์— ๋ฌธ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ์ฐจ๋‹จํ•œ ๋‹ค์Œ ์‹ค์ˆ˜๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ๊ธฐ๋ฐ€ ํŒŒ์ผ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๋Œ€์กฐ๋ฉ๋‹ˆ๋‹ค.

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


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

(๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ๋งŽ์ง€๋Š” ์•Š์ง€๋งŒ) ํ›Œ๋ฅญํ•œ UWP ์•ฑ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ ์—ฌ๊ธฐ์—์„œ ์ŠคํŠธ๋ ˆ์น˜์ž…๋‹ˆ๋‹ค.

๋„ค, ๊ทธ๋Ÿด ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–ธ์ œ ํด๋”๋ฅผ ์Šค์บ”ํ•  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์—์„œ ์ •ํ™•ํžˆ ์–ด๋–ค ํด๋”๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Windows ํƒ์ƒ‰๊ธฐ์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ํด๋”๋‚˜ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ํ™•์žฅํ•˜๋ฉด ์Šค์บ”์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

์ด ์ „์ฒด ์•ก์„ธ์Šค ๋ณดํ˜ธ๋Š” "๊ธฐ๋ฐ€" ํŒŒ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ ๊ฐœ์ธ ์ •๋ณด, ์˜ˆ๋ฅผ ๋“ค์–ด ๊ตฌ์„ฑ ํŒŒ์ผ(์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์—†๋Š” ํด๋”์— ์ˆจ๊ฒจ์ ธ ์žˆ์Œ) ๋˜๋Š” ์„ค์น˜๋œ ํ”„๋กœ๊ทธ๋žจ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์€ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ, ํŠนํžˆ ๋‹น์‹ ์ด ๋ถ€๋ฅด๋Š” "์‚ฌ์†Œํ•œ ์•ฑ"์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š” ์ •๋ณด์ž…๋‹ˆ๋‹ค.

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

์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ์ฐจ๋‹จํ•œ ๋‹ค์Œ ์‹ค์ˆ˜๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ๊ธฐ๋ฐ€ ํŒŒ์ผ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๋Œ€์กฐ๋ฉ๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ์™„์ „ํžˆ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "๊ธฐ๋ฐ€"์˜ ์š”์ ์€ ํ•ด๋‹น ํŒŒ์ผ์„ ์ž ๊ทธ๊ณ  ์‹ถ๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

(๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ๋งŽ์ง€๋Š” ์•Š์ง€๋งŒ) ํ›Œ๋ฅญํ•œ UWP ์•ฑ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ ์—ฌ๊ธฐ์—์„œ ์ŠคํŠธ๋ ˆ์น˜์ž…๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ์—ฌ๊ธฐ์—์„œ ์ž์‹ ๊ณผ ๋ชจ์ˆœ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ›Œ๋ฅญํ•œ UWP ์•ฑ์˜ ๊ด‘๋Œ€ํ•จ์„ ํƒ๊ตฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

image

์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ๋ ค์ค„ '์ข‹์•„์š”'์˜ "ํ’๋ถ€ํ•จ"์— ์ฃผ๋ชฉํ•˜์‹ญ์‹œ์˜ค. ์• ํ”Œ์Šคํ† ์–ด์™€ ๋Œ€์กฐ๋ฅผ ํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์‚ฌ๊ณผ๊ฐ€ ์—†์–ด์„œ ๊ทธ๋Ÿฌ์ง€ ๋ชปํ•ด์š”. ํ•˜์ง€๋งŒ Android๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Facebook์—๋Š” 7์ฒœ๋งŒ ๊ฐœ ์ด์ƒ์˜ ๋ฆฌ๋ทฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(Windows์˜ ๊ฒฝ์šฐ 1353๊ฐœ). Instagram์—๋Š” 9300๋งŒ ๊ฐœ ์ด์ƒ์˜ ๋ฆฌ๋ทฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์—ฌ๊ธฐ์„œ๋Š” 1578๊ฐœ์™€ ๋น„๊ต). ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” Fb์™€ Instagram์ด UWP๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ค์ œ๋กœ ์ „์ž ์•ฑ์ด๋ผ๊ณ  ๊ฑฐ์˜ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

Windows ํƒ์ƒ‰๊ธฐ์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ํด๋”๋‚˜ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ํ™•์žฅํ•˜๋ฉด ์Šค์บ”์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ํด๋”์—์„œ ๋น„๋””์˜ค ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ๋Š” Windows ํƒ์ƒ‰๊ธฐ์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

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

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

๋‚˜๋Š” ์™„์ „ํžˆ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "๊ธฐ๋ฐ€"์˜ ์š”์ ์€ ํ•ด๋‹น ํŒŒ์ผ์„ ์ž ๊ทธ๊ณ  ์‹ถ๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๊ธฐ๋ฐ€๋กœ ์„ ํƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋ชจ๋“  ์•ฑ์—์„œ ๋‚ด ํœด๊ฐ€ ์‚ฌ์ง„์„ ๋ณผ ์ˆ˜๋Š” ์—†์ง€๋งŒ Photoshop์—์„œ๋Š” ์‚ฌ์ง„์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋“ค์€ ๊ธฐ๋ฐ€์ž…๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ด ๊ธฐ๋ฐ€ "ํ”Œ๋ž˜๊ทธ" ๋ชฉ๋ก์ด ์ผ๋ถ€ ์•ฑ์— ๋Œ€ํ•ด ๊ธฐ๋ฐ€์ด ์•„๋‹Œ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ์ผ๋ถ€ ํŒŒ์ผ์ž…๋‹ˆ๊นŒ?

๋‹น์‹ ์€ ์—ฌ๊ธฐ์—์„œ ์ž์‹ ๊ณผ ๋ชจ์ˆœ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜, ๊ฑฐ๊ธฐ ๋‚ด ๋ง์€ ์“ฐ๋ ˆ๊ธฐ์˜€์–ด. ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ž˜ ์ž‘๋™ํ•˜๋Š” "์‚ฌ์†Œํ•˜์ง€ ์•Š์€" ํ›Œ๋ฅญํ•œ ์•ฑ์ด ๋ถ„๋ช…ํžˆ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ๋ ค์ค„ '์ข‹์•„์š”'์˜ "ํ’๋ถ€ํ•จ"์— ์ฃผ๋ชฉํ•˜์‹ญ์‹œ์˜ค. ์• ํ”Œ์Šคํ† ์–ด์™€ ๋Œ€์กฐ๋ฅผ ํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์‚ฌ๊ณผ๊ฐ€ ์—†์–ด์„œ ๊ทธ๋Ÿฌ์ง€ ๋ชปํ•ด์š”. ํ•˜์ง€๋งŒ Android๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Facebook์—๋Š” 7์ฒœ๋งŒ ๊ฐœ ์ด์ƒ์˜ ๋ฆฌ๋ทฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(Windows์˜ ๊ฒฝ์šฐ 1353๊ฐœ). Instagram์—๋Š” 9300๋งŒ ๊ฐœ ์ด์ƒ์˜ ๋ฆฌ๋ทฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์—ฌ๊ธฐ์„œ๋Š” 1578๊ฐœ์™€ ๋น„๊ต). ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” Fb์™€ Instagram์ด UWP๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ค์ œ๋กœ ์ „์ž ์•ฑ์ด๋ผ๊ณ  ๊ฑฐ์˜ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ UWP์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌ์‹ค์— ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์‚ฌ๋žŒ๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  2. iTunes Store/Google Play Store๋Š” Microsoft Store๋ณด๋‹ค ํ›จ์”ฌ ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  3. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์Šคํ† ์–ด๋Š” ์œ ์ €๋“ค ์‚ฌ์ด์—์„œ ์ข‹์€ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ–ˆ๊ณ  ์‹œ์ž‘๋„ ์ข‹์ง€ ์•Š์•˜๋‹ค.
  4. ํ”Œ๋žซํผ ์ œํ•œ ์•ฑ ๋Œ€์‹  ์›น์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ์„ ์„ ํ˜ธํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ

๊ทธ๋ฆฌ๊ณ  ์ €๋Š” Fb์™€ Instagram์ด UWP๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ค์ œ๋กœ ์ „์ž ์•ฑ์ด๋ผ๊ณ  ๊ฑฐ์˜ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

์›น ์‚ฌ์ดํŠธ์™€ ์•ฑ์ด ํฌ๊ฒŒ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ „์ž์ธ์ง€ ์•„๋‹Œ์ง€ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ๊ธฐ๋ณธ ๋Œ€ํ™” ์ƒ์ž์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ๋ณด์ธ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋”ฐ๋ผ UWP ์•ฑ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ํด๋”์—์„œ ๋น„๋””์˜ค ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ๋Š” Windows ํƒ์ƒ‰๊ธฐ์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๊ฒƒ์€ ๋‚ด ์•ฑ์˜ ๋งˆ๋ฒ•์‚ฌ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

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

๋‚ด ์ƒ๊ฐ์€ ์ง€๊ธˆ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๊ณผ ๋ฐ˜๋Œ€์˜€์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์™„๋ฒฝํ•˜๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๋น„๊ธฐ๋ฐ€ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ฐ€ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๊ธฐ๋ฐ€๋กœ ์„ ํƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋ชจ๋“  ์•ฑ์—์„œ ๋‚ด ํœด๊ฐ€ ์‚ฌ์ง„์„ ๋ณผ ์ˆ˜๋Š” ์—†์ง€๋งŒ Photoshop์—์„œ๋Š” ์‚ฌ์ง„์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋“ค์€ ๊ธฐ๋ฐ€์ž…๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ด ๊ธฐ๋ฐ€ "ํ”Œ๋ž˜๊ทธ" ๋ชฉ๋ก์ด ์ผ๋ถ€ ์•ฑ์— ๋Œ€ํ•ด ๊ธฐ๋ฐ€์ด ์•„๋‹Œ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ์ผ๋ถ€ ํŒŒ์ผ์ž…๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ๋ณด๊ธฐ์— ์ด "ํ”Œ๋ž˜๊ทธ"๋Š” ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ "์•ก์„ธ์Šค ๊ฑฐ๋ถ€๋จ"์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ •๋ง๋กœ ์•ก์„ธ์Šคํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ถŒํ•œ์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๊ณ  ์‚ฌ์šฉ์ž๋Š” ์ œ๊ณตํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ๊ถŒํ•œ์€ - ์ด๋ฒˆ ํ•œ ๋ฒˆ๋งŒ ๋˜๋Š” ์˜์›ํžˆ).

๊ทธ๋ž˜, ๊ฑฐ๊ธฐ ๋‚ด ๋ง์€ ์“ฐ๋ ˆ๊ธฐ์˜€์–ด. ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ž˜ ์ž‘๋™ํ•˜๋Š” "์‚ฌ์†Œํ•˜์ง€ ์•Š์€" ํ›Œ๋ฅญํ•œ ์•ฑ์ด ๋ถ„๋ช…ํžˆ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

์—†๋‹ค๊ณ  ํ•˜๋Š”๊ฒŒ ์•„๋‹™๋‹ˆ๋‹ค. WPF์— ๋น„ํ•ด ๋งŒ๋“ค๊ธฐ๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ์–ด๋ ต๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋‹จ์ˆœํžˆ ์กด์žฌํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋•Œ๋•Œ๋กœ ์˜ˆ์™ธ(๊ตฌ์ฒด์ ์œผ๋กœ COM ์˜ˆ์™ธ)๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์‹คํŒจ ์ง€์ ์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๋Œ€์‹  ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์Šคํƒ ์ถ”์ ์กฐ์ฐจ๋„ ์žƒ์–ด๋ฒ„๋ฆฐ. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด ๋‚ฌ๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ณ ํ†ต ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ์ „์ฒด "์ •๋ณด๋ฅผ ๋น„๋™๊ธฐ์‹์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ์ฃผ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ œ๊ฐ€ ๋งค์šฐ ์‹ซ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ Œ๋”๋ง์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์ง€๋งŒ ๋น„ํŠธ๋งต ๋กœ๋“œ๋Š” ๋น„๋™๊ธฐ์‹์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์„ ์œ„ํ•ด ์ •๋ง ๋ณต์žกํ•œ ์บ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋ฆฌ๊ณ  ์˜ˆ, ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. VS๋Š” 10-20๋ฒˆ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ๋“ค์€ ์ง€๊ธˆ ๋‚ด ๋จธ๋ฆฌ์— ๋– ์˜ค๋ฅธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์…€ ์ˆ˜ ์—†์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ UWP์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌ์‹ค์— ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์‚ฌ๋žŒ๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  2. iTunes Store/Google Play Store๋Š” Microsoft Store๋ณด๋‹ค ํ›จ์”ฌ ์˜ค๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  3. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์Šคํ† ์–ด๋Š” ์œ ์ €๋“ค ์‚ฌ์ด์—์„œ ์ข‹์€ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ–ˆ๊ณ  ์‹œ์ž‘๋„ ์ข‹์ง€ ์•Š์•˜๋‹ค.
  4. ํ”Œ๋žซํผ ์ œํ•œ ์•ฑ ๋Œ€์‹  ์›น์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ์„ ์„ ํ˜ธํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ

๊ธ€์Ž„, ๋‚˜๋Š” ์• ํ”Œ ์Šคํ† ์–ด๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๋ฉด ์ข‹์•˜์„ ํ…๋ฐ - ๋‚˜๋Š” ๊ทธ๋“ค์˜ ์ตœ๊ณ ์˜ ์•ฑ์ด ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ๋ฆฌ๋ทฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•œ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด UWP/WinRT๋ฅผ ํฌ๊ธฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— MS ์Šคํ† ์–ด๋Š” ์ ˆ๋Œ€ ๋”ฐ๋ผ๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. win2d๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ ์–ด๋„ 20๋ฒˆ์€ ํฌ๊ธฐํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. Windows์— UWP ์•ฑ์œผ๋กœ ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜ํ•˜๋„๋ก ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ •์‹  ์ด์ƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋” ์–ด๋ฆฌ์„๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์‹คํ–‰ ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

"ํ™”๋ฉด ์บก์ฒ˜" API๋ฅผ ๋ณด๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ๋ƒฅ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์†Œ์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜„์žฌ ํ™”๋ฉด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ฑ์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฉ‹์ง„ ๋ฐฉ๋ฒ•์„ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค(์ผ์ข…์˜ ์•ฑ์œผ๋กœ ์ „ํ™˜) -> ์‚ฌ์šฉ์ž ์ƒํ˜ธ ์ž‘์šฉ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ - ์˜ˆ , ์ „์ฒด๋ฅผ ๋ง์น˜๋Š” ์Šคํฌ๋ฆฐ์ƒท ์บก์ฒ˜๋ฅผ ํ—ˆ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค)

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

๋ชฉ๋ก์€ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์ฑ…์„ ์“ธ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”. ๋ฌผ๋ก  UWP/WinRT๋Š” ์ด๋ก ์ ์œผ๋กœ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ์Œ..

์›น ์‚ฌ์ดํŠธ์™€ ์•ฑ์ด ํฌ๊ฒŒ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ „์ž์ธ์ง€ ์•„๋‹Œ์ง€ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ๊ธฐ๋ณธ ๋Œ€ํ™” ์ƒ์ž์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ๋ณด์ธ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋”ฐ๋ผ UWP ์•ฑ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งž์Šต๋‹ˆ๋‹ค. ์ œ ์š”์ ์€ ์‚ฌ๋žŒ๋“ค์ด UWP ์•ฑ์„ ํฌ๊ธฐํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ ์€ ๊ทธ์— ๋”ฐ๋ฅธ ๋งŽ์€ ๋ฌธ์ œ๋ณด๋‹ค ๋” ํฝ๋‹ˆ๋‹ค.

@jtorjo
(๋‹จ์ˆœํžˆ ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.)

์•ฑ์ด ํฌ๊ทธ๋ผ์šด๋“œ์— ์žˆ์„ ๋•Œ๋งŒ ์ž‘๋™ํ•˜๋Š” ํด๋ฆฝ๋ณด๋“œ๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.

UWP ์•ฑ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋™์•ˆ ํด๋ฆฝ๋ณด๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์น˜ํ•ด์•ผ ํ•˜๋Š” ๋™์ผํ•œ(๋˜๋Š” ์œ ์‚ฌํ•œ) ๋ฌธ์ œ์— ๋„๋‹ฌํ–ˆ์œผ๋ฉฐ ๊ฒฐ๊ตญ ๋™๋ฐ˜๋œ win32 ์™„์ „ ์‹ ๋ขฐ ํ”„๋กœ์„ธ์Šค(Win32์˜ SetClipboardData ๋งŒ ํ˜ธ์ถœํ•จ)๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. UWP ์•ฑ์— ๋Œ€ํ•œ win32 ์™„์ „ ์‹ ๋ขฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜๋ฐ˜ํ•˜๋Š” ๊ฐœ๋…์ด ๋‰ด์Šค๋ผ๋ฉด ์—ฌ๊ธฐ ์—์„œ ์ข‹์€ ์†Œ๊ฐœ๋ฅผ ๋“ค์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ €์ž๋Š” ์ด์ „์— Microsoft์—์„œ UWP์— ๋Œ€ํ•ด ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค).

@Felix-Dev

UWP ์•ฑ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋™์•ˆ ํด๋ฆฝ๋ณด๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์น˜ํ•ด์•ผ ํ•˜๋Š” ๋™์ผํ•œ(๋˜๋Š” ์œ ์‚ฌํ•œ) ๋ฌธ์ œ์— ๋„๋‹ฌํ–ˆ์œผ๋ฉฐ ๊ฒฐ๊ตญ ๋™๋ฐ˜๋œ win32 ์™„์ „ ์‹ ๋ขฐ ํ”„๋กœ์„ธ์Šค(Win32์˜ SetClipboardData ๋งŒ ํ˜ธ์ถœํ•จ)๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. UWP ์•ฑ์— ๋Œ€ํ•œ win32 ์™„์ „ ์‹ ๋ขฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜๋ฐ˜ํ•˜๋Š” ๊ฐœ๋…์ด ๋‰ด์Šค๋ผ๋ฉด ์—ฌ๊ธฐ ์—์„œ ์ข‹์€ ์†Œ๊ฐœ๋ฅผ ๋“ค์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ €์ž๋Š” ์ด์ „์— Microsoft์—์„œ UWP์— ๋Œ€ํ•ด ์ž‘์—…ํ–ˆ์Šต๋‹ˆ๋‹ค).

ํฌ์ธํ„ฐ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! win32 ์™„์ „ ์‹ ๋ขฐ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•„๋งˆ๋„ ๊ทธ ๊ธฐ์‚ฌ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ฝ์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. :) ์‹ค์ œ๋กœ win32 ์™„์ „ ์‹ ๋ขฐ ํ”„๋กœ์„ธ์Šค ๋™๋ฐ˜์ž ์•ฑ์ด ์žˆ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๋ฒˆ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณต์žก์„ฑ์ด ์ถ”๊ฐ€๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ ํƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ MS ์Šคํ† ์–ด ์—†์ด๋„ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋Š” ์„ค์น˜ ํ‚คํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ฐฉ์ •์‹์—๋„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ํด๋”์—์„œ ๋น„๋””์˜ค ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ๋Š” Windows ํƒ์ƒ‰๊ธฐ์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๊ฒƒ์€ ๋‚ด ์•ฑ์˜ ๋งˆ๋ฒ•์‚ฌ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ์ข…๋ฅ˜์˜ ์ถ”๊ฐ€ ๋‹จ๊ณ„๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค(โŠ™หโŠ™)

๋‚ด ์ƒ๊ฐ์€ ์ง€๊ธˆ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๊ณผ ๋ฐ˜๋Œ€์˜€์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์™„๋ฒฝํ•˜๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๋น„๊ธฐ๋ฐ€ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ฐ€ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์˜ˆ๋ฅผ ๋“ค์–ด, ๋•Œ๋•Œ๋กœ ์˜ˆ์™ธ(๊ตฌ์ฒด์ ์œผ๋กœ COM ์˜ˆ์™ธ)๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์‹คํŒจ ์ง€์ ์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๋Œ€์‹  ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์Šคํƒ ์ถ”์ ์กฐ์ฐจ๋„ ์žƒ์–ด๋ฒ„๋ฆฐ. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด ๋‚ฌ๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ณ ํ†ต ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ์ผ์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜๋ฉด ๋งค์šฐ ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜์—๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ์˜ˆ์™ธ(์˜ˆ: XCG์—์„œ)์—๋Š” StackTrace๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋•Œ๋กœ๋Š” ์œ ์šฉํ•œ ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ •๋ง๋กœ ์•„๋ฌด ๋ง๋„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์€ ์ €์—๊ฒŒ ์‹ค์ œ๋กœ ๋ฌธ์ œ๊ฐ€ ๋œ ์ ์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ์ „์ฒด "์ •๋ณด๋ฅผ ๋น„๋™๊ธฐ์‹์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ์ฃผ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ œ๊ฐ€ ๋งค์šฐ ์‹ซ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ Œ๋”๋ง์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์ง€๋งŒ ๋น„ํŠธ๋งต ๋กœ๋“œ๋Š” ๋น„๋™๊ธฐ์‹์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์„ ์œ„ํ•ด ์ •๋ง ๋ณต์žกํ•œ ์บ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋•Œ๋•Œ๋กœ async๋Š” ์•ฝ๊ฐ„ ์„ฑ๊ฐ€์‹œ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ async ๋ฉ”์„œ๋“œ๋Š” async์—ฌ์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋˜๋Š” ํŒŒ์ผ ์ž‘์—…๊ณผ ๊ฐ™์€ ์ž‘์—…์—์„œ UI๋ฅผ ์ฐจ๋‹จํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์Œ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ๋ฉ”์„œ๋“œ๋ฅผ ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

```c#
// MyAsyncMethod๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
var myResult = MyAsyncMethod().๊ฒฐ๊ณผ;

// ๋ฉ”์„œ๋“œ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด ์ด ์ž‘์—…๋„ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
// ConfigureAwait๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์ปจํ…์ŠคํŠธ์—์„œ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
var myResult2 = MyAsyncMethod().ConfigureAwait(๊ฑฐ์ง“);
`` For ConfigureAwait` ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://devblogs.microsoft.com/dotnet/configureawait-faq/

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

"...dll"์€ ๋ฆด๋ฆฌ์Šค ๋ชจ๋“œ๋กœ ๋นŒ๋“œ๋˜์–ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์ด ์ผ๊ด€์„ฑ์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ปดํŒŒ์ผ ์‹œ๊ฐ„๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋„ค, ๊ทธ๊ฑด ์•ฝ๊ฐ„ ์„ฑ๊ฐ€์‹œ์ง€๋งŒ ~1๋ถ„์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. WinUI๋Š” ์•ฝ 5-10๋ถ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ˜…

๊ทธ๋ฆฌ๊ณ  ์˜ˆ, ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. VS๋Š” 10-20๋ฒˆ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, ๊ฝค ์„ฑ๊ฐ€์‹  ์ผ์ด์ง€๋งŒ ์ด๊ฒƒ์ด ์‹ค์ œ๋กœ UWP์— ์˜์กดํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ Visual Studio์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค(์—ฌ์ „ํžˆ 32๋น„ํŠธ ํ”„๋กœ์„ธ์Šค์ธ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค!).

๊ธ€์Ž„, ๋‚˜๋Š” ์• ํ”Œ ์Šคํ† ์–ด๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค๋ฉด ์ข‹์•˜์„ ํ…๋ฐ - ๋‚˜๋Š” ๊ทธ๋“ค์˜ ์ตœ๊ณ ์˜ ์•ฑ์ด ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ๋ฆฌ๋ทฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•œ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด UWP/WinRT๋ฅผ ํฌ๊ธฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— MS ์Šคํ† ์–ด๋Š” ์ ˆ๋Œ€ ๋”ฐ๋ผ๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. win2d๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ ์–ด๋„ 20๋ฒˆ์€ ํฌ๊ธฐํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

WPF์™€ ํ•จ๊ป˜ Win2D๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค: https://github.com/Microsoft/Win2D/issues/660

์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. Windows์— UWP ์•ฑ์œผ๋กœ ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜ํ•˜๋„๋ก ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ •์‹  ์ด์ƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋” ์–ด๋ฆฌ์„๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์‹คํ–‰์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ ์‹œ์—๋„ UWP ์•ฑ์„ ์ „์ฒด ํ™”๋ฉด ๋ชจ๋“œ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://stackoverflow.com/questions/31758775/windows-10-universal-app-run-in-fullscreen-mode-by-default
(๋‚˜๋Š” ๊ทธ๊ฒƒ์œผ๋กœ ์•ฑ์„ ์ œ์ถœํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ)

"ํ™”๋ฉด ์บก์ฒ˜" API๋ฅผ ๋ณด๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ๋ƒฅ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์†Œ์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜„์žฌ ํ™”๋ฉด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ฑ์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฉ‹์ง„ ๋ฐฉ๋ฒ•์„ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค(์ผ์ข…์˜ ์•ฑ์œผ๋กœ ์ „ํ™˜) -> ์‚ฌ์šฉ์ž ์ƒํ˜ธ ์ž‘์šฉ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ - ์˜ˆ , ์ „์ฒด๋ฅผ ๋ง์น˜๋Š” ์Šคํฌ๋ฆฐ์ƒท ์บก์ฒ˜๋ฅผ ํ—ˆ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค)

๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋Š” ์•ฑ์ด ํ—ˆ๋ฝ ์—†์ด ์ž„์˜๋กœ ํ™”๋ฉด์„ ์ฐ๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ฌธ์ œ๊ฐ€ ์—†์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋‚˜๋Š” ํ™•์‹คํžˆ ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ณ  ๋‹ค๋ฅธ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

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

์˜ˆ, ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ํฌ์ปค์Šค๊ฐ€ ์—†์„ ๋•Œ ์•ฑ์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋ฌธ์„œ์— ์–ธ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.datatransfer.clipboard

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

๋งž์Šต๋‹ˆ๋‹ค. ์ œ ์š”์ ์€ ์‚ฌ๋žŒ๋“ค์ด UWP ์•ฑ์„ ํฌ๊ธฐํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ ์€ ๊ทธ์— ๋”ฐ๋ฅธ ๋งŽ์€ ๋ฌธ์ œ๋ณด๋‹ค ๋” ํฝ๋‹ˆ๋‹ค.

์–ด์ฉŒ๋ฉด ๋ชจ๋“  ํ”Œ๋žซํผ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ์•ฑ์„ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹  ์›น์‚ฌ์ดํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  Electron ๋‚ด๋ถ€์— ํŒจํ‚ค์ง•ํ•˜์—ฌ Mac, Linux ๋ฐ Windows๋กœ ๋ฐฐ์†กํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ๋‹ค๋Š” ์‚ฌ์‹ค ๋•Œ๋ฌธ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ์ข…๋ฅ˜์˜ ์ถ”๊ฐ€ ๋‹จ๊ณ„๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค(โŠ™หโŠ™)

๊ทธ๋ ‡์ง€ ์•Š๋‹ค. ๊ทธ๊ฒƒ๊ณผ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋‹ค.

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

๋‚ด ์†”๋ฃจ์…˜์ด ์˜ณ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๋‚˜๋Š” โ€‹โ€‹์ƒŒ๋“œ๋ฐ•์Šค์— ์žˆ์ง€ ์•Š๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ง€ ํ˜„์žฌ ๊ตฌํ˜„์ด ๋งค์šฐ ๋‚˜์ฉ๋‹ˆ๋‹ค.

๋•Œ๋•Œ๋กœ async๋Š” ์•ฝ๊ฐ„ ์„ฑ๊ฐ€์‹œ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ async ๋ฉ”์„œ๋“œ๋Š” async์—ฌ์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋˜๋Š” ํŒŒ์ผ ์ž‘์—…๊ณผ ๊ฐ™์€ ์ž‘์—…์—์„œ UI๋ฅผ ์ฐจ๋‹จํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์Œ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ๋ฉ”์„œ๋“œ๋ฅผ ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ˆœํžˆ ๋‚ด๊ฐ€ ํ•ญ์ƒ UI ์Šค๋ ˆ๋“œ์—์„œ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์ž‘์—…์—๋Š” ๊ดœ์ฐฎ์ง€๋งŒ ๋‚˜๋งŒ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  ๋‚˜๋งŒ์˜ ์ž‘์—…์„ ๋งŒ๋“ค๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์„ ๋น„๋™๊ธฐํ™”ํ•˜๋ฉด ํ•ญ์ƒ await๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ํ•จ์ˆ˜๋ฅผ async๋กœ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

[...] ConfigureAwait ๊ฒฝ์šฐ ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://devblogs.microsoft.com/dotnet/configureawait-faq/

๊ณ ๋งˆ์›Œ, ๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ์•Œ๊ณ ์žˆ๋‹ค. ๋‚ด๊ฐ€ ๋งŒ๋‚œ ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ์ œ์•ˆํ•œ ๋Œ€๋กœ ๋น„ํŠธ๋งต(๋น„๋™๊ธฐ)์„ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ๋น„ํŠธ๋งต์„ ๋กœ๋“œํ•˜๋Š” ๋ฐ 5-6์ดˆ์™€ ๊ฐ™์€ ๋ฏธ์นœ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋๋‚ด์—ˆ๋‹ค.

"...dll"์€ ๋ฆด๋ฆฌ์Šค ๋ชจ๋“œ๋กœ ๋นŒ๋“œ๋˜์–ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์ด ์ผ๊ด€์„ฑ์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ปดํŒŒ์ผ ์‹œ๊ฐ„๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋„ค, ๊ทธ๊ฑด ์•ฝ๊ฐ„ ์„ฑ๊ฐ€์‹œ์ง€๋งŒ ~1๋ถ„์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. WinUI๋Š” ์•ฝ 5-10๋ถ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ˜…

์˜ˆ, ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๊ณ  ์‹ถ์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค. :) ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์ด ์ผ๊ด€์„ฑ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด ๋ฌด์Šจ ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์˜ˆ, ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. VS๋Š” 10-20๋ฒˆ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, ๊ฝค ์„ฑ๊ฐ€์‹  ์ผ์ด์ง€๋งŒ ์ด๊ฒƒ์ด ์‹ค์ œ๋กœ UWP์— ์˜์กดํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ Visual Studio์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค(์—ฌ์ „ํžˆ 32๋น„ํŠธ ํ”„๋กœ์„ธ์Šค์ธ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค!).

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด UWP์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ WPF๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ๋‚˜์—๊ฒŒ ์ผ์–ด๋‚œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” 28๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๊ณ  ๊ฒฐ์ฝ” ์ถฉ๋Œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. UWP์—๋Š” 15๊ฐœ์˜ ํ”„๋กœ์ ํŠธ(WPF์—์„œ ํฌํŒ…)๊ฐ€ ์žˆ๋Š”๋ฐ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฒคํŠธ ๋ทฐ์–ด๋ฅผ ๋ณด๋ฉด ์ƒŒ๋“œ๋ฐ•์Šค ์ถฉ๋Œ์— ๋Œ€ํ•ด ๋ญ”๊ฐ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ๊ธฐ์–ต์€ ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

WPF์™€ ํ•จ๊ป˜ Win2D๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค: microsoft/Win2D#660

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

UWP ์„ค์ • ์ž์ฒด๊ฐ€ ์‹ซ์€ ๋งŒํผ ๋‚ด ๋ง์ด ๋งž์•˜๋‹ค. ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ๋ชปํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๋‹น์‹ ์ด https://github.com/microsoft/Win2D/issues/731์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. Windows์— UWP ์•ฑ์œผ๋กœ ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜ํ•˜๋„๋ก ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ •์‹  ์ด์ƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋” ์–ด๋ฆฌ์„๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์‹คํ–‰์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์‹œ์ž‘ ์‹œ์—๋„ UWP ์•ฑ์„ ์ „์ฒด ํ™”๋ฉด ๋ชจ๋“œ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://stackoverflow.com/questions/31758775/windows-10-universal-app-run-in-fullscreen-mode-by-default

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. "์ตœ๋Œ€ํ™”ํ•˜๋ ค๋Š”" ์˜๋„์˜€์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ํฌ์ปค์Šค๊ฐ€ ์—†์„ ๋•Œ ์•ฑ์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋ฌธ์„œ์— ์–ธ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ๋””๋ฒ„๊ทธ์—์„œ ๋ฆด๋ฆฌ์Šค์™€ ๋‹ค๋ฅธ ๋™์ž‘์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.datatransfer.clipboard

ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ ํด๋ฆฝ๋ณด๋“œ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? [...]

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

๋งž์Šต๋‹ˆ๋‹ค. ์ œ ์š”์ ์€ ์‚ฌ๋žŒ๋“ค์ด UWP ์•ฑ์„ ํฌ๊ธฐํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ ์€ ๊ทธ์— ๋”ฐ๋ฅธ ๋งŽ์€ ๋ฌธ์ œ๋ณด๋‹ค ๋” ํฝ๋‹ˆ๋‹ค.

์–ด์ฉŒ๋ฉด ๋ชจ๋“  ํ”Œ๋žซํผ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ์•ฑ์„ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹  ์›น์‚ฌ์ดํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  Electron ๋‚ด๋ถ€์— ํŒจํ‚ค์ง•ํ•˜์—ฌ Mac, Linux ๋ฐ Windows๋กœ ๋ฐฐ์†กํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ๋‹ค๋Š” ์‚ฌ์‹ค ๋•Œ๋ฌธ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๊ทธ๊ฒƒ์€ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ์ฃผ์ œ์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์€ UWP ์•ฑ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ๋žŒ๋“ค์ด ์ง๋ฉดํ•˜๋Š” ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋‹จ์ˆœํžˆ ์กด์žฌํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. WPF์—์„œ UWP๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋‚˜์œ ๊ฒฝํ—˜์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@chingucoding

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

์ œ ๊ฒฝ์šฐ์—๋Š” ์•ฑ์ด ๊ฐ์‹œํ•˜๋Š” ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•ฑ์— ์•Œ๋ฆผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ถ”๊ฐ€ ์ฒ˜๋ฆฌ/๋‹ค๋ฅธ ์ปจํ…์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์ •๋ณด๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ‘œ์‹œ๋œ ์ •๋ณด ์ค‘ ์ผ๋ถ€๋ฅผ ๋ณต์‚ฌํ•˜๋Š” [ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ] ์ž‘์—… ๋ฒ„ํŠผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ฆผ์ด ์–ธ์ œ๋“ ์ง€ ๋„์ฐฉํ•  ์ˆ˜ ์žˆ๊ณ  ๊ทธ ์‹œ์ ์—์„œ ์•ฑ์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์— ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด ๊ฒฝ์šฐ Win32 ๋„์šฐ๋ฏธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์•ฑ๊ณผ ํ•จ๊ป˜ Win32 ์™„์ „ ์‹ ๋ขฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ MS๊ฐ€ ์ด๋Ÿฌํ•œ ๋”œ๋ ˆ๋งˆ๋ฅผ ์ธ์‹ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ฐœ๋ฐœ์ž์—๊ฒŒ UWP๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ๋„ ์—ฌ์ „ํžˆ Win32์˜ ์ž์œ ๋ฅผ ์ถฉ๋ถ„ํžˆ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š๋‹ค. ๊ทธ๊ฒƒ๊ณผ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋‹ค.

์ง€๊ธˆ ์•ฑ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋””์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๐Ÿ˜‚

๋ถ„๋ช…ํžˆ ๋‚˜๋Š” โ€‹โ€‹์ƒŒ๋“œ๋ฐ•์Šค์— ์žˆ์ง€ ์•Š๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ง€ ํ˜„์žฌ ๊ตฌํ˜„์ด ๋งค์šฐ ๋‚˜์ฉ๋‹ˆ๋‹ค.

์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์œผ๋ฉด WPF ๋Œ€์•ˆ์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ์„ ํƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UWP์—์„œ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์€ ์„ ํƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฅผ ์œ„ํ•œ ์•ฑ์„ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” WPF ๋Œ€์•ˆ์ด Win2D์— ๋น„ํ•ด ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์ด ๋ชจ๋“  ์–ด๋ ค์›€์„ ๊ฒช๋Š” ๊ฒƒ์„ ์ •๋‹นํ™”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋‚˜์˜ ๊ด€์ ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ํ˜„์žฌ ๊ตฌํ˜„์€ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ œํ•œ์ด ์—†๋Š” ๋ฐ ์ต์ˆ™ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ "๋‚˜์จ"์ž…๋‹ˆ๋‹ค. ์›น ๊ฐœ๋ฐœ ๋ฐฐ๊ฒฝ์—์„œ ์˜จ ์ €๋Š” ๊ทธ ์ ์— ๋งค์šฐ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์›น์—๋Š” ์‚ฌ์šฉ์ž ๋ณดํ˜ธ๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์ œํ•œ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋“ค์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์ด ์ผ๊ด€์„ฑ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ์šฉ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์ด ์ž˜๋ชป๋˜์—ˆ๊ณ  ๋ฆด๋ฆฌ์Šค์—์„œ ์ผ๋ถ€ dll์ด ์ƒ์„ฑ๋˜๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Visual Studio์—์„œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๋ฉด ๊ทธ๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚ ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด UWP์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ WPF๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ๋‚˜์—๊ฒŒ ์ผ์–ด๋‚œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” 28๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๊ณ  ๊ฒฐ์ฝ” ์ถฉ๋Œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. UWP์—๋Š” 15๊ฐœ์˜ ํ”„๋กœ์ ํŠธ(WPF์—์„œ ํฌํŒ…)๊ฐ€ ์žˆ๋Š”๋ฐ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฒคํŠธ ๋ทฐ์–ด๋ฅผ ๋ณด๋ฉด ์ƒŒ๋“œ๋ฐ•์Šค ์ถฉ๋Œ์— ๋Œ€ํ•ด ๋ญ”๊ฐ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ๊ธฐ์–ต์€ ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Visual Studio์˜ ์•ˆ์ •์„ฑ์€ ์ €์—๊ฒŒ ์žˆ์–ด ํ”„๋กœ์ ํŠธ ํฌ๊ธฐ์— ํฌ๊ฒŒ ์ขŒ์šฐ๋ฉ๋‹ˆ๋‹ค. ์ค‘์†Œํ˜• UWP/NetCore/NetFramework๋Š” ํ•ญ์ƒ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋กœ ์ธํ•ด Visual Studio๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ํ•œ ๋ฒˆ์— ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฑด ์ œ ๊ฒฝํ—˜์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. "์ตœ๋Œ€ํ™”ํ•˜๋ ค๋Š”" ์˜๋„์˜€์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์•ฑ์ด ์‹œ์ž‘๋œ ํ›„์— ๊ฐ’์„ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ์‹œ์ž‘ ์‹œ์—๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. "Windows์— ๋ฌผ์–ด๋ด์•ผํ•ฉ๋‹ˆ๋‹ค"๋ผ๋Š” ๋ง์ด ๋ฌด์Šจ ๋ง์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋กœ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”?

๋˜ํ•œ ์„ ํ˜ธํ•˜๋Š” ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‹ค์ œ ์ตœ๋Œ€ํ™”๋งŒํผ ์ข‹์ง€๋Š” ์•Š์ง€๋งŒ ์•ฑ์ด ํ™”๋ฉด์˜ ๋ชจ๋“  ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค(์ตœ๋Œ€ํ™”์™€ ์œ ์‚ฌ).
https://stackoverflow.com/questions/35247320/how-to-maximize-a-uwp-window-not-fullscreen?rq=1

์ด๊ฒƒ์€ ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ˆœํžˆ ๋‚ด๊ฐ€ ํ•ญ์ƒ UI ์Šค๋ ˆ๋“œ์—์„œ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์ž‘์—…์—๋Š” ๊ดœ์ฐฎ์ง€๋งŒ ๋‚˜๋งŒ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  ๋‚˜๋งŒ์˜ ์ž‘์—…์„ ๋งŒ๋“ค๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ์ž์‹ ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด await๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋Š” ํ•ญ์ƒ UI ์“ฐ๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๊ธฐ์—์„œ ๋ฐฉ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ํ•˜๋ฉด ์•ฑ์ด ์‘๋‹ตํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

UWP ์„ค์ • ์ž์ฒด๊ฐ€ ์‹ซ์€ ๋งŒํผ ๋‚ด ๋ง์ด ๋งž์•˜๋‹ค. ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ๋ชปํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๋‹น์‹ ์ด microsoft/Win2D#731์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ €๋„ ๋ชฐ๋ž๋Š”๋ฐ 2018๋…„๋ถ€ํ„ฐ ๋ง์”€๋“œ๋ฆฐ ๋ฌธ์ œ์ด๋‹ˆ ์ง€๊ธˆ์ฏค์€ ์ž˜ ํ•ด๊ฒฐ๋˜๋ฆฌ๋ผ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ๋””๋ฒ„๊ทธ์—์„œ ๋ฆด๋ฆฌ์Šค์™€ ๋‹ค๋ฅธ ๋™์ž‘์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ  ์•„์ฃผ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ํ–‰๋™์€ ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์žฌ๋ฏธ์žˆ๋Š” ์ ์€ ์ด๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•  ๋•Œ ํด๋ฆฝ๋ณด๋“œ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์„ค๋ช…์„œ์—์„œ ํ•ด๋‹น ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์–ธ๊ธ‰ํ•˜๋ฉฐ CoreWindow.Activated๊ฐ€ ๋ณต์‚ฌ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฉ๊ธˆ ์•ฑ์„ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ํด๋ฆฝ๋ณด๋“œ์— ์ •ํ™•ํžˆ ๋ณต์‚ฌํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? @Felix-Dev๊ฐ€ ๋‹ฌ์„ฑ/๋‹ฌ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ๊ฒƒ์ž…๋‹ˆ๊นŒ?


@Felix-Dev ๋‹ต๋ณ€ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜๋‹ค. ์ด ๊ฒฝ์šฐ ํด๋ฆฝ๋ณด๋“œ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋ฉฐ ์ด๋Š” ์‚ฌ์šฉ์ž์˜ ๊ฒฝํ—˜์„ ํ™•์‹คํžˆ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋‚ด ์ถ”์ธก์œผ๋กœ๋Š” ๋‹น์‹ ์ด "์ดˆ์ ์„ ๊ฐ€์ง€๊ณ " ๊ฑด๋ฐฐํ•œ ์ดํ›„๋กœ ์ด๊ฒƒ์ด ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์•„์š”.

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

์˜ˆ, ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜์ง€๋งŒ ๋งŽ์€ ์•ฑ์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ค์šธ ์ •๋„๋กœ ์ƒŒ๋“œ๋ฐ•์Šค์— ์˜ํ•ด ์ œํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์žŠ์ง€ ๋ง์•„์•ผ ํ•  ํ•œ ๊ฐ€์ง€๋Š” UWP๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋„ ์—ฌ์ „ํžˆ 2๊ฐ€์ง€ ๋‹ค๋ฅธ ์˜ต์…˜์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ ์š”์ ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์˜ˆ, Win32 ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ UWP๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์ œํ•œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๊ฐ€์žฅ ์‰ฝ๊ณ  ๋น ๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด๊ฑฐ๋‚˜ ์‹ค์ œ๋กœ ์˜๋„์ ์œผ๋กœ ์„ค๊ณ„๋œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š๋‹ค. ๊ทธ๊ฒƒ๊ณผ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋‹ค.

์ง€๊ธˆ ์•ฑ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋””์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๐Ÿ˜‚

์—ฌ๊ธฐ -> https://hot-awe.com

์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์œผ๋ฉด WPF ๋Œ€์•ˆ์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ์„ ํƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UWP์—์„œ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์€ ์„ ํƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฅผ ์œ„ํ•œ ์•ฑ์„ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” WPF ๋Œ€์•ˆ์ด Win2D์— ๋น„ํ•ด ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์ด ๋ชจ๋“  ์–ด๋ ค์›€์„ ๊ฒช๋Š” ๊ฒƒ์„ ์ •๋‹นํ™”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋‚˜์˜ ๊ด€์ ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ WPF ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋น„๋””์˜ค ํŽธ์ง‘์˜ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ์†๋„๋ฉด์—์„œ WPF์˜ ํ•œ๊ณ„์— ๋„๋‹ฌํ•œ ์ง€ ์˜ค๋ž˜์ž…๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ DrawingVisual ). ์ €๋ฅผ ๋ฏฟ์œผ์„ธ์š”. ์„ ํƒ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ์—ˆ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ํ˜„์žฌ ๊ตฌํ˜„์€ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ œํ•œ์ด ์—†๋Š” ๋ฐ ์ต์ˆ™ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ "๋‚˜์จ"์ž…๋‹ˆ๋‹ค. ์›น ๊ฐœ๋ฐœ ๋ฐฐ๊ฒฝ์—์„œ ์˜จ ์ €๋Š” ๊ทธ ์ ์— ๋งค์šฐ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ์›น์—๋Š” ์‚ฌ์šฉ์ž ๋ณดํ˜ธ๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์ œํ•œ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋“ค์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ์›น ๋ฐฐ๊ฒฝ์—์„œ ์™”๋‹ค๊ณ  ๋งน์„ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค :)

๋””๋ฒ„๊ทธ์šฉ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์ด ์ž˜๋ชป๋˜์—ˆ๊ณ  ๋ฆด๋ฆฌ์Šค์—์„œ ์ผ๋ถ€ dll์ด ์ƒ์„ฑ๋˜๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Visual Studio์—์„œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๋ฉด ๊ทธ๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚ ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์‚ฌ์‹ค์ด ์•„๋‹ˆ์ง€๋งŒ ๋‚˜๋Š” ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค - ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Visual Studio์˜ ์•ˆ์ •์„ฑ์€ ์ €์—๊ฒŒ ์žˆ์–ด ํ”„๋กœ์ ํŠธ ํฌ๊ธฐ์— ํฌ๊ฒŒ ์ขŒ์šฐ๋ฉ๋‹ˆ๋‹ค. ์ค‘์†Œํ˜• UWP/NetCore/NetFramework๋Š” ํ•ญ์ƒ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋กœ ์ธํ•ด Visual Studio๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ํ•œ ๋ฒˆ์— ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฑด ์ œ ๊ฒฝํ—˜์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ๋‚˜๋Š” ๊ณผ๊ฑฐ์— ๊ทธ๊ฒƒ์„ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์˜ VS(2017,2019)์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“ , ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ์ด๊ฒƒ์€ UWP์—์„œ ์ €์—๊ฒŒ ์ผ์–ด๋‚œ ์ผ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ win2d๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค๊ณผ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚˜๋Š” ์ƒ๋‹นํžˆ ๋ณต์žกํ•œ ์ง์Šน์ด๋ผ๋Š” ๋Š๋‚Œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์•ฑ์ด ์‹œ์ž‘๋œ ํ›„์— ๊ฐ’์„ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ์‹œ์ž‘ ์‹œ์—๋งŒ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. "Windows์— ๋ฌผ์–ด๋ด์•ผํ•ฉ๋‹ˆ๋‹ค"๋ผ๋Š” ๋ง์ด ๋ฌด์Šจ ๋ง์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋กœ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”?

WPF์—์„œ๋Š” ์ฐฝ ํฌ๊ธฐ๋ฅผ ์›ํ•˜๋Š” ์œ„์น˜๋กœ ์„ค์ •ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค -> ApplicationView.PreferredLaunchViewSize - ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด "์‹œ์Šคํ…œ์ด ์ฐฝ ํฌ๊ธฐ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค." - ์˜ˆ, ๋‹ค์Œ ์•ฑ ์‹œ์ž‘์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์„ ํ˜ธํ•˜๋Š” ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‹ค์ œ ์ตœ๋Œ€ํ™”๋งŒํผ ์ข‹์ง€๋Š” ์•Š์ง€๋งŒ ์•ฑ์ด ํ™”๋ฉด์˜ ๋ชจ๋“  ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค(์ตœ๋Œ€ํ™”์™€ ์œ ์‚ฌ).
https://stackoverflow.com/questions/35247320/how-to-maximize-a-uwp-window-not-fullscreen?rq=1

์‹ค์ œ๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

var view = DisplayInformation.GetForCurrentView();
var resolution = new Size(view.ScreenWidthInRawPixels, view.ScreenHeightInRawPixels);
var scale = view.ResolutionScale == ResolutionScale.Invalid ? 1 : view.RawPixelsPerViewPixel;
var bounds = new Size(resolution.Width / scale, resolution.Height / scale);

ApplicationView.PreferredLaunchViewSize = new Size(bounds.Width, bounds.Height);
ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;

์ด๋ฏธ ์ž์‹ ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด await๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋Š” ํ•ญ์ƒ UI ์“ฐ๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๊ธฐ์—์„œ ๋ฐฉ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ํ•˜๋ฉด ์•ฑ์ด ์‘๋‹ตํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

๋ถ„๋ช…ํžˆ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋Š” UI ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ข€ ์ต์ˆ™ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์•ฑ์„ ์ƒ๋‹นํžˆ ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์— async๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๋‚˜๋ฅผ ๊ดด๋กญํžˆ๋Š” ๊ฒƒ์€ ๊ฝค ๋งŽ์€ API๊ฐ€ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทน๋‹จ์ ์œผ๋กœ Async() ๋ฒ„์ „๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ €๋„ ๋ชฐ๋ž๋Š”๋ฐ 2018๋…„๋ถ€ํ„ฐ ๋ง์”€๋“œ๋ฆฐ ๋ฌธ์ œ์ด๋‹ˆ ์ง€๊ธˆ์ฏค์€ ์ž˜ ํ•ด๊ฒฐ๋˜๋ฆฌ๋ผ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค - ์ ์–ด๋„ ๋‚ด๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ™•์ธํ–ˆ์„ ๋•Œ.

๋ฌธ์ œ๋Š” ๋””๋ฒ„๊ทธ์—์„œ ๋ฆด๋ฆฌ์Šค์™€ ๋‹ค๋ฅธ ๋™์ž‘์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ  ์•„์ฃผ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ํ–‰๋™์€ ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๋˜ํ•œ ์„ค๋ช…์„œ์—์„œ ํ•ด๋‹น ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์–ธ๊ธ‰ํ•˜๋ฉฐ CoreWindow.Activated๊ฐ€ ๋ณต์‚ฌ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฉ๊ธˆ ์•ฑ์„ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ํด๋ฆฝ๋ณด๋“œ์— ์ •ํ™•ํžˆ ๋ณต์‚ฌํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? @Felix-Dev๊ฐ€ ๋‹ฌ์„ฑ/๋‹ฌ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

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

์—ฌ๊ธฐ -> https://hot-awe.com

๊ฐ์‚ฌ ํ•ด์š”!

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

WPF๊ฐ€ UWP์— ๋น„ํ•ด ๊ทธ๋ ‡๊ฒŒ ํฐ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์‚ฌ์‹ค์ด ์•„๋‹ˆ์ง€๋งŒ ๋‚˜๋Š” ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค - ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์ƒ ํ•˜๋„ค. ๋ญ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์˜ˆ์ƒํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ VS๊ฐ€ ๋ฆด๋ฆฌ์Šค dll์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

WPF์—์„œ๋Š” ์ฐฝ ํฌ๊ธฐ๋ฅผ ์›ํ•˜๋Š” ์œ„์น˜๋กœ ์„ค์ •ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ApplicationView.PreferredLaunchViewSize - ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด "์‹œ์Šคํ…œ์ด ์ฐฝ ํฌ๊ธฐ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค."

ํ•˜์ง€๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ฝ”๋“œ๋„ ์ฐฝ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋Š” API๊ฐ€ ์•„๋‹Œ๊ฐ€์š”?

  • ์˜ˆ, ๋‹ค์Œ ์•ฑ ์‹œ์ž‘์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

"PreferredLaunchViewSize"๋ผ๊ณ  ํ•˜๋ฉด ๋†€๋ž์ง€ ์•Š์Šต๋‹ˆ๋‹ค ๐Ÿ˜…
๋‹ค๋งŒ ๋Ÿฐ์นญ ํ›„์—๋Š” ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋Š” ๊ฒƒ์ด ์กฐ๊ธˆ ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, ๋‚˜๋Š” ๊ณผ๊ฑฐ์— ๊ทธ๊ฒƒ์„ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์˜ VS(2017,2019)์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“ , ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ์ด๊ฒƒ์€ UWP์—์„œ ์ €์—๊ฒŒ ์ผ์–ด๋‚œ ์ผ์ž…๋‹ˆ๋‹ค.

VS์˜ ์ด์ „ ๋ฒ„์ „๋งŒํผ ๋‚˜์˜์ง€ ์•Š๋‹ค๋Š” ์†Œ์‹์„ ๋“ค์œผ๋‹ˆ ๊ธฐ์ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ win2d๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค๊ณผ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚˜๋Š” ์ƒ๋‹นํžˆ ๋ณต์žกํ•œ ์ง์Šน์ด๋ผ๋Š” ๋Š๋‚Œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…œํ”Œ๋ฆฟ ๋ฐ”์ธ๋”ฉ์— ์‹คํŒจํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””์ž์ด๋„ˆ์—๊ฒŒ ๋งŽ์ด ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Visual Studio์šฉ Blend๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? ๋””์ž์ด๋„ˆ์— ๋Œ€ํ•ด ๋” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

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

๋„ค, ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ์ ์€ WPF์—์„œ UWP๋กœ์˜ ์ „ํ™˜ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์กด์žฌํ•œ๋‹ค๋ฉด ์ƒˆ๋กœ์šด UWP์™€ ์ด์ „ WPF ๊ฐœ๋ฐœ์ž์˜ ์‹œ๊ฐ„์„ ํ™•์‹คํžˆ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „ํ™˜ ๊ฐ€์ด๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์ด๋ฒˆ์ด ์ฒ˜์Œ์ด ์•„๋‹™๋‹ˆ๋‹ค. Java to C# ๊ฐ€์ด๋“œ๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฏ€๋กœ Java ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

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

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

WPF๊ฐ€ UWP์— ๋น„ํ•ด ๊ทธ๋ ‡๊ฒŒ ํฐ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค.

WPF๋Š” DirectX์— ์ตœ์ ํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ”ฝ์…€ ์…ฐ์ด๋”์™€ ๋งˆ์Šคํฌ๊ฐ€ ์ž‘๋™ํ•˜๋ฉด ๋งค์šฐ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค. UWP/win2d๋กœ ์ด์‹ํ•˜๋ฉด ์•ฑ์ด 3~4๋ฐฐ ๋นจ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ์—„์ฒญ๋‚˜๊ฒŒ ๋ˆˆ์— ๋•๋‹ˆ๋‹ค.

์ด์ƒ ํ•˜๋„ค. ๋ญ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์˜ˆ์ƒํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ VS๊ฐ€ ๋ฆด๋ฆฌ์Šค dll์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋„ค, ์ •ํ™•ํžˆ ์ œ ์š”์ ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ฝ”๋“œ๋„ ์ฐฝ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋Š” API๊ฐ€ ์•„๋‹Œ๊ฐ€์š”?

๋‚ด ๋ง์€, ๋‹น์‹ ์€ Preferred...Size๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์ด ์ผ์–ด๋‚  ๊ฒƒ์ด๋ผ๋Š” ๋ณด์žฅ์€ ์—†์Šต๋‹ˆ๋‹ค. WPF๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์œ„์น˜/ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•  ๋•Œ ์‹ค์ œ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

"PreferredLaunchViewSize"๋ผ๊ณ  ํ•˜๋ฉด ๋†€๋ž์ง€ ์•Š์Šต๋‹ˆ๋‹ค ๐Ÿ˜…
๋‹ค๋งŒ ๋Ÿฐ์นญ ํ›„์—๋Š” ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋Š” ๊ฒƒ์ด ์กฐ๊ธˆ ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค.

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

ํ…œํ”Œ๋ฆฟ ๋ฐ”์ธ๋”ฉ์— ์‹คํŒจํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””์ž์ด๋„ˆ์—๊ฒŒ ๋งŽ์ด ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Visual Studio์šฉ Blend๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? ๋””์ž์ด๋„ˆ์— ๋Œ€ํ•ด ๋” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋” ๊ตฌ์ฒด์ ์ด์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. xaml์„ ํŽธ์ง‘ํ•  ๋•Œ VS๊ฐ€ ์ถฉ๋Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ฑ์„ ์‹œ์ž‘ํ•  ๋•Œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฐํฌ ์‹œ ์ •ํ™•ํžˆ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. (uwp) ์•ฑ์—์„œ 10์ดˆ ๋™์•ˆ ํฐ "x"๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ๊ทธ ์‹œ์ ์—์„œ ์ค‘๋‹จ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ 45-60์ดˆ ๋” ๊ธฐ๋‹ค๋ฆฌ๋ฉด VS๊ฐ€ ์ถฉ๋Œํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์ž‘์—… ๊ด€๋ฆฌ์ž์—์„œ VS๋ฅผ ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ์ ์€ WPF์—์„œ UWP๋กœ์˜ ์ „ํ™˜ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ๋งค์šฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ;) ์‹ค์ œ๋กœ ์ž‘๋™ํ–ˆ๋‹ค๋ฉด ๋˜‘๋˜‘ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค :)

@chingucoding

๋•Œ๋•Œ๋กœ async๋Š” ์•ฝ๊ฐ„ ์„ฑ๊ฐ€์‹œ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ async ๋ฉ”์„œ๋“œ๋Š” async์—ฌ์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋˜๋Š” ํŒŒ์ผ ์ž‘์—…๊ณผ ๊ฐ™์€ ์ž‘์—…์—์„œ UI๋ฅผ ์ฐจ๋‹จํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์Œ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ๋ฉ”์„œ๋“œ๋ฅผ ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํŒŒ์ผ ์„ ํƒ๊ธฐ๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ์ง์ž‘ํ•˜์‹œ๊ฒ ์ง€๋งŒ ๋น„๋™๊ธฐ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๋Š” ๋‘ ๋ฒˆ ํด๋ฆญํ–ˆ์Šต๋‹ˆ๋‹ค(ํด๋ฆญ ์‚ฌ์ด์— ์•ฝ 100ms ์ผ์‹œ ์ค‘์ง€). ํ™•์‹คํžˆ, ์ด๊ฒƒ์€ 2๊ฐœ์˜ ํŒŒ์ผ ์„ ํƒ๊ธฐ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋ถ„๋ช…ํžˆ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ดˆ๊ธฐ ๊ธฐ๋Šฅ์ด ๋™๊ธฐ์‹์ด์—ˆ๋‹ค๋ฉด ์ด๋Ÿฐ ์ผ์€ ์ ˆ๋Œ€ ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋ฌผ๋ก  WPF์—์„œ๋Š” ์ ˆ๋Œ€ ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค).

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

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

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

ํ•  ์ˆ˜ ์—†์–ด ์‚ฌ์šฉ์ž๊ฐ€ "๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค"์— ๋Œ€ํ•ด ๊ดœ์ฐฎ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

ํฌ๊ธฐ ์กฐ์ •์ด ๊ทธ๋ ‡๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด "๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค"๋Š” ๋“œ๋ฌธ ์ผ์ด ์•„๋‹ˆ๋ฏ€๋กœ ์ œ ์ƒ๊ฐ์—๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๋Š” ๋‘ ๋ฒˆ ํด๋ฆญํ–ˆ์Šต๋‹ˆ๋‹ค(ํด๋ฆญ ์‚ฌ์ด์— ์•ฝ 100ms ์ผ์‹œ ์ค‘์ง€). ํ™•์‹คํžˆ, ์ด๊ฒƒ์€ 2๊ฐœ์˜ ํŒŒ์ผ ์„ ํƒ๊ธฐ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ •ํ™•ํžˆ ํŒŒ์ผ ์„ ํƒ๊ธฐ๋ฅผ ๋‘ ๋ฒˆ ์—ฐ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋‘ ๋ฒˆ ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์ด๋Š” ๋น„๋™๊ธฐ๋กœ ์ธํ•œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ UI๊ฐ€ ํ•ด๋‹น ๋ฒ„ํŠผ์—์„œ ์ถ”๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํŒŒ์ผ ์„ ํƒ๊ธฐ๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ์ง์ž‘ํ•˜์‹œ๊ฒ ์ง€๋งŒ ๋น„๋™๊ธฐ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ์‚ฌ์šฉ์ž๊ฐ€ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ํด๋”๋ฅผ ์„ ํƒํ•˜๋Š” ๋™์•ˆ ์ „์ฒด ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜๊ณ  ์‹ถ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋™๊ธฐ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ/ํด๋” ์„ ํƒ์„ ๋งˆ์น˜๋ฉด ํ˜ธ์ถœ์ด ์™„๋ฃŒ๋˜๊ณ  ๊ฒฐ๊ณผ๋กœ ์„ ํƒํ•œ ํŒŒ์ผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ œ ์ƒ๊ฐ์—๋Š” ์‹ค์ œ๋กœ ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆด์ง€ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ž‘์—…์—์„œ ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ ๋•Œ๋ฌธ์— UI ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜๋ฉด ํŒŒ์ผ ์„ ํƒ๊ธฐ๊ฐ€ ์—ด๋ ค ์žˆ๋Š” ๋™์•ˆ ์•ฑ์ด ์‘๋‹ตํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋ฉฐ IMO๋Š” ์ข‹์€ UX๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์ •์ค‘ํ•˜๊ฒŒ ๋งํ•˜๋ฉด์„œ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ๊ฒƒ์—๋„ ๋™์˜ํ•˜์ง€ ์•Š์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

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

ํŠน์ • ํฌ๊ธฐ๋ฅผ ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ์•ฑ์˜ ๊ฒฝ์šฐ "๋งค์šฐ ๋ถˆํŽธ"ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์•ฑ์€ ์ž์ฒด ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์•ฑ์€ ํ˜„์žฌ ์‚ฌ์šฉ์ž ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ ํ•ฉํ•œ ํฌ๊ธฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์‚ฌ์šฉ์ž๊ฐ€ ๋” ์ž‘๊ฒŒ ๋˜๋Š” ๋” ํฌ๊ฒŒ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋ณด๋‹ค

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

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

๊ทธ๋“ค์ด ๊ทธ๋žฌ๋‹ค๋ฉด ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐ์กฐ์ฐจํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋งˆ๋ฒ•์‚ฌ๋Š” ๋•Œ๋•Œ๋กœ ๋” ์ž‘์€ ํฌ๊ธฐ๋กœ ์‹คํ–‰๋˜๊ณ  ๋งˆ๋ฒ•์‚ฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์•ฑ์ด ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•  ์ˆ˜ ์—†์–ด ์‚ฌ์šฉ์ž๊ฐ€ "๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค"์— ๋Œ€ํ•ด ๊ดœ์ฐฎ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?

ํฌ๊ธฐ ์กฐ์ •์ด ๊ทธ๋ ‡๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด "๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค"๋Š” ๋“œ๋ฌธ ์ผ์ด ์•„๋‹ˆ๋ฏ€๋กœ ์ œ ์ƒ๊ฐ์—๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํŠน์ • ํฌ๊ธฐ๋งŒ ์ข‹์•„ ๋ณด์ด๋Š” ์ฐฝ์„ ํ‘œ์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ž‘ ๊ฒฝํ—˜์ด ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Windows์—์„œ๋Š” "์˜ค, ํ•˜์ง€๋งŒ ์›ํ•˜๋Š” ๋Œ€๋กœ ์•ฑ์„ ํ‘œ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ ๋งŒ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ •ํ™•ํžˆ ํŒŒ์ผ ์„ ํƒ๊ธฐ๋ฅผ ๋‘ ๋ฒˆ ์—ฐ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋‘ ๋ฒˆ ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์ด๋Š” ๋น„๋™๊ธฐ๋กœ ์ธํ•œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ UI๊ฐ€ ํ•ด๋‹น ๋ฒ„ํŠผ์—์„œ ์ถ”๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์†”์งํžˆ ์ด๋Ÿฌ๋Š”๊ฑฐ์•ผ? ์˜์‹์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž˜๋ ธ๋Š”์ง€ ๋ณด์—ฌ์ฃผ์„ธ์š”.

์ œ ์ƒ๊ฐ์—๋Š” ์‹ค์ œ๋กœ ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆด์ง€ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ž‘์—…์—์„œ ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ ๋•Œ๋ฌธ์— UI ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜๋ฉด ํŒŒ์ผ ์„ ํƒ๊ธฐ๊ฐ€ ์—ด๋ ค ์žˆ๋Š” ๋™์•ˆ ์•ฑ์ด ์‘๋‹ตํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋ฉฐ IMO๋Š” ์ข‹์€ UX๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

WPF๋Š” ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ? ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. UI๋Š” ์ฐจ๋‹จ๋˜์ง€ ์•Š์ง€๋งŒ ์•ฑ์€ ํ•ด๋‹น ํ˜ธ์ถœ์—์„œ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์˜ ๋‚ด์šฉ์€ WPF์—์„œ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ •์ค‘ํ•˜๊ฒŒ ๋งํ•˜๋ฉด์„œ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ๊ฒƒ์—๋„ ๋™์˜ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ด ํ† ๋ก ์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ๊ฒฌํ•ด๋ผ๋ฉด ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์œ ๊ฐ์Šค๋Ÿฝ๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

๋” ์ •ํ™•ํ•œ ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋ฌด ๊ฒƒ๋„ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋Š” ๋ฐฐ๊ฒฝ์—์„œ ์™”๊ณ  ๋‹น์‹ ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋“  OS ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฐ๊ฒฝ์—์„œ ์™”์Šต๋‹ˆ๋‹ค.

๊ทธ๋“ค์ด ๊ทธ๋žฌ๋‹ค๋ฉด ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐ์กฐ์ฐจํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋งˆ๋ฒ•์‚ฌ๋Š” ๋•Œ๋•Œ๋กœ ๋” ์ž‘์€ ํฌ๊ธฐ๋กœ ์‹คํ–‰๋˜๊ณ  ๋งˆ๋ฒ•์‚ฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์•ฑ์ด ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ ๋งˆ๋ฒ•์‚ฌ๋Š” ๋” ์ž‘์€ ํฌ๊ธฐ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๋งˆ๋ฒ•์‚ฌ(Visual Studio 2019 Startup "๋งˆ๋ฒ•์‚ฌ" ํฌํ•จ)๋Š” ์Šค์Šค๋กœ๋ฅผ ๋‹ซ์€ ๋‹ค์Œ ์‹ค์ œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ "๋ชจํ•‘"ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

ํŠน์ • ํฌ๊ธฐ๋งŒ ์ข‹์•„ ๋ณด์ด๋Š” ์ฐฝ์„ ํ‘œ์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ž‘ ๊ฒฝํ—˜์ด ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Windows์—์„œ๋Š” "์˜ค, ํ•˜์ง€๋งŒ ์›ํ•˜๋Š” ๋Œ€๋กœ ์•ฑ์„ ํ‘œ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ ๋งŒ ๋งํ•ฉ๋‹ˆ๋‹ค.

Windows๊ฐ€ ํ•ญ์ƒ ์ฝ”๋“œ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•˜๊ณ  ์–ธ์ œ ์ด๋ฅผ ๋ฌด์‹œํ• ์ง€ ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค("PreferredLaunchViewSize" ๋ฌธ์„œ์—์„œ ๊ฐ€์ ธ์˜ด).

์ด ์†์„ฑ์€ ํƒœ๋ธ”๋ฆฟ ๋ชจ๋“œ๊ฐ€ ์•„๋‹Œ ๋ฐ์Šคํฌํ†ฑ ์žฅ์น˜์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•  ๋•Œ๋งŒ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํƒœ๋ธ”๋ฆฟ์ด ์•„๋‹Œ ๋ชจ๋“œ์˜ ๋ฐ์Šคํฌํ†ฑ์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ ํฌ๊ธฐ๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด ๋‹ค๋ฅธ ์žฅ์น˜์—์„œ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์•ฑ์ด X-Box ๋˜๋Š” Holo Lens์—์„œ ์‹คํ–‰๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์žฅ์น˜์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์ด ์ œํ•œ์ด ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ด ๊ท€์ฐฎ๊ฒŒํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

์†”์งํžˆ ์ด๋Ÿฌ๋Š”๊ฑฐ์•ผ? ์˜์‹์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž˜๋ ธ๋Š”์ง€ ๋ณด์—ฌ์ฃผ์„ธ์š”.

์•„๋‹ˆ์š”, ์ €๋Š” ๋‹น์‹ ์ด ๊ทธ์™€ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒƒ์— ๋Œ€ํ•ด "๋น„๋™๊ธฐ"๋ฅผ ๋น„๋‚œํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ง€์ ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ๋‘ ๋ฒˆ ํด๋ฆญํ•˜๋ฉด clicked ์ด๋ฒคํŠธ๊ฐ€ ๋‘ ๋ฒˆ ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

WPF๋Š” ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ? ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. UI๋Š” ์ฐจ๋‹จ๋˜์ง€ ์•Š์ง€๋งŒ ์•ฑ์€ ํ•ด๋‹น ํ˜ธ์ถœ์—์„œ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์˜ ๋‚ด์šฉ์€ WPF์—์„œ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

UI ์Šค๋ ˆ๋“œ์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์™„๋ฃŒํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ WPF์—์„œ UI ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ™•์‹คํžˆ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” Windows OS ํŒ€์˜ Windows SDK ๋ฐ Windows ๋Ÿฐํƒ€์ž„ ์ธํ”„๋ผ์˜ ๊ฐœ๋ฐœ ์ฑ…์ž„์ž์ž…๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ์•„๋งˆ๋„ winrt ์ผ๋ฐ˜ ๋ฌธ์ œ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์žฅ์†Œ๊ฐ€ ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Microsoft ๊ฐœ๋ฐœ์ž ํฌ๋Ÿผ์—์„œ ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ฑฐ๋‚˜ ํŠนํžˆ Windows ๋Ÿฐํƒ€์ž„ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ https://github.com/microsoft/xlang ์—์„œ ๋ฌธ์ œ๋ฅผ ์—ด โ€‹โ€‹์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

ํ™œ๋ฐœํ•œ ํ† ๋ก ์— ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋Š” ๊ณง ๋‹ค์‹œ ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฒค ์ฟค
๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ

์•ˆ๋…• ๋ฒค,

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” Windows OS ํŒ€์˜ Windows SDK ๋ฐ Windows ๋Ÿฐํƒ€์ž„ ์ธํ”„๋ผ์˜ ๊ฐœ๋ฐœ ์ฑ…์ž„์ž์ž…๋‹ˆ๋‹ค.

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

๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค - ๊ท€ํ•˜์˜ ํšŒ์‹ ์„ ๊ธฐ๋‹ค๋ฆฌ์‹ญ์‹œ์˜ค!

์ €๋Š” ์›๋ž˜ ํฌ์Šคํ„ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์งˆ๋ฌธ์ด ์žˆ๊ฑฐ๋‚˜ ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ์ ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹œ๋ฉด ์ตœ์„ ์„ ๋‹คํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์•„๋งˆ๋„ winrt ์ผ๋ฐ˜ ๋ฌธ์ œ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์žฅ์†Œ๊ฐ€ ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Microsoft ๊ฐœ๋ฐœ์ž ํฌ๋Ÿผ์—์„œ ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ฑฐ๋‚˜ ํŠนํžˆ Windows ๋Ÿฐํƒ€์ž„ ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ https://github.com/microsoft/xlang ์—์„œ ๋ฌธ์ œ๋ฅผ ์—ด โ€‹โ€‹์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

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

https://github.com/microsoft/xlang ์— ๊ฒŒ์‹œํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์ง€๊ธˆ๋ถ€ํ„ฐ ๊ฑฐ๊ธฐ์— ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ตœ์ƒ์˜,
๋‚จ์ž

๋จผ์ € ๋‹ค๋ฃจ์ง€ ์•Š์„ ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์„ ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

โ€ข ์Šค๋ ˆ๋“œ ํ•˜๋‹จ ๋ถ€๊ทผ์—์„œ Windowing, ์ฐฝ ์œ„์น˜ ๋“ฑ์— ๋Œ€ํ•ด ๋งŽ์€ ํ† ๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์•„๋งˆ๋„ ์—ฌ์ „ํžˆ WinUI์˜ ์ฃผ์ œ์—์„œ ์กฐ๊ธˆ ๋ฒ—์–ด๋‚˜ ์žˆ์ง€๋งŒ ์ง‘์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. WinUI ์‚ฌ๋žŒ๋“ค์ด ์ฐฝ ์œ„์น˜, ์ „์ฒด ํ™”๋ฉด ๋“ฑ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ๋ฆฌ๋””๋ ‰์…˜์„ ๋•๋„๋ก ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. @StephenLPeters , ์ด๊ฒƒ์„ ๋„์™€์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

โ€ข ๋‚˜๋Š” VS ํ”ผ๋“œ๋ฐฑ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. VS ํ’ˆ์งˆ ๋ฐ ์„ฑ๋Šฅ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑด๊ฐ•ํ•œ ํฌ๋Ÿผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Visual Studio์—์„œ Windows ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ์ข€ ๋” ๋ณต์žกํ•ด์ง€๊ณ  ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ์กŒ๋‹ค๋Š” ๋…ผ์˜์— ์ฃผ๋ชฉํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๋‘˜์งธ, @verelpode : ์ €๋ฅผ ์›ƒ๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ด๊ฒƒ์— ๋งค๋‹ฌ๋ฆฌ๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ?
"์ง์ ‘์ ์ธ ์ง„์‹ค์€ ๋‹ค๋ฃจ์ง€ ๋ชปํ•˜์‹ค ๊ฒƒ ๊ฐ™์•„์„œ ๋‘ํˆผํ•œ ์†œ์žฅ๊ฐ‘์„ ๋ผ๊ณ  ๋ฝ๋ฝ์ด๋กœ ์‹ธ์„œ ๋ณด๋‚ด๋“œ๋ฆฝ๋‹ˆ๋‹ค"

์ž, ์ด์ œ ์‹ค์ œ ์ฃผ์ œ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

WinRT vs. UWP vs. .NET โ€“ ์•ฝ๊ฐ„์˜ ๋ฐฐ๊ฒฝ ์ง€์‹

Windows ๋Ÿฐํƒ€์ž„์€ ์‹ค์ œ๋กœ ๋‘ ๊ฐ€์ง€๊ฐ€ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉ๋˜๊ณ  ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ์••์ถ•๋˜์–ด ์‹ค์ œ๋กœ ์˜คํ•ด๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Windows ๋Ÿฐํƒ€์ž„ ์œ ํ˜• ์‹œ์Šคํ…œ์€ ์‹ค์ œ๋กœ ์–ด๋–ค ์˜๋ฏธ์—์„œ๋Š” COM V2์ž…๋‹ˆ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ ํŠธ๋ฆฌ๊ฑฐ์—์„œ Win32 ํ˜ธ์ถœ, COM API ํ˜ธ์ถœ์— ์ด๋ฅด๋Š” ์ง„ํ–‰์˜ ์˜์  ๋‹ค์Œ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์œ ํ˜• ์‹œ์Šคํ…œ์€ COM์—์„œ ์–ด๋–ค ๋ฉด์—์„œ ํ‘œํ˜„๋ ฅ์ด ์•ฝ๊ฐ„ ๋–จ์–ด์ง€์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ƒ๋‹นํ•œ ์ƒ์œ„ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์›๋ž˜ ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. VS๊ฐ€ .NET ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋ฉ‹์ง„ ๋ž˜ํผ๋ฅผ ๋งŒ๋“ค ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ํ•„์š” ์—†์ด .NET ๋˜๋Š” ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ WinRT API๋ฅผ ๋” ์‰ฝ๊ฒŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

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

UWP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋ธ์€ ๋‘ ๋ฐœ๋กœ winrt์— ๋›ฐ์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, OS API๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ž‘์„ฑํ•˜๋ฉด JS ๊ธฐ๋ฐ˜ ์•ฑ, .NET ์•ฑ ๋ฐ ๊ธฐ๋ณธ ์•ฑ์—์„œ ์‰ฝ๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ž์ฒด๊ฐ€ ์„ ํ•จ์ด์—ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  Win32 API๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์•„์ง ๋ฌธ์„œ ์ž‘์—…์ด ๋ช‡ ๊ฐ€์ง€ ๋‚จ์•„ ์žˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์Šคํ† ์–ด ์•ฑ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ›จ์”ฌ ๋” ๊ณ ์ „์ ์ธ Win32 API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ, ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ์žฅ์น˜์— ๋Œ€ํ•œ ์†Œ๊ทœ๋ชจ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜์œผ๋กœ ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ์•ฑ ํ”Œ๋žซํผ์„ ๋งŒ๋“ค์—ˆ์œผ๋ฉฐ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฐ ์•Œ์•„. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ์”ฉ ์ˆ˜์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋„ ๋งŽ์€ ๊ฒƒ์„ ์–ป์—ˆ๊ณ , ๋‘ ์„ธ๊ณ„์˜ ์ตœ์„ ์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ–ฅํ•ด ์ฒœ์ฒœํžˆ ๊ทธ๋Ÿฌ๋‚˜ ๊พธ์ค€ํžˆ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ์–ธ์  ์„ค์น˜ ์‹œ์Šคํ…œ์€ ๋Œ€๋ถ€๋ถ„์˜ ๋ฉด์—์„œ ํ›Œ๋ฅญํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

UWP ์•ฑ๊ณผ ๋ฐ์Šคํฌํ†ฑ ์•ฑ ๊ฐ„์˜ ์ฝ”๋“œ ์ด์‹์„ฑ๋„ ์ด ์Šค๋ ˆ๋“œ์—์„œ ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. UWP ๋ชจ๋ธ์ด ๋„ˆ๋ฌด ๋‹ค์–‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ณ ์ถฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ "์ฃผ์š” ํœด์‹"์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์šฐ๋ฆฌ๋Š” CRT DLL์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์™„ํ™”์ฑ…์ธ VC ํฌ์›Œ๋” ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์„ฑํ–ˆ์ง€๋งŒ ์‹ค์ œ ์ˆ˜์ •์€ ๊ฒฐ๊ตญ ํŒŒ์ผ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ์™€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ณธ์งˆ์ ์œผ๋กœ ํ•„์š”ํ•œ CRT์˜ ํ–ฅํ›„ ๋ฒ„์ „์—์„œ ๊ตฌ๋ถ„์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐฉํ•ด๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜๋„์ ์œผ๋กœ ์ด ์ž‘์—…์„ ๋“œ๋ฌผ๊ฒŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

WinRT ์ž์ฒด๋Š” ํˆด๋ง ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ์ ์  ๋” ๋งŽ์ด ์˜ฎ๊ธฐ๊ณ  ์žˆ์œผ๋ฉฐ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ์ง€๋Š” ์•Š์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ WinRT๋Š” ๋ฐ์Šคํฌํ†ฑ ์•ฑ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. XAML์€ ํฐ ๊ฒฉ์ฐจ์˜€์Šต๋‹ˆ๋‹ค. XAML Islands๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๋‹จ๊ณ„์˜€์ง€๋งŒ ์ €๋Š” WinUI๊ฐ€ ํ›จ์”ฌ ๋” ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

ํŠน์ • API์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ

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

์ตœ์‹  ์•ฑ์„ ์œ„ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ API๋Š” ๊ณ ํ†ต์Šค๋Ÿฝ๊ณ  ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

https://docs.microsoft.com/answers/questions/608/Please-either-allow-systemio-all-over-hdd-or-dast.html
์šฐ๋ฆฌ๋Š” ๊ณ ๊ฐ๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ์šฐ๋ฆฌ ํŒ€ ๋ชจ๋‘๋กœ๋ถ€ํ„ฐ ์ด ํ”ผ๋“œ๋ฐฑ์„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„์— ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋” ๋งŽ์•˜์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ๋ถˆํ–‰ํžˆ๋„ "์šฐ๋ฆฌ๋Š” ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BroadSystemAccess API/๊ธฐ๋Šฅ์€ ๊ตฌํ˜„๋œ ๋Œ€๋กœ ์‹ค์šฉ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

https://docs.microsoft.com/answers/questions/6483/is-uwp-the-right-development-tool-for-my-project.html
ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ ํ•ญ๋ชฉ์„ ์ œ์ถœํ•˜๊ณ  ๋งํฌ๋ฅผ ๋ณด๋‚ด์ฃผ์„ธ์š”. ๊ฐœ์ธ์ ์œผ๋กœ ํ™๋ณดํ•ด์„œ ์ œ๋Œ€๋กœ ๋œ ์ฃผ์ธ์—๊ฒŒ ๊ฑด๋„ค๊ฒ ์Šต๋‹ˆ๋‹ค. 80% ๊ฐ์†Œ์œจ์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ๋„ ์ ์‹ ํ˜ธ๋ผ๋Š” ์ ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. IF, ํŒŒ์ผ API๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๋ฉด ํ–ฅํ›„ ์•ก์„ธ์Šค ๋ชฉ๋ก์ด ์ตœ์†Œํ•œ์˜ ๊ณ ํ†ต์„ ์™„ํ™”ํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ ์ง€๊ธˆ์ฒ˜๋Ÿผ '๋งค๋„๋Ÿฝ์ง€' ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋•Œ, ๋‹น์‹ ์€ ๋ฐ”์œ„์™€ ์–ด๋ ค์šด ์žฅ์†Œ ์‚ฌ์ด์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์ง€๊ธˆ ํ•˜๊ณ  ์žˆ๋Š” ๋ฐฉ์‹์ด ๋งˆ๋ฒ•์ฒ˜๋Ÿผ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ, ๊ทธ๋“ค์˜ ๋ฉ”์ผ ํด๋”, ๊ทธ๋“ค์˜ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ๋“ฑ. ๋‹น์‹ ์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‹น์‹ ์˜ ์•ฑ์€ ์‚ฌ์šฉ์ž๋“ค์ด ๊ทธ๋“ค์˜ ์„ธ๊ณ„๋ฅผ ๋„˜๊ฒจ์ฃผ๊ธฐ ์ „์— ์ž ์‹œ ๋ฉˆ์ถ”๊ณ  ๊ทธ๋“ค์ด ๋‹น์‹ ์„ ์–ผ๋งˆ๋‚˜ ์‹ ๋ขฐํ•˜๋Š”์ง€ ์ƒ๊ฐํ•˜๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ฑ์„ ๋‹ซ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ์•„์ด๋””์–ด๊ฐ€ ์–ด์ƒ‰ํ•œ ๋‹จ๊ณ„๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ ์–ด๋„ ์ฒซ ์ถœ์‹œ์—์„œ ๋ถ„๋ฅ˜๋˜์–ด์•ผ ํ•˜๋Š” ์œ ํ˜•์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ•ญ๋ชฉ์€ ๋ณ„๋„๋กœ ์ œ์ถœํ•ด ์ฃผ์„ธ์š”. ๊ฐ™์€ ์ œ์•ˆ. ํ™๋ณด ๋ฐ ์ „๋‹ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ–ฅํ›„ ์•ก์„ธ์Šค ๋ชฉ๋ก์ด ํ•˜์œ„ ํด๋”์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๋ จํ•˜์—ฌ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋ฌธ์„œ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/MicrosoftDocs/windows-uwp/issues/2322. ๋ฌธ์„œ ํŽ˜์ด์ง€๊ฐ€ github์— ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์„œ์— ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ฑฐ๋‚˜ ๋‚ด์šฉ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์„ ์ œ์•ˆํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ์„ ์•ฑ์œผ๋กœ ๋“œ๋ž˜๊ทธํ•˜๋ฉด ์“ฐ๊ธฐ ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ๋Œ€ํ•œ ๋™์ผํ•œ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค. ์ œ์ถœํ•ด ์ฃผ์‹œ๋ฉด ๊ทธ์— ๋”ฐ๋ผ ์•ˆ๋‚ดํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

MS ์Šคํ† ์–ด ์™ธ๋ถ€์—์„œ ์‚ฌ์ด๋“œ๋กœ๋”ฉ์„ ์œ„ํ•œ ์•ฑ ๋งŒ๋“ค๊ธฐ

์—ฌ๊ธฐ์„œ ์–ป์€ ๊ฒฐ๋ก ์€ ๋ฌธ์ œ์˜ ๋Œ€๋ถ€๋ถ„์ด ๋ฌธ์„œ ๋ฌธ์ œ์ด์ง€๋งŒ ๋˜ ๋‹ค๋ฅธ ์ฃผ์š” ์ธก๋ฉด์„ ๋‹ค๋ฃฌ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋„๊ตฌ๊ฐ€ github ํ”„๋กœ์ ํŠธ ๋ฐ ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ด๋™ํ•จ์— ๋”ฐ๋ผ ์„ค๋ช…์„œ๋„ ํ•จ๊ป˜ ์ด๋™ํ–ˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด Windows ์„ค๋ช…์„œ๋ฅผ ๋ชจ๋“  ๊ฒƒ์„ ์›์Šคํ†ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ๋” ์–ด๋ ค์›Œ์กŒ์Šต๋‹ˆ๋‹ค. .appinstaller ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ํŠน์ • ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋‚ด๋ถ€์ ์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ณ  ๋” ๋‚˜์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ฝ˜ํ…์ธ  ํŒ€๊ณผ ๋ณด๋‹ค ์ผ๋ฐ˜์ ์œผ๋กœ ๋…ผ์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋””๋ฒ„๊ทธ๋ฅผ ์œ„ํ•ด ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…ํ•ด์•ผ ํ•˜๋Š” ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด github ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋กœ ์ œ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ ๊ทœ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ์‚ฌ์„ค์œ ํ†ต

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

WinRT ์œ ํ˜• ์‹œ์Šคํ…œ์€ ํ›Œ๋ฅญํ•œ API ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋Šฅ๋ ฅ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

ํ˜•์‹ ์ด๋ฆ„์— ์˜ค๋ฒ„๋กœ๋“œํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์€ ์˜๋„์ ์œผ๋กœ ์„ค๊ณ„๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. javscript(Node / V8์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ํฅ๋ฏธ๋กญ์ง€ ์•Š์„๊นŒ์š”?) ์•ฑ์ด WinRT API์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค์‹œ ์ƒ๊ฐํ•  ๋•Œ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๋‹ค์‹œ ์‚ดํŽด๋ณผ ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์†์„ฑ ๋ฐ NaN์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ์ข‹์€ ๋…ผ์˜๊ฐ€ ์žˆ๋Š” ๋ณ„๋„์˜ ๋ฌธ์ œ์— ์žˆ์œผ๋ฏ€๋กœ ์ด ๋‹ต๋ณ€์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃจ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋„ค, +1ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์ œ์ถœํ•˜์„ธ์š”. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ๋Œ€ํ•œ ์•ฑ ์•„๋ž˜ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ๋ฒ”์ฃผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋ฉ”ํƒ€์ž…๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ API๋Š” ์—ฌ์ „ํžˆ ์†์— ์žกํžˆ์ง€ ์•Š๊ณ  ๋น„๋™๊ธฐ๊ฐ€ ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ์–ด์ƒ‰ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

๋„ค. ์ด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ๋„ ๋…ผ๋ž€์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋‹ค. ์œ ๋ชจ์™€ ์ข‹์€ ํ–‰๋™์„ ์žฅ๋ คํ•˜๋Š” ๊ฒƒ ์‚ฌ์ด์—๋Š” ์•„์ง ์ž˜ ๋งž์ง€ ์•Š์€ ๊ท ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋™๊ธฐ์‹์œผ๋กœ ๋ณด๊ณ  ์‹ถ์€ ํŠน์ • API์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๊ณ„์† ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค.

WinRT์—๋Š” ์ข‹์€ ์˜ค๋””์˜ค API๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ €๋Š” ์˜ค๋””์˜ค ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ์ž์œ ๋กญ๊ฒŒ ํŒŒ์ผ์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ๊ตฌ๋ช…์ค„์— ์ „ํ™”๋ฅผ ๊ฑธ์–ด ๋ช‡ ๊ฐ€์ง€ ๋ฌผ์–ด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํด๋ฆฝ๋ณด๋“œ ๊ณ ํ†ต

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

์ฆ‰, ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์•Œ๋ฆผ์€ ํด๋ฆฝ๋ณด๋“œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Windows์™€ ์ „๊ฒฝ์ด ๊ณ„์‚ฐ๋˜๋Š” ๋ฐฉ์‹ ๋•Œ๋ฌธ์— ํŠน๋ณ„ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ํ•ฉ๋ฆฌ์ ์ด์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. API ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ์ œ์ถœํ•ด ์ฃผ์‹œ๋ฉด ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๋ฒ„๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋„ ํ™๋ณดํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ

๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋ฅผ ์ถ”์ ํ•˜๊ณ  ์œ„์˜ ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๋ฉด ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ํ›„์† ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ๋งŽ์€ ๊ฒƒ์„ ์†์— ๋„ฃ์€ WinUI ํŒ€์— ๋Œ€ํ•œ ์กด๊ฒฝ์˜ ํ‘œ์‹œ๋กœ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  ์ด ์Šค๋ ˆ๋“œ์—์„œ ์ œ๊ธฐ๋œ WinUI ๋ฐ Windowing ์ธก๋ฉด์—๋งŒ ์ง‘์ค‘ํ•˜์‹ญ์‹œ์˜ค. ์ด ๋ฌธ์ œ๋Š” ๋„ˆ๋ฌด ๊ธธ๊ณ  ๊ตฌ๋ถˆ๊ตฌ๋ถˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„ ๋ชจ๋‘๊ฐ€ ํ”ผ๋“œ๋ฐฑ์„ ์ œ์ถœํ•˜๊ณ  ๋งํฌ๊ฐ€ ํฌํ•จ๋œ ์˜๊ฒฌ์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋ฉฐ์น  ๋™์•ˆ ์—ด์–ด ๋‘” ๋‹ค์Œ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋‹ซ๊ฒ ์Šต๋‹ˆ๋‹ค.

WinRT ์œ ํ˜• ์‹œ์Šคํ…œ ํ† ๋ก ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด xlang ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํŠน์ • Windows API ๋™์ž‘์˜ ๊ฒฝ์šฐ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๊ฐ€ ๋” ๋‚˜์€ ์„ ํƒ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๋Œ“๊ธ€ ์‹œ์Šคํ…œ๋„ ์žˆ์œผ๋ฏ€๋กœ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋งŽ์€ ์ฃผ์ œ์— ๋Œ€ํ•œ ํ›Œ๋ฅญํ•œ ํ† ๋ก ๊ณผ ์ž์„ธํ•œ ํ”ผ๋“œ๋ฐฑ์— ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋ฒค ์ฟค
๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ

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

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

@BenJKuhn ์ž์„ธํ•œ ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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

์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” WPF๋ฅผ ์˜นํ˜ธํ•˜๋Š” ์‚ฌ๋žŒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ €๋Š” ์˜ค๋ž˜์ „์— WPF์˜ ํ•œ๊ณ„์— ๋ถ€๋”ชํ˜”์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ UWP๋กœ ์ด์‚ฌํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์•ˆ์ •์„ฑ ์ธก๋ฉด์—์„œ WPF๋Š” ํ›จ์”ฌ ๋” ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค.

WinRT vs. UWP vs. .NET โ€“ ์•ฝ๊ฐ„์˜ ๋ฐฐ๊ฒฝ ์ง€์‹

๊ทธ๋Ÿฐ ๋‹ค์Œ API ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ ๋ช‡ ๊ฐ€์ง€ ํ›Œ๋ฅญํ•œ ์ผ์„ ํ–ˆ๊ณ  ๋ช‡ ๊ฐ€์ง€ ์–ด๋ฆฌ์„์€ ์ผ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ ํ•ญ๋ชฉ ์ค‘ ์ผ๋ถ€์— ์•ฝ๊ฐ„ ๋น ์ ธ ๋“ค์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋ง์”€ ํ•˜์…”๋„๋ฉ๋‹ˆ๋‹ค :)

UWP ์•ฑ๊ณผ ๋ฐ์Šคํฌํ†ฑ ์•ฑ ๊ฐ„์˜ ์ฝ”๋“œ ์ด์‹์„ฑ๋„ ์ด ์Šค๋ ˆ๋“œ [...]์—์„œ ๋‹ค๋ฃจ์—ˆ์ง€๋งŒ ์‹ค์ œ ์ˆ˜์ •์€ ๊ฒฐ๊ตญ CRT์˜ ํ–ฅํ›„ ๋ฒ„์ „์—์„œ ๊ตฌ๋ถ„์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. .

๋„์ฐฉ ์˜ˆ์ • ์‹œ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๊นŒ? .๋„ท 5?

์ตœ์‹  ์•ฑ์„ ์œ„ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ API๋Š” ๊ณ ํ†ต์Šค๋Ÿฝ๊ณ  ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ๋Š๋ฆฝ๋‹ˆ๋‹ค.

https://docs.microsoft.com/answers/questions/608/Please-either-allow-systemio-all-over-hdd-or-dast.html
์šฐ๋ฆฌ๋Š” ๊ณ ๊ฐ๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ์šฐ๋ฆฌ ํŒ€ ๋ชจ๋‘๋กœ๋ถ€ํ„ฐ ์ด ํ”ผ๋“œ๋ฐฑ์„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„์— ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋” ๋งŽ์•˜์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ๋ถˆํ–‰ํžˆ๋„ "์šฐ๋ฆฌ๋Š” ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค - ์ด์ƒ์ ์ด์ง€๋Š” ์•Š์ง€๋งŒ ์ง€๊ธˆ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค - https://github.com/microsoft/microsoft-ui-xaml/issues/1465#issuecomment -575987737

BroadSystemAccess API/๊ธฐ๋Šฅ์€ ๊ตฌํ˜„๋œ ๋Œ€๋กœ ์‹ค์šฉ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

https://docs.microsoft.com/answers/questions/6483/is-uwp-the-right-development-tool-for-my-project.html
ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ ํ•ญ๋ชฉ์„ ์ œ์ถœํ•˜๊ณ  ๋งํฌ๋ฅผ ๋ณด๋‚ด์ฃผ์„ธ์š”. ๊ฐœ์ธ์ ์œผ๋กœ ํ™๋ณดํ•ด์„œ ์ œ๋Œ€๋กœ ๋œ ์ฃผ์ธ์—๊ฒŒ ๊ฑด๋„ค๊ฒ ์Šต๋‹ˆ๋‹ค. 80% ๊ฐ์†Œ์œจ์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ดํ•ด ํ–ˆ์–ด์š”

ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฃผ๋ง์— ๋„์ฐฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์—๊ฒŒ๋„ ์œ„ํ—˜ ์‹ ํ˜ธ๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ API๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๋ฉด ํ–ฅํ›„ ์•ก์„ธ์Šค ๋ชฉ๋ก์ด

์˜ˆ, StorageFile/Folder API๊ฐ€ System.IO๋งŒํผ ๋น ๋ฅด๋ฉด(๋˜๋Š” ์ตœ์†Œํ•œ ๋น„์Šทํ•œ ์ˆ˜์ค€) ์ด๋ฅผ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋ ฅ์ด ๋ถ€์กฑํ•ด์„œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ฌธ์„œ์— ์„ค๋ช…๋œ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ์ด ๋ชจ๋“  ๊ฒƒ์„ ์™„์ „ํžˆ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๋‹น์‹ ๊ณผ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์˜ ๊ณ ์ถฉ์€ ์ด ๋ชจ๋“  ๊ฒƒ์˜ ํ˜„์žฌ ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๋ฏธ ์ด๊ฒƒ์„ ๋‹ค๋ฃจ๋Š” ๋Œ€๋ถ€๋ถ„์˜ UI๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค(์—ฌ๋Ÿฌ ๋ฒˆ).

๊ฐœ์„ ์„ ์œ„ํ•œ ์ œ ์•„์ด๋””์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

์•ฑ์„ ๋‹ซ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ์•„์ด๋””์–ด๊ฐ€ ์–ด์ƒ‰ํ•œ ๋‹จ๊ณ„๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ ์–ด๋„ ์ฒซ ์ถœ์‹œ์—์„œ ๋ถ„๋ฅ˜๋˜์–ด์•ผ ํ•˜๋Š” ์œ ํ˜•์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ•ญ๋ชฉ์€ ๋ณ„๋„๋กœ ์ œ์ถœํ•ด ์ฃผ์„ธ์š”. ๊ฐ™์€ ์ œ์•ˆ. ํ™๋ณด ๋ฐ ์ „๋‹ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋ง ๋™์•ˆ์ž…๋‹ˆ๋‹ค.

ํŒŒ์ผ์„ ์•ฑ์œผ๋กœ ๋“œ๋ž˜๊ทธํ•˜๋ฉด ์“ฐ๊ธฐ ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ๋Œ€ํ•œ ๋™์ผํ•œ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค. ์ œ์ถœํ•ด ์ฃผ์‹œ๋ฉด ๊ทธ์— ๋”ฐ๋ผ ์•ˆ๋‚ดํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์•ฑ์œผ๋กœ ๋“œ๋ž˜๊ทธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‹ค์ œ๋กœ ๊ทธ๊ฒƒ์„ ์•„์ง ์‹œ๋„ํ•˜์ง€ ์•Š์•˜๋‹ค:

  1. ํŒŒ์ผ๊ณผ ํด๋” ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?
  2. .Path์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  3. ์ง€์†์ ์ž…๋‹ˆ๊นŒ(๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ๊ฐ€์ •)?
  4. StorageFile/Folder๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋‚˜์ค‘์— .Path์—์„œ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ(2.์— ๋Œ€ํ•œ ๋Œ€๋‹ต์ด YES๋ผ๊ณ  ๊ฐ€์ •)?

MS ์Šคํ† ์–ด ์™ธ๋ถ€์—์„œ ์‚ฌ์ด๋“œ๋กœ๋”ฉ์„ ์œ„ํ•œ ์•ฑ ๋งŒ๋“ค๊ธฐ

์—ฌ๊ธฐ์„œ ์–ป์€ ๊ฒฐ๋ก ์€ ๋ฌธ์ œ์˜ ๋Œ€๋ถ€๋ถ„์ด ๋ฌธ์„œ ๋ฌธ์ œ์ด์ง€๋งŒ ๋˜ ๋‹ค๋ฅธ ์ฃผ์š” ์ธก๋ฉด์„ ๋‹ค๋ฃฌ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋„๊ตฌ๊ฐ€ github ํ”„๋กœ์ ํŠธ ๋ฐ ์˜คํ”ˆ ์†Œ์Šค๋กœ ์ด๋™ํ•จ์— ๋”ฐ๋ผ ์„ค๋ช…์„œ๋„ ํ•จ๊ป˜ ์ด๋™ํ–ˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด Windows ์„ค๋ช…์„œ๋ฅผ ๋ชจ๋“  ๊ฒƒ์„ ์›์Šคํ†ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ๋” ์–ด๋ ค์›Œ์กŒ์Šต๋‹ˆ๋‹ค. .appinstaller ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ํŠน์ • ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋‚ด๋ถ€์ ์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ณ  ๋” ๋‚˜์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ฝ˜ํ…์ธ  ํŒ€๊ณผ ๋ณด๋‹ค ์ผ๋ฐ˜์ ์œผ๋กœ ๋…ผ์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ๊ต‰์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋Š” ๋‚ด ์•ฑ์„ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์€ ๋‹ค๋ฅธ ๊ณ ๊ธ‰ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ์ „์ฒด .appinstaller ํŒŒ์ผ์ด ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ๋‘๋ ค์›Œ์„œ win32 ์•ฑ์„ ์‹œ์ž‘ํ•ด์•ผ ํ•จ).

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜์—๊ฒŒ ์ด๊ฒƒ์€ Visual Studio "๊ฒŒ์‹œ" ํ”„๋กœ์„ธ์Šค์˜ ์ผ๋ถ€์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ €๋ฅผ ์œ„ํ•ด .appinstaller๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋ชจ๋“  ์ข…์†์„ฑ ์ด๋ฆ„์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ๊ฒฐ์ฝ” ์‰ฌ์šด ์ผ์ด ์•„๋‹ˆ๋ฉฐ ์ข…์†์„ฑ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ -> ์—ฌ๊ธฐ์—์„œ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค). ๋˜ํ•œ readme.txt ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์„œ๋ฒ„์— ์—…๋กœ๋“œํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์„ ์„ค๋ช…ํ•ด์•ผ ํ•˜๊ณ  .appinstaller๋ฅผ ๋กœ์ปฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์„œ๋ฒ„์—์„œ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(ํ…Œ์ŠคํŠธ ์‹œ )

๋˜ํ•œ ๋””๋ฒ„๊ทธ๋ฅผ ์œ„ํ•ด ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…ํ•ด์•ผ ํ•˜๋Š” ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋„ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด github ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋กœ ์ œ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌด์Šจ ๋ฌธ์ œ์˜€๋Š”์ง€ ๊ธฐ์–ต์ด ์•ˆ๋‚˜๋„ค์š” :)

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

๋„ค, +1ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์ œ์ถœํ•˜์„ธ์š”. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ๋Œ€ํ•œ ์•ฑ ์•„๋ž˜ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ๋ฒ”์ฃผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋ฉ”ํƒ€์ž…๋‹ˆ๋‹ค.

์˜ค๋ฅธ์ชฝ :)

๋น„๋™๊ธฐ API๋Š” ์—ฌ์ „ํžˆ ์†์— ์žกํžˆ์ง€ ์•Š๊ณ  ๋น„๋™๊ธฐ๊ฐ€ ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ์–ด์ƒ‰ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

๋„ค. ์ด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ๋„ ๋…ผ๋ž€์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋‹ค. ์œ ๋ชจ์™€ ์ข‹์€ ํ–‰๋™์„ ์žฅ๋ คํ•˜๋Š” ๊ฒƒ ์‚ฌ์ด์—๋Š” ์•„์ง ์ž˜ ๋งž์ง€ ์•Š์€ ๊ท ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋™๊ธฐ์‹์œผ๋กœ ๋ณด๊ณ  ์‹ถ์€ ํŠน์ • API์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๊ณ„์† ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค.

ํ—คํ—ค, ๊ธด ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค ;)

  1. StorageFolder/File์˜ ๊ธฐ๋ณธ ์†์„ฑ์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. StorageFile.GetFileFromPathAsync(+ ํด๋”์™€ ์œ ์‚ฌ).
  2. ์ธ๋„ค์ผ ๋กœ๋“œ(StorageFile.GetThumbnailAsync
  3. ๋น„ํŠธ๋งต ๋กœ๋“œ. ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์˜ˆ: win2d)๋กœ ์˜ฎ๊ฒจ์กŒ๊ธฐ ๋•Œ๋ฌธ์— ํŠนํžˆ ๊ณ ํ†ต์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  5์ดˆ ์ •๋„ ์ง€์†๋˜๋Š” ๋ฐ ๊ฐ„๋‹จํ•œ ๋น„ํŠธ๋งต(<20ms๊ฐ€ ์†Œ์š”๋˜์–ด์•ผ ํ•จ)์„ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฏธ์นœ ์ž„๊ณ„๊ฐ’์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๋ฐฐํ›„์—๋Š” ์–ด๋–ค ์ž ๊ธˆ ์žฅ์น˜๊ฐ€ ์žˆ์ง€๋งŒ ์•„๋ฌด๋„ ๋ฌด์—‡์„/์™œ/์–ธ์ œ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„ค, ์ œ ๋…ธํŠธ๋ถ์€ ๋กœ์ผ“์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹ค๋ฅธ ๋งŽ์€ API๋ฅผ ์ถ”์ ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋น ๋ฅธ ๊ฒ€์ƒ‰์€ 326๊ฐœ์˜ ์šฉ๋„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋งŽ์€ ๋ถ€๋ถ„์ด ๋™๊ธฐ์‹์ด์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์ด ์ค„์˜€์Šต๋‹ˆ๋‹ค.

์œ„๋Š” ๋‚ด ๋จธ๋ฆฌ ๊ผญ๋Œ€๊ธฐ์—์„œ ๋‚ด ์ฃผ์š” ์ตœ๊ณ  ํ†ต์ฆ์ž…๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค์–ด ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. :)

WinRT์—๋Š” ์ข‹์€ ์˜ค๋””์˜ค API๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ €๋Š” ์˜ค๋””์˜ค ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ์ž์œ ๋กญ๊ฒŒ ํŒŒ์ผ์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ๊ตฌ๋ช…์ค„์— ์ „ํ™”๋ฅผ ๊ฑธ์–ด ๋ช‡ ๊ฐ€์ง€ ๋ฌผ์–ด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ ์ง€ ์—ฌ๋ถ€๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์™„ํ™”ํ•˜์—ฌ naudio(https://github.com/naudio/NAudio)๋ฅผ UWP์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ด์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๋งํ•ด์„œ, ์ฆ‰์‹œ UWP๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ์œ ์šฉํ•œ ํ•ญ๋ชฉ์ด #ifdef-ed๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ ๋ง์”€๋“œ๋ฆฌ์ž๋ฉด, ์ €๋Š” UWP์˜ ์‚ฌ์šด๋“œ API์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์™„์ „ํžˆ ๊ดœ์ฐฎ์ง€๋งŒ ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ŒํŒŒ ๋“ฑ์„ ํ•ด์„ํ•˜๋Š” ๋Šฅ๋ ฅ(์˜ค๋””์˜ค๊ฐ€ ํ—ˆ์šฉํ•˜๋Š”).

๋‚˜๋Š” ๊ฑฐ์˜ ๋ชจ๋“  #ifdef๋ฅผ ์ œ๊ฑฐํ•œ naudio ํฌํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜์ง€๋งŒ ๋‚ด ์•ฑ์€ MS ์Šคํ† ์–ด์— ๋“ค์–ด๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

ํด๋ฆฝ๋ณด๋“œ ๊ณ ํ†ต

[...] ์ฆ‰, ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์•Œ๋ฆผ์€ ํด๋ฆฝ๋ณด๋“œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Windows์™€ ์ „๊ฒฝ์ด ๊ณ„์‚ฐ๋˜๋Š” ๋ฐฉ์‹ ๋•Œ๋ฌธ์— ํŠน๋ณ„ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ํ•ฉ๋ฆฌ์ ์ด์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. API ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ์ œ์ถœํ•ด ์ฃผ์‹œ๋ฉด ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๋ฒ„๊ทธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋„ ํ™๋ณดํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ์†Œ๋ฆฌ, ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”!

@jtorjo ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ ํ•ญ๋ชฉ์— ๋ฌธ์ œ #1893(์ œ์•ˆ: ํŒŒ์ผ ์‹œ์Šคํ…œ ์•ก์„ธ์Šค: ํŠน์ • ํŒŒ์ผ ์œ„์น˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๋ฐฉ๋ฒ• ์ œ๊ณต)๋„ ํฌํ•จ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค .) ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋‹ค๋ฃฐ ๋•Œ ์ด ํ•ญ๋ชฉ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด๋ฏธ ์ •๋ฆฌํ•  ๋‹ค๋ฅธ ํ•ญ๋ชฉ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. :)

๋ฌผ๋ก  ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆํŽธํ•˜์‹œ๋‹ค๋ฉด ๊ณ„์† ์ œ์ถœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

@Felix-Dev ์ตœ์„ ์„ ๋‹คํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ๊ณ„์† ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค!

ํŒŒ์ผ์„ ์•ฑ์œผ๋กœ ๋“œ๋ž˜๊ทธํ•˜๋ฉด ์“ฐ๊ธฐ ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ๋Œ€ํ•œ ๋™์ผํ•œ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค. ์ œ์ถœํ•ด ์ฃผ์‹œ๋ฉด ๊ทธ์— ๋”ฐ๋ผ ์•ˆ๋‚ดํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์•ฑ์œผ๋กœ ๋“œ๋ž˜๊ทธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ์‰˜ ์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด์—์„œ ์—ฌ๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜ผ๋ž€์„ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

@BenJKuhn ์ด Github ๊ฐ์•ˆํ•  ๋•Œ(์ง€๋‚œ 12๊ฐœ์›” ๋™์•ˆ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ํ‘œํ˜„๋œ ๊ฐœ๋ฐœ์ž ๊ฐ์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ): ๊ทธ๋ƒฅ ๊ฒŒ์‹œํ•ด๋„ ๋ ๊นŒ์š”? ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์žˆ๋Š” ํ›จ์”ฌ ๋” ์‹ฌ์ธต์ ์ธ ์ œ์•ˆ์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ๋Š” Feedback Hub์— ๋Œ€ํ•œ ๋น ๋ฅธ ์ œ์•ˆ ์š”์•ฝ(์ง€๊ธˆ์€ ๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์‹ ๋ขฐ๋ฅผ ๋ฐ›๋Š” ํŠน์ • UWP ์•ฑ ๋ชจ๋ธ ํ”ผ๋“œ๋ฐฑ ํ”Œ๋žซํผ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—)? Microsoft์˜ ํŠน์ • ํŒ€์ด ๊ฐœ๋ฐœ ์ค‘์ธ ์ œ์•ˆ์— ๋Œ€ํ•œ ์ง์ ‘ ๋งํฌ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๊ธฐ์—์„œ ๋‹ค๋ฅธ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ž…๋ ฅ์œผ๋กœ ์ œ์•ˆ์ด ๋”์šฑ ๊ตฌ์ฒดํ™”๋˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

@Felix-Dev ํŠน์ • ์ œ์•ˆ์˜ ๊ฒฝ์šฐ "๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ > API ํ”ผ๋“œ๋ฐฑ"์ด๋ผ๋Š” ํƒœ๊ทธ๊ฐ€ ๋ถ™์€ Feedback Hub์— ์ œ์ถœํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

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

์œ„์— ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ Feedback Hub๋ฅผ ํ†ตํ•ด API ํ”ผ๋“œ๋ฐฑ์„ ์ œ์ถœํ•˜๋„๋ก ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์š”์ฒญํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ œ์•ˆ์ด ๊ฐœ์„ ๋˜๋ฉด API ํ”ผ๋“œ๋ฐฑ์„ ์ œ์ถœํ•˜๋Š” ์˜ต์…˜์œผ๋กœ ๋ฒˆ์„ฑํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@BenJKuhn ์ด ๋‚˜์™€ ๋™์˜ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ต๋ณ€์ด ์ƒ๋‹นํžˆ ๊ธธ์–ด ์กŒ์œผ๋‹ˆ

@duke7553 ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ UWP ํ”Œ๋žซํผ ํ”ผ๋“œ๋ฐฑ์„ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. (๋งค๊ฐœ๋ณ€์ˆ˜ x๋ฅผ ๋ฉ”์„œ๋“œ y์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ z๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”)์™€ ๊ฐ™์€ ํŠน์ • API ์š”์ฒญ์€ ์ตœ์†Œํ•œ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ์ œ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋ฌผ๋ก  ์ถ”๊ฐ€ ์œ„์น˜์—๋„ ๊ฒŒ์‹œ๋˜์–ด์•ผ ํ•จ). ๊ทธ๋Ÿฌ๋‚˜ (UWP์˜ ํ•ต์‹ฌ๊นŒ์ง€) ํ”Œ๋žซํผ๋ณด๋‹ค ๋” ๋ณต์žกํ•œ ๋ฌธ์ œ/์ œ์•ˆ์€ ํ˜„์žฌ ํ˜•์‹์˜ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ณณ์— ๊ฒŒ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์— ์งง์€ ์š”์•ฝ์„ ๊ฒŒ์‹œํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€๋งŒ ๋‹ค๋ฅธ ๋ฌด์—‡๋ณด๋‹ค๋„ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๋Š” ํ˜„์žฌ ํ”Œ๋žซํผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด์œ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜๋ฅผ ์ฝ์œผ์‹ญ์‹œ์˜ค.

ํ˜„์žฌ ์ƒํƒœ์—์„œ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๋Š” ๋ฐ”๋กœ ์ด ์ €์žฅ์†Œ์™€ Twitter ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์žฅ์†Œ์—์„œ

  • Windows ๊ฐœ๋ฐœ์ž ํŒ€์˜ (์ธ์ง€๋œ) ์ฐธ์—ฌ ๋ถ€์กฑ(์ตœ๊ทผ์— ์ œ์ถœ๋œ API ํ”ผ๋“œ๋ฐฑ๋„ ์‚ดํŽด๋ณด์•˜๊ณ  ํ˜„์žฌ ํ˜„์žฌ๋กœ์„œ๋Š” ํŠนํžˆ 2๊ฐœ์›” ๋ฐ ๋” ์˜ค๋ž˜๋œ).
  • ํŠน์ • ๋ฌธ์ œ/์ œ์•ˆ์— ๋Œ€ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฐธ์—ฌ๋„๋Š” ์ƒ๋‹นํžˆ ๋‚ฎ์Šต๋‹ˆ๋‹ค(๊ณต๋™ ํˆฌํ‘œ, ๋Œ“๊ธ€).
  • ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์˜ ์ „๋ฐ˜์ ์ธ UI/UX๋Š” ํŒ€ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ํ”ผ๋“œ๋ฐฑ ํ† ๋ก ์— ์ฐธ์—ฌํ•˜๋Š” ๊ฒƒ์„ ๋งค์šฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด WinUI ํŒ€์˜ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์€ ์—ฌ๊ธฐ ์ปค๋ฎค๋‹ˆํ‹ฐ์—๋„ ๋™์˜ํ•œ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค .
  • ๋งˆ์ง€๋ง‰์œผ๋กœ, ์ง€๊ธˆ Github์—์„œ ์ด๋ฏธ์ง€๋‚˜ GIF์™€ ๊ฐ™์€ ์ง€์› ๋ฏธ๋””์–ด ํŒŒ์ผ์„ ์ œ์•ˆ์— ์ถ”๊ฐ€ํ•˜์—ฌ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•  ๋•Œ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ์—์„œ ์ง์ ‘ ๊ฐ€์ ธ์˜จ ์ด ์ด๋ฏธ์ง€๋ฅผ ์—ฌ๊ธฐ์— ๋‚จ๊ฒจ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.
    image

์ €๋Š” Feedback Hub๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ๋ณ„ ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•œ ์ ์ด ์—†์œผ๋ฉฐ ์ง€๊ธˆ ๋ฐ”๋กœ ์‚ดํŽด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋ฌธ์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ ‘์ˆ˜๋˜๋Š”์ง€(์ปค๋ฎค๋‹ˆํ‹ฐ ์ฐธ์—ฌ๊ฐ€ ๊ฑฐ์˜ 0์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค!), Windows ๊ฐœ๋ฐœ ํŒ€ ๋ฐ ์ „์ฒด ๊ตฌ์กฐ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๋‹จ์ผ WinUI ์ €์žฅ์†Œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ์ธก๋ฉด์—์„œ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๋ณด๋‹ค ์šฐ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค (์ œ์•ˆ ์ž‘์„ฑ ์šฉ์ด์„ฑ/์ปค๋ฎค๋‹ˆํ‹ฐ ์ฐธ์—ฌ/MS ๊ฐœ๋ฐœ์ž์˜ ๊ฐ€์šฉ์„ฑ/...).

์†”์งํžˆ ๊ฐ€๊น์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค.

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

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

@BenJKuhn
MS ํŒ€์€ UWP ํ”ผ๋“œ๋ฐฑ ํ”Œ๋žซํผ์„ ์‹ฌ๊ฐํ•˜๊ฒŒ ๊ฐ•ํ™”ํ•ด์•ผ ํ•˜๋ฉฐ ์ด๋Ÿฌํ•œ ๊ฐœ์„  ์‚ฌํ•ญ์„ ๋ณผ ๋•Œ๊นŒ์ง€ WinUI ํŒ€์—์„œ ํ—ˆ์šฉํ•˜๋Š” ํ•œ ์—ฌ๊ธฐ์—์„œ๋„ ํ•ญ์ƒ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Feedback Hub๋Š” ํ˜„์žฌ ๋งŽ์€ Windows ๊ฐœ๋ฐœ์ž์˜ ๋ˆˆ์— ๊ฐ€์žฅ ๋‚ฎ์€ ์œ„์น˜์— ์žˆ์œผ๋ฉฐ ํ•˜๋ฃป๋ฐค ์‚ฌ์ด์— ๊ฒŒ์‹œํ•ด๋„ ์ƒํ™ฉ์ด ๊ฐ‘์ž๊ธฐ ๋ฐ”๋€Œ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ œ ์‹œ์ž‘์ด์ง€๋งŒ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ(๋˜๋Š” ์ด์ „์— UWP์šฉ UserVoice๋ฅผ ์ข…๋ฃŒํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ MS ํŠน์ • ๊ฐœ๋ฐœ์ž ํ”ผ๋“œ๋ฐฑ ํ”Œ๋žซํผ)์— ๋Œ€ํ•ด ๋งํ•  ๋•Œ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ›๊ฒŒ ๋  ๋ถ€์ •์ ์ธ ์ธ์ƒ์„ ๊ทผ๋ณธ์ ์œผ๋กœ ๋˜๋Œ๋ฆฌ๋ ค๋ฉด ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ UWP/Windows ๊ฐœ๋ฐœ์ž๊ฐ€ Feedback Hub ๋˜๋Š” ๊ธฐํƒ€ ๊ณผ๊ฑฐ ํ”ผ๋“œ๋ฐฑ ํ”Œ๋žซํผ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๊ฒช์—ˆ๋˜ ๋งŽ์€ ์‹ค๋ง์Šค๋Ÿฌ์šด ๊ฒฝํ—˜์„ ๊ฐ์•ˆํ•  ๋•Œ, ์ €๋Š” ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด Windows ๊ฐœ๋ฐœ ๋ฐ ํ”ผ๋“œ๋ฐฑ ํŒ€์ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฐ˜ํ™˜ (๋งŽ์€ - ์žˆ๋Š” ๊ฒฝ์šฐ - ํ‘œ์‹œํ•  ๊ฐ€์‹œ์ ์ธ ๊ฐœ์„  ์‚ฌํ•ญ ์—†์ด). ๋‚˜๋Š” ์ด๊ฒƒ์ด ์ƒ๋‹นํžˆ ๊ฐ€ํ˜นํ•œ ๊ฒฌํ•ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ์ˆ˜๋…„ ๋™์•ˆ ๋‹ค๋ฅธ ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ ํ”Œ๋žซํผ์— ์ œ๊ณต๋œ ๊ฐœ๋ฐœ์ž์˜ ๋งŽ์€ ์‘๋‹ต์„ ์‹ค์ œ๋กœ ๋ณด๋ฉด ๊ฐœ๋ฐœ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ง„์ •ํ•œ ์ขŒ์ ˆ์ด ์žˆ์Œ์„ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Feedback Hub์˜ ๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ -> API ํ”ผ๋“œ๋ฐฑ ์„น์…˜์—์„œ ๊ฐ€์ ธ์˜จ ์Šคํฌ๋ฆฐ์ƒท์œผ๋กœ ์ด ๊ฒŒ์‹œ๋ฌผ์„ ๋งˆ์น˜๊ฒ ์Šต๋‹ˆ๋‹ค.
image

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

@BenJKuhn

๋‚ด๊ฐ€ ๋งŒ๋“  ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

BroadSystemAccess API/๊ธฐ๋Šฅ์€ ๊ตฌํ˜„๋œ ๋Œ€๋กœ ์‹ค์šฉ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. https://aka.ms/AA804aq

BroadSystemAccess API / ์‚ฌ์šฉ์ž๊ฐ€ ๊ด‘๋ฒ”์œ„ํ•œ ์‹œ์Šคํ…œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•  ๋•Œ ์•ฑ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์•ˆ ๋จ https://aka.ms/AA7zpe3

ํด๋ฆฝ๋ณด๋“œ๋Š” ํ•ญ์ƒ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. https://aka.ms/AA804ce

ํŒŒ์ผ ์‹œ์Šคํ…œ ์•ก์„ธ์Šค: ํŠน์ • ํŒŒ์ผ ์œ„์น˜ https://aka.ms/AA804cp ( @Felix-Dev ์˜ ๊ฒฝ์šฐ)์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์š”์ฒญํ•˜๋Š” ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

WinRT https://aka.ms/AA804d0 ์—๋Š” ์ข‹์€ ์˜ค๋””์˜ค API๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ API๋Š” ์—ฌ์ „ํžˆ ์†์ด ์•ˆ ๊ฐ€๊ณ  ๋น„๋™๊ธฐ๊ฐ€ ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ์–ด์ƒ‰ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. https://aka.ms/AA804d3

๋‚ด๊ฐ€ ๋งŒ๋“  ๋‹ค๋ฅธ ๊ฒƒ๋“ค

์ž์„ธํ•œ ๋‚ด์šฉ - ๋” ๋งŽ์€ ๋ฌธ์ž๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•จ https://aka.ms/AA7zws5

์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ - ๋” ์‰ฝ๊ฒŒ https://aka.ms/AA804cd

๋‚ด๊ฐ€ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ๋“ค

ํŒŒ์ผ/ํด๋” ๋Œ์–ด์„œ ๋†“๊ธฐ - ๊ฐœ์ธ์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š์€ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ๋ถ€๋ถ„์ด ๊ถ๊ธˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ UWP ์ปจํŠธ๋กค์—์„œ ํŒŒ์ผ/ํด๋”๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์ „์šฉ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ํŒŒ์ผ/ํด๋”๋ฅผ FutureAccessList์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜จ๋ผ์ธ์— ์ •๋ณด๊ฐ€ ๋งŽ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ตฐ๊ฐ€ ์ด๊ฒƒ์„ ์„ฑ๊ณต์ ์œผ๋กœ ํ…Œ์ŠคํŠธ/์‚ฌ์šฉํ–ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ

ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ๋Š” ์ฆ๊ฑฐ์šด ๊ฒฝํ—˜์ด ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ์„  ๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•œ ๋ฌธ์ œ๊ฐ€ "๋‚ด ํ”ผ๋“œ๋ฐฑ"์— ํ•œ๋™์•ˆ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ฑ์„ ๋‹ซ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋งˆ์ง€๋ง‰ ์„ ํƒ์„ ๊ธฐ์–ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ์“ธ ์ˆ˜ ์—†๊ณ  ํŒŒ์ผ ๋ฐ/๋˜๋Š” ํด๋ฆฝ๋ณด๋“œ ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” @Felix-Dev์— ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ๊ฒŒ์‹œํ•  ์œ„์น˜๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์ •๋ง ์–ด๋ ต์Šต๋‹ˆ๋‹ค(์ง€๊ธˆ๋ถ€ํ„ฐ xlang์— ๊ฒŒ์‹œํ•  ์˜ˆ์ •์ž„์„ ์ œ์™ธํ•˜๊ณ ).

@BenJKuhn ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ๋•Œ ํด๋ฆฝ๋ณด๋“œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ • ์•Œ๋ฆผ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ ๋งํฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://aka.ms/AA7zx69

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

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

๊ฐ์‚ฌ ํ•ด์š”,

๋ฒค ์ฟค

@jtorjo ๋‹น์‹ ์ด ๊ตฌ์ถ•ํ•œ NAudio์˜ UWP ํฌํŠธ์— ๋Œ€ํ•œ WACK ๋ณด๊ณ ์„œ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๋ฐ์ดํ„ฐ๋Š” NAudio๊ฐ€ ์Šคํ† ์–ด ์ธ์ฆ์„ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋„๋ก ์™„ํ™”ํ•ด์•ผ ํ•˜๋Š” ์ œํ•œ ์‚ฌํ•ญ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

@mikebattista WACK์„ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋””์˜ค ๋ฌธ์ œ๋งŒ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

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

FindFirstFileExFromApp - ์ด๊ฒƒ์€ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ(์‹ค์ œ๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค) - ํ™•์‹คํžˆ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

EnumChildWindows/EnumWindows๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #ifdefํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ.zip

๊ฐ์‚ฌ ํ•ด์š”! ์ง€์›๋˜๋Š” API ์‹คํŒจ๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์˜ค๋””์˜ค ํŒ€์— ์—ฐ๋ฝํ•˜์—ฌ ์—ฌ๊ธฐ์˜ ๋ชจ๋“  ์ œํ•œ์„ ์ž ์žฌ์ ์œผ๋กœ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์˜๊ฒฌ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

@mikebattista ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด๋ฒˆ์ด ์ƒ๋‹นํžˆ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค :)

๋Œ์–ด์„œ ๋†“๊ธฐ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๊ด€ํ•œ @jtorjo :

  1. ํŒŒ์ผ๊ณผ ํด๋” ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?
    ๋งŽ์€ ์•ฑ๊ณผ ํ…Œ์ŠคํŠธ์—์„œ ์ž‘๋™ํ•ด์•ผ ํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฒ„๊ทธ๋ฅผ ์‹ ๊ณ ํ•˜์„ธ์š”.
  2. .Path์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
    ๊ฐ€๋Šฅ์„ฑ - ์Šคํ† ๋ฆฌ์ง€ ํ•ญ๋ชฉ์„ ๋ฐฑ์—…ํ•  ์‹ค์ œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์œผ๋ฉด ์˜ˆ์ž…๋‹ˆ๋‹ค. (์…ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ฐ™์€ ๊ฒƒ์€ ์‹ค์ œ๋กœ ์‹ค์ œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค)
  3. ์ง€์†์ ์ž…๋‹ˆ๊นŒ(๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ๊ฐ€์ •)?
    ์•„๋‹ˆ์š”, ์•ฑ์€ ํ–ฅํ›„ ์•ก์„ธ์Šค ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜์—ฌ ์•ฑ์„ ์˜๊ตฌ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. StorageFile/Folder๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋‚˜์ค‘์— .Path์—์„œ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ(2.์— ๋Œ€ํ•œ ๋Œ€๋‹ต์ด YES๋ผ๊ณ  ๊ฐ€์ •)?
    ํ–ฅํ›„ ์•ก์„ธ์Šค ๋ชฉ๋ก ๋˜๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‚ฌ์šฉ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ํ•ด์ œํ•˜๋ฉด ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์ž„์˜์˜ ์œ„์น˜์—์„œ ๋น„๋””์˜ค ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จํ•˜์—ฌ - ์‹œ์Šคํ…œ์€ ์˜๋„์ ์œผ๋กœ ์ž„์˜ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ ์•ฑ์ด ๋Œ€์ฒด ์œ„์น˜์— ๋ฐฐ์น˜๋œ ํŒŒ์ผ์˜ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž๋Š” ์ด๋ฅผ ํฌํ•จํ•˜๋„๋ก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ธ๋ฑ์„œ ๋ฐ ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ง€ ์„œ๋น„์Šค์—๋Š” ๋“œ๋ผ์ด๋ธŒ์—์„œ ์„ธ๋ถ€ ์ •๋ณด(ํŒŒ์ผ ํฌ๊ธฐ ๋“ฑ..)๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์Šค์บ”ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ์‚ฌ์ง„ ๋ฐ ๋น„๋””์˜ค ํŒŒ์ผ์„ ์ฐพ๋Š” ๋ฐ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•ฑ์€ StorageLibrary API ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์œ„์น˜๊ฐ€ ์ด๋ฏธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋ฐœ๊ฒฌ๋œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”๊ฐ€ํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ„์†ํ•ด์„œ ์ฑ…์ž„์„ ์ง€๊ฒŒ ํ•˜๊ณ  ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.) ํŒŒ์ผ์ด ํฌํ•จ๋œ ๋ชจ๋“  ์œ„์น˜๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์˜ณ์€ ์ผ์ธ์ง€ ํŒ๋‹จํ•  ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๊ฒƒ๋„ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. [์—ฌ๋Ÿฌ 3D ๋ชจ๋ธ ๊ตฌ์ถ• ๋ฐ ๋ Œ๋”๋ง ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด ์‚ฌ์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํ‘œ์‹œํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ์ˆ˜์ฒœ ๊ฐœ์˜ ํ…์Šค์ฒ˜ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.]

'FindFirstFileExFromApp - ์ด๊ฒƒ์€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค) - ํ™•์‹คํžˆ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.'
๋ชจ๋“  *FromApp API๊ฐ€ ์•ฑ ์ปจํ…Œ์ด๋„ˆ ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜๊ณ  ์˜๋„๋œ ๊ฒƒ์— ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋„๊ตฌ๊ฐ€ ๊ทธ ์ค‘ ํ•˜๋‚˜์— ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.

@smaillet-ms ์—ฌ๊ธฐ์— ์‘๋‹ตํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Windows.Storage API์˜ ์†๋„๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์•„์ฃผ ์˜ค๋žซ๋™์•ˆ ๋‹ต๋ณ€์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์•ฑ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๊ฐœ์„ ๋œ API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด NDA์— ๊ธฐ๊บผ์ด ์„œ๋ช…ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ FindFirstFile์˜ FromApp ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ FromApp API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ญ๋ชฉ ์ถ•์†ŒํŒ์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Windows ๋Ÿฐํƒ€์ž„์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ ์ค‘์ธ ์ž‘์—…์— ๋Œ€ํ•œ ์ด ์ˆ˜์ค€์˜ ๋น„๋ฐ€์€ ์ด์ „์— ์Šค๋ ˆ๋“œ์—์„œ Microsoft ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๊ณต์œ ํ•œ ๊ฒƒ๊ณผ ๋Œ€์กฐ๋ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ ๋ฌด์‹œ ํ”ผ๋“œ๋ฐฑ ๋งํฌ: https://aka.ms/AA6dgqz

์—ฌ๊ธฐ์— ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ํŠน์ • ์„ธ๋ถ€ ์ •๋ณด๋Š” NDA ๋’ค์— ๋ณดํ˜ธ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚ด๋ถ€์ ์œผ๋กœ ์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ MS๊ฐ€ ์ด๋ฅผ ๊ณต๊ฐœ์ ์œผ๋กœ ์–ธ๊ธ‰ํ•˜๋ฉด โ€‹โ€‹๋งŽ์€ UWP ๊ฐœ๋ฐœ์ž๋ฅผ ์•ˆ์‹ฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์šฐ๋ฆฌ๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ์„ ๋•Œ ์ผ๋ฐ˜์ ์ธ ์ „๋ง๊ณผ ํ•จ๊ป˜). /๋” ๋งŽ์ด ๋“ค์œผ์„ธ์š”).

์—ฌ๋Ÿฌ OS ๋ฆด๋ฆฌ์Šค์—์„œ ์Šคํ† ๋ฆฌ์ง€ API์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ๊ฐœ๋ฐœ์ž์˜ ๊ณผ์ œ๋Š” ์ฃผ๋กœ ์–ด๋–ค API๋ฅผ ์–ธ์ œ ์‚ฌ์šฉํ• ์ง€ ์•„๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ผ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ทธ ์ค‘ ๋งŽ์€ ๊ฒƒ์ด ์ฃผ์–ด์ง„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ์™„์ „ํžˆ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ "ํ•˜๋‚˜์˜ ์ •๋‹ต"์ด๋ž€ ๊ฒƒ์€ ์‹ค์ œ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ์–ป์€ ์ •๋ณด๋กœ ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ์ง€์— ๋‹ฌ๋ ค ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. *FromApp API๋Š” ํ˜„์žฌ ํ‘œ์ค€ Win32 ๋Œ€์‘ API์— ๋น„ํ•ด ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ง€์ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ธ๋„ค์ผ ๋“ฑ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ์…ธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค(์บ์‹œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์‹ค์ œ๋กœ ํš๋“ํ•˜๋Š” ๋ฐ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค). ๋”ฐ๋ผ์„œ ์•ฑ์—์„œ ์ด๋ฆ„/๊ฒฝ๋กœ ๋˜๋Š” ํ™•์žฅ์ž๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ด€์‹ฌ ์žˆ๋Š” ํŒŒ์ผ์„ ์ฐพ์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ *FromApp API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ StorageFile์„ ์ƒ์„ฑํ•˜์—ฌ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘๋ณต๋œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ์ง€๋งŒ ์ด ๊ฒฝ์šฐ ์•ก์„ธ์Šค ํ™•์ธ์ด ๋‘ ๋ฒˆ ์ˆ˜ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํŒŒ์ผ๋งŒ ์ฐพ์œผ๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€๋งŒ ๋Œ€๊ทœ๋ชจ์˜ ์ค‘๋ณต์—๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Windows.Storage.Search.IndexerOption .OnlyUseIndexerAndOptimizeForIndexedProperties์™€ ํ•จ๊ป˜ Storage WinRT API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ •๋ง ๋น ๋ฅธ ์—ด๊ฑฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์—ด๊ฑฐํ˜•์€ ์ฃผ๋ฌธํ˜• ์•„๋ž˜์— ์™„์ „ํžˆ ์‹คํ˜„๋œ ์Šคํ† ๋ฆฌ์ง€ ํ•ญ๋ชฉ์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์•ก์„ธ์Šค ๊ฒ€์‚ฌ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ๋กœ์—์„œ. ๋‹จ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์œ„์น˜์— ๋Œ€ํ•ด ์ธ๋ฑ์„œ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

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

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

@smaillet-ms

๋Œ์–ด์„œ ๋†“๊ธฐ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๊ด€ํ•œ @jtorjo :

  1. ํŒŒ์ผ๊ณผ ํด๋” ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?
    ๋งŽ์€ ์•ฑ๊ณผ ํ…Œ์ŠคํŠธ์—์„œ ์ž‘๋™ํ•ด์•ผ ํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฒ„๊ทธ๋ฅผ ์‹ ๊ณ ํ•˜์„ธ์š”.
  2. .Path์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
    ๊ฐ€๋Šฅ์„ฑ - ์Šคํ† ๋ฆฌ์ง€ ํ•ญ๋ชฉ์„ ๋ฐฑ์—…ํ•  ์‹ค์ œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์œผ๋ฉด ์˜ˆ์ž…๋‹ˆ๋‹ค. (์…ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ฐ™์€ ๊ฒƒ์€ ์‹ค์ œ๋กœ ์‹ค์ œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค)
  3. ์ง€์†์ ์ž…๋‹ˆ๊นŒ(๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ๊ฐ€์ •)?
    ์•„๋‹ˆ์š”, ์•ฑ์€ ํ–ฅํ›„ ์•ก์„ธ์Šค ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜์—ฌ ์•ฑ์„ ์˜๊ตฌ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. StorageFile/Folder๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋‚˜์ค‘์— .Path์—์„œ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ(2.์— ๋Œ€ํ•œ ๋Œ€๋‹ต์ด YES๋ผ๊ณ  ๊ฐ€์ •)?
    ํ–ฅํ›„ ์•ก์„ธ์Šค ๋ชฉ๋ก ๋˜๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‚ฌ์šฉ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ํ•ด์ œํ•˜๋ฉด ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์ž˜ ๋“ค๋ฆฐ๋‹ค. ์–ด๋Š ์‹œ์ ์—์„œ ๋‚ด ์•ฑ์—์„œ ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

[...] ์ธ๋ฑ์„œ ๋ฐ ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ง€ ์„œ๋น„์Šค์—๋Š” ๋“œ๋ผ์ด๋ธŒ์—์„œ ์„ธ๋ถ€ ์ •๋ณด(ํŒŒ์ผ ํฌ๊ธฐ ๋“ฑ..)๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์Šค์บ”ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ์‚ฌ์ง„ ๋ฐ ๋น„๋””์˜ค ํŒŒ์ผ์„ ์ฐพ๋Š” ๋ฐ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•ฑ์€ StorageLibrary API ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์œ„์น˜๊ฐ€ ์ด๋ฏธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋ฐœ๊ฒฌ๋œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”๊ฐ€ํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ง€๊ธˆ ๋‹น์žฅ์€ StorageFolder/File ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ฒœ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•˜๋ฉฐ ์ด๊ฒƒ์€ ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์ธ ๋‚˜์—๊ฒŒ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ถ€๋‹ด์„ ์ค๋‹ˆ๋‹ค.

'FindFirstFileExFromApp - ์ด๊ฒƒ์€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค) - ํ™•์‹คํžˆ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ง€์ •๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.'
๋ชจ๋“  *FromApp API๊ฐ€ ์•ฑ ์ปจํ…Œ์ด๋„ˆ ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๊ณ„๋˜๊ณ  ์˜๋„๋œ ๊ฒƒ์— ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋„๊ตฌ๊ฐ€ ๊ทธ ์ค‘ ํ•˜๋‚˜์— ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.

๋™์˜.

@smaillet-ms

์—ฌ๋Ÿฌ OS ๋ฆด๋ฆฌ์Šค์—์„œ ์Šคํ† ๋ฆฌ์ง€ API์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ๊ฐœ๋ฐœ์ž์˜ ๊ณผ์ œ๋Š” ์ฃผ๋กœ ์–ด๋–ค API๋ฅผ ์–ธ์ œ ์‚ฌ์šฉํ• ์ง€ ์•„๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ ๊ฐ์Šค๋Ÿฝ๊ฒŒ๋„ ์ด๊ฒƒ์€ ๊ทธ๋‹ค์ง€ ์•ˆ์‹ฌํ•  ์ˆ˜ ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

WPF ์‹œ๋Œ€์—๋Š” ๋‹จ์ˆœํžˆ System.IO๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํŒŒ์ผ/ํด๋” ์ฟผ๋ฆฌ๋ฅผ ๋ฏธ์นœ ๋“ฏ์ด ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ณ  ์†๋„์— ๋Œ€ํ•ด ์ „ํ˜€ ๊ฑฑ์ •ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค - ๊ทธ๊ฒƒ์€ ์ž‘๋™ํ•œ๋‹ค. 4000๊ฐœ ํŒŒ์ผ, 10000๊ฐœ ํŒŒ์ผ - ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ผ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ทธ ์ค‘ ๋งŽ์€ ๊ฒƒ์ด ์ฃผ์–ด์ง„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ์™„์ „ํžˆ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

API๋Š” ์• ์ดˆ๋ถ€ํ„ฐ ์กด์žฌํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ "ํ•˜๋‚˜์˜ ์ •๋‹ต"์ด๋ž€ ๊ฒƒ์€ ์‹ค์ œ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ์–ป์€ ์ •๋ณด๋กœ ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ์ง€์— ๋‹ฌ๋ ค ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. *FromApp API๋Š” ํ˜„์žฌ ํ‘œ์ค€ Win32 ๋Œ€์‘ API์— ๋น„ํ•ด ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ํ™•์‹คํžˆ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. *FromApp API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ํด๋ž˜์Šค(๋‚ด ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ๊ฒฝ์šฐ)๋กœ ์ด๋ฏธ ๋ž˜ํ•‘ํ–ˆ์ง€๋งŒ, ์ด๊ฒƒ์€ MS๋„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ 98%๋ฅผ ์ฐจ์ง€ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ง์ ‘ ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์‹œ๊ฐ„์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‚˜์˜ ๊ฐ„๋‹จํ•œ ์ˆ˜์—…์„ ํ–‰๋ณตํ•˜๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋ˆ„๊ตฐ๊ฐ€ ๊ฑฐ๊ธฐ์—์„œ ๊ทธ๊ฒƒ์„ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ์ง€์ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ธ๋„ค์ผ ๋“ฑ๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ์…ธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค(์บ์‹œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์‹ค์ œ๋กœ ํš๋“ํ•˜๋Š” ๋ฐ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค).

๋™์˜ํ•จ - ์ด๋ฏธ ๋ณ„๋„๋กœ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ์ธ๋„ค์ผ ์š”์ฒญ) - ์ด์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ API๋Š” ๋†€๋ผ์šด ์ผ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ๋„ค์ผ์„ ๋Œ€๋Ÿ‰์œผ๋กœ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  IAsyncEnumerable์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ํ•œ ๋ฒˆ, MS๋Š” ์ด๋ฅผ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ API๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ง€๊ธˆ์€ ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•ด .GetThumbnailAsync๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ API๋ฅผ ์ œ๊ณตํ•˜๋ฉด ๋‚˜์ค‘์— ์†๋„๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์•ฑ์—์„œ ์ด๋ฆ„/๊ฒฝ๋กœ ๋˜๋Š” ํ™•์žฅ์ž๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ด€์‹ฌ ์žˆ๋Š” ํŒŒ์ผ์„ ์ฐพ์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ *FromApp API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ StorageFile์„ ์ƒ์„ฑํ•˜์—ฌ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘๋ณต๋œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ์ง€๋งŒ ์ด ๊ฒฝ์šฐ ์•ก์„ธ์Šค ํ™•์ธ์ด ๋‘ ๋ฒˆ ์ˆ˜ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ์Šค ์ธก๋ฉด์—์„œ *FromApp API์—๋Š” ์ƒ์„ฑ ์‹œ๊ฐ„, ๋งˆ์ง€๋ง‰ ์•ก์„ธ์Šค ์‹œ๊ฐ„, ๋งˆ์ง€๋ง‰ ์“ฐ๊ธฐ ์‹œ๊ฐ„, ํŒŒ์ผ ํฌ๊ธฐ์™€ ๊ฐ™์€ ๋งŽ์€ ์ •๋ณด๊ฐ€ ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ํŒŒ์ผ๋งŒ ์ฐพ์œผ๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€๋งŒ ๋Œ€๊ทœ๋ชจ์˜ ์ค‘๋ณต์—๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Windows.Storage.Search.IndexerOption .OnlyUseIndexerAndOptimizeForIndexedProperties์™€ ํ•จ๊ป˜ Storage WinRT API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ •๋ง ๋น ๋ฅธ ์—ด๊ฑฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์—ด๊ฑฐํ˜•์€ ์ฃผ๋ฌธํ˜• ์•„๋ž˜์— ์™„์ „ํžˆ ์‹คํ˜„๋œ ์Šคํ† ๋ฆฌ์ง€ ํ•ญ๋ชฉ์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์•ก์„ธ์Šค ๊ฒ€์‚ฌ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ๋กœ์—์„œ. ๋‹จ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์œ„์น˜์— ๋Œ€ํ•ด ์ธ๋ฑ์„œ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ์ œ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ์ƒ‰์ธ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์€ ํŒŒ์ผ๋ณด๋‹ค ๋น ๋ฅด์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ๋น ๋ฅด์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด 3x-5x ๋” ๋น ๋ฅด๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ *FromApp๋ณด๋‹ค ์•ฝ 10x-50x ๋Š๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฏธ์นœ ๋“ฏ์ด ๋Š๋ฆฝ๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ "๋ชจ๋“  ํŒŒ์ผ์— ํŒŒ์ผ ์†์„ฑ ์™ธ์— ์ปจํ…์ŠคํŠธ ์ธ๋ฑ์‹ฑ์ด ํฌํ•จ๋จ"์„ ํ™•์ธํ•˜๋ผ๊ณ  ๋งํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‹จ์ˆœํžˆ ๊ทธ์˜ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š์€ ์ฑ„๋กœ ๋‘ก๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ Windows๋Š” ์‚ฌ์šฉ๋œ ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ํŒŒ์•…ํ•˜๊ณ  ํ•ด๋‹น ํด๋”๋ฅผ ์ƒ‰์ธํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฏธ๋””์–ด ํŒŒ์ผ(๋น„๋””์˜ค/์‚ฌ์ง„/์Œ์•…)๊ณผ ๋ฌธ์„œ์— ๋งค์šฐ ์ค‘์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

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

๊ทธ๋ฆฌ๊ณ  ๊ทธ ์„ฑ๋Šฅ ๋ฌธ์ œ๋Š” ์—„์ฒญ๋‚ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ๋„ˆ๋ฌด ์ปค์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๋žต 1000๊ฐœ์˜ ํŒŒ์ผ์— ๋Œ€ํ•ด 9-10์ดˆ ํ›„์— ์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์ด ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ฒฐ๊ณผ๋ฅผ ์—ด๊ฑฐํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ์•„๋ฌด ๊ฒƒ๋„ ํ•˜๊ธฐ ์ „์— 9-10์ดˆ ๋™์•ˆ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. FileInformationFactory๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ๊ทธ ์‹œ๊ฐ„ ๋™์•ˆ UI๊ฐ€ ์‘๋‹ตํ•  ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

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

๊ธ€์Ž„์š”, ์šฐ๋ฆฌ ์ค‘ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๋„ ;) WinRT๊ฐ€ Windows์˜ ํฐ ๋ถ€๋ถ„์ด๊ณ  ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ๋‹ค๋ฅธ ํŒ€์— ํฉ์–ด์ ธ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

MS๊ฐ€ WinRT์— ๋Œ€ํ•ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋น„์ „์„ ๊ณต๊ฐœ์ ์œผ๋กœ ๋ณด์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ์—๊ฒŒ ๊ทธ๋‹ค์ง€ ์œ„์•ˆ์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด/์–ธ์ œ/๋ฐœ์ƒํ•œ๋‹ค๋ฉด ํƒ€์ž„๋ผ์ธ์ด ์—†๋Š” ๊ฒƒ.

๋‚˜์—๊ฒŒ ํŒŒ์ผ/ํด๋”๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์†๋„๋Š” ๋‹จ์ˆœํžˆ ๊ฐ€์žฅ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํด๋”์— ์žˆ๋Š” ํŒŒ์ผ์„ ์—ด๊ฑฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ WinRT/UWP๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  "๋‚ด Google ๊ฒ€์ƒ‰์ด *FromApp API๋กœ ์‹คํ–‰๋  ๋งŒํผ ์šด์ด ์ข‹์„๊นŒ?"๋ผ๋Š” ๋ฌธ์ œ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ด์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ๋ฐฐ์€๋ง๋•ํ•œ ์‚ฌ๋žŒ์ฒ˜๋Ÿผ ๋ณด์ด๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์„ ๋‚ด์–ด ์ด ๋ชจ๋“  ๊ฒƒ์„ ์„ค๋ช…ํ•ด์ฃผ์…”์„œ ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@BenJKuhn ๋ˆ„๊ตฐ๊ฐ€(https://docs.microsoft.com/answers/questions/6112/updating-existing-app-with-new-certificate-uwp.html?childToView=25297#comment-25297)๊ฐ€ The ์—ฌ๊ธฐ์—์„œ "์ƒˆ ์ธ์ฆ์„œ" ๋ฐœํ–‰ --> https://aka.ms/AA8bw9v

์ •๋ง ๋‚˜์œ ์ธก๋ฉด์—์„œ -- ๋‚˜๋Š” ์ด๊ฒƒ์„ ์•ก์„ธ์Šคํ•˜๋ ค๊ณ  ํ–ˆ๊ณ  ์ด ํ‹ฐ์ผ“์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์—†๋‹ค๊ณ  ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "ํ”ผ๋“œ๋ฐฑ ํ—ˆ๋ธŒ"์˜ ์‹ ๋ขฐ์„ฑ์— ์‹ค์ œ๋กœ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

MS ์Šคํ† ์–ด ์™ธ๋ถ€์—์„œ ์‚ฌ์ด๋“œ๋กœ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊นŒ์šด ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค. MS Store์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์•ฑ์„ ์„ค์น˜ํ•˜๋Š” ๋Œ€์ฒด ๋ฐฉ๋ฒ•์œผ๋กœ appinstaller๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ธ์ฆํ•˜๋Š” ๋™์•ˆ ๋‚ด ์•ฑ์ด ๊ธˆ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
MS ์Šคํ† ์–ด ์ •์ฑ…:
https://docs.microsoft.com/en-us/windows/uwp/publish/store-policies?redirectedfrom=MSDN#101 -distinct-function--value-accurate-representation

10.1.5
๊ท€ํ•˜์˜ ์•ฑ์€ Microsoft Store๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ™๋ณดํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์„œ๋ฒ„์—์„œ appinstaller ํŒŒ์ผ์„ ์ œ๊ฑฐํ•œ ํ›„ ์‚ฌ์šฉ์ž๋Š” MS Store๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด ์•ฑ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทœ์น™์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ๊ทœ์น™์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์Šคํ† ์–ด์™€ ์•ฑ์ธ์Šคํ†จ๋Ÿฌ(์œ ๋‹ˆ๊ทธ๋žจ)๋‚˜ ์ดˆ์ฝœ๋ฆฟ(์ƒˆ๋กœ์šด MS ํ„ฐ๋ฏธ๋„)์„ ํ†ตํ•ด ๋ฐฐํฌ๋˜๋Š” ๋งŽ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์•Œ๊ณ  ์žˆ์„ ๋•Œ ์ •๋ง ์‹ค๋ง์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

MS ์Šคํ† ์–ด ์™ธ๋ถ€์—์„œ ์‚ฌ์ด๋“œ๋กœ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊นŒ์šด ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์‚ฌ์‹ค์ด ์•„๋‹™๋‹ˆ๋‹ค. MS Store์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์•ฑ์„ ์„ค์น˜ํ•˜๋Š” ๋Œ€์ฒด ๋ฐฉ๋ฒ•์œผ๋กœ appinstaller๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ธ์ฆํ•˜๋Š” ๋™์•ˆ ๋‚ด ์•ฑ์ด ๊ธˆ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
MS ์Šคํ† ์–ด ์ •์ฑ…:
https://docs.microsoft.com/en-us/windows/uwp/publish/store-policies?redirectedfrom=MSDN#101 -distinct-function--value-accurate-representation

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์—ฌ๊ธฐ์„œ ๊ฐ™์€ ๊ฒƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์‹œ๋Œ€์— ์ €๋Š” MS Store๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์›ํ•˜๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์ด์œ ๋ฅผ ์ƒ๊ฐํ•ด๋‚ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ฌธ์ œ๋Š” ์•ฑ์„ ๊ฐœ๋ฐœํ•œ ๋‹ค์Œ MS ์Šคํ† ์–ด ์™ธ๋ถ€์— ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์—„์ฒญ๋‚˜๊ฒŒ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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