๊ณต๋ถ€ ์—ฐ์Šต์žฅ :-)

TIL_20180319 ~ 20180325

|

2018.03.19

  • ๋งˆ๊ธฐ์˜ ๋ธ”๋กœ๊ทธ ๋ณด๊ณ  modal presentation style ๊ณต๋ถ€
    • https://magi82.github.io/ios-modal-presentation-style-01/
  • step7๋ฆฌ๋ทฐ, 8 ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„ ์ง„ํ–‰, ๋ฒ„ํŠผ ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ๋งŒ ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ• ์งˆ๋ฌธ - exit์— ์—ฐ๊ฒฐ! ์ด๊ฒŒ๋งž๋‚˜?
  • dismiss๋‚˜ popํ•˜์ง€ ์•Š๊ณ  Button์„ ๋ˆ„๋ฅด๋ฉด ์ฐฝ์„ ๋‹ซ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ธํ„ฐํŽ˜์ด์Šค ๋นŒ๋”์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์–ผ๊นŒ์š”? - exit๋ฒ„ํŠผ์— ์—ฐ๊ฒฐ, ๋„์ฐฉ์ง€์ ์— ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€ํ•˜๊ธฐ

2018.03.20

  • ์‚ฌ์ง„์•ก์ž์•ฑ step8 ํ”ผ๋“œ๋ฐฑ ์ง„ํ–‰
  • ๋งฅ๋ถ์—์–ด ๋ฐฑ์—…ํ•˜๊ธฐ
  • ์žํŒ๊ธฐ ๋ฏธ์…˜ ์‹œ์ž‘
  • ์•ฑ ๋ฒˆ๋“ค
  • IBOutlet ์†์„ฑ์ฒ˜๋ฆฌ - ์†์„ฑ์„ ์„ค์ •ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ค„์ด๊ณ  ํ•œ๋ฒˆ์— ์„ค์ •ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด ์„œ๋ธŒํด๋ž˜์‹ฑ์ด๋‚˜ ํ”„๋กœํ† ์ฝœ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์šฉ์ด

2018.03.21

  • iOS ์•ฑ์„ ๊ตฌ์„ฑํ•˜๋Š” ํ•ต์‹ฌ ๊ฐ์ฒด๋“ค
    • UIApplication, AppDelegate, viewController, UIWindow, View, Control and Layer
  • ์•ฑ ์ดˆ๊ธฐํ™” ๊ณผ์ •, mainํ•จ์ˆ˜, UIApplicationMain()ํ•จ์ˆ˜
  • iOS Main Run Loop

2018.03.23

  • zใ…ํŒ๊ธฐ ๋ฏธ์…˜ step2 PR - ๋ณด๋ƒ„..
    • MVCํŒจํ„ด
    • IBOutlet์ฝœ๋ ‰์…˜ - tag์‚ฌ์šฉ
    • ์ž”์•ก์ถ”๊ฐ€
  • main run loop๋ž‘ ์•ฑ ์ดˆ๊ธฐํ™”๋ถ€๋ถ„ ๊ผผ๊ผผํ•œ์žฌ์€์”จ ๋ณด๊ณ  ๊ณต๋ถ€

2018.03.24

  • ์žํŒ๊ธฐ ๋ฏธ์…˜ 3๋‹จ๊ณ„ ์‹œ์ž‘ํ•˜๊ธฐ
    • AppDelegate ์ •๋ฆฌ
    • ์•ฑ ์ƒ๋ช…์ฃผ๊ธฐ ์ •๋ฆฌ

2018.03.25

  • ์•„์นด์ด๋น™

TIL_20180312 ~ 20180317

|

