코드로 우주평화

의미 있는 이름 본문

나는 이렇게 본다/Clean Code

의미 있는 이름

daco2020 2022. 1. 26. 01:30

제목 : 클린 코드

저자 : 로버트 C. 마틴

범위 : 2장 의미 있는 이름

 

 


 

기억하고 싶은 것

  • 그릇된 정보를 피하라
    • 서로 흡사한 이름을 사용하지 않도록 주의한다.
  • 의미 있게 구분하라 (읽는 사람이 차이를 알도록 이름을 지어라)
    • 연속적인 숫자를 덧붙인 이름은 의도적인 이름과 정반대다.
    • 요지는 zork라는 변수가 있다는 이유만으로 theZork라 이름 지어서는 안 된다는 말이다.
    • 주의 : info, data, variable, table 등
  • 발음하기 쉬운 이름을 사용하라
  • 검색하기 쉬운 이름을 사용하라
    • 긴 이름이 짧은 이름보다 좋다.
    • 검색하기 쉬운 이름이 상수보다 좋다.
    • 이름 길이는 범위(스코프) 크기에 비례해야 한다.
    • 전역변수나 상수는 검색하기 쉬운 이름이 바람직하다.
  • 자신의 기억력을 자랑하지 마라
    • 문자 하나만 사용하는 변수 이름은 문제가 있다.
      단 루프에서 반복 횟수를 세는 i,j,k는 괜찮다. (l은 절대 안된다)
    • 최악은 이미 a와 b를 사용하므로 c를 선택한다는 논리다.
  • 명료함이 최고다.
  • 클래스 이름
    • 명사나 명사구가 적합하다.
    • manager, processor, data, info 등과 같은 단어는 피하고 동사는 사용하지 않는다.
  • 매서드 이름
    • 동사나 동사구가 적합하다. post, delete, save 등
    • 접근자, 변경자, 조건자는 앞에 get, set, is를 붙인다.
    • 똑같은 매서드를 클래스마다 fetch, retrieve, get으로 제각각 부르면 혼란스럽다.
  • 일관성 있는 어휘를 사용하라
  • 의미 있는 맥락을 추가하라
    • 예) name, city, state -> addrName, addrCity, addrState 로 변경
    • 같은 맥락으로 클래스를 생성하면 더 좋다.
  • 불필요한 맥락을 없애라
    • 모든 클래스에 앱 이름을 붙이는 것은 바람직하지 못하다.
  • 이름 역시 나름대로 바꿨다가는 누군가 질책할지도 모른다. 그렇다고 코드를 개선하려는 노력을 중단해서는 안 된다.

 

떠오르는 생각

  • 좋은 이름을 짓기 위해서는 어떤 방법을 생각해볼 수 있을까? 
    • 방법1. 좋은 레퍼런스 코드들을 수집하고 거기서 자주 사용하는 이름들을 모아본다.
    • 방법2. 나만의 이름 템플릿을 만들어 일관성 있는 어휘를 사용한다.
    • 방법3. 이름에 대한 체크리스트를 만들어 잘못된 이름을 사용하고 있지는 않은지 확인한다.