[Clean Code] 2. 의미 μžˆλŠ” 이름

2023. 9. 25. 15:44γ†κΈ°μˆ  μ„œμ /Clean Code

728x90

 

μ˜λ„λ₯Ό λΆ„λͺ…νžˆ λ°ν˜€λΌ p.22 
쒋은 이름을 μ§€μœΌλ €λ©΄ μ‹œκ°„μ΄ κ±Έλ¦¬μ§€λ§Œ 쒋은 μ΄λ¦„μœΌλ‘œ μ ˆμ•½ν•˜λŠ” μ‹œκ°„μ΄ 훨씬 더 λ§Žλ‹€. 
κ·ΈλŸ¬λ―€λ‘œ 이름을 주의깊게 μ‚¬νŽ΄ 더 λ‚˜μ€ 이름이 λ– μ˜€λ₯΄λ©΄ κ°œμ„ ν•˜κΈ° λ°”λž€λ‹€. 그러면 (μžμ‹ μ„ 포함해) μ½”λ“œλ₯Ό μ½λŠ” μ‚¬λžŒμ΄ μ’€ 더 행볡해지리라. 

λ³€μˆ˜λ‚˜ ν•¨μˆ˜ 그리고 클래슀 이름을 지을 λ•Œ μ§ˆλ¬Έμ— λͺ¨λ‘ λ‹΅ ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€. 
1. λ³€μˆ˜(ν˜Ήμ€ λ©”μ„œλ“œλ‚˜ 클래슀)의 쑴재 μ΄μœ λŠ” ? 
2. μˆ˜ν–‰ κΈ°λŠ₯은 ? 
3. μ‚¬μš© 방법은 ? 
주석이 ν•„μš”ν•˜λ‹€λ©΄ μ˜λ„λ₯Ό λΆ„λͺ…ν•˜κ²Œ λ“œλŸ¬λ‚΄μ§€ λͺ»ν–ˆλ‹€λŠ” 말이닀. 

πŸ‘©‍πŸ’» μ§€κΈˆκΉŒμ§€ λ‚΄κ°€ 짰던 μ½”λ“œμ—μ„œ μ£Όμ„μœΌλ‘œ 의미λ₯Ό λ“œλŸ¬λ‚Έκ²Œ μ–Όλ§ˆλ‚˜ λ§Žμ€κ°€... μ§€κΈˆ λ‹Ήμž₯ λ‚΄κ°€ μš”μ¦˜ 진행 쀑인 ν”„λ‘œμ νŠΈμ—μ„œ ν•œ 클래슀만 듀어가도 λ°”λ‘œ 보일 것이닀... μ§€κΈˆ λ‹Ήμž₯ 그것뢀터 κ³ μΉ˜λŠ” κ²ƒμœΌλ‘œ Clean Code μ‹œμž‘ν•œλ‹€. 

 

 

 

κ·Έλ¦‡λœ 정보λ₯Ό ν”Όν•˜λΌ p.24
ν”„λ‘œκ·Έλž˜λ¨ΈλŠ” μ½”λ“œμ— κ·Έλ¦‡λœ λ‹¨μ„œλ₯Ό λ‚¨κ²¨μ„œλŠ” μ•ˆ λœλ‹€. κ·Έλ¦‡λœ λ‹¨μ„œλŠ” μ½”λ“œμ˜ 의미λ₯Ό 흐리기 λ•Œλ¬Έμ΄λ‹€. 
λ‚˜λ¦„λŒ€λ‘œ 널리 μ“°μ΄λŠ” μ˜λ―Έκ°€ μžˆλŠ” 단어λ₯Ό λ‹€λ₯Έ 의미둜 μ‚¬μš©ν•΄λ„ μ•ˆλœλ‹€. 

예λ₯Ό λ“€μ–΄ μ—¬λŸ¬ 계정을 그룹으둜 묢을 λ•Œ AccountList μ—μ„œ ListλŠ” ν”„λ‘œκ·Έλž˜λ¨Έμ—κ²Œ νŠΉμˆ˜ν•œ μ˜λ―Έμ΄λ‹€. μ‹€μ œ 계정을 λ‹΄λŠ” μ»¨ν…Œμ΄λ„ˆκ°€ Listκ°€ μ•„λ‹ˆλΌλ©΄ ν”„λ‘œκ·Έλž˜λ¨Έμ—κ²Œ κ·Έλ¦‡λœ 정보λ₯Ό μ£ΌλŠ” 것이닀. Listκ°€ μ•„λ‹ˆμ—ˆλ‹€λ©΄ Accounts λΌλ˜κ°€ AccountGroup μ΄λŸ°μ‹μœΌλ‘œ λͺ…λͺ…ν–ˆμ–΄μ•Ό ν•œλ‹€. 

λ˜ν•œ μ„œλ‘œ ν‘μ‚¬ν•œ 이름을 μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ ν•œλ‹€. 

