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

🌈 Chapter 18: μ„ΈλΆ€ 사항 처리

νŒŒμƒβ€‹

  • νŒŒμƒμ€ μ–΄λ–€ κ°œλ…μ„ μ‹λ³„ν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” μœ„μΉ˜μ§€μ •μž νƒ€μž…μœΌλ‘œ, μ½”λ“œ 규λͺ¨κ°€ 컀짐에 따라 κ΄€λ ¨ μžˆλŠ” μƒˆ κΈ°λŠ₯을 집어넣을 곳으둜 λ§ˆλ ¨ν•΄μ€€λ‹€.
public class Item {
public final String identifier;
public final int stopPrice;

public Item(String identifier, int stopPrice) {
this.identifier = identifier;
this.stopPrice = stopPrice;
}

// μ΄ν•˜ equals(), hashCode(), toString()
}

πŸ“š 고찰​

🎈 μ μ§„μ μœΌλ‘œ λ§Œλ“€μ–΄μ§€λŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€β€‹

  • 개발 막바지 λ‹¨κ³„μ—μ„œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό ꡉμž₯히 많이 λ³€κ²½ν•˜λŠ” κ²ƒμ²˜λŸΌ 보인닀. ν•˜μ§€λ§Œ 정닡은 "κ·Έλ•Œκ·Έλ•Œ λ‹€λ₯΄μ§€λ§Œ μƒκ°λ³΄λ‹€λŠ” μ„ νƒμ˜ 여지가 λ§Žλ‹€."이닀.
  • 이 예제처럼 κ°„λ‹¨ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 경우, μ‹œμž‘ν•  λ•Œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€μ˜ μ‚¬μš©μ„±κ³Ό 응집성을 확보할 수 μžˆλ„λ‘ μ’€ 더 μ„ΈλΆ€μ μœΌλ‘œ λ‹€λ“¬λŠ” 편이 더 타당할 것이닀. 특히 ν…ŒμŠ€νŠΈμ™€ μ½”λ“œλ₯Ό 무겁게 ν•˜μ§€ μ•Šκ³  μœ μ—°ν•˜κ²Œ κ΅¬μ‘°ν™”ν•˜λ©΄ λ³€ν™”ν•˜λŠ” μš”κ΅¬μ— λŒ€μ‘ν•  수 μžˆλ‹€λŠ” 점을 κ°•μ‘°ν•˜κ³  싢기도 ν•˜λ‹€.
  • μš”κ΅¬ 사항이 λ°”λ€λ‹€λŠ” 사싀을 μ•Œκ³  있으며, 특히 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 운영 ν™˜κ²½μ— λ°°μΉ˜ν•  λ•Œ κ·ΈλŸ¬ν•˜λ―€λ‘œ 변화에 λŒ€μ‘ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

🎈 μ—¬μ „νžˆ μœ νš¨ν•œ λ‹€λ₯Έ λͺ¨λΈλ§ 기법​

  • μƒνƒœ 전이 λ‹€μ΄μ–΄κ·Έλž¨μ˜ 쒋은 점은 μƒνƒœ 전이 λ‹€μ΄μ–΄κ·Έλž¨μ΄ ν…ŒμŠ€νŠΈμ— 직접 λŒ€μ‘ν•˜κΈ° λ•Œλ¬Έμ— μš°λ¦¬κ°€ λͺ¨λ“  κ°€λŠ₯성을 닀루고 μžˆμŒμ„ 보여쀄 수 μžˆλ‹€λŠ” 것이닀.
  • TDDλ₯Ό ν•˜κ³  μ–΄λ–»κ²Œ ν•΄μ•Ό 할ㄹ지 확신이 μ„œμ§€ μ•Šμ„ λ•ŒλŠ” λ•Œλ•Œλ‘œ λ˜λŒμ•„κ°€μ„œ 색인 μΉ΄λ“œλ₯Ό νŽΌμ²˜λ³΄κ±°λ‚˜ μƒν˜Έ μž‘μš©μ„ κ·Έλ €λ³΄λ©΄μ„œ μ˜¬λ°”λ₯Έ λ°©ν–₯으둜 λ‚˜μ•„κ°€λŠ” 데 도움을 얻을 수 μžˆλ‹€.

🎈 도메인 νƒ€μž…μ΄ λ¬Έμžμ—΄λ³΄λ‹€ 낫닀​

  • 도메인을 λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ν•˜λŠ” 수고λ₯Ό 아끼지 μ•Šμ•˜μ„ λ•Œ μ„ νƒμ˜ 폭이 μ’€ 더 넓어지기도 ν•œλ‹€.
  • 도메인 νƒ€μž…μ΄ String뿐 μ•„λ‹ˆλΌ μ»¬λ ‰μ…˜μ„ λΉ„λ‘―ν•΄ λ‹€λ₯Έ λ‚΄μž₯ νƒ€μž…κΉŒμ§€ 감싸도둝 μ •μ˜ν•˜λŠ” 편이 λ‚˜μ„ λ•Œκ°€ μžˆλ‹€. μš°λ¦¬κ°€ ν•΄μ•Ό ν•  일은 슀슀둜의 μΆ©κ³ λ₯Ό μžŠμ§€ μ•Šκ³  μ μš©ν•˜λŠ” 것이닀.