๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

๐Ÿš€ Development59

[C# .net] Windows ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž ๋กœ๊ทธ์ธ ๋ฐฉ๋ฒ• ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ณด์•ˆ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜, ํŠน์ • ๊ณ„์ •์œผ๋กœ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋•Œ ํ™œ์šฉํ•  ๋•Œ ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž๋ฅผ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.๊ฐ€๋ น, ํšŒ์‚ฌ์˜ ํŒŒ์ผ ์„œ๋ฒ„์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋œ ๊ณ„์ •์„ ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž์— ๋“ฑ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 1. Windows API ํ•จ์ˆ˜ ์„ ์–ธ(1) LogonUser [DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Auto)]private static extern bool LogonUser( string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, out IntPtr phToke.. 2024. 12. 11.
[Android] ๋„คํŠธ์›Œํฌ ์ž‘์—… ์‹œ ๋น„๋™๊ธฐ ์ž‘์—…์ด ํ•„์š”ํ•œ ์ด์œ  + ์ฝ”๋ฃจํ‹ด(coroutine) 1. UI ์ฐจ๋‹จ(Block) ํ˜„์ƒ์˜ ์›๋ฆฌ์™€ ๋ฌธ์ œ์ Android์˜ ์Šค๋ ˆ๋“œ ๋ชจ๋ธAndroid ์•ฑ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ(Main Thread)์—์„œ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)์™€ ๊ด€๋ จ๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.์˜ˆ: ํ™”๋ฉด์— ๋ฒ„ํŠผ ํ‘œ์‹œ, ์‚ฌ์šฉ์ž์˜ ํด๋ฆญ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ.๋„คํŠธ์›Œํฌ ์ž‘์—…์€ ์ฃผ๋กœ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์— ์†ํ•˜๋ฉฐ, ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค๋ฅธ ์ž‘์—…(ํŠนํžˆ UI ๊ด€๋ จ ์ž‘์—…)์ด ๋Œ€๊ธฐ ์ƒํƒœ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.UI ์ฐจ๋‹จ(Blocking)์˜ ์›์ธ๋„คํŠธ์›Œํฌ ์ž‘์—…์€ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๋Š” ๋™์•ˆ ์™ธ๋ถ€ ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.์˜ˆ) ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ ์ง€์—ฐ(Latency)์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ.์ด ๋™์•ˆ ์•ฑ์€ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ด ๋Œ€๊ธฐ ์ž‘์—…์— ๋ฌถ์ด๊ฒŒ ๋˜๋ฉด UI ์—….. 2024. 11. 25.
[Android] startActivityForResult ๋ฉ”์„œ๋“œ๊ฐ€ Deprecated๋œ ์ด์œ ์™€ ํ•ด๊ฒฐ๋ฐฉ์•ˆ + ์นด๋ฉ”๋ผ ์‚ฌ์šฉ ๋ฐ ์ด๋ฏธ์ง€๋ทฐ ์˜ˆ์ œ startActivityForResult๊ฐ€ Deprecated๋œ ์ด์œ startActivityForResult ๋ฉ”์„œ๋“œ๊ฐ€ Deprecated(์‚ฌ์šฉ ์ค‘๋‹จ)๋œ ์ด์œ ๋Š” Activity Result API๋ฅผ ๋„์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.์ƒˆ๋กœ์šด API๋Š” ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•˜๋ฉฐ, ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ๋ฅผ Lifecycle-aware ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ํ˜„๋Œ€์ ์ธ Android ๊ฐœ๋ฐœ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.๋” ์•ˆ์ „ํ•œ ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ: startActivityForResult๋Š” ์ฝœ๋ฐฑ์„ onActivityResult๋กœ ์ „๋‹ฌํ–ˆ์ง€๋งŒ, Activity ๋˜๋Š” Fragment๊ฐ€ Lifecycle-aware ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.๋ช…ํ™•ํ•œ ๊ฒฐ๊ณผ ๊ด€๋ฆฌ: ์ƒˆ๋กœ์šด API๋Š” ๋ช…์‹œ์ ์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  Lifecycle .. 2024. 11. 21.
[C#] ๋„ค์ž„์ŠคํŽ˜์ด์Šค(namespace) ๋ž€? ๋„ค์ž„์ŠคํŽ˜์ด์Šค(namespace) ๋ž€?C#์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ž€ ์ฝ”๋“œ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ์ด๋ฆ„ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.๋™์ผํ•œ ์ด๋ฆ„์˜ ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์ด ์—ฌ๋Ÿฌ ๊ณณ์— ์žˆ์–ด๋„ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๊ตฌ๋ถ„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋„ค์ž„์ŠคํŽ˜์ด์Šค(namespace)์˜ ์—ญํ• ์ฝ”๋“œ์˜ ๋…ผ๋ฆฌ์  ๊ทธ๋ฃนํ™”๊ด€๋ จ๋œ ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜• ๋“ฑ์„ ํ•˜๋‚˜์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ๋ฌถ์–ด ์ฝ”๋“œ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์˜ˆ: System.Collections๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๊ด€๋ จ ํด๋ž˜์Šค๋“ค์„ ๊ทธ๋ฃนํ™”ํด๋ž˜์Šค ์ด๋ฆ„ ์ถฉ๋Œ ๋ฐฉ์ง€๋™์ผํ•œ ์ด๋ฆ„์˜ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์กด์žฌํ•ด๋„ ์ถฉ๋Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด ์‚ฌ์šฉํ•˜๋ฉด ์ค‘๋ณต๋œ ์ด๋ฆ„์˜ ํด๋ž˜์Šค๋ฅผ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.๊ฐ€๋…์„ฑ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ๋งŽ์•„์ง‘๋‹ˆ๋‹ค... 2024. 11. 20.
728x90
๋ฐ˜์‘ํ˜•