Deep_Dev
[iOS][Swift] Dismiss Live Activities on App Termination ( feat. Semaphore )
๐ŸŽ iOS/Swift 2025. 1. 9. 20:23

๐Ÿ“š Semaphore (์„ธ๋งˆํฌ์–ด )  ์ผ๋‹จ ์„ธ๋งˆํฌ์–ด์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•˜๊ธฐ์ „์— ๊ด€๋ จ๋œ ์ด์Šˆ์ธ, ์ด์ „ ํฌ์ŠคํŒ… 'LiveActivity' ํฌ์ŠคํŒ…์„ ๋ณด๊ณ ์˜ค๋ฉด ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค.  https://leesangdo.tistory.com/310 [SwiftUI] LiveActivity ๊ตฌํ˜„ํ•  ๋•Œ, ์•ฑ ๊ฐ•์ œ์ข…๋ฃŒ์‹œ LiveAcivity ์ข…๋ฃŒ์— ๋Œ€ํ•ด๐Ÿ“š Live Activity ์ข…๋ฃŒ   '์˜ฌ๋ผ์ž‡' ์•ฑ ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ, LiveActivity ๊ตฌํ˜„์„ ๋‹ด๋‹นํ–ˆ์—ˆ๋Š”๋ฐ ๋‹น์‹œ์— ๊ฒช์—ˆ๋˜ ์ด์Šˆ์™€ ๊ด€๋ จํ•˜์—ฌ ๋…ธ์…˜์— ๊ธฐ๋กํ•ด๋‘์—ˆ๋˜๊ฒƒ์„ ํ‹ฐ์Šคํ† ๋ฆฌ์—๋„ ์˜ฎ๊ฒจ์ ์–ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ์ดํ›„ ์„ธ๋งˆํฌ์–ดleesangdo.tistory.com ์œ„ ํฌ์ŠคํŒ…์„ ๋ณด๋ฉด ์•Œ๋‹ค์‹œํ”ผ, LiveActivity ์ข…๋ฃŒ๋ฅผ Dynamic Island Expanded ์˜์—ญ์—์„œ X ๋ฒ„..

article thumbnail
[Swift][iOS] GCD API ๋™์ž‘ ๋ฐฉ์‹๊ณผ ํ•„์š”์„ฑ (1)
๐ŸŽ iOS/Swift 2023. 6. 13. 15:28

๐Ÿ“Œ GCD ( Grand Central Dispatch) ๋ž€? ๋‹ค์ˆ˜์˜ Thread์— ์ ์ ˆํ•˜๊ฒŒ ์ž‘์—…์„ ๋ถ„๋ฐฐํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์•ผ ํ•  ์ผ์€ ๋ฌด์—‡์ผ๊นŒ ? ๋ฐ”๋กœ ํ•  ์ผ(task)๋ฅผ Queue์— ๋„ฃ๋Š” ๊ฒƒ์ด๋‹ค. ๋„ฃ์–ด์•ผ ๋˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ๋‹ค์ˆ˜์˜ Thread์— ์ ์ ˆํ•˜๊ฒŒ ์ž‘์—…์„ ๋ถ„๋ฐฐํ•˜๋Š” ์ผ์€ ๋ˆ„๊ฐ€ ํ•  ๊ฒƒ์ธ๊ฐ€ ? ๋ฐ”๋กœ GCD๋Š” Queue์— ๋„ฃ์œผ๋ฉด ๊ทธ์— ๋”ฐ๋ฅธ ์Šค๋ ˆ๋“œ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์ƒ์„ฑํ•ด ๋ถ„๋ฐฐํ•ด์ฃผ๋Š” ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  GCD์—์„œ ์‚ฌ์šฉํ•˜๋Š” Queue ์ด๋ฆ„์ด Dispatch Queue์ด๋‹ค. ๊ทธ๋Ÿผ Dispatch Queue์— ์ž‘์—…์ด ์ถ”๊ฐ€๋˜๋ฉด GCD๋Š” ์ž‘์—…์— ๋งž๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ์‹คํ–‰ํ•˜๊ณ , ์ž‘์—…์ด ์ข…๋ฃŒ๋˜๋ฉด ์Šค๋ ˆ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ฒŒ ๋œ๋‹ค. ๐Ÿ“Œ Dispatch Queue๋ž€? ์•ฑ์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋‚˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ์—์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ๋˜๋Š” ๋™์‹œ์— ์ž‘..

article thumbnail
[Swift][iOS] QOS
๐ŸŽ iOS/Swift 2023. 6. 13. 15:28

