κ°œλ°œμ„œμ 

[클린 μ•„ν‚€ν…μ²˜] 5λΆ€. μ•„ν‚€ν…μ²˜

GaGah 2022. 2. 22. 21:04

🍎 ν…ŒμŠ€νŠΈ 경계

ν…ŒμŠ€νŠΈλŠ” μ‹œμŠ€ν…œμ˜ 일뢀이고, μ•„ν‚€ν…μ²˜μ—λ„ κ΄€μ—¬ν•œλ‹€.

 

 

🍊 ν…ŒμŠ€νŠΈμ˜ νŠΉμ„±

1) ν…ŒμŠ€νŠΈλŠ” μ˜μ‘΄μ„± κ·œμΉ™μ„ λ”°λ₯Έλ‹€.

- ν…ŒμŠ€νŠΈλŠ” 세뢀적, ꡬ체적인 κ²ƒμœΌλ‘œ μ˜μ‘΄μ„±μ€ 항상 ν…ŒμŠ€νŠΈ λŒ€μƒμ΄ λ˜λŠ” μ½”λ“œλ₯Ό ν–₯ν•œλ‹€.

- μ‹€μ œλ‘œ ν…ŒμŠ€νŠΈλŠ” μ•„ν‚€ν…μ²˜μ—μ„œ κ°€μž₯ λ°”κΉ₯μͺ½ μ›μœΌλ‘œ 생각할 수 μžˆλ‹€.

- μ‹œμŠ€ν…œ λ‚΄λΆ€μ˜ μ–΄λ–€ 것도 ν…ŒμŠ€νŠΈμ—λŠ” μ˜μ‘΄ν•˜μ§€ μ•ŠμœΌλ©°, ν…ŒμŠ€νŠΈλŠ” μ‹œμŠ€ν…œμ˜ μ»΄ν¬λ„ŒνŠΈλ₯Ό ν–₯ν•΄, 항상 μ›μ˜ μ•ˆμͺ½μœΌλ‘œ μ˜μ‘΄ν•œλ‹€.

 

2) ν…ŒμŠ€νŠΈλŠ” λ…λ¦½μ μœΌλ‘œ 배포 κ°€λŠ₯ν•˜λ‹€.

- λŒ€λ‹€μˆ˜μ˜ 경우 ν…ŒμŠ€νŠΈλŠ” ν…ŒμŠ€νŠΈ μ‹œμŠ€ν…œμ—λ§Œ λ°°ν¬ν•˜λ©°, μƒμš© μ‹œμŠ€ν…œμ—λŠ” λ°°ν¬ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

3) ν…ŒμŠ€νŠΈλŠ” μ‹œμŠ€ν…œ μ»΄ν¬λ„ŒνŠΈ 쀑 κ°€μž₯ κ³ λ¦½λ˜μ–΄μžˆλ‹€. 

- ν…ŒμŠ€νŠΈκ°€ μ‹œμŠ€ν…œ μš΄μ˜μ— κΌ­ ν•„μš”ν•˜μ§€ μ•Šλ‹€.

 

 

ν•˜μ§€λ§Œ, κ·Έλ ‡λ‹€κ³  ν•΄μ„œ μ•„ν‚€ν…μ²˜ 섀계 μ‹œ, ν…ŒμŠ€νŠΈλ₯Ό 섀계 λ²”μœ„ 밖에 μžˆλ‹€κ³  μ—¬κΈ°λ©΄ μ•ˆλœλ‹€. 

 

🍊 이유

μ‹œμŠ€ν…œμ— κ°•ν•˜κ²Œ κ²°ν•©λœ ν…ŒμŠ€νŠΈλΌλ©΄ μ‹œμŠ€ν…œμ΄ 변경될 λ•Œ ν•¨κ»˜ λ³€κ²½λ˜μ–΄μ•Ό ν•œλ‹€.

- μ‹œμŠ€ν…œμ˜ μ–΄λ–€ ν•œ 뢀뢄을 살짝 κ±΄λ“œλ Έμ„ λ•Œ, μ•½ 1000개의 ν…ŒμŠ€νŠΈλ₯Ό μˆ˜μ •ν•΄μ•Ό ν•œλ‹€λ©΄?

- 변동 κ°€λŠ₯성이 높은 것듀에 μ˜μ‘΄ν•˜μ§€ 말아야 ν•œλ‹€.

 

🍊 ν…ŒμŠ€νŠΈ API

결합을 μ—†μ• κΈ° μœ„ν•΄ ν…ŒμŠ€νŠΈμš© API λ₯Ό λ§Œλ“€λ©΄ λœλ‹€. 

- ν…ŒμŠ€νŠΈ API의 역할은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ꡬ쑰λ₯Ό ν…ŒμŠ€νŠΈλ‘œλΆ€ν„° μˆ¨κΈ°λŠ” 데 μžˆλ‹€.

- 이 것을 λ§Œλ“€λ©΄, μƒμš© μ½”λ“œλ₯Ό λ¦¬νŒ©ν† λ§ν•˜κ±°λ‚˜ μ§„ν™”μ‹œν‚€λ”λΌλ„ ν…ŒμŠ€νŠΈμ—λŠ” μ „ν˜€ 영ν–₯을 주지 μ•ŠλŠ”λ‹€.

 

 

 

🍏 클린 μž„λ² λ””λ“œ μ•„ν‚€ν…μ²˜


