북스터디/클린코드

02장 - 의미 있는 이름

혀닙 2025. 5. 10. 23:21
📘 클린 코드 북스터디 정리입니다

📚 도서: 로버트 C. 마틴 《Clean Code》
🧑‍💻 스터디 목적: 좋은 코드에 대한 감각과 습관을 익히기 위해
🗓️ 진행 기간: 2025년 5월 ~ 매주 2장

📖 [02장] 의미 있는 이름

✅ 핵심 요약 (Key Takeaways)

이 장의 핵심 문장은?

변수나 함수, 그리고 클래스의 이름은 주석 없이도 그의 존재 이유, 수행기능, 사용방법을 분명히 드러내야 한다.

저자가 전달하고자 하는 메시지 요약 (3~5줄)

  • 의도가 분명한 이름을 짓는 것은 중요한 일이며, 더 나은 이름이 떠오르면 적극적으로 개선해야 한다.
  • 좋은 이름은 의도가 명확하며, 보편적/직관적인 언어로 작성되어 도메인 지식에 의존하지 않아도 의미를 분명하게 알 수 있다.
  • 이름은 읽는 사람과의 사회적 대화가 가능해야 하도록 지어야 하며, 검색 또한 용이해야 한다.
  • 불필요한 맥락은 줄이고, 의미 있는 맥락을 담아 일관되게 명명하는 것이 중요하다.

💡 인상 깊었던 문장 & 나의 인사이트

책에서 가장 기억에 남는 문장 1~2개 인용

  • 십중 팔구 개발자는 (객체에 달린 상세한 주석이나 클래스가 제공하는 메서드 목록을 살펴보지 않은 채) 이름만 보고 객체를 선택한다.
  • 읽는 사람이 차이를 알도록 이름을 지어라

해당 문장이 왜 인상 깊었는지 나의 생각

개발을 하면서 가장 까다롭고, 동시에 가장 자주 마주하는 과제가 있다면 바로 변수명이나 메서드명을 짓는 일이다.

나 역시 최근까지 이 문제 앞에서 스스로 깊이 고민하기보다는,
그때그때 흔히 쓰이는 방식에 의존하거나, GPT에 물어보는 방식으로 넘어가곤 했다.

기능을 처음 개발할 때는 별 문제가 없어 보였다.
단위 테스트도 통과하고 기능도 잘 작동하니, 겉으로는 문제가 없어 보였다.

하지만 시간이 지나 기능을 변경하거나 유지보수를 하게 될 때 진짜 문제가 발생했다.

데이터를 조회하는 메서드를 어떤 모듈에서는 get으로, 어떤 모듈에서는 fetch로 시작하게 작성해 두었더니,
나중에 이 코드가 정확히 무슨 역할을 하는지 파악하려면 매번 이전 흐름을 일일이 추적해야만 했다.

시간은 오래 걸렸고 무엇보다 "내가 썼던 코드의 흔적을 다시 쫓아다녀야 하는" 피로감이 상당했다.

그런데 이 책을 읽으며 한 가지를 깨달았다.

내가 사용하는 외부 오픈 소스 라이브러리들은
대부분 메서드 이름만으로도 기능을 짐작할 수 있게 잘 구성돼 있다는 것이다.

물론 공식 문서로 나의 추측이 맞는 지 검증을 하긴 하지만,
이름만으로도 기능의 힌트를 얻을 수 있는 경우가 많고, 대부분 적중한다.

즉, 좋은 이름은 ‘설명서 없이도 설명이 되는 코드’를 만든다.

설명하지 않아도 이해되는 이름이, 유지 보수뿐 아니라
나중에 코드를 보는 사람이 실수를 줄이고 빠르게 맥락을 파악하는 데 도움이 된다는 걸 깨달았다.

이름 하나에도 고민을 담는 연습이,
결국 더 나은 협업과 코드 품질로 이어지는 첫걸음이구나!

🛠 실무 적용 아이디어 (To Action)

나의 코드에서 개선해볼 부분은?

  • xxdata, xxinfo 와 같은 의미 구분이 모호한 명명

오늘부터 실천해볼 작고 구체적인 실천 1~2가지

  • 일관성 있는 어휘 체계를 정하고 그에 맞춰 명명하자.
  • 의미가 분명히 구분 되는 이름으로 명명하자