๐ Semaphore (์ธ๋งํฌ์ด ) ์ผ๋จ ์ธ๋งํฌ์ด์ ๋ํด์ ํฌ์คํ ํ๊ธฐ์ ์ ๊ด๋ จ๋ ์ด์์ธ, ์ด์ ํฌ์คํ 'LiveActivity' ํฌ์คํ ์ ๋ณด๊ณ ์ค๋ฉด ์ดํดํ๋๋ฐ ๋์์ด ๋ ๊ฒ์ด๋ค. https://leesangdo.tistory.com/310 [SwiftUI] LiveActivity ๊ตฌํํ ๋, ์ฑ ๊ฐ์ ์ข ๋ฃ์ LiveAcivity ์ข ๋ฃ์ ๋ํด๐ Live Activity ์ข ๋ฃ '์ฌ๋ผ์' ์ฑ ๊ฐ๋ฐ์ ํ ๋, LiveActivity ๊ตฌํ์ ๋ด๋นํ์๋๋ฐ ๋น์์ ๊ฒช์๋ ์ด์์ ๊ด๋ จํ์ฌ ๋ ธ์ ์ ๊ธฐ๋กํด๋์๋๊ฒ์ ํฐ์คํ ๋ฆฌ์๋ ์ฎ๊ฒจ์ ์ด๋ณด๊ณ ์ ํ๋ค. ์ดํ ์ธ๋งํฌ์ดleesangdo.tistory.com ์ ํฌ์คํ ์ ๋ณด๋ฉด ์๋ค์ํผ, LiveActivity ์ข ๋ฃ๋ฅผ Dynamic Island Expanded ์์ญ์์ X ๋ฒ..
๐ GCD ( Grand Central Dispatch) ๋? ๋ค์์ Thread์ ์ ์ ํ๊ฒ ์์ ์ ๋ถ๋ฐฐํ๊ธฐ ์ํด ํด์ผ ํ ์ผ์ ๋ฌด์์ผ๊น ? ๋ฐ๋ก ํ ์ผ(task)๋ฅผ Queue์ ๋ฃ๋ ๊ฒ์ด๋ค. ๋ฃ์ด์ผ ๋๋ ๊ฒ์ด๋ผ๋ฉด ๋ค์์ Thread์ ์ ์ ํ๊ฒ ์์ ์ ๋ถ๋ฐฐํ๋ ์ผ์ ๋๊ฐ ํ ๊ฒ์ธ๊ฐ ? ๋ฐ๋ก GCD๋ Queue์ ๋ฃ์ผ๋ฉด ๊ทธ์ ๋ฐ๋ฅธ ์ค๋ ๋๋ฅผ ์ ์ ํ๊ฒ ์์ฑํด ๋ถ๋ฐฐํด์ฃผ๋ ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ GCD์์ ์ฌ์ฉํ๋ Queue ์ด๋ฆ์ด Dispatch Queue์ด๋ค. ๊ทธ๋ผ Dispatch Queue์ ์์ ์ด ์ถ๊ฐ๋๋ฉด GCD๋ ์์ ์ ๋ง๋ ์ค๋ ๋๋ฅผ ์๋์ผ๋ก ์์ฑํด์ ์คํํ๊ณ , ์์ ์ด ์ข ๋ฃ๋๋ฉด ์ค๋ ๋๋ฅผ ์ ๊ฑฐํ๊ฒ ๋๋ค. ๐ Dispatch Queue๋? ์ฑ์ ๋ฉ์ธ ์ค๋ ๋๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋์์ ์์ฐจ์ ์ผ๋ก ๋๋ ๋์์ ์..
QoS ( Quality of Service ) QoS๋ ์๋น์ค์ ํ์ง์ด๋ค. DispatchQueue์ ์์ ์ ์ฐ์ ์ ์ผ๋ก ๋ถ๋ฅํ๋๋ฐ ๋์์ ์ค๋ค. ๊ฐ๋ฐ์๋ ์ค์๋์ ๋ฐ๋ผ ์ฑ ์์ ์ ๋ถ๋ฅํด ์์คํ ์ ์ฐ์ ์์๋ฅผ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ์ง์ ํ ์ ์๋ค. ์ต์ ์ ์๊ฐ๊น์ง ์์ ์ ์ฐ๊ธฐํ๋ ๊ฒ๊ณผ ๋น์ทํ๊ฒ ๋ค๋ฅธ ํจ์จ์ฑ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ ๊ฒฝ์ฐ์๋ ์์คํ ์ ์ฌ์ ํ ์ผ์ ์์ค์ ์ฐ์ ์์๋ฅผ ์ํํด์ผ ํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฑ์ด ์ํํ๋ ์์ ์ ๋ถ๋ฅํ๋ ๊ฒ์ ์ค์ํ๋ค. QoS์ class ์ ๋ณด ์๋น์ค ํ์ง(QoS) ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ํํ ์์ ์ NSOperation, NSOperationQueue, NSThread๊ฐ์ฒด, ๋์คํจ์น ๋๊ธฐ์ด ๋ฐ pthread(POSIX ์ค๋ ๋)๋ก ๋ถ๋ฅํ ์ ์๋ค. ์์ ์ QoS๋ฅผ ํ ๋นํ์ฌ ์ค์๋๋ฅผ ํ์ํ๋ฉด..
โ Struct Class ๋น๊ต iOS๊ฐ๋ฐ์๋ก ๋ฉด์ ์ ์ค๋นํ๋ค๋ณด๋ฉด Struct์ Class์ ์ฐจ์ด์ ์ด๋ผ๋ ์ง๋ฌธ์ ์์ฃผ ์ ํ๊ฒ ๋๋ค๊ณ ํ๋ค. ๊ทธ๋์ ํฌ์คํ ์ ํด๋ณด๊ณ ์ ํ๋ค. ๋จผ์ ๊ฐ๋จํ๊ฒ ์ฐจ์ด์ ์ ๋ณด์๋ฉด, "Struct๋ ๊ฐํ์ , Class๋ ์ฐธ์กฐํ์ " ์ ๋์ด๋ค. ์ด ์ง๋ฌธ์ ํตํด ARC๋ฅผ ํตํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ์ฐธ์กฐํ์ ๊ณผ ๊ฐ ํ์ ์ ์ฐจ์ด์ ๋ฑ์ ํจ๊ป ๋ตํ ์ ์์๊ฒ ๊ฐ๋ค. ์ฌ์ค Struct์ Class์ '์ฐจ์ด์ '๋ง ์๊ฐํ๋ค๋ฉด ๋ฌธ๋ฒ์ ์๋ ๋ด์ฉ์ ๊ณง์ด๊ณง๋๋ก ์ธ์ฐ๊ณ ๊ณต๋ถํด๋ ๋ ๊ฒ์ด๋ค. ํ์ง๋ง ์ด ์ง๋ฌธ์ด ๋ฉด์ ์์ ์์ฃผ ๋์จ๋ค๋๊ฒ์ ๋ํด์ ์๊ฐํด๋ณธ๋ค๋ฉด, iOS๊ฐ๋ฐ์์๊ฒ ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ๋ ์ง๋ฌธ์ธ์ง ์กฐ๊ธ ๋ ์๊ฐํด๋ณผ ํ์๊ฐ ์๋ค. ๊ฒฐ๊ตญ "๊ฐ๋ฐ์๊ฐ ๊ฐ์ฅ ์ค์ํ๊ฒ ๊ณ ๋ คํด์ผ ํ ๊ฒ ์ค ํ๋๋ ์ฑ๋ฅ์ด๊ณ , Struct์ Cl..
๐ 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 )๋ฅผ ํตํด ์ฒ๋ฆฌํ๋ค...