2018.03.12

  • ์‚ฌ์ง„์•ก์ž ์•ฑ 2๋‹จ๊ณ„PR ํ”ผ๋“œ๋ฐฑ ๋ฐ›์œผ๋ฉด 3์œผ๋กœ ๊ฐ€๊ธฐ
    • UIColor ๋กœ ์ฝ”๋“œ๋กœ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ custom color์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹ ์ •๋ฆฌํ•˜๊ธฐ
    • UILabel ํด๋ž˜์Šค ํ”„๋กœํผํ‹ฐ ์กฐ์‚ฌ๋Š” ์ข€ ๋” ๋ณด๊ณ  ์ถ”๊ฐ€ํ•˜๊ธฐ
    • ์Šคํƒ ํฌ๋“œ iOS๊ฐ•์˜ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ
  • ํด๋กœ์ €, ์บก์ณ์™€ ์ˆœํ™˜์ฐธ์กฐ

2018.03.13

  • ์‚ฌ์ง„์•ก์ž ์•ฑ 3๋‹จ๊ณ„PR
  • ์‚ฌ์ง„์•ก์ž ์•ฑ 4๋‹จ๊ณ„PR
  • Segue - ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ํ•˜๋Š” ๋ฒ• / ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ segue๋งŒ๋“ค์ง€ ์•Š๊ณ  ํ™”๋ฉด์ „ํ™˜ ํ•˜๋Š”๋ฒ•

2018.03.14

  • ์• ํ”Œ์Šคํ† ์–ด ๋ฐฉ๋ฌธ! ๋งฅ๋ถํ”„๋กœ๊ตฌ๋งค

2018.03.15

  • ์‚ฌ์ง„์•ก์ž ์•ฑ 5,6๋‹จ๊ณ„ ์ง„ํ–‰
  • ๋ทฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ
  • Container ViewController / View Controller
  • UINavigationController - push / pop
  • ์ฝ”์ฝ”์•„ํ„ฐ์น˜ ํ”„๋ ˆ์ž„์›Œํฌ
  • iOS UIํ‘œํ˜„๊ตฌ์กฐ
  • iOS์˜ ํ™”๋ฉด ์ „ํ™˜ ๊ฐœ๋…
    • view ํ™”๋ฉด์ „ํ™˜ : present - pop ์‹คํ—˜ : ๋™์ž‘ํ•˜์ง€ ์•Š์Œ X

2018.03.16

  • push - pop / present - dismiss ์‹คํ—˜
  • presentingVC(ancestor) vs presentedVC(child)
  • self.dismiss()์™€ presentingVC(ancestor)์—์„œ dismiss()ํ•˜๋Š” ๊ฒƒ ์ฐจ์ด
    • ๋™์ผ. self.dismiss()๋Š” โ€˜๋‚˜ ์ž์‹ ์„ ์—†์•ค๋‹คโ€™๋Š” ์˜๋ฏธ๊ฐ€ ์•„๋‹Œ, self์˜ presentingVC(ancestor)์—๊ฒŒ โ€˜๋„ˆ๊ฐ€ ๋„์šฐ๊ณ  ์žˆ๋Š” ๋ทฐ(=self)๋ฅผ ์—†์• ๋ผโ€™๋ผ๋Š” ์˜๋ฏธ๋กœ ๋™์ž‘

2018.03.17

  • ๋ทฐ ์ƒ๋ช…์ฃผ๊ธฐ์—์„œ viewDidLoad()๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ  ํ˜ธ์ถœ๋˜์ง€ ์•Š๊ณ ์˜ ์ฐจ์ด
  • ์‚ฌ์ง„์•ก์ž ์•ฑ 7๋‹จ๊ณ„ ์ง„ํ–‰ - UIImage์™€ UIImageView์‚ฌ์šฉ
  • contentMode
  • String์˜ initializer ํ™œ์šฉ - Int format์„ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒŒ ํ•˜๊ณ ์‹ถ์„๋•Œ
    • String(format: "%02d", 1) // return โ€œ01โ€
  • presented / presenting ๋ณด์ถฉ์ •๋ฆฌ

UIColorํด๋ž˜์Šค - ์ปค์Šคํ…€ Color Literal์‚ฌ์šฉํ•˜๊ธฐ

|

textColor ํ”„๋กœํผํ‹ฐ

