좋은 변수, 함수를 짓기 위한 고찰

 

안녕하세요, 오늘은 많은 분들이 프로그래밍을 하면서 자주 생각하게 되는 “변수와 함수 등의 이름은 어떻게 지어야 할까?” 라는 생각을 하게 됩니다.
특히 협업을 한다면 “다른 사람들이 쉽게 알아보고 코드를 이해할 수 있도록 하는 방법은 무엇이 일까?”라는 생각이 들게 됩니다.
그래서 오늘은 좋은 변수, 함수 이름들과 코드에서 이름을 지어야할 때 어떻게 좋은 방법으로 지어야 할지 다른 분들이 쓰신 글들과 함께 살펴보고자 합니다.

왜 좋은 변수, 함수의 이름이 필요할까?

본질적으로 개발자는 목표로 하는 기능을 달성하기 위해서 코드를 작성하고 개발합니다.
개발 과정에서의 문제는 개발자가 만든 코드는 목표를 달성한 후 다른 이유들로 (구조 변경, 일정 변경, 담당자 변경)등으로 인해 수정이 될 가능성이 매우 높습니다. 개발자가 코드를 작성할 때, 동작 유무를 잘 판단하는 것이 아닌 잘 읽히기 위해서 코드를 작성해야 합니다.
“잘 읽히도록”이라는 것은 무엇을 뜻할까요? 협업을 할 때 내가 만든 코드를 다른 사람이 코드를 읽고 이해 하는데 있어서 이해하는 시간을 최소화 해야 한다고 생각합니다. “그럼 코드를 이해한다는 게 뭐지?”라는 생각이 드실텐데요, 코드를 자유롭게 수정할 수 있다는 의미가 되며, 코드 작성의 목표는 원하고자 하는 기능을 수행하면서, 다른 사람이 이해하는데 드는 시간을 최소하는데 있다고 할 수 있습니다.

좋은 변수명 짓기

의도를 분명히 밝힌 이름을 짓기

코드를 작성하고 주석이 필요하다면 의도를 분명히 드러내지 못했다는 소리입니다.
변수 이름은 변수가 표현하고 있는 거을 완벽하게 정확하게 설명해야 하며 이름은 기능한 구체적이어야 합니다.
모호하거나 하나 이상의 목적으로 사용될 수 있는 일반적인 이름은 보통 좋지 않은 이름입니다.

불린 변수의 네이밍

전형적인 불린 변수의 이름을 사용한다면 done, error, found, sucess, ok 성공 했더는 것을 정확히 설명하는 구체적인 이름이 있다면 다른 이름으로 대체하는 것이 좋습니다.

if(notFound == false) {...}
if(notFound == true) {...}

notFound, nonDone, notSuccessful과 같은 이름은 변수의 값이 부정이 되었을 때 읽기가 어렸습니다.
이와 같은 점들을 해결하기 위해서 접두어 is를 붙여 불린 메소드나ㅏ 변수명을 짓습니다. 그러나 접두어가 없는 이름이 읽고 이해하는데 더 쉬운 경우도 있습니다.

if(isfound) {...}
if (found) {...}

접두어 isfound보다 is를 붙이지 않은 found가 오히려 더 쉽게 읽힙니다.

대문자, 소문자를 이용하기

함수의 이름을 짓을 때 첫 글자는 대문자를 사용하는 것을 추천합니다.
변수와 메서드의 이름 경우 첫 글자는 소문자를 사용하는 것을 추천합니다.

func HelloWorld() {
	getGopher := "It's Gopher"
}

또한 Camel Casing를 살펴보게 되면 소문자를 기본적으로 사용하되, 구분되는 다어를 대문자로 연결. 그러나 첫 단어의 첫 글자는 소문자를 사용합니다. 만약 appletree라는 함수가 있다면 appleTree()으로 짓으면 됩니다!

마치는 말

아직까지 완벽하게 정리하지 못 했습니다, 추후에 더 공부한 뒤 더 좋은 내용을 업데이트 하도록 하겠습니다!

참고한 글