Bibi's DevLog ๐Ÿค“๐ŸŽ

์•„์นด์ด๋น™ - URLArchiving (220512 ์ˆ˜์ •) ๋ณธ๋ฌธ

URLArchiving

์•„์นด์ด๋น™ - URLArchiving (220512 ์ˆ˜์ •)

๋น„๋น„ bibi 2022. 5. 12. 17:18

Daily URLArchiving

[Action Plan] ํ•˜๋ฃจ 1๊ฐœ, ์ข‹์€ ๊ธ€ URL์„ ์•„์นด์ด๋น™ํ•˜๊ณ  ์†Œ๊ฐ์„ ํ•œ ์ค„ ์ ๋Š”๋‹ค.

layoutIfNeeded() - ๋ทฐ/๋ ˆ์ด์•„์›ƒ ์—…๋ฐ์ดํŠธ ๊ด€๋ จ ๋ฉ”์„œ๋“œ

(jed) ์Šค์œ„ํ”„ํŠธ์˜ Delegate Pattern ์ •๋ฆฌ

constraint ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•˜๊ธฐ

UILabel padding ์„ค์ •ํ•˜๊ธฐ

  • ๊ทธ๋ฆฌ๊ณ  UILabel ์•ˆ์— constraint๋ฅผ ์žก๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ณ ๋ฏผํ•˜๊ณ  ๊ณ„์‹œ๋Š”๊ตฐ์š”! UILabel์˜ padding๊ฐ’์„ ์„ค์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‘๊ฐ€์ง€๋ฅผ ํ‚ค์›Œ๋“œ๋กœ ํ•œ ๋ฒˆ ์ฐพ์•„๋ณด์‹œ๋ฉด ์›ํ•˜์‹œ๋Š” ์„ค์ • ๋ฐฉ๋ฒ•์— ์ข€ ๋” ๊ฐ€๊นŒ์›Œ์งˆ ๊ฒƒ ๊ฐ™์•„์š” โ˜บ๏ธ

2022.05

0524(ํ™”)

0523(์›”)

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฒด์œก๋ณต (ํƒ์š•๋ฒ•)
    • https://babbab2.tistory.com/108
    • for๋ฅผ ๋Œ ๋•Œ ์–‘ ์ปฌ๋ ‰์…˜์ด ๋‘˜ ๋‹ค var์ด๋ฉด ๊ผฌ์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ผ๋„ let์œผ๋กœ ์„ ์–ธํ•ด ์ฃผ๋Š” ๊ฒŒ ์ข‹๋‹ค.
    • ์ปฌ๋ ‰์…˜ ๋‚ด์— ๊ฒน์น˜๋Š” ์›์†Œ๊ฐ€ ์—†๋‹ค๋ฉด(์—†์–ด์•ผ ํ•œ๋‹ค๋ฉด) Set ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•ด ๋ณด์ž.

0520(๊ธˆ)

0519(๋ชฉ)

  • URLSessionDataTask, URLSessionUploadTask, URLSessionDownloadTask
    • URLSession ๊ด€๋ จ ๋ชจ๋“ˆ
    • DataTask : ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ (์ฃผ๋กœ get์œผ๋กœ) ๋‹ค์šด๋กœ๋“œํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ”๋กœ ์ €์žฅํ•  ๋•Œ
    • UploadTask : ์„œ๋ฒ„์— (์ฃผ๋กœ post, put์œผ๋กœ) ๋””์Šคํฌ->์›น์„œ๋ฒ„๋กœ ํŒŒ์ผ์„ ์ „์†กํ•  ๋•Œ
    • DownloadTask : ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ/ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•  ๋•Œ

0518(์ˆ˜)

  • URLSessionConfiguration
    • shared : ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์š”์ฒญ์„ ์œ„ํ•ด ์ ํ•ฉ. ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์€ ๋ถˆ๊ฐ€.
    • Default : shared์™€ ๋น„์Šทํ•˜๋‚˜, delegate๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ ์ง„์ ์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
    • Ephemeral(์ž„์‹œ) : Default์™€ ๋น„์Šทํ•˜๋‚˜, ์บ์‹œ, ์ฟ ํ‚ค, ์ž๊ฒฉ์ฆ๋ช…์„ ๋””์Šคํฌ์— ์“ฐ์ง€ ์•Š์Œ
    • Background : ๋ฐฑ๊ทธ๋ผ์šด๋“œ(์•ฑ์ด ์‹คํ–‰์ค‘์ด์ง€ ์•Š์„ ๋•Œ)์—์„œ๋„ ์ปจํ…์ธ ๋ฅผ ์—…๋กœ๋“œ/๋‹ค์šด๋กœ๋“œ ํ•™ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ.

0517(ํ™”)

0516(์›”)

0513(๊ธˆ)

0512(๋ชฉ)

0511

0510

0509

  • Tab Bar Item์˜ ์•„์ด์ฝ˜ ์ปค์Šคํ…€ํ•˜๊ธฐ : Storyboard, Code
    • ํƒญ ๋ฐ” ์•„์ดํ…œ์˜ ์•„์ด์ฝ˜(๊ทธ๋ฆผ)์„ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ฐ”๊พธ๊ธฐ. Tab Bar Item์„ ์„ ํƒํ•œ ๋‹ค์Œ Selected Image / Image๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒŒ ํฌ์ธํŠธ!
  • ๊นƒ ํŠน์ • ๋ธŒ๋žœ์น˜๋งŒ ํด๋ก ํ•˜๊ธฐ
    • git clone -b {branch_name} --single-branch {repository_URL}

2022.04

0429

0428

0427

  • UILabel.attributedText : UILabel์˜ ๊ธ€์ž ์ผ๋ถ€์˜ ํฌ๊ธฐ/์ƒ‰์ƒ/ํฐํŠธ ๋ณ€๊ฒฝํ•˜๊ธฐ, ์ทจ์†Œ์„  ๊ธ‹๊ธฐ : (1), (2)
  • NSMutableAttributedString(string:) ๊ณผ .addAttribute(_:value:range:)์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค!

0426

  • @escaping ํด๋กœ์ €
  • @escaping ํด๋กœ์ €๋Š” ๊ทธ ํ•จ์ˆ˜ ๋‚ด๋ถ€๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ–์—์„œ(escaping) ์‹คํ–‰๋œ๋‹ค. ๋ณดํ†ต ํด๋กœ์ €๊ฐ€ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ์ €์žฅ๋˜์–ด ๋‚˜์ค‘์— ์‹คํ–‰๋˜๊ฑฐ๋‚˜, ๋น„๋™๊ธฐ๋กœ ์‹คํ–‰๋  ๋•Œ escaping ํด๋กœ์ €๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

0425

0424

  • fetch, rebase
  • ํ—ท๊ฐˆ๋ ธ๋˜ ๊ฐœ๋…๋“ค์„ ๋˜์งš์–ด ๋ณด๋‹ˆ ์ข€ ๋จธ๋ฆฟ์†์ด ์ •๋ฆฌ๊ฐ€ ๋œ๋‹ค..!!

0422

0421

0420

0419

  • UILabel ํ•œ๊ธ€ ์ค„๋ฐ”๊ฟˆํ•˜๊ธฐ
  • UILabel.lineBreakStrategy = .hangulWordPriority ๋กœ ์„ค์ •ํ•˜๋ฉด ํ•œ๊ธ€ ์ค„๋ฐ”๊ฟˆ์„ ์ธ์‹ํ•ด ์ค€๋‹ค.
  • hangul์„ Xcode์—์„œ ๋ณด๊ฒŒ ๋˜๋‹ค๋‹ˆ ์‹ ๊ธฐํ•˜๋‹ค..!!!
  • ์ถ”๊ฐ€๋กœ ์—ฌ๋Ÿฌ ์ค„ ๋ผ๋ฒจ์„ ์ง€์›ํ•˜๋ ค๋ฉด UIlabel.numberOfLines = 0 ์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค.
    • To remove any maximum limit, and use as many lines as needed, set the value of this property to 0.

0418

  • Swift ~= ์—ฐ์‚ฐ์ž
  • ๋ฒ”์œ„๋ฅผ ์ฒดํฌํ•˜๋Š” ์—ฐ์‚ฐ์ž. ๋Œ€์ƒ์ด ํŠน์ • ๋ฒ”์œ„์— ์†ํ•˜๋Š”์ง€ ์•„๋‹Œ์ง€ ์•Œ๋ ค์ค€๋‹ค. ์ˆซ์ž์™€ ๋ฌธ์ž์—ด์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

0415

0414

0413

0412

  • UIButton System Icon (Image) ์ฝ”๋“œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•
  • UIButton.setImage(UIImage(systemName: "xmark"), for: .normal)์™€ ๊ฐ™์ด IB์—์„œ ์กฐํšŒ๋œ ์•„์ด์ฝ˜ ์ด๋ฆ„์„ ๋„ฃ์–ด ์ค€๋‹ค.
  • ์—ญ์‹œ ๋ชจ๋“  ์Šคํ† ๋ฆฌ๋ณด๋“œ ์„ค์ •์€ ์ฝ”๋“œ๋กœ ๊ฐ€๋Šฅํ•˜๊ตฌ๋‚˜..๋ฅผ ๋˜ ๋Š๊ผˆ๋‹ค. ๊ทผ๋ฐ ์•„์ด์ฝ˜ ์ฐพ์•„ ์“ฐ๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค
  • ํ–„๋ฒ„๊ฑฐ ๋ฒ„ํŠผ ์ด๋ฆ„ : line.3.horizontal ์ด์—ˆ๋‹ค..!!

0411

  • (StackView) addArrangedSubview(_:)
  • UIStackView์—์„œ ๋™์ ์œผ๋กœ subView๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฉ”์„œ๋“œ.
    • addArrangedSubview(_:)
    • insertArrangedSubview(_:at:)
    • removeArrangedSubview(_:)
  • StackView๋Š” arrangedSubviews๋ผ๋Š” ํ”„๋กœํผํ‹ฐ(๋ฐฐ์—ด)๋กœ view๋“ค์˜ ๋ ˆ์ด์•„์›ƒ์„ ๊ด€๋ฆฌํ•จ.
  • ๊ทธ๋ƒฅ addSubview()๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋ฅผ ์“ฐ๊ธธ๋ž˜ ์‹ ๊ธฐํ•ด์„œ ๊ฒ€์ƒ‰ํ•ด ๋ณด์•˜๋‹ค!

0408

  • left, right์™€ leading, trailing์˜ ์ฐจ์ด
  • leading/trailing : reading direction(์ฝ๋Š” ๋ฐฉํ–ฅ) ์˜ ์‹œ์ž‘/๋์„ ๋‚˜ํƒ€๋ƒ„. ์„ค์ • ์–ธ์–ด์— ์˜ํ–ฅ์„ ๋ฐ›์Œ.
  • ์• ํ”Œ ๊ณต์‹์ ์œผ๋กœ left/right constraint๋ณด๋‹ค leading/trailing constraint์˜ ์‚ฌ์šฉ์„ ๊ถŒ์žฅ.

0407

0406

  • Container View Controller๋ž€?
  • ์ปจํ…Œ์ด๋„ˆ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๊ฐœ๋…๊ณผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์•Œ๋ ค์ค€๋‹ค. ์ด๊ฒƒ๋„ ๋‹จ์ผ์ฑ…์ž„์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฑฐ์˜€๋‹ค๋‹ˆ ์‹ ๊ธฐํ•˜๋‹ค.

0405

0404

  • private(set)
  • setter๋งŒ์ด private๋ผ๋Š” ๋œป. ํ•ด๋‹น ๊ตฌ์กฐ์ฒด/ํด๋ž˜์Šค ๋‚ด์—์„œ๋งŒ set์ด ๊ฐ€๋Šฅํ•จ์„ ์˜๋ฏธํ•จ. ์ฆ‰ getter๋Š” private์ด ์•„๋‹ˆ๋ฏ€๋กœ ์™ธ๋ถ€์—์„œ๋„ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•จ์„ ์˜๋ฏธ.
    • public private(set) var numberOfCards = 0
    • setter๋Š” private, ๊ฐ’ ์ž์ฒด๋Š” public์ž„์„ ์˜๋ฏธ.
    • setter๋งŒ์ด getter๋ณด๋‹ค ๋” ์ œํ•œ์ ์ธ ์ ‘๊ทผ ์ˆ˜์ค€์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

2022.03

0330

  • swift subview remove
  • addSubview()๋งŒ ํ•˜๊ณ  ์ง€์šธ ์ƒ๊ฐ์€ ๋ชป ํ–ˆ๋Š”๋ฐ, view.removeFromSuperView()๋ผ๋Š” ์‹ ๊ธฐํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

0331

  • ๋ทฐ์˜ Frame, Bound์˜ x, y, width, height ๊ตฌํ•˜๊ธฐ
  • ๊ทธ๋ ค์ ธ ์žˆ๋Š” ๋ทฐ์˜ origin๊ณผ size๋ฅผ ๊ตฌํ•˜๊ธฐ : view.frame.origin.x, view.frame.size.width. (bound๋„ ๋งˆ์ฐฌ๊ฐ€์ง€). ๋‘˜์ด ๋น„์Šทํ•ด ๋ณด์—ฌ์„œ ์•„์ง๋„ ํ—ท๊ฐˆ๋ฆฐ๋‹ค.