μΌκ΄€μ„œμ΄ λ–¨μ–΄μ§€λŠ” ν‘œκΈ°λ²•μ€ κ·Έλ¦‡λœ μ •λ³΄μ΄λ―€λ‘œ μœ μ‚¬ν•œ ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•˜μž. 

μ΄λ¦„μœΌλ‘œ κ·Έλ¦‡λœ 정보λ₯Ό μ œκ³΅ν•˜λŠ” λ”μ°ν•œ μ˜ˆλ‘œλŠ” μ†Œλ¬Έμž Lκ³Ό λŒ€λΆ„μž Oκ°€ μžˆλ‹€. (πŸ‘©‍πŸ’» 이건 쑰금만 κ°œλ°œν•΄λ΄€λ‹€λ©΄ μš•ν•  사 상황이닀. λ‹€ν–‰νžˆ λ‚˜λŠ” ν•œλ²ˆλ„ Lκ³Ό Oλ₯Ό μ‚¬μš©ν•΄μ„œ ν—·κ°ˆλ Έλ˜ κ²½ν—˜μ€ μ—†λ‹€.. ^^ λ‹€ν–‰) 

 

 

 

의미 있게 κ΅¬λΆ„ν•˜λΌ p.25 
ProductInfo, ProductData 라고 λΆ€λ₯Έλ‹€λ©΄ κ°œλ…μ„ κ΅¬λΆ„ν•˜μ§€ μ•Šκ³  κ·Έλƒ₯ μ΄λ¦„λ§Œ λ‹¬λ¦¬ν•œκ²ƒμ΄λ‹€. 뭐가 뭔지 νŒŒμ•…μ΄ μ•ˆλ˜μ§€ μ•ŠλŠ”κ°€..!! Info, Data, a, an, the λŠ” μ˜λ―Έκ°€ λΆˆλΆ„λͺ…ν•œ λΆˆμš©μ–΄μ΄λ‹€. 
λΆˆμš©μ–΄λ₯Ό μΆ”κ°€ν•œ μ΄λ¦„μ—μ„œλŠ” μ•„λ¬΄λŸ° 정보λ₯Ό μ œκ³΅λ°›μ§€ λͺ»ν•œλ‹€.

λΆˆμš©μ–΄λŠ” 쀑볡이닀. NameStringκ³Ό Name 뭐가 λ‹€λ₯Έκ°€. Customer와 CustomerObject 차이λ₯Ό μ•Œκ² λŠ”κ°€? 
μ½λŠ” μ‚¬λžŒμ΄ 차이λ₯Ό μ•Œλ„λ‘ 이름을 지어라. 

 

 

 

λ°œμŒν•˜κΈ° μ‰¬μš΄ 이름을 μ‚¬μš©ν•˜λΌ p.27
μ‚¬λžŒλ“€μ€ 단어에 λŠ₯μˆ™ν•˜λ‹€. 우리 λ‘λ‡Œμ—μ„œ 상당 뢀뢄은 λ‹¨μ–΄λΌλŠ” κ°œλ…λ§Œ μ „μ μœΌλ‘œ μ²˜λ¦¬ν•œλ‹€. 
그리고 μ •μ˜μƒμœΌλ‘œ λ‹¨μ–΄λŠ” 발음이 κ°€λŠ₯ν•˜λ‹€. 말을  μ²˜λ¦¬ν•˜λ €κ³  λ°œλ‹¬ν•œ λ‘λ‡Œλ₯Ό ν™œμš©ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ μ•ˆνƒ€κΉŒμš΄ 손해닀. 
κ·ΈλŸ¬λ―€λ‘œ λ°œμŒν•˜κΈ° μ‰¬μš΄ 이름을 μ„ νƒν•˜λΌ. 

πŸ‘©‍πŸ’» λ‹€λ₯Έ λΆ„κ³Ό μ½”λ“œμ— λŒ€ν•΄ μ–˜κΈ°ν•  λ•Œ λ°œμŒν•˜κΈ° μ‰¬μš΄ 단어 이름을 가진 λ³€μˆ˜λͺ…μœΌλ‘œ μ–˜κΈ°ν•˜λŠ”κ²Œ 낫지 μ•Šκ² λŠ”κ°€..γ…Ž 

λ°œμŒν•  λ•Œ.. 음.. μ–΄.. μ΄λŸ¬λ©΄μ„œ μ–˜κΈ°ν•˜λŠ” 것보단... 

 

 

 

κ²€μƒ‰ν•˜κΈ° μ‰¬μš΄ 이름을 μ‚¬μš©ν•˜λΌ p.28
WORK_DAYS_PER_WEEK λ₯Ό μ°ΎκΈ°κ°€ μ–Όλ§ˆλ‚˜ μ‰¬μš΄μ§€ 생각해보라. κ·Έλƒ₯ 5λ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ 5κ°€ λ“€μ–΄κ°€λŠ” 이름을 λͺ¨λ‘ 찾은 ν›„ 의미λ₯Ό 뢄석해 μ›ν•˜λŠ” μƒμˆ˜λ₯Ό κ°€λ €λ‚΄μ•Ό ν•˜λ¦¬λΌ. 

