ν”„λ‘œκ·Έλž˜λ°

[TIL] ν΄λ¦°μ½”λ“œ(Clean Code) - 5μž₯. ν˜•μ‹ λ§žμΆ”κΈ°

2022. 2. 28. 15:32
λ°˜μ‘ν˜•

πŸ“† TIL (Today I Learned) λ‚ μ§œ

2022.02.28

πŸ“š 였늘 읽은 λ²”μœ„

5μž₯. ν˜•μ‹ λ§žμΆ”κΈ°

πŸ“ μ±…μ—μ„œ κΈ°μ–΅ν•˜κ³  싢은 λ‚΄μš©

  • ν˜•μ‹μ„ λ§žμΆ”λŠ” λͺ©μ  : 였랜 μ‹œκ°„μ΄ μ§€λ‚˜ μ›λž˜ μ½”λ“œμ˜ 흔적을 더 이상 찾아보기 μ–΄λ €μšΈ μ •λ„λ‘œ μ½”λ“œκ°€ λ°”λ€Œμ–΄λ„ 맨 처음 μž‘μ•„λ†“μ€ κ΅¬ν˜„ μŠ€νƒ€μΌκ³Ό 가독성 μˆ˜μ€€μ€ μœ μ§€λ³΄μˆ˜ μš©μ΄μ„±κ³Ό ν™•μž₯성에 계속 영ν–₯을 λ―ΈμΉœλ‹€. μ›λž˜ μ½”λ“œλŠ” μ‚¬λΌμ§ˆμ§€λΌλ„ 개발자의 μŠ€νƒ€μΌκ³Ό κ·œμœ¨μ€ 사라지지 μ•ŠλŠ”λ‹€. (p.96)
  • μ μ ˆν•œ ν–‰ 길이λ₯Ό μœ μ§€ν•˜λΌ : 500쀄을 λ„˜μ§€ μ•Šκ³  λŒ€λΆ€λΆ„ 200쀄 정도인 νŒŒμΌλ‘œλ„ μ»€λ‹€λž€ μ‹œμŠ€ν…œμ„ ꡬ좕할 수 μžˆλ‹€λŠ” 사싀이닀. (FitNessesλŠ” 50,000쀄에 μœ‘λ°•ν•˜λŠ” μ‹œμŠ€ν…œμ΄λ‹€.) λ°˜λ“œμ‹œ 지킬 μ—„κ²©ν•œ κ·œμΉ™μ€ μ•„λ‹ˆμ§€λ§Œ λ°”λžŒμ§ν•œ κ·œμΉ™μœΌλ‘œ μ‚ΌμœΌλ©΄ μ’‹κ² λ‹€. 일반적으둜 큰 νŒŒμΌλ³΄λ‹€ μž‘μ€ 파일이 μ΄ν•΄ν•˜κΈ° 쉽닀. (p.97)
  • μ‹ λ¬Έ κΈ°μ‚¬μ²˜λŸΌ μž‘μ„±ν•˜λΌ : μ†ŒμŠ€ 파일 첫 뢀뢄은 고차원 κ°œλ…κ³Ό μ•Œκ³ λ¦¬μ¦˜μ„ μ„€λͺ…ν•œλ‹€. μ•„λž˜λ‘œ λ‚΄λ €κ°ˆμˆ˜λ‘ μ˜λ„λ₯Ό μ„Έμ„Έν•˜κ²Œ λ¬˜μ‚¬ν•œλ‹€. λ§ˆμ§€λ§‰μ—λŠ” κ°€μž₯ 저차원 ν•¨μˆ˜μ™€ μ„ΈλΆ€ 내역이 λ‚˜μ˜¨λ‹€. (p.98)
  • 수직 거리 : μ„œλ‘œ λ°€μ ‘ν•œ κ°œλ…μ€ μ„Έλ‘œλ‘œ κ°€κΉŒμ΄ 둬야 ν•œλ‹€. λ¬Όλ‘  두 κ°œλ…μ΄ μ„œλ‘œ λ‹€λ₯Έ νŒŒμΌμ— μ†ν•œλ‹€λ©΄ κ·œμΉ™μ΄ ν†΅ν•˜μ§€ μ•ŠλŠ”λ‹€. ν•˜μ§€λ§Œ νƒ€λ‹Ήν•œ κ·Όκ±°κ°€ μ—†λ‹€λ©΄ μ„œλ‘œ λ°€μ ‘ν•œ κ°œλ…μ€ ν•œ νŒŒμΌμ— 속해야 λ§ˆλ•…ν•˜λ‹€. 이게 λ°”λ‘œ protected λ³€μˆ˜λ₯Ό ν”Όν•΄μ•Ό ν•˜λŠ” 이유 쀑 ν•˜λ‚˜λ‹€. 같은 νŒŒμΌμ— 속할 μ •λ„λ‘œ λ°€μ ‘ν•œ, 두 κ°œλ…μ€ μ„Έλ‘œ 거리둜 연관성을 ν‘œν˜„ν•œλ‹€. μ—¬κΈ°μ„œ μ—°κ΄€μ„±μ΄λž€ ν•œ κ°œλ…μ„ μ΄ν•΄ν•˜λŠ” 데 λ‹€λ₯Έ κ°œλ…μ΄ μ€‘μš”ν•œ 정도닀. 연관성이 κΉŠμ€ 두 κ°œλ…μ΄ 멀리 λ–¨μ–΄μ Έ 있으면 μ½”λ“œλ₯Ό μ½λŠ” μ‚¬λžŒμ΄ μ†ŒμŠ€ 파일과 클래슀λ₯Ό μ—¬κΈ°μ €κΈ° λ’€μ§€κ²Œ λœλ‹€. (p.101)
  • 쒅속 ν•¨μˆ˜ : ν•œ ν•¨μˆ˜κ°€ λ‹€λ₯Έ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•œλ‹€λ©΄ 두 ν•¨μˆ˜λŠ” μ„Έλ‘œλ‘œ κ°€κΉŒμ΄ λ°°μΉ˜ν•œλ‹€. λ˜ν•œ κ°€λŠ₯ν•˜λ‹€λ©΄ ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜λ₯Ό ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜λ³΄λ‹€ λ¨Όμ € λ°°μΉ˜ν•œλ‹€. 그러면 ν”„λ‘œκ·Έλž¨μ΄ μžμ—°μŠ€λŸ½κ²Œ μ½νžŒλ‹€. κ·œμΉ™μ„ μΌκ΄€μ μœΌλ‘œ μ μš©ν•œλ‹€λ©΄ λ…μžλŠ” 방금 ν˜ΈμΆœν•œ ν•¨μˆ˜κ°€ μž μ‹œ 후에 μ •μ˜λ˜λ¦¬λΌλŠ” 사싀을 μ˜ˆμΈ‘ν•œλ‹€. (p.104)
  • μ„Έλ‘œ μˆœμ„œ : μ‹ λ¬Έ 기사와 λ§ˆμ°¬κ°€μ§€λ‘œ κ°€μž₯ μ€‘μš”ν•œ κ°œλ…μ„ κ°€μž₯ λ¨Όμ € ν‘œν˜„ν•œλ‹€. κ°€μž₯ μ€‘μš”ν•œ κ°œλ…μ„ ν‘œν˜„ν•  λ•ŒλŠ” μ„Έμ„Έν•œ 사항을 μ΅œλŒ€ν•œ λ°°μ œν•œλ‹€. μ„Έμ„Έν•œ 사항은 κ°€μž₯ λ§ˆμ§€λ§‰μ— ν‘œν˜„ν•œλ‹€. 그러면 λ…μžκ°€ μ†ŒμŠ€ νŒŒμΌμ—μ„œ 첫 ν•¨μˆ˜ λͺ‡ 개만 읽어도 κ°œλ…μ„ νŒŒμ•…ν•˜κΈ° μ‰¬μ›Œμ§„λ‹€. μ„Έμ„Έν•œ μ‚¬ν•­κΉŒμ§€ νŒŒκ³ λ“€ ν•„μš”κ°€ μ—†λ‹€. (p.107)
  • νŒ€ κ·œμΉ™ : νŒ€μ€ ν•œ κ°€μ§€ κ·œμΉ™μ— ν•©μ˜ν•΄μ•Ό ν•œλ‹€. 그리고 λͺ¨λ“  νŒ€μ›μ€ κ·Έ κ·œμΉ™μ„ 따라야 ν•œλ‹€. κ·Έλž˜μ•Ό μ†Œν”„νŠΈμ›¨μ–΄κ°€ 일관적인 μŠ€νƒ€μΌμ„ 보인닀. 개개인이 λ”°λ‘œκ΅­λ°₯처럼 λ§˜λŒ€λ‘œ μ§œλŒ€λŠ” μ½”λ“œλŠ” ν”Όν•΄μ•Ό ν•œλ‹€. (p.113)

