본문으둜 κ±΄λ„ˆλ›°κΈ°

πŸš€ ν…ŒμŠ€νŠΈ 주도 개발둜 λ°°μš°λŠ” 객체 지ν–₯ 섀계와 μ‹€μ²œ

πŸ“š μ±… 정보​

🎯 진행 방법​

  • 책을 읽고 μŠ€ν„°λ””λ₯Ό 진행
  • 책을 읽으며 repository에 μ •λ¦¬ν•œλ‹€.

🐣 Chapter 1: ν…ŒμŠ€νŠΈ 주도 개발의 핡심은 무엇인가?​

  • ν•™μŠ΅ κ³Όμ •μœΌλ‘œμ„œμ˜ μ†Œν”„νŠΈμ›¨μ–΄ 개발
  • ν”Όλ“œλ°±μ€ κ°€μž₯ 기본적인 도ꡬ닀
  • λ³€ν™”λ₯Ό λ•λŠ” μ‹€μ²œλ²•
  • ν…ŒμŠ€νŠΈ 주도 개발 간단 정리
  • μ’€ 더 큰 κ·Έλ¦Ό
  • μ „ ꡬ간 ν…ŒμŠ€νŠΈ
  • ν…ŒμŠ€νŠΈμ˜ μˆ˜μ€€
  • μ™ΈλΆ€ ν’ˆμ§ˆκ³Ό λ‚΄λΆ€ ν’ˆμ§ˆ

🐣 Chapter 2: 객체λ₯Ό ν™œμš©ν•œ ν…ŒμŠ€νŠΈ 주도 κ°œλ°œβ€‹

  • 객체망
  • κ°’κ³Ό 객체
  • λ©”μ‹œμ§€λ₯Ό λ”°λ₯΄λΌ
  • 묻지 말고 λ§ν•˜λΌ
  • κ·Έλž˜λ„ 가끔은 물어라
  • ν˜‘λ ₯ 객체의 λ‹¨μœ„ ν…ŒμŠ€νŠΈ
  • λͺ© 객체λ₯Ό ν™œμš©ν•œ TDD 지원

🐣 Chapter 3: 도ꡬ μ†Œκ°œβ€‹

  • κ°„λž΅ν•œ JUnit 4 μ†Œκ°œ
  • ν–„ν¬λ ˆμŠ€νŠΈ λ§€μ²˜μ™€ assertThat()
  • jMock2: λͺ© 객체

🐣 Chapter 4: ν…ŒμŠ€νŠΈ 주도 μ£ΌκΈ° μ‹œμž‘β€‹

  • μš°μ„  λ™μž‘ν•˜λŠ” 골격을 λŒ€μƒμœΌλ‘œ ν…ŒμŠ€νŠΈν•˜λΌ
  • λ™μž‘ν•˜λŠ” 골격의 μ™Έν˜• κ²°μ •
  • ν”Όλ“œλ°± μ†ŒμŠ€ ꡬ좜
  • λΆˆν™•μ‹€μ„±μ€ 일찍 λ“œλŸ¬λ‚΄λΌ

🐣 Chapter 5: ν…ŒμŠ€νŠΈ 주도 개발 주기의 μœ μ§€β€‹

  • 각 κΈ°λŠ₯을 인수 ν…ŒμŠ€νŠΈλ‘œ μ‹œμž‘ν•˜λΌ
  • νšŒκ·€λ₯Ό ν¬μ°©ν•˜λŠ” ν…ŒμŠ€νŠΈμ™€ 진행 상황을 μΈ‘μ •ν•˜λŠ” ν…ŒμŠ€νŠΈλ₯Ό λΆ„λ¦¬ν•˜λΌ
  • ν…ŒμŠ€νŠΈλ₯Ό κ°€μž₯ κ°„λ‹¨ν•œ 성곡 μΌ€μ΄μŠ€λ‘œ μ‹œμž‘ν•˜λΌ
  • 읽고 μ‹Άμ–΄ ν•  ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜λΌ
  • ν…ŒμŠ€νŠΈκ°€ μ‹€νŒ¨ν•˜λŠ” 것을 μ§€μΌœλ³΄λΌ
  • μž…λ ₯μ—μ„œ 좜λ ₯ μˆœμ„œλ‘œ κ°œλ°œν•˜λΌ
  • λ©”μ„œλ“œκ°€ μ•„λ‹Œ ν–‰μœ„λ₯Ό λ‹¨μœ„ ν…ŒμŠ€νŠΈν•˜λΌ
  • ν…ŒμŠ€νŠΈμ— κ·€λ₯Ό 기울이라
  • 주기의 λ―Έμ„Έ μ‘°μ •