iOS๊ฐœ๋ฐœ์—์„œ, UILabelํด๋ž˜์Šค์˜ textColor์†์„ฑ์˜ ์„ ์–ธ์€ ์ด๋ ‡๋‹ค.

  • var textColor: UIColor! { get set }

์ด๋Ÿฌํ•œ textColor์†์„ฑ์„ ์‚ฌ์šฉํ• ๋•Œ ๊ฐ€์žฅ ๊ฐ„ํŽธํ•œ ๋ฐฉ๋ฒ•์€ ์• ํ”Œ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฏธ๋ฆฌ ์ •ํ•ด๋†“์€ UIColorํด๋ž˜์Šค์˜ ํƒ€์ž…ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, ํ™”๋ฉด์— ๋ณด์—ฌ์ง€๋Š” ํ…์ŠคํŠธ ์ƒ‰์„ ์ดˆ๋ก์ƒ‰์œผ๋กœ ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋‹ค.

class FirstViewController: UIViewController {

    @IBOutlet weak var photoLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.photoLabel.text = "JINiOS"
        self.photoLabel.textColor = UIColor.green
    }

์ด๋ ‡๊ฒŒ ์• ํ”Œ์€ ๊ธฐ๋ณธ์ ์ธ ์ƒ‰๊น”๋“ค์€ ์ด๋ฏธ literalํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋†“์•˜๋‹ค.
ํ•˜์ง€๋งŒ ์ปค์Šคํ…€๋œ ๋‹ค๋ฅธ ์ƒ‰์„ ์‚ฌ์šฉํ•˜๊ณ ์‹ถ๋‹ค๋ฉด!? ์ฝ”๋“œ๋กœ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ ์ด๋ฒˆ์—” ๊ฐ„๋‹จํ•˜๊ฒŒ GUI์˜ ๋„์›€์„ ๋ฐ›์•„ ์ƒ‰๊น”์„ ์ปค์Šคํ…€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ดค๋‹ค.

Custom Color Literal์‚ฌ์šฉํ•˜๊ธฐ

  • ๋จผ์ € ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ , Color Literal์ด๋ผ๊ณ  ์จ์ค€๋‹ค. xcode๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋“œ๋กญ๋‹ค์šด์œผ๋กœ Color Literal์„ ๋ณด์—ฌ์ค€๋‹ค.

xcode_color_literal

  • Color Literal์„ ์„ ํƒํ•˜๋ฉด ์ปฌ๋Ÿฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฐฝ์ด ๋œจ๊ณ , others ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์„œ ์ง์ ‘ ์ƒ‰์ƒ๊ณผ ํˆฌ๋ช…๋„๋ฅผ ์„ ํƒํ•˜๊ณ  ๋ณ€์ˆ˜ ์„ ์–ธ์„ ์™„๋ฃŒํ•œ๋‹ค.

xcode_color_literal2

  • ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•œ๋‹ค.
@IBOutlet weak var firstDescription: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()
    self.firstDescription.text = "์‚ฌ์ง„์•ก์ž firstDescription"
    let colorLiteral = #colorLiteral(red: 0.1380051349, green: 0.3703911386, blue: 1, alpha: 0.7430436644)
    self.firstDescription.textColor = colorLiteral
  }
  // colorLiteral๋ณ€์ˆ˜๊ฐ€ ์ฝ”๋“œ๋ธ”๋Ÿญ์œผ๋กœ ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด์„œ rgb๊ฐ’์ด ์ˆซ์ž๋กœ ๋‚˜์™”์Œ

์‹ค์ œ๋กœ๋Š” colorLiteral๋ณ€์ˆ˜๋Š” ์ฝ”๋“œ์— ์„ค์ •๋œ ์ƒ‰๊น”๊ณผ ํ•จ๊ป˜ ๋ณด์—ฌ์ง€๊ฒŒ๋œ๋‹ค.

xcode_color_literal3

UITabBarController & UITabBar์˜ ์ฐจ์ด

|

UITabBarController & UITabBar

