본문 바로가기
공부내용

TIL_클린코드_2장

by 바나나하나 2022. 4. 24.
반응형

2장

TIL (Today I Learned)

오늘 읽은 범위

2장. 의미 있는 이름

책에서 기억하고 싶은 내용

좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. - 22페이지

유사한 개념은 유사한 표기법을 사용한다. 이것도 정보다. 일관성이 떨어지는 표기법은 그릇된 정보다. - 25페이지

컴파일러를 통과할지라도 연속된 숫자를 덧붙이거나 불용어(noise word)를 추가하는 방식은 적절하지 못하다. - 26페이지

읽는 사람이 차이를 알도록 이름을 지어라. - 27페이지

발음하기 쉬운 이름을 사용하라. 지적인 대화가 가능해진다. - 27페이지~28페이지

검색하기 쉬운 이름을 사용하라. - 28페이지

이런 관점에서 긴 이름이 짧은 이름보다 좋다. 검색하기 쉬운 이름이 상수보다 좋다. - 28페이지

문제 해결에 집중하는 개발자에게 인코딩은 불필요한 정신적 부담이다. 인코딩한 이름은 거의가 발음하기 어려우며 오타가 생기기도 쉽다. - 29페이지

문자 하나만 사용하는 변수 이름은 문제가 있다. 루프에서 반복 횟수를 세는 변수 i, j, k는 괜찮다. (l은 절대 안된다!) 단, 루프 범위가 아주 작고 다른 이름과 충돌하지 않을 때만 괜찮다. 루프에서 반복 횟수 변수는 전통적으로 한 글자를 사용하기 때문이다. 그 외에는 대부분 적절하지 못하다. 독자가 실제 개념으로 변환해야 하니까. 최악은 이미 a와 b를 사용하므로 c를 선택한다는 논리다. - 31페이지

클래스 이름과 객체 이름은 명사나 명사구가 적합하다. -32페이지

메서드 이름은 동사나 동사구가 적합하다. postPayment, deletePage, save등이 좋은 예다. 접근자, 변경자, 조건자는 javabean 표준에 따라 값 앞에 get, set, is를 붙인다. - 32페이지

한 개념에 한 단어를 사용하라. 추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다. 예를 들어, 똑같은 메서드를 클래스마다 fetch, retrieve, get으로 제각각 부르면 혼란스럽다. 어느 클래스에서 어느 이름을 썼는지 기억하기 어렵다. 안타깝게도 현실에서는 이름을 기억하기 위해, 라이브러리를 작성한 회사나 그룹이나 개인을 기억해야 하는 경우가 많다. 안 그러면 헤더와 과거 코드 예제를 살피느라 엄청난 시간을 소모하기 십상이다. - 33페이지

프로그래머에게 익숙한 기술 개념은 아주 많다. 기술 개념에는 기술 이름이 가장 적합한 선택이다. - 34페이지

불필요한 맥락을 없애라. ‘고급 휘발유 충전소 Gas Station Deluxe’라는 애플리케이션을 짠다고 가정하자. 모든 클래스 이름을 GSD로 시작하겠다는 생각은 전혀 바랍직하지 못하다. 솔직히 전봇대로 이 쑤시는 격이다. IDE에서 G를 입력하고 자동 완성 키를 누르면 IDE는 모든 클래스를 열거한다. 현명하지 못하다. IDE는 개발자를 지원하는 도구다. IDE를 방해할 이유는 없다.

일반적으로 짧은 이름이 긴 이름보다 좋다. 단, 의미가 분명한 경우에 한해서다. - 37페이지

좋은 이름을 선택하려면 설명 능력이 뛰어나야 하고 문화적인 배경이 같아야 한다. 이것이 제일 어렵다. 좋은 이름을 선택하는 능력은 기술, 비즈니스, 관리 문제가 아니라 교육 문제다. 우리 분야 사람들이 이름 짓는 방법을 제대로 익히지 못하는 이유가 바로 여기에 있다. - 38 페이지

오늘 읽은 소감은? 떠오르는 생각

코드를 짜면서 항상 느꼈던 것은 변수 이름 짓는게 가장 어렵다는 것이었다. 2장을 읽으면서 의미있는 이름을 짓는 방법에 대해 알아봤는데, 이런 내용들을 적용하기 위해 노력하면서 많은 시간을 들여야 한다는 생각이 들었다. 1장에서 강조했던 섬세함이 여기에도 적용이 되고 있다. 항상 ‘시간’을 들여 고심하고 변수명을 만들고, 이미 만들었던 코드들을 되돌아보며 변수명을 다시 더 의미있는 변수명으로 고치는 일을 해나가야 함을 강조하고 있다. 변수명에 의미가 있으면 읽기쉬운 코드가 되며, 읽기 쉬운 코드가 되면 유지보수하기 쉽고 결국에는 생산성이 올라가는 결과를 낳게 된다. 제일 쉬워보이지만 개발자로 일하는 내내 가장 어려운 일이 변수명 짓는 것이 되지 않을까 싶다. 책에서 알게된 원칙들을 적용해서 변수명을 제대로 지어보도록 하자.

반응형

댓글