[Clean Code] 2장. 의미있는 이름

Rose·2024년 1월 28일

CleanCode

목록 보기
1/8
post-thumbnail

TIL(Today I Learned)


내용 3줄 정리 💁🏻‍♀️

  • 의도가 분명한 이름을 지어라.
  • 이름을 지을 때는 명료함이 최고다.
  • 버그를 수정하는 등 여러 이유로 코드에서 특정한 변수(혹은 함수 그리고 클래스)를 검색하기 위해서 의미있는 이름 짓기가 더더욱 필요하다.

기억하고 싶은 내용 📝

  • 변수나 함수 그리고 클래스의 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. (22p)
변수(혹은 함수 그리고 클래스)의
- 존재 이유는?
- 수행 기능은?
- 사용 방법은?
  • 프로그래머는 코드에 그릇된 단서를 남겨서는 안된다. 그릇된 단서는 코드 의미를 흐린다. 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안된다. (24p)

  • 발음하기 쉬운 이름을 사용하라. (27p)

  • 문자 하나를 사용하는 이름과 상수는 텍스트 코드에서 쉽게 눈에 띄지 않는다(검색하기 쉬운 이름을 사용하라). (28p)

  • 똑똑한 프로그래머와 전문가 프로그래머 사이에서 나타는 차이점 하나만 들자면, 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다. (31p)

  • 클래스 이름과 객체 이름은 명사나 명사구가 적합하다(Customer, WikiPage 등). 메서드 이름은 동사나 동사구가 적합하다(postPayment, deletePage 등). (32p)

  • 재미난 이름보다 명료한 이름을 선택하라. (32p)

  • 추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다. 예를 들어, 똑같은 메서드를 클래스마다 fetch, retrive, get으로 제각각 부르면 혼란스럽다. 어느 클래스에서 어느 이름을 썼는지 기억하기 어렵다. (33p)

  • 프로그래머는 코드를 최대한 이해하기 쉽게 짜야 한다. 집중적인 탐구가 필요한 코드가 아니라 대충 훑어봐도 이해할 코드 작성이 목표이다. (34p)

  • 스스로 의미가 분명한 이름이 없지 않다. 하지만 대다수 이름은 그렇지 못하다. 그래서 클래스, 함수, 이름 공간에 넣어 맥락을 부여한다. 모든 방법이 실패하면 마지막 수단으로 접두어를 붙인다(의미 있는 맥락을 추가하라) (35p)

  • 일반적으로 짧은 이름이 긴 이름보다 좋다. 단, 의미가 분명한 경우에 한해서다. 이름에 불필요한 맥락을 추가하지 않도록 주의한다(불필요한 맥락을 없애라). (37p)


생각 및 느낀점

개발자들이 이름을 짓는 데 시간을 많이 쓴다는 이야기를 들은 적이 있다. 이름을 의미있게 짓는다는 것이 어떤 의미인지에 대해 이렇게 구체적으로 읽어 본 것은 처음이다. 내가 구현한 코드를 다시 읽어 보았을 때 무슨 코드인지 의미가 불분명해서 이해하느라 많은 시간을 투자했던 기억이 떠오른다. 그리고 cmd f를 통해 내가 원하는 변수를 검색했을 때, 검색 결과가 너무 많이 나와 당황했던 기억도 떠올랐다. 코드는 작성하는 것과 함께 유지보수가 중요하다. 코드의 길이가 길어지고 프로그램이 복잡해질 수록 이름을 잘 지어 이후 코드 관리가 잘 되도록 해야하는 것이 중요함을 깨달았다. 또한 협업 시 나의 코드를 다른 사람이 잘 이해할 수 있도록 하기 위해서도 의미있는 이름 짓기는 필수적이다.


참고자료

  • chillihc님의 velog
  • 노개북 2일차! 클린코드 추천사~1장(by madang)
  • profile
    신입 백엔드 개발자의 성장 기록

    0개의 댓글