🍎 iOS/Swift

UIλ₯Ό λ©”μΈμŠ€λ ˆλ“œμ—μ„œ κ΅¬ν˜„ν•΄μ•Όν•˜λŠ” 이유

JerryiOS 2024. 11. 4. 18:49

UIλŠ” μ™œ λ©”μΈμŠ€λ ˆλ“œμ—μ„œ κ΅¬ν˜„ν•΄μ•Όν• κΉŒ?

 

UIKit의 메인 μŠ€λ ˆλ“œ 섀계 원칙

UIKit은 UIμž‘μ—…μ„ 메인 μŠ€λ ˆλ“œμ—μ„œ μˆ˜ν–‰ν•˜λ„λ‘ μ„€κ³„λ˜μ–΄μžˆλ‹€.

이것을 λ”°λ₯΄μ§€ μ•ŠμœΌλ©΄ UIκ°€ λΉ„λ™κΈ°μ μœΌλ‘œ λ°±κ·ΈλΌμš΄λ“œ μŠ€λ ˆλ“œμ—μ„œ μ—…λ°μ΄νŠΈ 되며, μ˜ˆμƒμΉ˜ λͺ»ν•œ μΆ©λŒμ΄λ‚˜ λ Œλ”λ§μ— μ‹€νŒ¨ν•  수 μžˆλ‹€.

 

μŠ€λ ˆλ“œ μ•ˆμ •μ„±

UIKit의 ꡬ성 μš”μ†ŒλŠ” λŒ€λΆ€λΆ„ Thread-safeν•˜κ²Œ μ„€κ³„λ˜μ§€ μ•Šμ•˜λ‹€.

μ—¬λŸ¬ μŠ€λ ˆλ“œμ—μ„œ UIλ₯Ό λ™μ‹œμ— μˆ˜μ •ν•˜λ €κ³ ν•˜λ©΄ Race conditionμ΄λ‚˜ λΆˆμ•ˆμ •μ„±μ΄ λ°œμƒν•˜μ—¬ 앱이 λΆˆκ·œμΉ™ν•˜κ²Œ μž‘λ™ν•  수 μžˆλ‹€.

메인 μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ¨ 이런 μΆ©λŒμ„ μ˜ˆλ°©ν•  μˆ˜μžˆλ‹€.

 

Race Condition?

2개 μ΄μƒμ˜ μŠ€λ ˆλ“œλ‚˜ ν”„λ‘œμ„ΈμŠ€κ°€ κ³΅μœ μžμ›μ— λ™μ‹œμ— μ ‘κ·Όν•˜κ³  μˆ˜μ •ν•  λ•Œ λ°œμƒν•˜λŠ” 문제

예) 은행 거래 μ‹œμŠ€ν…œμ—μ„œ μ—¬λŸ¬ μ‚¬μš©μžκ°€ λ™μ‹œμ— 같은 κ³„μ’Œμ—μ„œ λˆμ„ μΈμΆœν•˜λ €κ³  ν•˜λŠ” 상황

 

UX와 μ•±μ˜ 응닡성

μ‚¬μš©μžκ°€ μΈν„°νŽ˜μ΄μŠ€μ™€ μƒν˜Έμž‘μš©ν•˜λŠ” 메인 μŠ€λ ˆλ“œμ—μ„œ UI μ—…λ°μ΄νŠΈλ₯Ό μˆ˜ν–‰ν•΄μ•Ό μ•±μ˜ 응닡성을 μœ μ§€ν•  수 μžˆλ‹€.

μ•± 개발 μ‹œ 메인 μŠ€λ ˆλ“œ κ·œμΉ™μ„ μ€€μˆ˜ν•˜λŠ” 것이 ν•„μˆ˜μ μ΄λ©°, μ„±λŠ₯κ³Ό μ•ˆμ •μ„±μ„ μ΅œμ ν™”ν•˜κΈ° μœ„ν•΄ 무거운 μž‘μ—…μ€ λΉ„λ™κΈ°λ‘œ λ°±κ·ΈλΌμš΄λ“œ μŠ€λ ˆλ“œμ—μ„œ μ‹€ν–‰ν•˜λŠ” 것이 μ’‹λ‹€.

λ°˜μ‘ν˜•