μ†Œν”„νŠΈμ›¨μ–΄λŠ” 닳지 μ•Šμ§€λ§Œ, νŽŒμ›¨μ–΄μ™€ ν•˜λ“œμ›¨μ–΄μ— λŒ€ν•œ μ˜μ‘΄μ„±μ„ κ΄€λ¦¬ν•˜μ§€ μ•ŠμœΌλ©΄ μ•ˆμœΌλ‘œλΆ€ν„° 파괴될 수 μžˆλ‹€.

ν˜„μ‹€ : ν•˜λ“œμ›¨μ–΄λŠ” κ³„μ†ν•΄μ„œ λ°œμ „ν•˜κ³ , 이에 따라 μž„λ² λ””λ“œ μ½”λ“œλ₯Ό ꡬ쑰화할 수 μžˆμ–΄μ•Ό ν•œλ‹€. 

 

" νŽŒμ›¨μ–΄λ₯Ό μˆ˜μ—†μ΄ μ–‘μ‚°ν•˜λŠ” 일을 λ©ˆμΆ”κ³ , μ½”λ“œμ—κ²Œ 유효 수λͺ…을 길게 늘릴 수 μžˆλŠ” 기회λ₯Ό 주어라"

 

🍊 μ™œ 잠재적인 μž„λ² λ””λ“œ μ†Œν”„νŠΈμ›¨μ–΄κ°€ νŽŒμ›¨μ–΄λ‘œ λ³€ν• κΉŒ? 

λ™μž‘μ— λ§Žμ€ 주의λ₯Ό 기울이고, μœ μ§€λ³΄μˆ˜λ˜λ„λ‘ κ΅¬μ‘°ν™”ν•˜λŠ” λ°λŠ” 신경쓰지 μ•ŠκΈ° λ•Œλ¬Έμ΄λ‹€. 

 

 

🍊 클린 μž„λ² λ””λ“œ μ•„ν‚€ν…μ²˜λž€?

1) ν…ŒμŠ€νŠΈν•˜κΈ° μ‰¬μš΄ μ•„ν‚€ν…μ²˜

  • μ†Œν”„νŠΈμ›¨μ–΄μ™€ νŽŒμ›¨μ–΄κ°€ μ„œλ‘œ μ„žμ΄λŠ” 일(μ•ˆν‹° νŒ¨ν„΄)은 변화에 μ €ν•­ν•œλ‹€.
  • λ³€κ²½ν•˜κΈ° μ–΄λ €μšΈ 뿐 μ•„λ‹ˆλΌ μœ„ν—˜μ„ μˆ˜λ°˜ν•˜μ—¬ λ•Œλ‘œλŠ” μ˜λ„μΉ˜ μ•Šμ€ κ²°κ³Όλ₯Ό λΆˆλŸ¬μ˜¨λ‹€.
  • ν•˜λ“œμ›¨μ–΄λŠ” 세뢀사항이닀.

 

 

2) HAL(ν•˜λ“œμ›¨μ–΄ 좔상화 계측) μ‚¬μš©μžμ—κ²Œ ν•˜λ“œμ›¨μ–΄ 세뢀사항을 λ“œλŸ¬λ‚΄μ§€ 말라. 

  • HAL을 μ œλŒ€λ‘œ λ§Œλ“€μ—ˆλ‹€λ©΄, 타깃에 상관없이 ν…ŒμŠ€νŠΈν•  수 μžˆλ‹€.
  • ν”„λ‘œμ„ΈμŠ€λŠ” 세뢀사항이닀.
  • μš΄μ˜μ²΄μ œλŠ” 세뢀사항이닀.

 

3) μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν†΅ν•˜κ³  λŒ€μ²΄ κ°€λŠ₯성을 λ†’μ΄λŠ” λ°©ν–₯으둜 ν”„λ‘œκ·Έλž˜λ°ν•˜λΌ

  • HAL, OSAL, μ£Όμš” 계측 내뢀에 μ±…μ—μ„œ μ„€λͺ…ν•œ 원칙듀을 μ μš©ν•  수 있, μ•„λ‹ˆ ν•΄μ•Όν•œλ‹€.
  • 관심사λ₯Ό λΆ„λ¦¬μ‹œν‚€κ³  μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν™œμš©ν•˜μ—¬ λŒ€μ²΄ κ°€λŠ₯성을 λ†’μ΄λŠ” λ°©ν–₯으둜 ν”„λ‘œκ·Έλž˜λ°ν•˜μž.

 

4) DRY 원칙 : 쑰건뢀 컴파일 μ§€μ‹œμžλ₯Ό λ°˜λ³΅ν•˜μ§€ 말라.

  • μ½”λ“œλ₯Ό λ°˜λ³΅ν•˜λŠ” 일은 λ°˜λ³΅ν•˜μ§€ 말라
  • ν•˜λ“œμ›¨μ–΄ 좔상화 계측을 μ‚¬μš©ν•˜μ—¬ ν•˜λ“œμ›¨μ–΄ μœ ν˜•μ„ 숨기자.
  • λ§Œμ•½ 이 HAL이 쑰건뢀 컴파일 λŒ€μ‹  μ‚¬μš©ν•  수 μžˆλŠ” 일련의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•œλ‹€λ©΄, μš°λ¦¬λŠ” 링컀 λ˜λŠ” μ–΄λ–€ ν˜•νƒœμ˜ μ‹€μ‹œκ°„ 바인딩을 μ‚¬μš©ν•΄μ„œ μ†Œν”„νŠΈμ›¨μ–΄μ™€ ν•˜λ“œμ›¨μ–΄λ₯Ό μ—°κ²°ν•  수 μžˆλ‹€.
LIST