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

TIL_20180129 ~ 20180205

|

2018.01.29

  • ์žํŒ๊ธฐ step2 PR๋ณด๋‚ด๊ธฐ
    • step1์ฒ˜๋ฆฌ์ค‘์œผ๋กœ, ๋จธ์ง€๋˜๋ฉด ์ฃผ๋ง์— ์„ค๊ณ„ํ•ด๋†จ๋˜ ๊ฒƒ step2 PR ๋ณด๋‚ผ ์˜ˆ์ •
    • step2 PR :
    • MyDate๊ฐ์ฒด๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ ๋Œ€์‹ , Date๋ฅผ extensionํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ˆ˜์ •ํ•จ
      • ํ•˜๋‚˜์˜ ํƒ€์ž…์— ๋‚ด๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ํŠน์ • ๋™์ž‘์„ ๋งŒ๋“ค๋•Œ, ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์žˆ๋‹ค. (์ƒ์†, extension, ๊ฐ์ฒด ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ) ์ด ์„ธ๊ฐ€์ง€ ์ค‘์— ์–ด๋–ค ๋ฐฉ๋ฒ•์ด ์ œ์ผ ์ ์ ˆํ•œ์ง€์—๋Œ€ํ•œ ๋‚˜๋งŒ์˜ ๊ธฐ์ค€์ด ์žˆ์–ด์•ผ ํ•จ!(ํŒ๋‹จ ๊ธฐ์ค€์— ์ฝ”๋“œ๊ฐ€ ๋” ๊ธธ์–ด์ง€๋Š๋ƒ ์งง์•„์ง€๋Š๋ƒ๋Š” ์ค‘์š”ํ•œ ๊ธฐ์ค€์ด ์•„๋‹ˆ๊ณ , ๋งŒ๋“  ์†์„ฑ์ด๋‚˜ ๊ฐ์ฒด๊ฐ€ ๋” ํšจ์œจ์ ์œผ๋กœ ์“ฐ์ด๊ณ ์žˆ๋Š”์ง€ ์•„๋‹Œ์ง€๋ฅผ ์œ„์ฃผ๋กœ ํŒ๋‹จํ•ด์•ผํ•œ๋‹ค.) ์ง€๊ธˆ์˜ ๊ฒฝ์šฐ์—๋Š” MyDate์—์„œ ํฌ๊ฒŒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์†์„ฑ๋“ค์„ ๊ฐ–๊ณ ์žˆ๋‹ค. ์ด๋Ÿฐ ํŒ๋‹จ๊ธฐ์ค€์—๋”ฐ๋ผ์„œ extension์„ ์‚ฌ์šฉํ•˜๊ณ , ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ๋” ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์ด ๊ฐ€์žฅ ํšจ์œจ์ ์ด์—ˆ๋‹ค.

2018.01.30

  • ์žํŒ๊ธฐ step3
    • ์žํŒ๊ธฐ ์„ค๊ณ„ & ๊ธฐ๋Šฅ๊ตฌํ˜„
    • product enum
    • ์žํŒ๊ธฐ์˜ stock ์„ค๊ณ„
    • balance ์„ค๊ณ„

์žํŒ๊ธฐ ์ปจํŠธ๋กค๋Ÿฌ