🐣 Chapter 6: 객체 지ν–₯ μŠ€νƒ€μΌβ€‹

  • μœ μ§€ λ³΄μˆ˜μ„±μ„ κ³ λ €ν•œ 섀계
  • λ‚΄λΆ€ λŒ€ 이웃
  • 단일 μ±…μž„ 원칙
  • 객체 μ΄μ›ƒμ˜ μœ ν˜•
  • μ „μ²΄λŠ” λΆ€λΆ„μ˜ 합보닀 λ‹¨μˆœν•΄μ•Ό ν•œλ‹€
  • μ½˜ν…μŠ€νŠΈ 독립성
  • μ˜¬λ°”λ₯Έ 정보 감좔기

🐣 Chapter 7: 객체 지ν–₯ μ„€κ³„μ˜ 달성​

  • ν…ŒμŠ€νŠΈλ₯Ό λ¨Όμ € μž‘μ„±ν•˜λŠ” 것이 섀계에 μ–΄λ–»κ²Œ 도움이 λ˜λŠ”κ°€
  • λΆ„λ₯˜λ³΄λ‹€ μ˜μ‚¬μ†Œν†΅
  • κ°’ νƒ€μž…
  • κ°μ²΄λŠ” μ–΄λ””μ—μ„œ μ˜€λŠ”κ°€?
  • μΈν„°νŽ˜μ΄μŠ€λ‘œ 관계λ₯Ό μ‹λ³„ν•˜λΌ
  • μΈν„°νŽ˜μ΄μŠ€λ„ λ¦¬νŒ©ν„°λ§ν•˜λΌ
  • 객체λ₯Ό ꡬ성해 μ‹œμŠ€ν…œμ˜ ν–‰μœ„λ₯Ό κΈ°μˆ ν•˜λΌ
  • κ³ μˆ˜μ€€ ν”„λ‘œκ·Έλž˜λ°μ„ μœ„ν•œ λŒ€λΉ„
  • 그럼 ν΄λž˜μŠ€λŠ”?

🐣 Chapter 8: μ„œλ“œ νŒŒν‹° μ½”λ“œλ₯Ό 기반으둜 ν•œ κ°œλ°œβ€‹

  • μ†Œμœ ν•œ νƒ€μž…μ— λŒ€ν•΄μ„œλ§Œ λͺ© 객체λ₯Ό μ μš©ν•˜λΌ
  • 톡합 ν…ŒμŠ€νŠΈμ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 객체에 λͺ© 객체λ₯Ό μ μš©ν•˜λΌ

🐣 Chapter 9: 경맀 μŠ€λ‚˜μ΄νΌ 개발 μ˜λ’°β€‹

  • 맨 μ²˜μŒλΆ€ν„° μ‹œμž‘ν•˜κΈ°
  • κ²½λ§€μ™€μ˜ μƒν˜Έ μž‘μš©
  • μ•ˆμ „ν•˜κ²Œ μ§„ν–‰ν•˜κΈ°
  • 이건 μ§„μ§œκ°€ μ•„λ‹ˆμ•Ό

🐣 Chapter 10: λ™μž‘ν•˜λŠ” 골격​

  • 골격 μ‚¬μš© μ€€λΉ„
  • 졜초 ν…ŒμŠ€νŠΈ
  • λͺ‡ 가지 초기 선택

🐣 Chapter 11: 첫 ν…ŒμŠ€νŠΈ ν†΅κ³Όν•˜κΈ°β€‹

  • ν…ŒμŠ€νŠΈ 도ꡬ ꡬ좕
  • ν…ŒμŠ€νŠΈ μ‹€νŒ¨μ™€ 톡과
  • ν•„μš”ν•œ μ΅œμ†Œν•œμ˜ 것

🐣 Chapter 12: μž…μ°° 쀀비​

  • 전체적인 λ‚΄μš©μ€ 책을 μ°Έκ³  (P.125 ~ P.143)

🐣 Chapter 13: μŠ€λ‚˜μ΄νΌκ°€ μž…μ°°ν•˜λ‹€β€‹

  • 전체적인 λ‚΄μš©μ€ 책을 μ°Έκ³  (P.145 ~ P.159)

🐣 Chapter 14: μŠ€λ‚˜μ΄νΌκ°€ κ²½λ§€μ—μ„œ λ‚™μ°°ν•˜λ‹€β€‹

  • 전체적인 λ‚΄μš©μ€ 책을 μ°Έκ³  (P.161 ~ P.171)

🐣 Chapter 15: μ‹€μ œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν–₯해​

  • 전체적인 λ‚΄μš©μ€ 책을 μ°Έκ³  (P.173 ~ P.199)

🐣 Chapter 16: μ—¬λŸ¬ ν’ˆλͺ©μ— λŒ€ν•œ μŠ€λ‚˜μ΄ν•‘β€‹

  • 전체적인 λ‚΄μš©μ€ 책을 μ°Έκ³  (P.201 ~ P.218)