์ผ๋ฐ˜์ ์ธ ๊ด€์ ์—์„œ์˜ View๊ณผ Controller์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • View : ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์ค˜์•ผํ•˜๋Š”์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด
  • Controller : ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ค˜์•ผํ•˜๋Š”์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด

์ด๋Ÿฐ ๊ด€์ ์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค๋ฉด,

  • UITabBar๋Š” View์— ๊ฐ€๊นŒ์šด ๊ฐœ๋…์œผ๋กœ, UITabBar๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํƒญ์„ ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์ค˜์•ผํ•˜๋Š”์ง€์—๋Œ€ํ•œ ์ฑ…์ž„์ด ์žˆ๋Š” ๊ฐ์ฒด
  • UITabBarController๋Š” Controller์— ๊ฐ€๊นŒ์šด ๊ฐœ๋…์œผ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ •ํ•œ ํƒญ์„ ์„ ํƒํ–ˆ์„๋•Œ ์–ด๋–ค ํƒญ์ด ๋ณด์—ฌ์ ธ์•ผํ•˜๋Š”์ง€์—๋Œ€ํ•œ ์ฑ…์ž„์ด ์žˆ๋Š” ๊ฐ์ฒด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ด๋Ÿฐ ๊ด€์ ์—์„œ ๋ณด๋ฉด UITabBarController์™€ UITabBar๋Š” ์ƒ/ํ•˜์œ„ ๋ชจ๋“ˆ ๊ด€๊ณ„ ๋ผ๊ณ  ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

๋‹ค๋งŒ, ๋ณดํ†ต UITabBar๋Š” UITabBarController์™€ ๊ฒฐํ•ฉํ•ด์„œ ์“ฐ์ด์ง€๋งŒ, UITabBar ๋‹จ์ผํ•˜๊ฒŒ ์ž์ฒด๋งŒ์œผ๋กœ๋„ ์“ฐ์ผ ์ˆ˜๋„ ์žˆ๊ธฐ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ง•์ด ๊ณตํ†ต์ ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. (TabBar์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์„ค๋ช…)

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋“ค ๊ฐ„์— ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•จ
  • ํŠน์ • ํƒญ์„ ๋ˆ„๋ฅด๋ฉด, ๊ทธ ํƒญ์— ์—ฐ๊ฒฐ๋œ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ทฐ๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค.

์ฐธ๊ณ ๋งํฌ

TIL_20180305 ~ 20180311

|