QoS ( Quality of Service ) QoS๋Š” ์„œ๋น„์Šค์˜ ํ’ˆ์งˆ์ด๋‹ค. DispatchQueue์˜ ์ž‘์—…์„ ์šฐ์„ ์ ์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š”๋ฐ ๋„์›€์„ ์ค€๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ค‘์š”๋„์— ๋”ฐ๋ผ ์•ฑ ์ž‘์—…์„ ๋ถ„๋ฅ˜ํ•ด ์‹œ์Šคํ…œ์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ตœ์ ์˜ ์‹œ๊ฐ„๊นŒ์ง€ ์ž‘์—…์„ ์—ฐ๊ธฐํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋‹ค๋ฅธ ํšจ์œจ์„ฑ ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒฝ์šฐ์—๋„ ์‹œ์Šคํ…œ์€ ์—ฌ์ „ํžˆ ์ผ์ • ์ˆ˜์ค€์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์•ฑ์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜๋‹ค. QoS์˜ class ์ •๋ณด ์„œ๋น„์Šค ํ’ˆ์งˆ(QoS) ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ NSOperation, NSOperationQueue, NSThread๊ฐœ์ฒด, ๋””์ŠคํŒจ์น˜ ๋Œ€๊ธฐ์—ด ๋ฐ pthread(POSIX ์Šค๋ ˆ๋“œ)๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž‘์—…์— QoS๋ฅผ ํ• ๋‹นํ•˜์—ฌ ์ค‘์š”๋„๋ฅผ ํ‘œ์‹œํ•˜๋ฉด..

article thumbnail
[Swift] Struct์™€ Class์˜ ์ฐจ์ด์ 
๐ŸŽ iOS/Swift 2023. 5. 15. 16:16

โœ… Struct Class ๋น„๊ต iOS๊ฐœ๋ฐœ์ž๋กœ ๋ฉด์ ‘์„ ์ค€๋น„ํ•˜๋‹ค๋ณด๋ฉด Struct์™€ Class์˜ ์ฐจ์ด์ ์ด๋ผ๋Š” ์งˆ๋ฌธ์„ ์ž์ฃผ ์ ‘ํ•˜๊ฒŒ ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ํฌ์ŠคํŒ…์„ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ๋จผ์ € ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฐจ์ด์ ์„ ๋ณด์ž๋ฉด, "Struct๋Š” ๊ฐ’ํƒ€์ž…, Class๋Š” ์ฐธ์กฐํƒ€์ž…" ์ •๋„์ด๋‹ค. ์ด ์งˆ๋ฌธ์„ ํ†ตํ•ด ARC๋ฅผ ํ†ตํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ์ฐธ์กฐํƒ€์ž…๊ณผ ๊ฐ’ ํƒ€์ž…์˜ ์ฐจ์ด์  ๋“ฑ์„ ํ•จ๊ป˜ ๋‹ตํ•  ์ˆ˜ ์žˆ์„๊ฒƒ ๊ฐ™๋‹ค. ์‚ฌ์‹ค Struct์™€ Class์˜ '์ฐจ์ด์ '๋งŒ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ๋ฌธ๋ฒ•์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๊ณง์ด๊ณง๋Œ€๋กœ ์™ธ์šฐ๊ณ  ๊ณต๋ถ€ํ•ด๋„ ๋  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด ์งˆ๋ฌธ์ด ๋ฉด์ ‘์—์„œ ์ž์ฃผ ๋‚˜์˜จ๋‹ค๋Š”๊ฒƒ์— ๋Œ€ํ•ด์„œ ์ƒ๊ฐํ•ด๋ณธ๋‹ค๋ฉด, iOS๊ฐœ๋ฐœ์ž์—๊ฒŒ ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” ์งˆ๋ฌธ์ธ์ง€ ์กฐ๊ธˆ ๋” ์ƒ๊ฐํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๊ฒฐ๊ตญ "๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ๊ณ ๋ คํ•ด์•ผ ํ•  ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋Š” ์„ฑ๋Šฅ์ด๊ณ , Struct์™€ Cl..

article thumbnail
[Swift] Dispatch Queue
๐ŸŽ iOS/Swift 2023. 1. 27. 01:08

๐Ÿ“– Dispatch Queue Queue : FIFO ๊ตฌ์กฐ Serial Queue ์ด์ „ ์ž‘์—…์ด ๋๋‚˜๋ฉด ๋‹ค์Œ ์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ์ง๋ ฌ ํ˜•ํƒœ Concurrent Queue ์ด์ „ ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๋ณ‘๋ ฌ ํ˜•ํƒœ ๐Ÿ“– GCD GCD : Multi Process๋ฅผ ์œ„ํ•œ Thread Programming์˜ ๋ฐฉ๋ฒ• ๊ธฐ์กด์— Thread Programming์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋™๊ธฐํ™”๋„ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผํ•˜๊ณ , deadlock๋„ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋Š” ๋“ฑ ์Šค๋ ˆ๋“œํ’€์„ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์ง€๋งŒ, ์• ํ”Œ์—์„œ ๋”ฐ๋กœ GCD๋ฅผ ํ†ตํ•ด์„œ ์“ฐ๋ ˆ๋“œ๋ฅผ OS์—์„œ ๊ด€๋ฆฌํ•˜๊ณ  ๋ถ„๋ฐฐํ•˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ Swift์—์„œ๋Š” Thread ๊ด€๋ จ ์ž‘์—…์€ Grand Central Dispatch API ( GCD )๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•œ๋‹ค...