본문 바로가기
컴퓨터 지식/생각해 볼만한 것

[프로그래밍] 변수명에 대한 고찰 - 깔끔하고 섹시한 코드를 위해 😎 / (1) 내 얘기 (일기)

by 서상혁 2020. 7. 11.

변수명에 대한 내 생각과 경험

 

 보통 처음으로 코딩을 배울 때의 코드들은 대부분 

int a;
int b;
a = 1;
b = 2;
c = a + b;

 

이렇게 a, b, c 라는 너무나도 간단한 변수로 되어있었다.

사실 변수 이름은 코딩의 본질이 아니다. 변수가 똥이어도, 외계어여도, 코드는 잘만 돌아간다.

그니까 초심자들을 위한 코드들은 그냥 별 생각 없이 볼 수 있는 a b c 나 i j  뭐  수학에서 쓰는 변수들? 같은 걸로 되어있었다. 그 시기에는 그게 왜 그런가? 라던가 이상하다? 라는 생각을 해보지도 못하고 쓰게 된다.

 

나도 그냥 당연한 것으로 받아들이고 a, b, c , i ~~~ 이런 변수들만 주구장창 써가면서 코딩을 하곤 했었다.

줄 수가 길어지면 그냥 i2, i3, z 등등 내가 좋아하는 영어, 그 순간 끌리는 영어들만 때려박으면서 막무가내 코딩을 했었다. 그때는 그게 잘못된 것인지, 변수 이름이 중요한 것인지 그런 생각 자체를 해보지를 못했었다.

그냥 Run 돌려서 결과값만 맞으면 히히 하면서 더러운 코드에 대한 아주 약간의 불안감 따위는 그냥 싹 사라져 버렸으니까 ㅎ😂  

 

하지만!!!!!!! 결국 프로그래머에게 협업은 불가피하다.

어떻게 모든 코드를 혼자 다 짜겠나... 

그리고 코드가 나만 알아볼 수 있으면, 그건 언어가 아니라 기계어겠지....

  

아마 내가 이런 변수 이름 설정의 중요성을 조금이나마 느끼게 된 계기는 과제로 어려운 문제가 나왔을 때 인 것 같다.

학교에서 내준 프로그래밍 문제가 어려워서 친구나 선배한테 도움을 구하려는데, 내가 물어봐놓고도 내 코드가 보기 너무 더러워서 양심의 가책을 느낄 수 밖에 없었다. 그냥 내가 해석하는데도 시간을 써야되는데 그 분들은 오죽했겠어... 지금 생각해보니 너무 죄송스럽다. 그건 그냥 문제 해결하는 것 보다 내 난해한 코드 해석하는게 더 어려웠을 수도 있었을거란 생각이 든다. 영어지문 독해하듯, 나의 난해한 코드는 독해부터 시작해야 했었다...


시간이 흐른 후 , 

어느덧 문제풀기를 위한 코딩이 아닌 프로그래밍, 소프트웨어를 만들어내기 위한 코딩을 하게 되면서부터,

변수명 설정의 중요성은 더더더더더더욱~~~~ 느끼게 된다.

내가 쓴 코드들 내가 읽을 때도 시간이 걸리는데,

가끔씩 구글링하면서 본 코드들은 이해가 쏙쏙 무슨 동화책 읽듯이 내용이랑 문맥이 바로 들어오는걸 느낀다. 

그러면서 변수명 설정의 팁이나 노하우를 알려주는 글들도 발견하게되는데,

내 생각엔 결국 혼자 코딩할 때는 내 자신과의 기준을 딱 정해야된다.

남이 정해준 기준은 결국 까먹거나 익숙하지 않게 된다.

그러면서 보고 많이 배우기도 하고, 내가 계속 반복해서 코딩하면서 느끼기도 하면서,

나름대로의 변수명 설정, 들여쓰기에 대한 기준이 조금씩 생기기 시작한다.

그런데 여러 레프런스의 도움을 받거나, 이 코드 저 코드를 보다보니, 이게 참 애매해진다.

한 파일에 대한 변수명의 기준은 맞추긴 하는데 코딩하는 날에 따라 그 기준이 매일 달라지는 것을 느꼈다. 

웹 개발할 때, 앱 개발할 때, Ocaml 쓸 때, Python 쓸 때, 그냥 뭔가 그 상황들에 맞게 생각이 드는 변수 이름들이 있다보니까 완전히 통일이 되지 않는다. 이게 혼동이 오면 그냥 그 때는 그 순간 제일 끌리는걸 쓸 수 밖에 없게 되니깐... 그리고 이미 그걸 고민하는 순간은 코딩 자체에 집중하느라 그런거 신경쓸 시간도 없었던 것 같다.

 

 


 

 

그래서!!!!!! (TMI 끝)

 

그래서, 요번 방학에 나만의 기준을 정하기로 했다!!!!

변수명 뿐만 아니라, 들여쓰기, 코드 모양들도! 

한번 곰곰히, 제대로 생각해 놓으면, 나중에 고민하는 시간을 훨씬 줄일것이라고 생각한다.

지금 기준을 딱 정해놓고, 앞으로 이 규칙대로 해야겠다.

완전히 지키지는 못하더라도, 적어도 변수명에 대해 고민할 때 이 기준을 오픈북 시험마냥 보면서 정하면 어렵진 않을거니깐!

 

  

728x90

댓글