๋๋์ด ๋ฐฐ์ด๋ค .. !
๋๋ฒ์งธ ์ ์์ ๊ฐ๊น์ (๊ทธ๋ฅ ์ปดํจํฐ ์ฉ์ด๋ก ์์๋์)
์คํ์ค์ธ ํ๋ก๊ทธ๋จ -> ํ๋ก์ธ์ค
์ค๋ ๋: ํ๋ก์ธ์ค์ ์ค์ง์ ์ธ ์์
์ ํ๋ ์ฃผ์ฒด, ํ๋ก์ธ์ค์ ํ๋ฆ์ด ์ค๋ ๋์ด๋ค.
ํ๋์ ํ๋ก์ธ์ค์๋ ๋ฐ๋์ ํ๋ ์ด์์ ์ค๋ ๋๊ฐ ์กด์ฌํ๋ค.
ํ๋์ ํ๋ก๊ทธ๋จ/ํ๋ก์ธ์ค์ ์ฌ๋ฌ๊ฐ์ ์ค๋ ๋๊ฐ ์กด์ฌํ ์ ์๋ค -> ๋ฉํฐ ์ค๋ ๋
๋ง์น ์ฌ๋ฌ ์ฐจ์ ์ ๊ณ ์๋๋ก์ ๊ฐ์ ๊ฒ! (๋ฐ์ดํฐ์ ํ๋ฆ์ ์ฐจ์ ๋น์ )
๋๊ธฐ (sync) : ํ๋์ ์์
์ด ๋๋๋ฉด ๋ค์ ์์
์ผ๋ก!
๋น๋๊ธฐ : ๋์์ ์์
์ฒ๋ฆฌ (๋ณ๋ ฌ์ ์ผ๋ก) -> ๊ฐ๋ฐ์๊ฐ ๊ฐ๊ฐ์ ์์
์ ์ข
๋ฃ ์์ ์ ์ ์ ์๋ค.
ํ๊ธ ์ธ์ถํ๋ ์ํฉ ๊ฐ์
๋น๋๊ธฐ๋ก ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ฒ ๋๋ฉด (๋์์ ๊ฐ์ ๋ฐ์ดํฐ ๊ฑด๋๋ฆฌ๋ฉด?)
๋ฐ๋ผ์ ๊ณต์ ์์์ ๋ค๋ฃฐ ๋, ๋ค๋ฅธ ์ค๋ ๋์ ๋ฝ์ ๊ฑธ์ด๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค
์ ๋ฆฌํ์๋ฉด, ์ค๋ ๋๋?
Test๋ฅผ ์ํ ํจ์
DispatchQueue.main() -> main ์ค๋ ๋, UI ๊ด๋ จ ์์
์ ๋ฐ๋์ ๋ฉ์ธ ์ค๋ ๋์์๋ง!
DispatchQueue.global() -> ์ด์ธ์ ๋ค์ํ ์ฒ๋ฆฌ๋ค์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ == global
์ด๋ฐ ๋ฐฉ์์ผ๋ก ๋๊ธฐ ์ฒ๋ฆฌ
์์ฐจ์ ์ผ๋ก print (ํ๋์ ์ฝ๋ ๋ธ๋ญ ์์์ ์์ฐจ์ ์ธ ํ๋ฆ์ ๋๊ธฐ, ๋น๋๊ธฐ ์๊ด์์ด ๋์ผ, ์์ฐจ์ ์งํ)
๋ค๋ฅธ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋ ์์ฑ
์ด ๋ฉํฐ ์ค๋ ๋๋ฅผ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ๋ค๋ฉด?
sync -> async : ์์
๋ค์ด ์์ธ๋ค! (๋ณ๋ ฌ)
sleep 1์ด ์ฃผ๋ฉด, ์์
์ํฉ์ ์์ธํ๊ฒ ํ์
ํ ์ ์์
๋๊ฐ์ ๋ทฐ๋ฅผ ์ ์ธ
colorList ์ ์ธ
ํ๋๋ ์ ๋ฐฉํฅ์ผ๋ก, ํ๋๋ ์ญ์์ผ๋ก ์ปฌ๋ฌ ๋ฆฌ์คํธ๋ฅผ ๋๋ฉด์ UIView ์์์ ๋ณ๊ฒฝํ๋ค.
์ด๋, UI ๊ด๋ จ ์์
์ main์์!
๋ฐ๋ผ์ global ๋ด๋ถ์์, UI ์ฝ๋๋ง main์ผ๋ก ๊ฐ์ผ๋ค.
๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋๋ฆฌ๋ฉด์, ํด๋น ์์
์ main์ผ๋ก ๊ฐ์ ธ๊ฐ๋ ๊ฒ
์ด์ ์ ๋์คํจ์น ํ ์ฝ๋๋ฅผ ์ ๋ ๊ฒ ์ฐ๋์ง ์ดํด๊ฐ ๊ฐ๋ค ;;
์ฌ๊ธฐ์๋ ๋ฐ๋ณต๋ฌธ ๊ฐ ๋จ๊ณ ํ๋จ์ sleep์ ์ค์ ๋น๋๊ธฐ์ฒ๋ฆฌ๋ฅผ ํ์
ํ ์ ์๋ค.
์ด๋ ๊ฒ ๋ทฐ ์์์ด ๋ฐ๋!
๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ ๊ณต๋ถํ๊ธฐ + DispatchQueue ์ ๋๋ก ๊ณต๋ถํ๊ธฐ