객체지향 생활 체조 - 규칙 5: 축약 금지

Photo by Aaron Burden on Unsplash

줄여쓰지 않는다. (축약 금지)

이 규칙이 가지는 의미

int numCnt = 4;

for(int i = 0; i < list.size(); i++) {
	...
}

String btnText = "hello world";

 

프로그래밍을 하다 보면 자주 보게 되는 변수명들이 있는데 생각이 나는 대로 적어보면 다음과 같다. 코드를 작성하다 보면 클래스명이나 메서드명 아니면 변수 명의 이름을 줄여서 쓰고 싶은 욕구를 느끼게 된다. 그 이유는 주로 이곳저곳에서 값들을 가져와서 사용하다 보면 구분을 짓기 위해 접두사를 사용하게 되는데 그 접두사를 이어 붙이다 보면 이름의 길이가 길어져서 한글 자라도 줄이고자 count는 cnt, index는 i, button은 btn 같이 이름을 함축적으로 줄여 쓰게 된다. 또한 구분만을 위해서가 아니라 짧고 간결하게 변수명을 지어야 좋다고 생각하는 프로그래머도 많아 자주 쓰이는 이름들을 줄여서 쓰는 경우가 적지 않다. 얼핏 들으면 축약해서 이름을 짓는 방법은 필수까지는 아니어도 잘 사용하면 깔끔한 코드를 작성할 수 있어 보인다. 그런데 왜 사용하지 말라는 이야기를 하는 걸까?

 

축약 금지가 가지는 의미는 간단하다. 줄여 써서 이름을 짓는 방법은 혼돈을 야기시키기 때문에 사용하지 말라는 의미이다. 단순하게 앞서 이야기한 cnt, i, btn이라는 이름은 개발자라면 알아볼 수 도 있지만, 프로그래밍을 해보지 않거나 처음 시작한 초급 개발자들에게는 한 번에 의미를 전달하지 못한다. 프로그래밍은 혼자만 하는 것이 아니다. 혼자만 쓰고 읽는 일기장이 아닌 이상 미생의 장그래가 그랬던 것처럼 우리는 같이 일을 한다. 프로그래밍에 세계에서는 코드만으로 다른 개발자에게 의미를 전달하는 것은 매우 중요한 일이다.

 

그럼 축약이라는 것은 의미 전달에 문제만 있는 것일까? 어떻게 보면 의미를 전달하는 부분만 문제가 있다면 다행이라고도 생각할 수 있다. 일반적으로 이름이 길어진다는 것은 객체가 가져야 할 책임의 소재가 잘못 전가되었다거나 상황에 알맞은 객체의 부재를 의미하는 경우 일 수 있다. 변수명이 구구 절절 길어지는 이유 중 하나는 많은 일들을 하고 있기 때문에 여러 가지의 값이 필요하다 보니 자연스레 변수명 앞에는 다양한 접두사가 붙어 있게 된다.

정리하기

간결하고 보기 좋다고 생각해 축약을 잘 활용해 개발한 코드가 눈앞에 있다고 생각하고 고민해보자. 정말 간결하고 보기 좋은지 그리고 그 축약의 의미가 기억이 나는지. 지금 문제가 생겨 당장 그 코드를 작성할 때 고려해야 했던 비즈니스를 다 기억해내서 수정할 수 있을까? 이름을 축약하지 않는다는 것은 생각보다 많은 정보를 담고 일을 쉽게 해결할 수 있게 한다.

 

 

소프트웍스 앤솔러지 - 객체지향 생활 체조 학습하기

객체지향 생활 체조 규칙 알아보기 소프트웍스 앤솔러지 책 내용 중에는 10장 내외로 짧은 내용이지만 따라 하다 보면 자연스럽게 객체지향적인 코드를 작성할 수 있는 좋은 규칙이 있습니다.

7942yongdae.tistory.com

 

반응형

댓글

Designed by JB FACTORY