🐣 Chapter 17: Main 뢄석​

  • 전체적인 λ‚΄μš©μ€ 책을 μ°Έκ³  (P.219 ~ P.233)

🐣 Chapter 18: μ„ΈλΆ€ 사항 μ²˜λ¦¬β€‹

  • 전체적인 λ‚΄μš©μ€ 책을 μ°Έκ³  (P.235 ~ P.245)

🐣 Chapter 19: μ‹€νŒ¨ μ²˜λ¦¬β€‹

  • 전체적인 λ‚΄μš©μ€ 책을 μ°Έκ³  (P.247 ~ P.260)

🐣 Chapter 20: ν…ŒμŠ€νŠΈμ— κ·€ κΈ°μšΈμ΄κΈ°β€‹

  • λŒ€μ²΄ν•  수 μ—†λŠ” 객체에 λŒ€ν•΄ λͺ© 객체λ₯Ό μ μš©ν•΄μ•Ό ν•œλ‹€(λ§ˆλ²•μ„ 쓰지 μ•Šκ³ )
  • λ‘œκΉ…μ€ κΈ°λŠ₯이닀
  • 값에 λͺ© 객체λ₯Ό μ μš©ν•˜μ§€ 마라
  • λΉ„λŒ€ν•œ μƒμ„±μž
  • ν˜Όλ™λ˜λŠ” 객체
  • λ„ˆλ¬΄ λ§Žμ€ μ˜μ‘΄μ„±
  • λ„ˆλ¬΄ λ§Žμ€ μ˜ˆμƒ ꡬ문
  • ν…ŒμŠ€νŠΈκ°€ μš°λ¦¬μ—κ²Œ λ§ν•΄μ£ΌλŠ” 것(μ—¬λŸ¬λΆ„μ΄ κ·€ κΈ°μšΈμΈλ‹€λ©΄)
  • μ—μ œλŠ” 책을 μ°Έκ³ ν•˜μž

🐣 Chapter 21: ν…ŒμŠ€νŠΈ 가독성​

  • ν…ŒμŠ€νŠΈ 이름은 κΈ°λŠ₯을 κΈ°μˆ ν•œλ‹€
  • μ •κ·œ ν…ŒμŠ€νŠΈ ꡬ쑰
  • ν…ŒμŠ€νŠΈ μ½”λ“œμ˜ λŠ₯λ₯ ν™”
  • 단정과 μ˜ˆμƒ ꡬ문
  • λ¦¬ν„°λŸ΄κ³Ό λ³€μˆ˜

🐣 Chapter 22: λ³΅μž‘ν•œ ν…ŒμŠ€νŠΈ 데이터 λ§Œλ“€κΈ°β€‹

  • ν…ŒμŠ€νŠΈ 데이터 λΉŒλ”
  • λΉ„μŠ·ν•œ 객체 생성
  • λΉŒλ” μ‘°ν•©
  • νŒ©ν„°λ¦¬ λ©”μ„œλ“œλ₯Ό μ΄μš©ν•œ 도메인 λͺ¨λΈ κ°•μ‘°
  • μ‚¬μš© μ‹œμ μ—μ„œ 쀑볡 μ—†μ• κΈ°
  • μ˜μ‚¬μ†Œν†΅μ΄ μš°μ„ μ΄λ‹€

🐣 Chapter 23: ν…ŒμŠ€νŠΈ 진단​

  • μ‹€νŒ¨ν•˜λŠ” 섀계
  • μž‘κ³ , λ¬Έμ œμ— μ§‘μ€‘ν•˜κ³ , 이름을 잘 지은 ν…ŒμŠ€νŠΈ
  • μ„€λͺ…λ ₯ μžˆλŠ” 단정 λ©”μ‹œμ§€
  • 맀처λ₯Ό ν™œμš©ν•œ μ„ΈλΆ€ 사항 κ°•μ‘°
  • 자기 μ„œμˆ μ μΈ κ°’
  • λͺ…ν™•ν•˜κ²Œ κ°€κ³΅λœ κ°’
  • μΆ”μ μž 객체
  • μ˜ˆμƒμ΄ μΆ©μ‘±λμŒμ„ λͺ…μ‹œμ μœΌλ‘œ λ‹¨μ •ν•˜λΌ
  • 진단은 일급 κΈ°λŠ₯이닀

🐣 Chapter 24: ν…ŒμŠ€νŠΈ μœ μ—°μ„±β€‹

  • ν‘œν˜„μ΄ μ•„λ‹Œ 정보λ₯Ό μœ„ν•œ ν…ŒμŠ€νŠΈ
  • μ •ν™•ν•œ 단정
  • μ •ν™•ν•œ μ˜ˆμƒ ꡬ문
  • μ‹€ν—˜μš© μ₯ 객체