Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

๐Ÿ’™ [25๋…„ 2์›”]

mint3382 edited this page Apr 1, 2025 · 5 revisions

โญ๏ธ Meet AsyncSequence โ€ 20250207

์ฃผ์š” ์ฃผ์ œ

  • AsyncStream์˜ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•๊ณผ ํŠน์ง•
  • RxSwift์™€ Swift Testing์˜ ์ฐจ์ด์ ๊ณผ ํ™œ์šฉ ๋ฐฉ์•ˆ
  • Async Sequence๋ฅผ ํ™œ์šฉํ•œ Combine ๋Œ€์ฒด ๋ฐฉ์•ˆ

์›ํ•˜๋Š” ์ถ”๊ฐ€ ํ•™์Šต

  • for ๋ฌธ์—์„œ finish ์‹คํ–‰ ๋ฐฉ๋ฒ• ํ™•์ธ
  • RxSwift์—์„œ ๋กœ์ง ์ž‘์„ฑ ๋ฐฉ๋ฒ• ๊ฒ€ํ† 

AsyncStream

  • AsyncStream์€ Async Sequence๋ฅผ ์ค€์ˆ˜ํ•ด์„œ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž„
  • AsyncStream์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ ํด๋กœ์ €์—์„œ ์ผ๋“œ ๋ฐœ์ƒํ•˜๋Š” ์ฒ˜๋ฆฌ๋ž‘ ์ข…๋ฃŒํ•˜๋Š” ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ™์ด ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Œ

RxSwift

  • RxSwift๋กœ ๋กœ์ง ์งœ๊ณ  Swift Testing์œผ๋กœ ํ•ด์•ผ์ง€ ํ•˜๊ณ  ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ expectation, wait์ด ์—†์–ด์„œ ์ฐพ์•„๋ณด๋‹ˆ๊นŒ Sync์˜ Context๋ฅผ ์ง€์›ํ•œ๋‹ค๊ณ  ํ•ด์„œ ์ฒ˜์Œ ์จ๋ดค์Œ
  • 21๋…„๋„์— ๋‚˜์˜จ ๊ฑด๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์“ฐ๋Š” ์‚ฌ๋žŒ์„ ๋ชป ๋ณธ ๊ฒƒ ๊ฐ™์Œ
  • Sequence๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ƒํ™ฉ์„ ๋ชป ๋ดค๋˜ ๊ฒƒ ๊ฐ™๊ธด ํ•จ

Combine ๋Œ€์ฒดํ’ˆ

  • Combine ์ค‘์— ๊ณ„์†ํ•ด์„œ publisher๊ฐ€ ์œ ์ง€๋ผ์•ผ ๋˜๋Š” ์ƒํ™ฉ์ด ์•„๋‹ˆ๋ฉด ๋Œ€์ฒด๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ์Œ

Async Sequence์˜ ์ข…๋ฃŒ ์‹œ์ 

  • Async Sequence๋ฅผ ์“ฐ๊ฒŒ ๋˜๋ฉด ์ข…๋ฃŒ ์‹œ์ ์€ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ๋ฌผ์Œ
  • for๋ฌธ์„ ์„ค์ •์„ ์‹คํ–‰์„ ํ•˜๋ฉด publish๊ฐ€ ๋๋‚˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋ด์•ผ ํ•จ
  • for๋ฌธ ์•ˆ์—์„œ finish๋ฅผ ์‹คํ–‰์„ ๋”ฐ๋กœ ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด Rx ์ฝ”๋“œ์— ์žˆ์—ˆ๋Š”์ง€

finish ํ˜ธ์ถœ

  • finish๊ฐ€ ํ˜ธ์ถœ์ด ์•ˆ ๋˜๋ฉด์€ ์—ฌ๊ธฐ์„œ ๊ณ„์† ๋ฉˆ์ถฐ ์žˆ์Œ
  • ๊ธฐ๋‹ค๋ฆฌ๋ฉด์„œ ๋‹ค์Œ ๊ฐ’์„ await ํ•˜๋ฉด์„œ ๊ณ„์† ๋ฉˆ์ถฐ ์žˆ์Œ

