1. 변수 이름 짓기는 아주 큰 고민
저에게 누군가 '혼자 프로젝트를 하면서 가장 어려웠던 부분은 무엇인가?' 물으면, 저는 당연한 듯이 이렇게 말할 겁니다. 가장 힘들었던 부분은 예외 디버깅 과정과, 변수 이름 짓는 과정이었다고 말이죠. 메소드가 어떤 일을 하는지 명확하게 들어나면서, 간결하고 명확한 이름 짓기란 너무나도 힘든 일입니다.
그래서 오늘 포스팅에서는 저의 이런 고민을 해결해준 개발자의 글쓰기 책을 간단 요약했습니다.
1. 변수명은 창조가 아닌 조합이다.
우리는 짬뽕과 짜장면이 반반으로 제공되는 메뉴를 짬짜면이라고 합니다. 짬짜면이란 이름을 볼 때 이를 만들기 위해 새롭게 단어를 창조하지 않았습니다. 그저 짬뽕과 짜장면의 앞글자를 따서 이를 조합해 짬짜면이란 이름을 만든 것입니다. 변수의 이름 짓기도 이와 같습니다. 변수의 이름은 창조해야하는 것이 아닌, 적절한 단어를 선택해 조합하는 과정일 뿐입니다.
2. 대소문자를 사용할 때
- 클래스는 파스칼 표기법으로 작성해야 합니다.
class memberService[x]
class MemberService[o]
- 상수는 모두 대문자로 표기합니다. 띄어쓰기가 필요할 때는 언더스코어(_)를 사용합니다.
static final String BLOGGER_NAME = "무지한 JACOB"
- 패키지나 모듈은 모두 소문자로 작성합니다.
- (자바의 경우) 그 외에는 카멜 표기법으로 작성합니다.
3. 좋은 이름이 가진 5가지 특징
패키지, 클래스, 모듈, 함수, 변수 등 좋은 이름인지 확인하는 방법으로 5가지 원칙이 있으며 이를 SMART 원칙이라고 합니다.
- easy to Search 검색이 쉽고
- easy to Mix 조합하기 쉽고
- easy to Agree 모두가 수긍하며
- easy to Remember 기억하기 쉽고
- easy to Type 입력하기 쉽고
그 외에도 많은 부분들이 설명되어 있지만, 생략했습니다. 그 중 가장 인상 깊었던 것은 중요하고 중복되는 단어를 앞으로, 아닌 것을 뒤로 작성하는 방법이었습니다.
예를 들어서 redApple, orangeApple, whiteApple 있다고 합시다. 여기서 red, orange, white는 apple을 설명하는 단어일 뿐입니다. 또 apple이란 단어가 중복됩니다.
이를 리펙토링을 통해 다음과 같이 네이밍할 수 있습니다. appleRed, appleOrange, appleWhite처럼 말이죠.
여담으로 프론트엔드의 유명한 개발자이신 드림코딩 님도 강의에서 이런 방식을 소개하신 적이 있었습니다. 즉, 이런 방법론이 있다고 말씀드린 것이고 여러분이 편하신대로, 회사의 규정대로 하시면 되겠습니다.
'데일리 공부' 카테고리의 다른 글
[디자인패턴] 템플릿 메소드 패턴 (0) | 2023.05.29 |
---|