πŸ˜€ 였늘 읽은 μ†Œκ° 및 λ– μ˜€λ₯΄λŠ” 생각

  • ν˜•μ‹ λ§žμΆ”κΈ° λΆ€λΆ„μ˜ λ‚΄μš©λ“€μ€ λŒ€λΆ€λΆ„ λ‚΄κ°€ 계속 μ‚¬μš©ν•΄μ˜€λ˜ ν˜•μ‹μ΄μ—ˆμ–΄μ„œ λ‚˜λ¦„ λ§Œμ‘±μŠ€λŸ¬μ› λ‹€.
  • λΉˆν–‰μ˜ 경우 쑰금 기쀀이 μ• λ§€ν•œ 뢀뢄이 μžˆμ—ˆλŠ”λ° μ΄λ²ˆμ— 기쀀이 ν™•μ‹€ν•΄μ‘Œλ‹€. 계속 이 기쀀을 κ³ μˆ˜ν•΄ λ‚˜κ°€μ•Όκ² λ‹€.
  • 수직 거리 뢀뢄은 곡감이 많이 됐닀. 전에 μ–΄λ–€ μ†ŒμŠ€ μ½”λ“œλ₯Ό 읽으며 λ”°λΌκ°€λ˜ 일이 μžˆμ—ˆλŠ”λ° 계속 μ—¬κΈ° ν˜ΈμΆœν•˜κ³  μ €κΈ° ν˜ΈμΆœν•˜λ©΄μ„œ μ™”λ‹€κ°”λ‹€ ν•˜λ‹€ λ³΄λ‹ˆκΉŒ λ‚˜μ€‘μ—” μ–΄λ”œ 보고 μžˆμ—ˆλŠ”μ§€ 길을 μžƒλŠ” κ²½μš°κ°€ μžˆμ—ˆλ‹€. λ‚΄κ°€ μ†ŒμŠ€ μ½”λ“œ μ½λŠ” λŠ₯λ ₯이 많이 λ–¨μ–΄μ Έμ„œ κ·ΈλŸ°κ°€ ν–ˆμ—ˆλŠ”λ° 수직 거리와 쒅속 ν•¨μˆ˜, μ„Έλ‘œ μˆœμ„œ 뢀뢄을 μ½μ–΄λ³΄λ‹ˆκΉŒ κΌ­ 그런 κ²ƒλ§Œμ€ μ•„λ‹ˆμ—ˆκ² λ‹€ μƒκ°ν–ˆλ‹€. λ‚΄κ°€ μ½”λ“œ μž‘μ„±μ„ ν•˜λŠ” κ²½μš°μ—λŠ” κ·Έλ ‡κ²Œ μ—¬κΈ°μ €κΈ° μ ν”„ν•˜λ©΄μ„œ 길을 μžƒκ²Œ λ§Œλ“œλŠ” 일은 μ—†κ²Œ ν•΄μ•Όμ§€.
λ°˜μ‘ν˜•