IT개념/프로그래밍상식

클린코드 2장 의미 있는 이름

JongHyun99 2023. 11. 10. 11:15
728x90

소프트웨어에서 변수, 메소드, 클래스, 파일 및 패키지 명까지 모든 곳에는 이름을 붙여야한다.

이름이 무슨 기능을 하나 대충 지을 수 있다 생각하지만 깔끔한 코드에는 명확하고 규칙적인 네이밍이 필수다. 

 

 

누가 읽어도 이해할 수 있는 코드가 좋은코드이다.

난독화가 목적이 아닌 이상, 의도가 분명한, 누가 읽어도 무슨 역할을 하는지 이해할 수 있도록 작명하여야 한다.

 

 

 

 

오해할 수 있는 여지가 있는 네이밍은 피해야한다.

추가로 소문자 l과 대문자 O는 1과 0 그리고 대문자 I와 구분하기 어려우므로 이러한 문자들도 피하자.

 

 

이 또한 중요한데, 값을 하드코딩하는 것을 포함하여 값의 정보로 변수를 표기하면 검색 시 불편함이 있다.

그러므로 목적에 맞는 네이밍으로 검색을 쉽게 하자.

한 가지 예시로 이벤트나 익셉션을 처리할 때 보통 e라는 변수명을 사용하는데 이는 후에 조회에도 불편하고, 코드의 문맥을 바로 이해하기에도 어렵다.

 

 

의도가 명확하게 표현하자.  실제로 이런 식으로 하는 사람이 있을까?

 

나도 일관성을 고려하여 기능과 다소 다른 네이밍을 한 경험이 있다.

골치 아픈 경우가 많지만 이렇게 원칙을 정해가면 더 복잡해지진 않을 것이다.

 

 

 

비슷한 이야기이다. 누구나 알아볼 수 있도록 작명하라.

 

 

 

클래스는 객체로 인식하여 명사로 작명하고, 메서드는 기능으로 인식하여 동사로 작명한다.

명료하여 암기할 필요도 없는 규칙이다.

 

 

내가 많이 저지르던 실수인데, 파일 명에 해당 도메인의 이름을 함께 작성하지 말자, 필요 없는 맥락을 시스템의 일관성을 고려한답시고 작성 하지 말자.

 

 

좋은 코드를 위해서는 테이블이나 자료 구조를 사용하는 읽히는 코드를 짜는데 집중을 하여야 마땅하고 생각했지만, 좋은 이름을 선택하는 것으로 코드 가독성이 높아질 수 있다.

단기적인 효과는 물론 장기적으로도 보장한다.