πŸ‘©‍πŸ’» IDEμ—μ„œλ“  μ–΄λ””μ„œλ“  검색할 λ•Œ μ°ΎκΈ° μ‰¬μš΄ μ΄λ¦„μœΌλ‘œ ν•˜μž! μ—¬κΈ°μ €κΈ°μ„œ λ‹€ μ‚¬μš©ν•˜κ±°λ‚˜ 그런 μ΄λ¦„μœΌλ‘œ ν•œλ‹€λ©΄ κ²€μƒ‰ν–ˆμ„ λ•Œ 우λ₯΄λ₯΄ λ‚˜μ™€μ„œ κ±°κΈ°μ„œλ„ μ°Ύμ•„μ•Ό ν•˜λ‹ˆ,,, 

 

 

 

클래슀, λ©”μ„œλ“œ 이름  p.32
클래슀 이름 
클래슀 이름과 객체 이름은 λͺ…μ‚¬λ‚˜ λͺ…사ꡬ가 μ ν•©ν•˜λ‹€. Customer, WikiPage, Account, AddressParser 등이 쒋은 μ˜ˆμ΄λ‹€. Manager, Info, Data, Processor 같은 λ‹¨μ–΄λŠ” ν”Όν•˜κ³ , λ™μ‚¬λŠ” μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

λ©”μ„œλ“œ 이름 
λ©”μ„œλ“œ 이름은 λ™μ‚¬λ‚˜ 동사ꡬ가 μ ν•©ν•˜λ‹€. postPyament, deletePage,save 등이 μ ν•©ν•œ μ˜ˆμ΄λ‹€. 
μ ‘κ·Όμž, λ³€κ²½μž, μ‘°κ±΄μžλŠ” javaBean ν‘œμ€€μ— 따라 get,set, is λ₯Ό 뢙인닀. 

 

 

 

ν•œ κ°œλ…μ— ν•œ 단어λ₯Ό μ‚¬μš©ν•˜λΌ p.33 
좔상적인 κ°œλ… ν•˜λ‚˜μ— 단어 ν•˜λ‚˜λ₯Ό 선택해 이λ₯Ό κ³ μˆ˜ν•œλ‹€. 
예λ₯Ό λ“€μ–΄ λ˜‘κ°™μ€ λ©”μ„œλ“œλ₯Ό ν΄λž˜μŠ€λ§ˆλ‹€ get, retrieve, fetch μ΄λ ‡κ²Œ 제각각 λΆ€λ₯΄λ©΄ λ‚˜μ€‘μ— μ‚¬μš©ν•  λ•Œ ν˜Όλž€μŠ€λŸ½λ‹€. 
μ–΄λŠ ν΄λž˜μŠ€μ—μ„œ μ–΄λŠ 이름을 μΌλŠ”μ§€ κΈ°μ–΅ν•˜κΈ° μ–΄λ ΅λ‹€. 

λ§ˆμ°¬κ°€μ§€λ‘œ 동일 μ½”λ“œ κΈ°λ°˜μ— controller, manager, driverλ₯Ό μ„žμ–΄ μ“°λ©΄ ν˜Όλž€μŠ€λŸ½λ‹€. 

일관성 μžˆλŠ” μ–΄νœ˜λŠ” μ½”λ“œλ₯Ό μ‚¬μš©ν•  ν”„λ‘œκ·Έλž˜λ¨Έκ°€ λ°˜κ°‘κ²Œ μ—¬κΈΈ 선물이닀. 

 

 

 

πŸ‘©‍πŸ’» 사싀 κ°œλ°œν•˜λ©΄μ„œ 이름 μ§“λŠ”κ²Œ μƒλ‹Ήνžˆ μ–΄λ ΅λ‹€.λ³€μˆ˜ 이름을 뭘둜 할지.. λ©”μ„œλ“œ 이름을 뭘둜 할지 ν•˜λ‹€κ°€ κ²°κ΅­  λ˜‘λ˜‘ν•œ μΈν…”λ¦¬μ œμ΄μ˜ 도움을 λ°›μ•„μ„œ γ…‹γ…‹ ν•΄κ²°ν•˜κ³€ ν–ˆλŠ”λ°... 클린 μ½”λ“œμ—μ„œ μ•Œλ €μ€€? 이 κ·œμΉ™λ“€μ„ μ μš©ν•΄μ„œ μ§€κΈˆ λ‹Ήμž₯ 진행쀑인 ν”„λ‘œμ νŠΈμ— μ μš©ν•΄λ³Ό μ˜ˆμ •μ΄λ‹€. 

 

μš°μ„  λ‚΄κ°€ μ§  μ½”λ“œλΆ€ν„° μˆ˜μ •ν•˜κ³ ... κ·Έ 후에 보자... 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90