πŸ’» 개발/iOS

[TIL] 22.03.23

2022. 3. 23. 15:34
λͺ©μ°¨
  1. κ³΅λΆ€ν•œ 것
  2. μ•Œκ²Œλœ 것
  3. 1. 코루틴
  4. 곡뢀할 것
  5. λŠλ‚€ 점

κ³΅λΆ€ν•œ 것

코루틴

μ•Œκ²Œλœ 것

1. 코루틴

μ–΄μ œμ— 이어 코루틴 에 λŒ€ν•΄ ν•™μŠ΅ν–ˆλ‹€. 코루틴은 코루틴 μŠ€μ½”ν”„ λ₯Ό ν†΅ν•΄μ„œ μ‹€ν–‰ν•  수 μžˆλ‹€. 코루틴 μŠ€μ½”ν”„ λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ 코루틴을 μ‹€ν–‰ν•  수 μžˆμ§€λ§Œ 이런 κ²½μš°μ— μž‘μ—…μ΄ μ’…λ£Œλœ 코루틴에 λŒ€ν•΄ λ³„λ„μ˜ 처리λ₯Ό ν•΄μ€˜μ•Ό ν•œλ‹€.

Coroutine Scope

Coroutine Scope λŠ” μ½”λ£¨ν‹΄μ˜ λ²”μœ„λ₯Ό μ •μ˜ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€ 이닀. 말 κ·ΈλŒ€λ‘œ 코루틴이 μ‹€ν–‰λ˜λŠ” λ²”μœ„λ₯Ό μ§€μ •ν•œλ‹€. λͺ¨λ“  코루틴은 Scope λ‚΄μ—μ„œ μ‹€ν–‰λ˜μ–΄μ•Ό ν•˜κ³  μ•‘ν‹°λΉ„ν‹° λ‚˜ ν”„λž˜κ·Έλ¨ΌνŠΈ 의 생λͺ…μ£ΌκΈ° 에 따라 코루틴 을 μ·¨μ†Œ ν•˜μ—¬ λ©”λͺ¨λ¦¬ λ¦­ 을 λ°©μ§€ν•œλ‹€. Global Scope 와 Coroutine Scope κ°€ μ‘΄μž¬ν•œλ‹€.

 

1. Global Scope : μ•±μ˜ 생λͺ…주기와 ν•¨κ»˜ λ™μž‘ν•˜κΈ°μ— λ³„λ„μ˜ 생λͺ… μ£ΌκΈ° 관리가 ν•„μš” μ—†λ‹€. 앱이 μ‹€ν–‰λ˜κ³  μ’…λ£Œλ˜κΈ° κΉŒμ§€ κΈ΄ μ‹œκ°„ μ‹€ν–‰λ˜λŠ” 코루틴에 적합
2. Coroutine Scope : 코루틴이 ν•„μš”ν•  λ•Œ μ‹€ν–‰ν•˜κ³  μ’…λ£Œν•˜κΈ° μœ„ν•œ μŠ€μ½”ν”„, νŠΉμ • μ΄λ²€νŠΈμ— μ„œλ²„μ™€ 톡신할 λ•Œ 적합

Coroutine Scope 의 경우 Dispatcherλ₯Ό 톡해 코루틴이 싀행될 μ“°λ ˆλ“œλ₯Ό μ§€μ •ν•  수 μžˆλ‹€.

Coroutine Dispatcher

코루틴은 Dispatcher λ₯Ό 톡해 μ“°λ ˆλ“œν’€ λ‚΄μ˜ μ μ ˆν•œ μ“°λ ˆλ“œ 에 코루틴을 λ°°λΆ„ν•œλ‹€.

 

1. Dispatchers.Default : λ³„λ„μ˜ Contextλ₯Ό μ§€μ •ν•˜μ§€ μ•Šμ€ 경우 ν•΄λ‹Ή λ””μŠ€νŒ¨μ³λ‘œ μžλ™μœΌλ‘œ μ„€μ •λ˜λ©° CPUλ₯Ό 많이 μ‚¬μš©ν•˜λŠ” μž‘μ—…μ„ μ§„ν–‰ν•  λ•Œ 적합

2. Dispatchers.IO : λ””μŠ€ν¬ λ˜λŠ” λ„€νŠΈμ›Œν¬μ˜ I/O μž‘μ—…μ„ μ‹€ν–‰ν•  λ•Œ 적합

3. Dispatchers.Unconfined : μ€‘λ‹¨λœ μ“°λ ˆλ“œμ—μ„œ λ‹€μ‹œ μ‹œμž‘ν•˜λŠ” λ””μŠ€νŒ¨μ³λ‘œ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것을 μΆ”μ²œ

