loading

프로그래밍

변수 이름 잘 짓기 위한 개인적인 생각 - 1

침착곰 2021. 10. 31. 02:29
반응형

 그 동안 변수 이름을 짓는 것에 대해서 그다지 깊은 생각을 하지 않고 지었는데 최근에 내가 짠 코드들의 변수들을 보면서 너무 생각없이 지었다는 생각이... ㅠㅜ 내가 본 변수들을 보면서도 한 눈에 들어오지 않고, 그때 생각나는대로 지은듯한 느낌이 강했다.

 


좋은 변수명이란?

 좋은 변수명이란 무엇인가??? 나 혼자 결론 내리기는 힘들어 여러 블로그들을 떠돌아 다니면서 생각해봤다. 그 중에서 가장 와닿았던 것은 변수명은 개발자의 의도가 명확하게 보여야한다는 것이다. 의도를 명확하게 하려면 어떻게 변수명을 만들어야할까???

 

먼저 최근에 짠 코드를 보면서 알아보자.

아니... mapList이 변수명이네. List의 Type을 map으로 지정해서 단순하게 mapList로 이름을 지었다. 너무 1차원적으로 지었다.

// 안 좋은 예
List<Map<String, Object>> mapList = vo.getMapList();

 

이 변수명을 좋은 방향으로 바꾸기 위해 고민을 해봤다. vo에서 List<Map<String, Object>>형태로 받아 그 안의 데이터를 추출하여 키를 생성할 때 사용하는 변수이다. 이 변수의 목적은 키를 생성하기 위한 데이터 집합이다.

키를 생성하기 위한 데이터 집합을 번역기를 돌려보았다. Data for generating keys라고 한다.

이걸 그대로 변수명으로 사용하자니 변수명이... dataForGeneratingKey 너무 길어진다. ㅠㅜ

조금 더 생각해봤다. 생성은 generate대신 create를 사용 List는 dataList로 바꿔서 변수명을 다시 지었다.

아래와 같이 변수명을 지어봤다. 많이 나아진듯 하지만 약간 아쉽다.

List<Map<String, Object>> createKeyDataList = vo.getMapList();

 

 

중간에 For을 넣어서 지어봤다. 확실히 목적이 명확해진 느낌이다. 하지만 변수명이 너무 길어진 느낌이다. 후... 그래서 create를 빼봤다.

List<Map<String, Object>> createKeyForDataList = vo.getMapList();

 

create가 없지만 Key를 생성하기 위한 DataList라는 것을 알 수 있다. 중간에 For, To가 들어갔기 때문에 라는 생각이 든다. For, To 등의 전치사를 붙이는 것도 변수명을 짓는데 좋은 방법이라는 생각이 든다.

List<Map<String, Object>> keyForDataList = vo.getMapList();

 


 

두 번째로 메서드 혹은 결과값 변수에 대해서는 항상 resultStr, resultJson, resultInt 등 result변수타입 이런 식으로 변수이름을 지었다. 확실히 결과값이 들어가는 변수는 맞지만 코드를 처음 보는 사람을 위해 어떤 결과가 나오지는 목적성을 명확히 표시하여 조금이라도 빨리 이해하도록 하는 것도 좋은 코딩이다.

resultInt대신 resultSalary를 Salary를 붙여서 결과가 급여와 관련된 값이라는 것을 한 눈에 알 수 있다. 이런 식으로 목적성을 명확하게 변수명을 짓는 것이 중요하다는 것을 깨달았다... ㅠ

여기까지 변수명에 대해서 내 주관적인 생각을 끄적거려봤다.

 

- 끝 -

반응형
그리드형

'프로그래밍' 카테고리의 다른 글

맥 어드레스(MAC Address)는 무엇인가??  (0) 2022.03.08
[프로그래밍] 변수 명명 규칙  (0) 2022.03.05
[프로그래밍] Cut-Over(컷오버)란?  (0) 2021.10.04
SSL과 TLS의 개념  (0) 2021.09.26
L4 스위치란?  (0) 2021.09.26