곡뢀 μ—°μŠ΅μž₯ :-)

TIL_20180423 ~ 20180430

|

2018.04.30

  • 4μ›” 회고
  • μΉ΄λ“œκ²Œμž„ CardDeckDelegate μ‹±κΈ€ν†€κ΅¬ν˜„
    class CardGameDelegate: CardGameManageable {
    
      static let defaultStackRange: CountableClosedRange = 1...7
      static let defaultStackNumber: Int = 7
    
      private static var sharedCardDeck = CardGameDelegate()
    
      private init() {
          cardDeck.shuffle()
          var stacks = [CardStack]()
          for numberOfCard in CardGameDelegate.defaultStackRange {
              let oneStack = cardDeck.makeStack(numberOf: numberOfCard)
              oneStack.sortDefaultStack()
              stacks.append(oneStack)
          }
          self.cardStacks = stacks
      }
    
      class func shared() -> CardGameDelegate {
          return sharedCardDeck
      }
      // μ•± λ‚΄ μ–΄λ–€ ν΄λž˜μŠ€μ—μ„œ 이 λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λ”λΌλ„ 이미 μ΄ˆκΈ°ν™”λœ sharedCardDeck만 리턴됨
      // μ΄λ•Œ μ΄ˆκΈ°ν™”λ‚˜ 객체생성은 자기 μžμ‹  (CardGameDelegate)만 슀슀둜 ν•  수 μžˆλ„λ‘ λ³΄ν˜Έλ˜μ–΄μžˆμŒ
    

4μ›” 회고

Good

  • μžνŒκΈ°μ™„μ„±!
  • μΉ΄λ“œκ²Œμž„λΆ€ν„° κΉƒν—™ μ΄μŠˆκ΄€λ¦¬λ₯Ό μ‚¬μš©ν•˜κΈ° μ‹œμž‘ν–ˆλŠ”λ° 적응됐닀. 큰 μš”κ΅¬μ‚¬ν•­λ„ λ‹¨κ³„λ³„λ‘œ μͺΌκ°œκ³  ν•˜λ‚˜μ˜ 이슈둜 κ΄€λ¦¬ν•˜λ‹ˆκΉŒ μˆ˜μ •μ‚¬ν•­ 관리와 ν”Όλ“œλ°±κ΄€λ¦¬κ°€ νŽΈν•΄μ§.
  • μ»€λ°‹λ©”μ‹œμ§€μ“°λŠ” 방법을 ν†΅μΌμ‹œν‚€κ³  μ΄μŠˆλ²ˆν˜Έμ™€ ν•¨κ»˜ 관리
    • μ»€λ°‹λ©”μ‹œμ§€λŠ” 항상 타이틀: κ°„λž΅ λ‚΄μš© ν˜•μ‹μœΌλ‘œ μ“°κ³  λ§Œμ•½ λ‚΄μš©μ΄ 길어지면 μ•„λž˜ μ€„λ‘œ λ‚΄λ €μ„œ λ‚΄μš©μ„ μ“΄λ‹€
  • λ·° - λ·°λͺ¨λΈμ˜ 관계와 λ§Œλ“œλŠ” 방법 이해함
    • μ±…μž„κ³Ό 역할이 λΆ„λͺ…해진닀: κ·Έλƒ₯ λ‹¨μˆœ MVC보닀 V-VM 관계λ₯Ό λ§Œλ“œλ‹ˆ 더 μ±…μž„κ³Ό κ΄€κ³„μ˜ 경계가 λͺ…ν™•ν•΄μ§€λŠ”κ²ƒκ°™μ•˜λ‹€. λ·°λͺ¨λΈμ— μžˆλŠ” λ‘œμ§λŒ€λ‘œ 바뀐 λ‚΄μš©μ„ λ·°λŠ” 그리기만 ν•˜λ©΄ λœλ‹€.
    • ν…ŒμŠ€νŠΈκ°€ κ°€λŠ₯해진닀: μ΄λ ‡κ²Œ 되면 λ·°λͺ¨λΈμ„ ν…ŒμŠ€νŠΈν•¨μœΌλ‘œμ¨ λ·°λ₯Ό 맀번 κ·Έλ €κ°€λ©΄μ„œ 결과화면을 λ³΄κ±°λ‚˜, ν”„λ¦°νŠΈλ‘œ κ·Έλ €μ§€λŠ” 값을 μ°μ–΄λ³΄λŠ” 1차원적인 λ°©λ²•μœΌλ‘œ 디버깅을 ν•˜μ§€ μ•Šμ•„λ„λœλ‹€.
    • λ˜ν•œ λ·°λͺ¨λΈμ„ λ§Œλ“€λ©΄μ„œ ν”„λ‘œν† μ½œμ— μ˜μ‘΄ν•˜λŠ” 방법 (SOLIDλ²•μΉ™μ—μ„œ L - λ‹€ν˜•μ„±)을 μ΄ν•΄ν•˜κ²Œλλ‹€.
    • λͺ¨λΈμ„ ν™•μž₯ κ°€λŠ₯ν•˜κ²Œ λ§Œλ“ λ‹€: 뷰와 λ·°λͺ¨λΈκ΄€κ³„μ—μ„œλŠ” λ·°κ°€ λ·°λͺ¨λΈμ„ κ΅¬ν˜„ν•œ 클래슀λ₯Ό μ†μ„±μœΌλ‘œ κ°–κ²Œλ˜λŠ”λ°, μ΄λ•Œ λ·°κ°€ λͺ¨λΈμ„ 직접 κ°€μ§€λŠ”κ²Œ μ•„λ‹ˆλΌ ν•΄λ‹Ή λͺ¨λΈν΄λž˜μŠ€κ°€ 상속(κ΅¬ν˜„)ν•˜κ³ μžˆλŠ” ν”„λ‘œν† μ½œ νƒ€μž…μ„ κ°€μ Έμ•Ό ν•œλ‹€.
    • μ΄λ ‡κ²Œ λͺ¨λΈν΄λž˜μŠ€λ₯Ό μΆ”μƒν™”ν•œ ν”„λ‘œν† μ½œμ΄ λ”°λ‘œ 있고, μ–΄λ–€ ν΄λž˜μŠ€κ°€ λͺ¨λΈλ‘œ μ˜€λ”λΌλ„ ν™•μž₯에 μ—΄λ €μžˆλŠ” ꡬ쑰λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ’‹λ‹€. μ΄λ ‡κ²Œ 되면 λ·°κ°€ 직접 λͺ¨λΈμ„ κ°€μ§€λŠ”κ²ƒμ΄ μ•„λ‹ˆλΌ ν”„λ‘œν† μ½œμ— μ˜μ‘΄ν•˜λŠ” μ•½ν•œ μ˜μ‘΄μ„±μ„ κ°–κ²Œλœλ‹€.

Bad

  • μ£Όλ§μ΄λ‚˜ μˆ˜μš”μΌκ°™μ€ μ—¬μœ μ‹œκ°„μ— 곡뢀λ₯Ό 많이 λͺ»ν–ˆλ‹€. 쉴땐 μ‰°λ‹€λŠ” ν•‘κ³„λ‘œ..
  • 근데 λ‚œ ν•˜λ‚˜μ˜ 배경지식이라도 μ€‘μš”ν•œ λΉ„μ „κ³΅μžλ‹ˆκ»˜β€¦
  • 일단은 도움이 μ•ˆλ˜λ„ 듀어놓고 λ΄λ†“μœΌλ©΄ μ–Έμ  κ°„ 정말 도움이 λ˜λŠ”κ²ƒ κ°™λ‹€.
  • 처음 λ“£κ±°λ‚˜ λ³Όλ•ŒλŠ” μ•„μ˜ˆ λͺ¨λ₯΄κ² λŠ” 말이 λ§Žμ€λ°, ν•œλ²ˆ 처음 λ³Ό λ•Œ 무슨 말인지 λͺ¨λ₯΄λ”라도 일단 봐두면 λ‚˜μ€‘μ— 적어도 μƒμ†Œν•˜μ§€λŠ” μ•ŠμœΌλ‹ˆ, μ²˜μŒλ³΄λ‹€λŠ” νŽΈν•œ 뢀뢄이 μžˆμ—ˆλ‹€.
  • 항상 κ·€λ₯Ό μ—΄κ³  λˆˆμ„ μ—΄μž!

Comments