4. Dispatchers.Main : λ°±κ·ΈλΌμš΄λ“œ μ“°λ ˆλ“œμ—μ„œ 코루틴을 μ‹€ν–‰ν•˜λŠ” λ””μŠ€νŒ¨μ³λ‘œ UI와 μƒν˜Έμž‘μš©ν•˜λŠ” μž‘μ—…μ„ μ‹€ν–‰ν•  λ•Œ 적합

Coroutine Builder

Coroutine Builder λŠ” Coroutine Scope 의 ν™•μž₯ ν•¨μˆ˜ 둜 μƒˆλ‘œμš΄ 코루틴을 μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•œλ‹€.

 

1. launch : ν˜„μž¬ μŠ€λ ˆλ“œλ₯Ό Block ν•˜μ§€ μ•Šκ³  μƒˆλ‘œμš΄ 코루틴을 μ‹€ν–‰ν•œλ‹€. Job μΈμŠ€ν„΄μŠ€λ₯Ό λ°˜ν™˜ν•œλ‹€.

2. Async : ν˜„μž¬ μŠ€λ ˆλ“œλ₯Ό Block ν•˜μ§€ μ•Šκ³  μƒˆλ‘œμš΄ 코루틴을 μ‹€ν–‰ν•œλ‹€. Deferred<T> μΈμŠ€ν„΄μŠ€λ₯Ό λ°˜ν™˜ν•˜κ³  await 둜 값을 μ–»λŠ”λ‹€.

3. runBlocking : μž‘μ—…μ΄ 끝날 λ•ŒκΉŒμ§€ ν˜„μž¬ μ“°λ ˆλ“œλ₯Ό Block ν•œλ‹€. T νƒ€μž…μ˜ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•œλ‹€.

곡뢀할 것

MVVM

λŠλ‚€ 점

ν•™μŠ΅ν•œ 코루틴을 μ‹€μ œλ‘œ μ μš©ν•΄λ³΄μž

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'πŸ’» 개발 > iOS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[TIL] 22.04.18  (0) 2022.04.18
[TIL] 22.04.17  (0) 2022.04.17
[TIL] 22.03.22  (0) 2022.03.22
[TIL] 22.03.20  (0) 2022.03.20
[TIL] 22.03.19  (0) 2022.03.19
  1. κ³΅λΆ€ν•œ 것
  2. μ•Œκ²Œλœ 것
  3. 1. 코루틴
  4. 곡뢀할 것
  5. λŠλ‚€ 점
'πŸ’» 개발/iOS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [TIL] 22.04.18
  • [TIL] 22.04.17
  • [TIL] 22.03.22
  • [TIL] 22.03.20
kodo_o
kodo_o
iOS κΏ€μžΌ!
🍎🍏iOS κΏ€μžΌ!
kodo_o
🍎🍏
kodo_o
전체
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (149)
    • πŸ”¨ ν”„λ‘œμ νŠΈ (0)
      • TP 1 (0)
      • WhiteHCCTV (0)
      • FootPrint (0)
    • πŸ’» 개발 (63)
      • iOS (30)
      • Android (6)
      • Kotlin (4)
      • Flutter (9)
      • Node.js (5)
      • Architecture (1)
      • 였늘의 μ‚½μ§ˆ (7)
      • μ—λŸ¬μ™€μ˜ 동침 (1)
    • ✏️ μ•Œκ³ λ¦¬μ¦˜ (6)
      • Graph (6)
      • String (0)
      • Sort (0)
    • ✍️ μ½”ν…Œ μ€€λΉ„ (44)
      • Math (1)
      • Implementation (3)
      • String (3)
      • Brute Force (5)
      • Back Tracking (7)
      • Greedy (0)
      • Dynamic Programming (13)
      • Binary Search (1)
      • DFS, BFS (5)
      • Shortest Path (2)
      • Two Pointer (4)
      • MST (0)
    • πŸ“š CS (6)
      • Operating System (6)
    • ⛹️ 라이프 (30)
      • 2020 κ²¨μšΈλ°©ν•™ λͺ¨κ°μ½”(개인) (12)
      • 2021 여름방학 λͺ¨κ°μ½”(개인) (6)
      • μ½”λ”© ν…ŒμŠ€νŠΈ (1)
      • 회고 (10)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • κΉƒν—ˆλΈŒ

인기 κΈ€

졜근 κΈ€

졜근 λŒ“κΈ€

hELLO Β· Designed By μ •μƒμš°.
kodo_o
[TIL] 22.03.23
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.