-
Case Naming Convention (케이스 네이밍 컨벤션)etc . 2020. 1. 8. 23:57
Case Naming Convention
케이스 네이밍 컨벤션으로 공식적인 한글단어는 없는 것 같다.
나는 적당히 식별자 이름 표기법 정도로 부르기로 했다.
코딩 입문을 땠다면 변수명앞은 소문자로 한다던지 띄어쓰기는 '_' 이걸로 처리 한다던지
변수 이름을 정해줄때 어떠한 규칙이 있다는걸 어렴풋이 알고는 있었을거다.
본 글에서는 그 "어떠한 규칙"이 무엇인지 열심히 설명을 해주도록 할 것이다.
사실은 그러한 규칙이 단연 식별자 이름에만 적용된것은 아니다.
언어별로 그런 규칙들이 은연중에 정해져있고, 그것을 권장하고 있다.
(하지만 파이썬 같이 들여쓰기 자체가 문법인 언어에서는 또 강제하고 있기도 하다.)
예를 들어 코딩 스타일중 들여쓰기를 쓰냐, 스페이스 바를 쓰냐 이런 점도 개개인마다 갈리는데
'스칼라' 라는 언어에서는 스페이스 바 대신 들여쓰기를 권장하고있다.
뭐 언어마다 정해졌다는 식으로 이야기는 하였지만
사실 프로젝트의 설계자나 초기개발자가 아닌 이상은 언어의 규칙을 따르기보단,
현재 프로젝트의 코딩 규칙을 따르는게 무조건 옳다.
다시 본론으로 넘어가 변수 명명을 해주는 "어떠한 규칙" 이야기를 하겠다.
"어떠한 규칙"에는 여러 종류가 있는데
최근 코딩 스타일에서는 크게 세가지 정도로 나눌수 있다.
camel Case(카멜 표기법)
Pascal Case(파스칼 표기법)
Snake_Case(스네이크 표기법)
어떤가? 각각 표기법을 해당 표기법에 맞게 작성을 해보았다.
대부분 코딩을 해봤던 사람이라면 여기까지만 보면 감이 올것이다.
첫번째로 camel Case(카멜 표기법)
JAVA로 코딩을 하던 사람들이라면 익숙해 보이지않을까 싶다.
JAVA에서는 주로 변수나 메서드의 식별자를 선언할 때 camel Case를 따르는데
camel Case는 단어의 구별이 되는 앞글자들을 대문자로 쓰되, 첫글자 만큼은 소문자로 표기하는 표기법이다.
사실 세세하게 나누자면 lowerCamel Case와 UpperCamel Case로 나눌 수 있지만,
요즘 들어서는 UpperCamel Case 라는 말 보다 Pascal Case라는 말을 좀 더 자주 사용하는 느낌이다.
그냥 저렇게도 부른다고 한번씩 기억만 해두자
두번째로 Pascal Case(파스칼 표기법)
이 표기법도 Java로 코딩 하던 사람들에게 익숙해 보일지도 모른다.
단어의 구별이 되는 앞글자들을 첫글자도 포함하여 대문자로 표기하는 표기법이다.
자바에선 모든 클래스 명칭을 Pascal Case로 선언을 하는것으로 권장이 되어있는데,
이런 점에서는 C++하고는 또 약간 차이가 있다.
잠시 C++ 이야기를 하자면
본래 C++에서는
Hungarian Notation(헝가리 표기법)이라는 변수명명규칙을 주로 사용해왔다.이 표기법은 strName 이라던지 iNo라던지 변수명을 지어줄때 앞에 데이터형을 표기하는 규칙이다.
해당 표는 헝가리 표기법의 공통 규칙이라고는 하는데 한번씩 읽어만 보자.
근데 이제는 왜 안쓰느냐..
그냥 단순히 쓸 이유가 없어졌다.
요즘에는 쓰고있는 변수에 마우스만 올려도 데이터 타입부터 선언위치까지 전부 알려주는 세상인데,
프로젝트 중간에 데이터 타입만 바꿔도 변수명칭까지 바꿔야하는 리스크까지 가지고 저 규칙을 쓸 필요가 없어졌다.
그래서 C++을 이용하는 개발자들이 명명규칙을 바꿔버렸다.
현재는 변수명만 camel Case를 쓰고 , 함수나 클래스는 Pascal Case로 표기한다.
세번째 표기법은
Snake_case가 되시겠다.
Snake_case은 표기법에서도 확인 할 수 있듯이, 단어 사이를 대소문자가 아닌 "_" (언더 바) 로 구별을 짓는다.
내가 이 표기법을 본것은.. C#을 하며 이벤트 핸들러로 메서드 구현할 때 주로 많이 보고 썼던 것 같다.
Btn_Click() 라던지.. 여기서 말고는 코딩을 하며 자주는 보지 못했던 것 같다.
예전에 컴퓨터 파일의 이름 저장 시 공백이 못들어가던 때가 있었는데 오히려 그 때 좀 더 많이 봤던것같다.
여기까지가 내가 이 글을 통해 공부하고 설명하고 싶었던 부분들이다.
장황하게 설명을 해도 사실 이런거 몰라도
혼자 코딩하는데는 아무 의미도 없다.어차피 대소문자를 넣든 컴파일러는 똑같은 0100111 코드로 변환시켜줘서 컴퓨터가 읽기 때문이다.
그럼에도 명명규칙을 대부분의 개발자들이 권장하는 이유가 무엇이냐
그건 바로 동일한 프로젝트의 개발자들끼리 코드의 "가독성" 자체가 높아진다.
당연히 "가독성"이 높아지면 상대방에 코드를 금방 이해할 수 있으니 "효율성"도 같이 높아지게 된다.
앞에서 이야기 했듯이 코드 스타일에는 식별자 이름 표기법 말고도 여러가지가 있다.
모든 언어에서 전부 지킬순 없겠지만,
최소한 본인이 자주쓰는 언어의 코딩 스타일정도는 어느정도 파악하는게 좋지않을까 싶다.