2018.03.05

  • ์žํŒ๊ธฐ ๋ฏธ์…˜ ๋งˆ๋ฌด๋ฆฌ
    • enum์œผ๋กœ ์Œ๋ฃŒ์ˆ˜ ์ƒํ’ˆ ๋ฒˆํ˜ธ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ ์งˆ๋ฌธ
    • ์Œ๋ฃŒ ์†์„ฑ(์นผ๋กœ๋ฆฌ,์šฉ๊ธฐ ๋“ฑ) : Attribute ํ”„๋กœํ† ์ฝœ๋กœ ์†์„ฑ์„ ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ–ˆ๋Š”๋ฐ Beverage๊ฐ€ ์†์„ฑ์„ ๊ฐ€์ง€๊ณ ์žˆ๊ณ  ์ƒ์†๋ฐ›๋Š” ๊ตฌ์กฐ๊ฐ€ ์ข‹์„์ง€
      • ์ƒ์†์ด ๋” ์˜๋ฏธ์— ๋งž๋Š”๊ฑฐ๊ฐ™์Œ! (init์—์„œ ๋„ฃ์ง€ ์•Š์Œ)
      • ๊ทธ๋ƒฅ ์ƒ์†์œผ๋กœํ•˜๋ฉด ์„œ๋ธŒํด๋ž˜์Šค๊ฐ€ ๊ทธ ์†์„ฑ์„ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š”๊ฑธ ๊ฐ•์ œํ•  ์ˆ˜ ์—†์œผ๋‹ˆ๊นŒ Attributeํ”„๋กœํ† ์ฝœ์— getํ”„๋กœํผํ‹ฐ๋กœ ๋„ฃ๋Š” ๊ฒƒ ํ•ด๋ด„
        • ๊ทผ๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์นผ๋กœ๋ฆฌ ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ์ž๊ฐ€ ๋‹ค ์—ด๋ ค์žˆ๋Š” ๋ฌธ์ œใ… ใ… 
      • ๊ฒฐ๋ก : init์— ๋„ฃ์Œ
      • init / super.init()์œผ๋กœ ํ•˜๋Š”๊ฒŒ ์ข‹์„ ๋“ฏ > private์œผ๋กœ ๊ฐ์Œ€ ์ˆ˜ ์žˆ์Œ
      • ๊ทธ๋ฆฌ๊ณ  ์–ด์ฐจํ”ผ ํ”„๋กœํ† ์ฝœ ์†์„ฑ์œผ๋กœ ๋„ฃ์–ด๋„, ๊ฐ•์ œ๋˜์ง€๋„ ์•Š์Œ (Beverage๊ฐ€ ๊ตฌํ˜„ํ•˜๊ณ ์žˆ์œผ๋‹ˆ๊นŒ ์„œ๋ธŒํด๋ž˜์Šค๊ฐ€ ๊ตฌํ˜„ ์•ˆํ•ด๋„ ์—๋Ÿฌ ์•ˆ๋‚จ)
    • ์ง€์ •ํ•œ ์†์„ฑ๋Œ€๋กœ ๋งž๋Š” ์Œ๋ฃŒ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ฐ๊ฐ์˜ ์Œ๋ฃŒ์— ์žˆ๋Š”๋ฐ, ์ด๊ฑธ Beverage๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค๋ฉด ์„œ๋ธŒํด๋ž˜์Šค๋Š” ์†์„ฑ๋งŒ ๊ฐ€์ง€๊ณ ์žˆ์œผ๋ฉด ๋จ
    • ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ณ„์† ๋’ค์ ธ์„œ ์ฐพ๋Š” ๊ฒŒ ๊ณผ์—ฐ ์ข‹์€ ๋ฐฉ๋ฒ•์ธ์ง€โ€ฆ
  • ํ•ด์ปค๋žญํฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์—ˆ๋Š”๋ฐ (Migratory-Birds) ์Šค์œ„ํ”„ํŠธ ์ง€์› ์•ˆํ•˜๋Š” ๋ฌธ์ œ์ธ์ง€ ์Šค์œ„ํ”„ํŠธ์ฝ”๋“œ์ž…๋ ฅ๋ž€์ด ์—†์–ด์„œ ์ œ์ถœ๋ชปํ•จใ… ใ…  github

2018.03.06

์žํŒ๊ธฐ ์ฝ”๋“œ๋ฆฌ๋ทฐ์ค‘ ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„ ์งˆ๋ฌธ ํ›„ ์ˆ˜์ •. ์•„๋ž˜ ๋‚ด์šฉ ๋ง๊ณ  ๋‹ค๋ฅธ๊ฑด ๋‹ค ๊ณ ์นจ

  1. ์ด๋ ‡๊ฒŒ switch-case ๊ตฌ๋ฌธ์ด ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ๋ญ๊ฐ€ ์ข‹์„๊นŒ์š”? 6๊ฐœ์—์„œ 3๊ฐœ๋กœ ์ค„์–ด๋“ค๊ฑฐ๋‚˜, 10๊ฐœ๋กœ ๋Š˜์–ด๋‚˜๊ฑฐ๋‚˜ ๋ณ€ํ™”๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•ด๋ณด์„ธ์š”.
  2. Dictionary๋‚˜ Array ๊ฐ™์€ ์ฝœ๋ž™์…˜์„ mutating ์œผ๋กœ ํ™•์žฅํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์ด๋‚˜ ์‚ฌ์ „์„ ๋ฆฌํ„ดํ•˜๋„๋ก ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์„ธ์š”. ๊ทธ๋ž˜์•ผ ๋‚˜์ค‘์— ํด๋กœ์ €, ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ๋“ฑ ์—ฌ๋Ÿฌ ์ƒํ™ฉ์—์„œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. (์Œ..์ด๊ฑด ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ• ์ˆ˜ ์žˆ์„์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Œ ใ… )
  1. ๋”•์…”๋„ˆ๋ฆฌ๋Š” ์ˆœ์„œ๊ฐ€ ์—†์Œ. ์žํŒ๊ธฐ ์Œ๋ฃŒ(objectidentifier) ์ˆ˜๋งŒํผ ๋ฒˆํ˜ธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์—ฐ๊ฒฐ, ๊ทธ ์ˆœ์„œ๋ฒˆํ˜ธ๋ฅผ ์ฝ˜์†”์— ํ‘œ์‹œ, ์ž…๋ ฅ๋ฐ›์€ ์Œ๋ฃŒ ์ˆซ์ž์™€ ์ฝ˜์†”์— ํ‘œ์‹œ๋œ ๋ฒˆํ˜ธ์™€ ๋น„๊ตํ•˜์—ฌ ์—ฐ๊ฒฐ, ๋ฒˆํ˜ธ์— ํ•ด๋‹น๋˜๋Š ์Œ๋ฃŒ๋ฅผ ์„ ํƒ