break๊ฐ€ ์—†์„ ๊ฒฝ์šฐ

  • break๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ•˜๋ฉด ์ข…๋ฃŒ ์‹œ์ ์— ๋“ค์–ด๊ฐ€๊ธด ํ• ๊นŒ๋ผ๊ณ  ์ƒ๊ฐํ•จ
  • ์‹ค์ œ๋กœ ์—๋Ÿฌ๋‚˜ completion์„ ๋ฐฉ์ถœํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ์ข…๋ฃŒ๊ฐ€ ์•ˆ ๋จ
  • ํ…Œ์ŠคํŠธํ•  ๋•Œ break๋กœ ๋ฐ›์•˜์œผ๋ฉด ๋์–ด ํ•˜๊ณ  ํƒˆํ‡ดํ•จ

โญ๏ธ Mysteries of AutoLayout โ€ 20250214

UIStackView ์„ฑ๋Šฅ ๋ณ€ํ™”

  • iOS 9๋ถ€ํ„ฐ UIStackView๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์„ ์žก์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์ด๋•Œ UIStackView๋Š” CATransformLayer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ๋ Œ๋”๋ง ๊ณผ์ •์ด ์—†์—ˆ๊ธฐ์— ๊ธฐ์กด์˜ UIView๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฐ€๋ณ๊ณ  ๋นจ๋ž๋‹ค.
  • ๋•Œ๋ฌธ์— UIStackView์—๋Š” ๋ฐฐ๊ฒฝ์ƒ‰, ๊ทธ๋ฆผ์ž ๋“ฑ์„ ์ค„ ์ˆ˜ ์—†์—ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ iOS 14 ์ดํ›„๋ถ€ํ„ฐ๋Š” CATransformLayer๋ฅผ CALayer๋กœ ๋ฐ”๊พธ๋ฉด์„œ ๋ฐฐ๊ฒฝ์ƒ‰, ๊ทธ๋ฆผ์ž ๋“ฑ์„ ์ค„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๊ณ , ์ž์ฒด ๋ Œ๋”๋ง ๊ณผ์ •์ด ์ƒ๊ฒผ๋‹ค.
  • ์ด๋กœ ์ธํ•ด ๊ทธ ์ „ CATransformLayer๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋ณด๋‹ค๋Š” ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ, ๋””๋ฐ”์ด์Šค์˜ ๋ฐœ์ „์œผ๋กœ ์ธํ•ด ๊ทธ ์ •๋„๋Š” ์ˆ˜์šฉ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„์ด์ง€ ์•Š์•˜์„๊นŒ ํ•˜๋Š” ์ƒ๊ฐ์„ ํ•œ๋‹ค.
  • ๊ด€๋ จ ๋งํฌ

Content Hugging vs Compression Resistance

  • ๋‘˜์€ ๋ชฉ์  ์ž์ฒด๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— Content Hugging ๋Œ€์‹  Compression์„ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์—†๋‹ค.
  • Content Hugging์€ ๋ทฐ๊ฐ€ intrinsic content size๋ณด๋‹ค ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ปค์ง€์ง€ ์•Š๋„๋ก ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  • Compression Resistance๋Š” ๋ทฐ๊ฐ€ ์ž์‹ ์˜ intrinsic content size๋ณด๋‹ค ์ž‘์•„์ง€์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

Constraint add/remove -> active/inactive

  • ํ† ๊ธ€๋กœ ๋ทฐ์˜ ํฌ๊ธฐ ์ƒํƒœ์— ๋”ฐ๋ผ ์œ ๋™์ ์ธ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

โญ๏ธ Demystify parallelization in Xcode builds โ€ 20250228

Clone this wiki locally

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /