๐ŸŒฑ SeSAC

[SeSAC] 220822 TIL

taeeekki 2022. 8. 29. 18:35

Notification.Name

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” Notification์ด ๋งŽ๋‹ค.

awakeFromNib, init

ํŠน์„ฑ์— ๋งž๊ฒŒ ์–ด๋А ๊ฒƒ์ด ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ๋” ์ ์ ˆํ•œ์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.

  1. SB, CB ๋‘˜ ๋‹ค ํ˜ธ์ถœ์ด ๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.
  2. ์–ด๋–ค ๊ฒƒ์ด ๋จผ์ € ํ˜ธ์ถœ๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค. (Break Point ํ™•์ธ)

ํ™”๋ฉด์„ ๋„์šธ ๋•Œ

  1. viewDidLoad()์—์„œ Alert์„ ๋„์šธ ์ˆ˜ ์—†๋‹ค. (viewDidLoad๋Š” ํ™”๋ฉด์„ ๋„์šฐ๊ธฐ ์ง์ „์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ, viewDidAppear์—์„œ ํ˜ธ์ถœํ•˜๊ธฐ)
  2. ํ™”๋ฉด์„ ํ•ญ์ƒ ํ˜„์žฌ ํ™”๋ฉด์—์„œ present, push ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ํ˜„์žฌ window์˜ rootViewController์—์„œ ๋„์šฐ๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ๋‹ค.

SnapKit Layout Method

  1. make
  2. remake
  3. update

์…€ ๋ ˆ์ด์•„์›ƒ(Cell Layout)

์…€ ๋ ˆ์ด์•„์›ƒ์„ ์žก์„ ๋•Œ๋Š” contentView์œ„์— ๊ตฌํ˜„ํ•ด์ฃผ์ž.

 


์ œ์Šค์ฒ˜

  • ํ•˜๋‚˜์˜ ๊ฐ์ฒด์— ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋Š” ์ œ์Šค์ฒ˜๋Š” 1๊ฐœ์ด๋‹ค. 2๊ฐœ ์ด์ƒ ๋“ค์–ด๊ฐ”์„ ๋•Œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. (- responder chaining)
  • ๊ธฐ๋ณธ์ ์œผ๋กœ cell - select (gesture) ๋“ค์–ด๊ฐ€ ์žˆ๋Š”๋ฐ ์—ฌ๊ธฐ์— ์ œ์Šค์ฒ˜๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์Šคํฌ๋กค ๋ทฐ์—๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ pinch์™€ swipe ์ œ์Šค์ฒ˜๊ฐ€ ์žˆ๋‹ค. ์—ฌ๊ธฐ์— ๋‹ค๋ฅธ ์ œ์Šค์ฒ˜๋ฅผ ๋˜ ๋„ฃ์–ด์ฃผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

DataBase

๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ ํŒŒ์ผ๋“ค์˜ ์ง‘ํ•ฉ์ฒด

  • UserDefaults: Apple์ด ์ œ๊ณต๋˜๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ DB
  • Realm: ์ผ๊ธฐ ์•ฑ, ๋ฉ”๋ชจ ์•ฑ

DBMS

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด

RDBMS

  • ํ…Œ์ด๋ธ” ๊ตฌ์กฐ
  • ํ…Œ์ด๋ธ” ์•ˆ์—๋‹ค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด๋‘๋Š” ๊ตฌ์กฐ
  • ์—‘์…€ ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜ ๋งŒ๋“ ๋‹ค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•จ

Terms

  • Schema/Table
  • Column(์—ด ํ•˜๋‚˜)
  • Record(ํ–‰ ํ•˜๋‚˜)
  • PK, FK, Unique Key

๋ฐ์ดํ„ฐ ๊ฐฑ์‹  ๋ฌธ์ œ

present๋ฅผ overCurrentContext, overFullScreen๋กœ ์‹คํ–‰ํ•˜๊ณ , dismissํ•˜๋ฉด viewWillAppear๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

// A.swift
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    print(#function)
    
    // ํ™”๋ฉด ๊ฐฑ์‹ ์€ ํ™”๋ฉด ์ „ํ™˜ ์ฝ”๋“œ ๋ฐ ์ƒ๋ช… ์ฃผ๊ธฐ ์‹คํ–‰ ์ ๊ฒ€์ด ํ•„์š”ํ•˜๋‹ค.
    // present, overCurrentContext, overFullScreen > viewWillAppear๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.
    // RootView๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚จ์•„์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
}

...

@objc func plusButtonClicked() {
    let vc = WriteViewController()
    vc.modalPresentationStyle = .fullScreen
    present(vc, animated: true)
}

Realm

  • ์˜คํ”ˆ ์†Œ์Šค ๊ฐœ์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