2018.03.07

admin๋ชจ๋“œ ๋™์ž‘ ์ˆ˜์ • : ์Œ๋ฃŒ ์ถ”๊ฐ€์™€ ์‚ญ์ œ๋•Œ ์‚ฌ์šฉ๋˜๋Š” index๊ฐ€ ๋‹ค๋ฅด๊ธฐ๋•Œ๋ฌธ์— ๋ถ„๋ฆฌ ํ•„์š”ํ•จ

2018.03.08

์žํŒ๊ธฐ step4 ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ›์€๋‚ด์šฉ ์ˆ˜์ •

  • Money/History/Inventory๊ฐ์ฒด ๋ฆฌํŒฉํ† ๋ง

    Shelf์ฒ˜๋Ÿผ History ๋‚˜ Inventory๋„ ์‚ฌ์ „์ด๋‚˜ ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค๋ฉด ์—ฌ๊ธฐ ์ฝ”๋“œ๋“ค์ด ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•ด ์งˆ ๊ฒ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” ๋ฐฐ์—ด์ด๋‚˜ ์‚ฌ์ „์œผ๋กœ ์„ ์–ธํ•˜๋Š” ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋งŽ์œผ๋ฉด ํ•˜์œ„ ๋ชจ๋“ˆ๋กœ ๋งŒ๋“ค์–ด์„œ ์ƒ์œ„ ๋ชจ๋“ˆ์˜ ์ฝ”๋“œ๋ฅผ ์ค„์—ฌ๋ณด์„ธ์š”. ์˜ต์…”๋„ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋„ ํ›จ์”ฌ ์ˆ˜์›”ํ•ด์งˆ ๊ฒ๋‹ˆ๋‹ค

  • ์งˆ๋ฌธ: ์ด๋ฏธ VendingMachine์ด Stock์„ ๊ฐ–๊ณ ์žˆ์œผ๋ฉด Stock์„ ์กฐ์ž‘ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ์„œ Stock์œผ๋กœ ๋ถ„๋ฆฌํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ JK๊ฐ€ ๋งํ•œ ๋งฅ๋ฝ์—์„œ ๋ณด๋ฉด ์–ด๋–ค ์ •๋„๊นŒ์ง€ ์ƒ.ํ•˜์œ„ ๋ชจ๋“ˆ์„ ๋ถ„๋ฆฌ ํ•˜๋Š”๊ฒƒ์ด ์ข‹์€๊ฑด์ง€ ๊ธฐ์ค€์„ ๋ชจ๋ฅด๊ฒ ๋‹ค!
  • ์˜๋ฏธ๊ฐ€ ์žˆ์œผ๋ฉด ์ตœ๋Œ€ํ•œ ๊ฐ์ฒด๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ๋กœ ์งœ์•ผํ•จ. ์˜ˆ๋ฅผ๋“ค์–ด balance๋„ ๋‹จ์ˆœํ•œ Intํƒ€์ž…์˜ ์†์„ฑ์ด์ง€๋งŒ balance์ž์ฒด๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋™์ž‘์„ VendingMachine์ด ํ•˜๊ณ ์žˆ์„์ •๋„๋กœ ์˜๋ฏธ์žˆ๋Š”์ฝ”๋“œ๋‹ˆ๊นŒ, Int๊ฐ’์„ VendingMachine์ด ์ง์ ‘ +-ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ, Money๊ฐ์ฒด๋กœ ๋ถ„๋ฆฌํ•ด์„œ Money๊ฐ€ ๊ฐ€์ง„ Int๊ฐ’์„ ์กฐ์ •ํ•˜๋Š” ์ž‘์—…์„ ๋‚ด๋ถ€์—์„œ ํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ
  • Stock์˜ Inventory๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ stock์ด ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ์œผ๋‹ˆ๊นŒ stock๋‚ด๋ถ€์— ๊ทธ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๊ณ  ์žˆ์Œ.(=๋ฐฐ์—ด์ด๋‚˜ ์‚ฌ์ „์œผ๋กœ ์„ ์–ธํ•˜๋Š” ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ) stock์ด ๊ฐ€์ง„ ๋”•์…”๋„ˆ๋ฆฌ๋„ ๋‹จ์ˆœํ•œ ๋”•์…”๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ inventory๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ๋‹จ์œ„์ด๊ธฐ๋•Œ๋ฌธ์— inventory์Šค์Šค๋กœ๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๊ฐ–๊ณ ์žˆ๊ณ  ์กฐ์ž‘ํ•˜๋Š”๊ฒŒ ๋งž์Œ. (๋งŒ์•ฝ ๊ทธ ์•ˆ์—๋„ ์˜๋ฏธ์žˆ๋Š” ๋‹จ์œ„๊ฐ€ ์žˆ๋‹ค๋ฉด ๋˜ ๊ฐ์ฒด๋กœ ๋ถ„๋ฆฌํ•˜๋Š”๊ฒŒ ์ข‹์Œ.)
  • keyword: โ€˜์˜๋ฏธ์žˆ๋Š” ๋‹จ์œ„โ€™๋กœ ๊ฐ์ฒด๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค!

