์จ๋ฐ iOS Concurrency(๋์์ฑ) - ๋์คํจ์นํ์ ์คํผ๋ ์ด์ ํ์ ์ดํด
๋์์ฑ(Concurrency)ํ๋ก๊ทธ๋๋ฐ - iOSํ๋ก๊ทธ๋๋ฐ์์ ํ์ํ ๋๊ธฐ, ๋น๋๊ธฐ์ ๊ฐ๋ ๋ฐ ๊ทธ๋ฅผ ํ์ฅํ GCD ๋ฐ Operation์ ๊ดํ ๋ชจ๋ ๋ด์ฉ์ ๋ค๋ฃน๋๋ค.
์๊ฐ์ 830๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ

- ๋ฏธํด๊ฒฐ
์คํผ๋ ์ด์ ํ ์ง๋ฌธ
์คํผ๋ ์ด์ ํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก 1๋ฒ ์ฐ๋ ๋์์ ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ ๋๋ค๊ณ ํ์ จ๋๋ฐ ์ด์ ๊ฐ์๋ค์ ๋ณด๋ฉด 1๋ฒ ์ฐ๋ ๋๋ ๋ฉ์ธ ์ฐ๋ ๋๋ผ๊ณ ์ธ๊ธํ์ จ๋ ๊ฑธ๋ก ๊ธฐ์ตํ๋๋ฐ์. ๋ง์๊น์?๋ง๋ค๋ฉด ๋ฉ์ธ์ฐ๋ ๋๋ ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ฉด ์๋๋๋ฐ Operation์ ์คํผ๋ ์ด์ ํ์ ๋ฃ์ง
iosswift๋์์ฑ๋ฏผ์ฒ
ใป
0
120
2
- ๋ฏธํด๊ฒฐ
2) ์คํผ๋ ์ด์ ํ(OperationQueue) ๊ฐ์ ์ง๋ฌธ์ ๋๋ค
2) ์คํผ๋ ์ด์ ํ(OperationQueue) ๊ฐ์ 15๋ถ37์ด ์ฏค ๋ณด๋ฉด ํํฐ ์์ ์ด ๋ค ๋๋๋ค์์ appendํ๋ฅผ ํตํด์ ๋ฐฐ์ด์ ์ ๋ฌ์ ํ๋ค๊ณ ๋ง์ํ์ จ์ด์. ๊ทผ๋ฐ ์ฌ๊ธฐ ํํฐํ๋ ค๋ ์ด๋ฏธ์ง๊ฐ 5์ฅ์ด์์์, 5์ฅ ๋ชจ๋ ํํฐ๋ง ๋ค ๋๋๊ณ ๋๋ฉด ๋ฐฐ์ด์ ๋ค์ด๊ฐ๋๊ฑด๊ฐ์ ์๋
iosswift๋์์ฑ์ด๋์ค
ใป
0
138
2
- ๋ฏธํด๊ฒฐ
warning ๋ธ
์ฝ๋ํ์ผ์ 5๋ฒ SerialSyncProject์ WriteSyncronously()๋ฅผ ์คํํ ๊ฒฝ์ฐ SerialSyncProject(9296,0x104550200) malloc: nano zone abandoned due to inability to reserve
iosswift๋์์ฑ๋ฐ๋ผ์ด
ใป
0
144
1
- ๋ฏธํด๊ฒฐ
์์ ์๋ฃ markup ์ ๋ํด ๊ถ๊ธํฉ๋๋ค!
์ข ์๊ธธ๋ก ์๊ฑฐ ๊ฐ์ง๋ง... ์ด๋ฐ ์ง๋ฌธ์๋ ๋ต๋ณํด์ฃผ์ ๋ค๋ฉด ๋๋ฌด ๊ฐ์ฌํฉ๋๋คใ ใ //: ๋ก ๋งํฌ์ ๋ค์๋๊ฑฐ ํน์ ์์ ์ ์ด๋ป๊ฒ ํ๋์ง ์ ์ ์์๊น์..? ์์ ์๋ฃ๋ก ์ฝ๋ ์ฃผ์ ๊ฑธ ๋ณด๋ค๊ฐ ๊ถ๊ธํด์ก๋๋ฐ์.
iosswift๋์์ฑmarkup์์ ์๋ฃ์ด์ ์
ใป
0
260
1
- ๋ฏธํด๊ฒฐ
์์ ํ๋ก์ ํธ ๋น๋ ์คํจ
์์ ํ๋ก์ ํธ๋ฅผ ์คํํ ์๊ฐ ์์ต๋๋ค.์ ํ developer ๊ณ์ ์ ๋ฐ๋์ ๋ง๋ค์ด์ผ ํ๋์? ์์ง ์ด๋ณด๋ผ์ ์ข ์ต์ํด์ง๋ฉด ํ๋ ค๊ณ ํ๋๋ฐ...<img src="https://cdn.inflearn.com/public/files/posts/5
iosmagne
ใป
0
324
2
- ๋ฏธํด๊ฒฐ
serial ํ ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์. ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ A ์ค๋ ๋์์ SQ๋ผ๋ serial queue์ asyncํ๊ฒ task๋ฅผ ํฉ๋๋ค.์ ๋ฌํ task์ ๋ง์ง๋ง ๋ถ๋ถ์ @escaping ํ๋ completionHandler()๋ฅผ ํธ์ถํ
iosswift๋์์ฑ์ดํ๊ท
ใป
0
241
1
- ํด๊ฒฐ
[7-3.DispatchBarrier] ์์ ์ฝ๋ ์ง๋ฌธ
์๋ ์์ ์ฝ๋์์ "threadSafeNameGroup.notify" ๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋ ค๋ฉด, ๊ทธ๋ฃน์ enter์ leave ๋ฅผ ์ฌ์ฉํด์ฃผ์ด์ผ ํ๋ ๊ฒ์ด ์๋๊ฐ? ๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.<img src="https://
iosswift๋์์ฑ์ด์ฌ์ฒ
ใป
0
317
1
- ๋ฏธํด๊ฒฐ
์๋ ํ์ธ์, GCD ๊ด๋ จ ์ง๋ฌธ๋๋ฆฝ๋๋ค..
์๋ ํ์ธ์, ์จ๋ฐ, Qos ๋ถ๋ถ์ ์๊ฐํ๋ฉด์์์ ์๋ฃ์ ์๋ ์ฝ๋๋ค์ ์ด๋ ๊ฒ ๋ฐ๊พธ์ด์ ์คํํด๋ณด์๋๋ฐ์...<img src="https://cdn.inflearn.com/public/files/posts
iosswiftsyp0211
ใป
0
276
1
- ๋ฏธํด๊ฒฐ
main.async ์๋ ์ง๋ฌธ(+ vs global(),async)
์๋ ํ์ธ์!main.async ์๋ ๊ด๋ จํ์ฌ ๊ถ๊ธํ์ ์ด ์์ด ์ง๋ฌธ๋๋ฆฝ๋๋ค.๋๊ฒ, ๋คํธ์ํน ์์ ๊ณผ ๊ฐ์ ๋ถ๋ถ์ global().async๋ก ๋ฉ์ธ์ฐ๋ ๋๊ฐ ์๋ ๋ค๋ฅธ ์ฐ๋ ๋๋ก ์์ ์ ๋ณด๋ด์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋๊ฒ ํ๋๋ฐ, ์ด๋ป๊ฒ ๋ณด๋ฉด
iosswiftasdfaa22
ใป
0
428
1
- ํด๊ฒฐ
dismiss ๋์์ ๋ ์ข ๋ฃ์ง๋ฌธ
์น์ 3 - 1์์weak self ๋ก ์ ๋ฌ๋ ํด๋ก์ ๋ ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ dismiss๋์์ ๋ ํด๋ก์ ์ ์์ ๋ค์ด ๋ทฐ ์ปจํธ๋กค๋ฌ ๊ฐ์ฒด ์์ ์ํด์๊ธฐ ๋๋ฌธ์, ํด๋ก์ ์ ์์ ๋ ํจ๊ป ์ข ๋ฃ๋๋ค๊ณ ํ์ จ๋๋ฐ.์น์ 3 - 2 ์์ ๋ณด์ฌ์ฃผ์ weak sel
iosswiftiyea
ใป
0
293
1
- ๋ฏธํด๊ฒฐ
'๋๊ธฐ'์ '๋์์ฑ ํ๋ก๊ทธ๋๋ฐ'์ ๋ํด ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ ์จ๋ฐ(Allen)๋!์๊ฐ ์ค ์ง๋ฌธ์ด ์๊ฒจ ์ฒ์ ์ธ์ฌ๋๋ฆฝ๋๋ค.[์น์ 0.GCD - 1.GCD/Operation์ ์์] ๊ฐ์๊น์ง ๋ฃ๊ณ <s
iosswiftEllie
ใป
0
477
2
- ๋ฏธํด๊ฒฐ
Dependency Protocol ๊ด๋ จ
// (2) ์ด๋ฏธ์ง ๋ณํํ๋ ์คํผ๋ ์ด์ (๋๊ธฐ ํจ์) class TiltShiftOperation: Operation { var inputImage: UIImage? var outputImage: UIImage?
iosswift์ ์ฑํ
ใป
1
358
1
- ๋ฏธํด๊ฒฐ
์๋ฆฌ์ผ ํ์ sync ๊ด๋ จ
private let threadSafeCountQueue = DispatchQueue(label: " ") private var _count = 0 public var count: Int { get {
iosswift์ ์ฑํ
ใป
0
456
2
- ๋ฏธํด๊ฒฐ
sync์ด์ง๋ง Queue์ ๋ฃ์ผ๋ฉด async๋ก ๋์ํ๋ค๋ ๋ง์ ์๋ฏธ
์๋ ํ์ธ์ ์จ๋ฐ๋!์คํผ๋ ์ด์ ํ ๊ฐ์๋ฅผ ๋ฃ๋ค๊ฐ ํผ๋๋๋ ๊ฐ๋ ์ด ์์ด์ ์ง๋ฌธํฉ๋๋คํ์ ์ข ๋ฅ๋ฅผ ์ ๋ฆฌํ์ค ๋ ํฌ๊ฒ GCD์ OperationQueue๋ก ๋๋๋๊ฑธ๋ก ๋ณด์ ๋๋ค.๊ทธ๋ ๋ค๋ฉด Operation์ OperationQueue์์ ๋ค
iosswift04fud27
ใป
0
636
1
- ํด๊ฒฐ
lazy var ์ด์๋ก ์๊ธด ์ฌ๋ฌ ๋ณ์๋ค์ ์ด๋์ ์๋์?
๊ฐ์์์ ๋ณด๋ฉด ๊ฒฝ์์ํฉ์ ์ํด testVar ๋ณ์๊ฐ ์ฌ๋ฌ๊ฐ ์๊ธด ์ํฉ์ด ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค!๊ทธ๋ ๋ค๋ฉด, ์๋ฅผ๋ค์ด ๊ฐ์ 4:22์์ ๋ค์ด์ค ์์์ ๊ฐ์ด testVar ๋ณ์๊ฐ ์ธ๊ฐ ์๊ฒผ๋ค๊ณ ๊ฐ์ ํ๊ณ ์ด๋ฅผ a,b,c ๋ผ๊ณ ์ด๋ฆ ๋ถ์ด๊ณ , a,b,c ์์๋ก
iosswiftgcdarc04fud27
ใป
0
375
1
- ๋ฏธํด๊ฒฐ
globalํ์ sync๋ก ์์ ์ ๋ณด๋์ ๋๋ ํฐ์ง์ง ์๋ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค.
์๋ ํ์ธ์.๊ฐ์ ์ ๋ฃ๊ณ ์์ต๋๋ค!sync๋ฅผ ๊ณต๋ถํ๋ค๊ฐ ์๋ฌธ์ด ์๊ฒจ์ ์ง๋ฌธ ๋จ๊น๋๋ค.๋ฉ์ธ์ค๋ ๋์์ ๋ฉ์ธํ๋ก sync๋ก ์์ ์ ๋ณด๋ด๋ฉดui๋ฅผ ๋ณด์ฌ์ค์ผํ ๋ฉ์ธ์์ ์์ ์ ํ์์ด ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ ํฌ๋์๊ฐ ๋๋ค๊ณ ์๊ณ ์์ต๋
iosswiftw0308h
ใป
1
492
2
- ๋ฏธํด๊ฒฐ
๋น๋๊ธฐ ๊ฐ๋ ์์ ๋ฌด์์ returnํ๋ ๊ฑฐ์ฃ ??
๋น๋๊ธฐ ๊ฐ๋ ์์ ์ฆ์ ๋ฆฌํด ํ๋ค๊ณ ํ์ จ๋๋ฐ ๋ฌด์์ ๋ฆฌํดํ๋์ง ๊ถ๊ธํฉ๋๋ค!
iosswiftstrm
ใป
0
388
1
- ๋ฏธํด๊ฒฐ
์๋ ํ์ธ์ค
์๋ ํ์ธ์. ๋ช ๋ฌ ์ ๋ถํฐ ๋๊ธฐ/๋น๋๊ธฐ ๊ฐ๋ ์ ๊ดํด ํํํ ์งค๋งํ๊ฒ ์ฐพ์๋ณด๊ณ (๋ฌผ๋ก ์ดํด๋ ์๊ฐ๋ค์๐ฅฒ) ๋๋ฆ๋๋ก ์๋ฏธ๋ฅผ ์ ๋ฆฝํด๋ดค์ด์. ๊ฐ์๋ฅผ ๋ฃ๊ธฐ ์ ์ ์๊ฐ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ์ง๋ฌธ๋๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ฐ์ ๋ฃ๋ ๋ฐ ๋ ๋์์ด ๋๋ฆฌ๋ผ ์๊ฐํด์์. <
swiftios๊น๊ฑด์ฐ
ใป
1
331
1
- ๋ฏธํด๊ฒฐ
Barrier ์์ ๊ด๋ จ ์ง๋ฌธ์ ๋๋ค.
์๋ ํ์ธ์! ๋ณธ๊ฐ์ Barrierํํธ๋ฅผ ๋ฃ๊ณ ์ง์ ๊ตฌํ์ ํด๋ณด์์๋, ๋ชจ๋ฅด๋ ๋ถ๋ถ์ด ์๊ฒจ ์ง๋ฌธ์ ๋๋ฆฝ๋๋ค. barrier ์์ ๋ค์ DispatchGroup์ผ๋ก ๋ฌถ์์ ๊ฒฝ์ฐTsan์ ์ฒดํฌํ๊ณ ๋น๋ํ๋ ๊ฒฝ์ฐ Thread-
swiftios์ฝ์ฝ
ใป
1
329
1
- ๋ฏธํด๊ฒฐ
๋์คํจ์น ๊ทธ๋ฃน
์๋ ํ์ธ์. ๋์คํจ์น ๊ทธ๋ฃน ๊ฐ์๋ฅผ ๋ณด์์ต๋๋ค.๊ทธ๋ฃน1์ ๋ง๋ค์ดDispatchQue
swiftios๊น์งํ
ใป
1
378
1