์žํŒ๊ธฐ์— ์Œ๋ฃŒ ๋”•์…”๋„ˆ๋ฆฌ ๊ฐ’์œผ๋กœ ๋„ฃ์„๋•Œ reduce์‚ฌ์šฉํ•˜๊ธฐ

  1. userInput ๋ฐ›์Œ - ๊ธˆ์•กํˆฌ์ž…
  2. input๊ฐ’์ด ์œ ํšจํ•œ ๊ฐ’์ธ์ง€ ์ฒดํฌํ•˜๊ณ  ํ๋ฆ„์ œ์–ด
  3. ๊ธˆ์•ก ํˆฌ์ž…์€ MoneyUnit์— ํ•ด๋‹นํ•˜๋Š”๊ฐ’๋งŒ ๊ฐ€๋Šฅํ•จ
  4. ์ปจํŠธ๋กค๋Ÿฌ๋Š” MoneyUnit์˜ int๊ฐ’ ๋ฆฌํ„ด
  5. MoneyUnit์˜ Int๊ฐ’์„ ์žํŒ๊ธฐ์˜ ๋ฐธ๋Ÿฐ์Šค์— ์ถ”๊ฐ€
  6. ์žํŒ๊ธฐ ๋ฐธ๋Ÿฐ์Šค์— ์ €์žฅ๋˜๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธˆ์•ก๋งŒ filteringํ•ด์„œ ์˜ฌ๋ฆฌ๊ธฐ
  • ๋Ÿฐํƒ€์ž…ํƒ€์ž…์ธํฌ๋ฉ”์ด์…˜ - meta type์ด ์ด ํ•œ์ข…๋ฅ˜
  • object identifier ์‚ฌ์šฉ์œผ๋กœ ์Œ๋ฃŒ์ˆ˜ ์žฌ๊ณ  ๋”•์…”๋„ˆ๋ฆฌ ๊ตฌํ˜„

2018.02.01

  • ์žํŒ๊ธฐ step3 ์ง„ํ–‰ (์žํŒ๊ธฐ๋Š” 2/5๊นŒ์ง€ ์ผ๋‹จ ์™„์„ฑํ•˜๊ธฐ)
  • ํ•ด์ปค๋žญํฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์–ด๋ณด๊ธฐ(๊ฐ€์žฅ์‰ฌ์šด๋‹จ๊ณ„)
  • ๋ธ”๋กœ๊ทธ ๊ธ€ ๊นจ์ง„ ๊ฒƒ ์ •๋ฆฌ

2018.02.02

  • ์žํŒ๊ธฐ step3 ๊ตฌํ˜„ stockController
    • stock๊ฐ์ฒด์˜ ์—ญํ•  : ๊ตณ์ดํ•„์š”ํ•œ๊ฐ€? ๊ทธ๋ ‡๋‹ค๋ฉด vendingMachine๊ณผ์˜ ๊ด€๊ณ„๋Š”?
    • vendingMachine์— showCase๊ฐ™์€ ์†์„ฑ์ด ํ•„์š”ํ•˜์ง€ ์•Š์„๊นŒ?
      • ๋œจ๊ฑฐ์šด ์Œ๋ฃŒ๋ฅผ ๊ณจ๋ž์„๋•Œ / ์ง€๊ธˆ ๋ˆ์œผ๋กœ ์‚ด ์ˆ˜ ์žˆ๋Š” ์Œ๋ฃŒ๋งŒ ํ•„ํ„ฐ๋งํ–ˆ์„๋•Œ showCase์˜ ์ƒํƒœ๊ฐ€ ๊ณ„์† ๋ฐ”๊ปด์•ผํ•˜๋Š” ๊ฒƒ ์•„๋‹๊นŒ
      • ๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ showCase์˜ ํ˜•ํƒœ๋Š”?

์งˆ๋ฌธ๊ฑฐ๋ฆฌ Beverage์˜ validate() (Attributes ํ”„๋กœํ† ์ฝœ์˜ ๋ฉ”์†Œ๋“œ)

  // ์Šˆํผํด๋ž˜์Šค
    func validate() -> Bool {
        print("์œ ํšจ๊ธฐ๊ฐ„: \(self.validDuration)")
        return self.manufactured.isOutOfDate(validDuration: self.validDuration)
    }

์„œ๋ธŒํด๋ž˜์Šค์˜ isValid()

  func isValid() -> Bool {
      return super.validate()
  }

์„œ๋ธŒํด๋ž˜์Šค์˜ super.validate()๋•Œ๋ฌธ์— ์Šˆํผํด๋ž˜์Šค์˜ validate() ๋‚ด๋ถ€์˜ self.validDuration๋งŒ ์ž๊พธ ํ˜ธ์ถœ๋จใ… ใ… 