์ˆ˜์ •ํ•œ ์‚ฌํ•ญ

  • History๊ฐ์ฒด์— ๋™์ž‘ ๋ฐ ์ฑ…์ž„ ์ถ”๊ฐ€, VendingMachine์ž”์•ก์„ ํ‘œ์‹œํ•˜๋Š” balance์†์„ฑ์„ Money๊ฐ์ฒด๋กœ ํƒ€์ž… ๋ณ€๊ฒฝ, Money๊ฐ์ฒด์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋„ ๋™์ž‘, ์ฑ…์ž„ ์ถ”๊ฐ€, inventory๊ฐ์ฒด์—๋„

2018.03.09

  • ์žํŒ๊ธฐ ๋ฏธ์…˜ readme์ •๋ฆฌ
  • ์žํŒ๊ธฐ ๋ฏธ์…˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์™„์„ฑ
  • ๋ ˆ๋ฒจ3 ์ดˆ๋ฐ˜ ์ž๋ฃŒ ์ฝ์–ด๋ณด๊ธฐ (HIG, UI, iOS๋””์ž์ธ, ADSโ€ฆ)
  • ์‚ฌ์ง„์•ก์ž ์•ฑ ์‹œ์ž‘!

2018.03.10

  • ํœด์‹!

2018.03.11

  • ์‚ฌ์ง„์•ก์ž ์•ฑ 2๋‹จ๊ณ„PR
    • IBOutlet ์กฐ์‚ฌ
    • UILabel ํด๋ž˜์Šค ํ”„๋กœํผํ‹ฐ ์กฐ์‚ฌ