QoS ( Quality of Service )
QoS๋ ์๋น์ค์ ํ์ง์ด๋ค. DispatchQueue์ ์์ ์ ์ฐ์ ์ ์ผ๋ก ๋ถ๋ฅํ๋๋ฐ ๋์์ ์ค๋ค.
๊ฐ๋ฐ์๋ ์ค์๋์ ๋ฐ๋ผ ์ฑ ์์ ์ ๋ถ๋ฅํด ์์คํ ์ ์ฐ์ ์์๋ฅผ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ์ง์ ํ ์ ์๋ค. ์ต์ ์ ์๊ฐ๊น์ง ์์ ์ ์ฐ๊ธฐํ๋ ๊ฒ๊ณผ ๋น์ทํ๊ฒ ๋ค๋ฅธ ํจ์จ์ฑ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ ๊ฒฝ์ฐ์๋ ์์คํ ์ ์ฌ์ ํ ์ผ์ ์์ค์ ์ฐ์ ์์๋ฅผ ์ํํด์ผ ํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฑ์ด ์ํํ๋ ์์ ์ ๋ถ๋ฅํ๋ ๊ฒ์ ์ค์ํ๋ค.
QoS์ class ์ ๋ณด
์๋น์ค ํ์ง(QoS) ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ํํ ์์ ์ NSOperation, NSOperationQueue, NSThread๊ฐ์ฒด, ๋์คํจ์น ๋๊ธฐ์ด ๋ฐ pthread(POSIX ์ค๋ ๋)๋ก ๋ถ๋ฅํ ์ ์๋ค. ์์ ์ QoS๋ฅผ ํ ๋นํ์ฌ ์ค์๋๋ฅผ ํ์ํ๋ฉด ์์คํ ์์ ์ฐ์ ์์๋ฅผ ์ง์ ํ๊ณ ๊ทธ์ ๋ฐ๋ผ ์ผ์ ์ ์ก๊ฒ ๋๋ค.
์๋ฅผ ๋ค์ด, ์์คํ ์ ์ฌ์ฉ์๊ฐ ์์ํ ์์ ์ ์ต์ ์ ์๊ฐ๊น์ง ์ฐ๊ธฐํ ์ ์๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ๋ณด๋ค ๋ ๋นจ๋ฆฌ ์ํํ๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์์คํ ๋ฆฌ์์ค๋ ์ฐ์ ์์๊ฐ ๋ฎ์ ์์ ์์ ๋ค์ ํ ๋น๋์ด ์ฐ์ ์์๊ฐ ๋์ ์์ ์ผ๋ก ํ ๋น ๋ ์ ์๋ค.
์ฐ์ ์์๊ฐ ๋์ ์์ ์ ์ฐ์ ์์๊ฐ ๋ฎ์ ์์ ๋ณด๋ค ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋น ๋ฅด๊ฒ ์ํ๋๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ์ฐ์ ์์๊ฐ ๋ฎ์ ์์ ๋ณด๋ค ๋ ๋ง์ ์๋์ง๊ฐ ํ์ํ๋ค. ์ฑ์ด ์ํํ๋ ์์ ์ ์ ์ ํ QoS ํด๋์ค๋ฅผ ์ ํํ๊ฒ ์ง์ ํ๋ฉด ์ฑ์ ์๋ต์ฑ๊ณผ ์๋์ง ํจ์จ์ฑ์ด ๋ณด์ฅ๋๋ค.
QoS์ ์ฌ์ฉ
.async() ํจ์์ ํจ๊ป ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ฐ์ ์์๋ 4๊ฐ๋ก ๋ถ๋ฅ๋๋ค.
- userInteractive : ์ ๋๋ฉ์ด์ ๋๋ UI ์ ๋ฐ์ดํธ์ ์ฌ์ฉ
- userInitiated : API์์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ ๊ฒ๊ณผ ๊ฐ์ ์์ ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ์ํธ ์์ฉํ์ง ๋ชปํ๋๋ก ํจ
- ์ ํธ๋ฆฌํฐ : ์ฌ์ฉ์๊ฐ ์ถ์ ํ ํ์๊ฐ ์๋ ์์ ์ ์ฌ์ฉ
- background : ๋ก์ปฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ฐ์ ์์๊ฐ ๋์ง ์์ ์ ์ง ๊ด๋ฆฌ ์ฝ๋์ ๊ฐ์ ์์ ์ ์ฌ์ฉ
์ฆ, DispatchQueue๋ฅผ ์ฌ์ฉํ๋ ๋์ ์ฝ๋๋ฅผ ๋ถ๋ฅํด ๊ฐ๋ฐ์ค์ธ ์ฑ์ด ์๋์ง ํจ์จ์ฑ์ด ๋ณด์ฅ๋๋๋ก ํ๋ค.
์์ ์ ๋ถ๋ฅํ๋ฉด ์์คํ ์ ๋ฆฌ์์ค ๊ฐ์ฉ์ฑ์ ๋ฐ๋ผ ๊ฐ๋ฅํ ์ต์ ์ ๋ฐฉ๋ฒ์ผ๋ก ์์ ์ ์ฒ๋ฆฌํ๋ค. ๋ ์ฃผ์ํ ์ ์ ์ ํธ๋ฆฌํฐ์ ๋ฐฐ๊ฒฝ์ด ๋ค๋ฅธ ๊ฒ๋ณด๋ค ์ฐ์ ์์๊ฐ ๋ฎ๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์ถ๋ก ํ๊ณ ํ์์ ๋ฐ๋ผ ๋ชจ๋ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
๋ถ์ฃผ์ํ๊ฒ ์ฌ์ฉํ๋ฉด ์ฑ์ด ์ค๋ ๋ ํญ๋ฐ ๋ฐ ๊ต์ฐฉ ์ํ์ ์ง๋ฉดํ๊ฒ ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ๊ฒฝ๊ณ ๋ฅผ ํ๋ค.
๊ฒฐ๋ก
์๋์ง๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ๋น ๋ฅธ ์ํ์ด ํ์ํ ์์ ๊ณผ ๊ทธ๋ ์ง ์์ ์์ ์ ๋๋์ด ์ฒ๋ฆฌํ๋ ๋ฐ์๋ QoS๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ๋ค. ํ์ง๋ง ์ฝ๋์์ ์ง์ ์ ์ธ ์ฌ์ฉ์ ์์ง ์๋ฟ์ง ์์์ ๋ค์์ ์ฝ๋์ ๊ฐ์ด ๋ณด๋ฉฐ ๊ฐ๋ ์ ์ดํดํด๋ณด๊ณ ์ถ๋ค.
'๐ iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift][iOS] GCD API ๋์ ๋ฐฉ์๊ณผ ํ์์ฑ (1) (0) | 2023.06.13 |
---|---|
[Swift] Struct์ Class์ ์ฐจ์ด์ (1) | 2023.05.15 |
[Swift] Dispatch Queue (0) | 2023.01.27 |