본문 바로가기

Development Log

변수명과 함수명에 대한 고민(아직도 ing...)

개인 프로젝트를 진행하면서 기능을 일단 구현해 놓고 항상 다시 한번 읽어보고 '과연 이 함수만으로 어떤 것을 요구하는지를 파악할 수 있을까?', '과연 내가 아닌 다른 사람들이 이 함수를 보고 어떤 걸 의미하는지를 알 수 있을까?'에 대한 질문을 했던 것 같다. 그 질문에 대한 답은 항상 '아.. 뭔가 아쉬운데..'였고 하나의 함수명을 여러 번 변경한 적도 있다.

 

이럴 때마다 정답이 있을까에 대한 생각이 들면서 결국 이것에 대한 해답은 내릴 수 없었고 만약 회사의 팀원으로써 일을 하게 된다면 팀의 규칙이 있을 것이라고 생각을 했다. 나 또한 예전에 회사를 다닐 때 팀 내의 일관되는 규칙이 있었기 때문에 그대로 따라갔기 때문이다.

 

하지만 현재는 혼자 프로젝트를 하다 보니 변수명 또는 함수명에 대한 고민이 더 쌓여가는 것 같았다. 과연 모든 뜻을 내포하지만 길어도 괜찮은지.. 어느 정도 생략하되 간결한 게 좋은 건지.. 이 2가지 사이에서 갈등했던 것 같다.

 

고민 끝에.. 나는 모든 뜻을 내포하면서 길게 작성하는 방법을 택했다. 이 방법을 택한 것도 간결하게도 써보기도 했지만 해당 함수명만 봤을 때 바로 파악하지 못한다면 결국 끝까지 타고 들어가서 확인해야 했기 때문이다. 성격상 끝까지 타고 들어가서 확인하는 편이긴 하지만 그전에 어떤 것을 가져오기 위한 함수인지 또한 어떤 것을 담고 있는 변수인지를 파악하고 확인하는 것이 더 좋은 방법이라고 생각했기 때문이다.

 

실제로 개인 프로젝트 당시 아래와 같은 함수명에 대한 고민이 있었다.

 

함수에는 연도와 월로 검색한 주별 가계부 내역과 검색한 월에 대한 총지출, 총 소비, 잔액 등에 대한 값이었다. 물론 해당 값은 로그인한 유저 아이디와 일치하는 데이터만 가져와야 했다.

 

처음에는 searchAccountBooksByUserId로 사용했었다. 딱 직역하면 검색하다 / 가계부들 / 유저 아이디로 였다. 그렇다면 내가 원했던 내용들이 다 포함되어 있는가? 그렇지 않다.. 😅

 

주별로 나눠져서 첫째 주, 둘째 주, 셋째 주, 넷째 주, 다섯째 주 이렇게 각각의 내역이 들어가는데 가계부로 명시하기엔 부족하다고 생각이 들었고 그렇다면 검색된 월에 대한 총지출, 소비 등에 대한 계산 값은? 안에 들어가서 확인하지 않으면 몰랐고 쿼리문의 where 문은 유저 아이디와 년도, 월이 들어있지만 해당 함수명은 유저 아이디로만 조건이 걸려있는 것 같이 보였기 때문에 마음에 들지 않았다.

 

여러 가지로 변경해 봤지만 마음에 들지 않았고 최종적으로 결정한 함수명은 searchWeeklyAccountBooksAndTotalByUserIdAndDate였다. 직역하면 검색하다 / 주변 가계부 / 그리고 총합계 / 유저 아이디와 날짜로 였다. 내가 요구하는 것에 대한 단어들이 전부 들어가 있다고 생각했지만 너무 길었다. 하지만 searchAccountBooksByUserId로는 하고 싶지 않았다. 이렇게 생각하다 보니 나는 결국 함수명이나 변수명이 길어도 딱 보고 어떤 것을 가져오기 위함이라는 뜻이 보이는 것이 우선순위라고 생각하고 있는 것 같다. 그래서 일단은 이렇게 작성해보려고 한다.

 

나중에 또 다른 배움으로 다른 방법을 택할 수도 있을 것 같다. 

팀에 들어간다면 팀의 규칙을 따르겠지만, 현재 혼자 하기 때문에 개인의 규칙이 세워졌을 뿐이다.

 

이러고 또 고민하겠지... 😭