ํ•ด๊ฒฐ ํ›„ ์ƒˆ๋กœ์šด ์ƒ๊ฐ๊ฑฐ๋ฆฌโ€ฆ

  • JKโ€™s Comment: Beverage.validate()์—์„œ ํ•  ์ผ๊ณผ SoftDrink.validate()์—์„œ (๊ฐ์ž ์ž์‹ ์˜ ์†์„ฑ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ) ํ•  ์ผ์„ ๊ตฌ๋ถ„ํ•ด์„œ ๊ตฌํ˜„ํ•ด๋ณด์„ธ์š”
  • ์ƒ์†์€ ๋Œ€์ฒด ์™œ์“ฐ๋Š”๊ฑธ๊นŒ? ์Šˆํผํด๋ž˜์Šค๋Š” ํ• ์ผ์ด ์—†๋‹คใ…ใ….. ์ด๋Ÿฌ๋ฉด ๊ทธ๋ƒฅ ํ”„๋กœํ† ์ฝœ์„ ์“ฐ๋Š”๊ฒŒ ๋‚ซ์ง€ ์ƒ์†์„ ์“ธ ํ•„์š”๊ฐ€ ์—†์—ˆ๋˜๊ฑธ๊นŒ? ์ง€๊ธˆ ๋‚˜์˜ ์„ค๊ณ„๋กœ๋Š” ์ด ์‚ฌ์šฉ๋ฒ•์€ ํ”„๋กœํ† ์ฝœ์— ๊ฐ€๊น์ง€ ์ƒ์†์ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹˜โ€ฆ
  • ์Šˆํผํด๋ž˜์Šค์˜ ์—ญํ•  - ์ง€๊ธˆ ๊ฑฐ์˜ Beverage๋Š” ์—ญํ• ์ด ์—†์Œ!

2018.02.04

TIL

  • ์œ ๋‹›ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋‹ˆ๊นŒ ํ…Œ์ŠคํŠธ๊ฐ€ ์ด์ƒํ•ด์„œ ๋ฒค๋”ฉ๋จธ์‹ ๊ณผ stockController์˜ ๊ด€๊ณ„๋ฅผ ์กฐ๊ธˆ ๋ฐ”๊ฟ”์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.
    • stockController์™€ ๋ฒค๋”ฉ๋จธ์‹ ์ด ๋ชจ๋‘ [Beverage]๋ฅผ ๋ฐ›์•„์„œ initํ•˜๊ณ , stockController๊ฐ€ ๋”ฐ๋กœ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ฐ”๊พธ๋Š” ๋™์ž‘์„ ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ณ  ๋‚ด๋ถ€์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„์ด๋ฏ€๋กœ, vendingMachine์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฒŒ ๋งž๋Š” ๊ฒƒ ๊ฐ™์Œ > [Beverage]๋กœ ์žํŒ๊ธฐ๋ฅผ initํ•˜๊ณ  ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ฐ”๊ฟ”์„œ stockController๋ฅผ ์ดˆ๊ธฐํ™”
    • vendingMachine์—์„œ, ๊ฒฐ๊ณผ์ ์œผ๋กœ stock์„ ๋ฆฌํ„ดํ•ด์•ผํ•˜๋Š”๋ฉ”์†Œ๋“œ (์œ ํ†ต๊ธฐํ•œ ์ง€๋‚œ ์ œํ’ˆ ์ฒดํฌ, ํ˜„์žฌ๊ธˆ์•ก์œผ๋กœ ๊ตฌ๋งค ๊ฐ€๋Šฅํ•œ ์Œ๋ฃŒ์ˆ˜ ์ฒดํฌ ๋“ฑ๋“ฑ..) ์ด๋Ÿฐ๊ฒŒ stockController๊ฐ€ stock์„ ๊ฐ€์ง€๊ณ ์žˆ๊ณ  stock์„ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋™์ž‘์„ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค๋ณด๋‹ˆ ์ด์ƒํ•˜๊ฒŒ ์ €๋Ÿฐ ๋ฉ”์†Œ๋“œ์—์„œ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋ฆฌํ„ดํ•˜๊ฒŒ๋งŒ๋“ค์–ด์กŒ๋‹คโ€ฆ ์ด๋ฅผ stock์„ ๋ฆฌํ„ดํ•˜๋„๋ก ๋งŒ๋“ค๊ฒƒ.

Comments