개발관련/용어

개발 용어 관련 - 프로그래밍 표기법 (카멜, 파스칼, 헝가리안, 스네이크 )

고통받는다 2023. 6. 27. 15:44

오늘은 개발 용어에 관해 포스팅을 하는 시간을 가져보겠습니다.

여러분이 대학시절에는 딱히 팀 프로젝트 할 경험도 없으실 거고... 있더라도 그냥 표기법에 대해서 신경 안 쓰고 개발을 진행하실 경우가 정말 많으실 겁니다.

하지만 이런 상태로 실무에 오시면 많이 혼나실 겁니다.

프로젝트 개발 중에 투입되시면 프로젝트 변수 명명 규칙 이런 게 다 정해져 있거든요..

그리고 투입될 때 변수 네이밍은 어느 부분은 카멜 어느 부분은 파스칼, 어느 부분은 스네이크 사용합니다 했을 때... 못 알아 들으십니다..

자 그럼 본론으로 들어가도록 하겠습니다.

여러분이 프로그래밍 책을 공부할 때 가장 먼저 나오는 것이 바로 "변수"에 대한 것입니다.

제가 학창 시절 C를 공부할 때는 변수 선언 및 규칙이 나왔는데 요즘 언어는 어떨지 잘 모르겠군요...

어찌 되었든 변수에 대한 정의, 선언 규칙 등이 가장 먼저 설명이 되어있죠..

아마 여러분은 그냥 별생각 없이 이 부분을 지나쳤을 겁니다.

하지만 이 변수 선언 규칙에 대한 내용은 곧 표기법과 직결이 됩니다.

변수 선언의 규칙이 뭐였는지 다시 생각해 보는 시간을 가집시다.

1. 키워드는 사용 불가, 포함은 가능

2. 공백이 있어서는 안 된다.

3. 첫 글자에 숫자를 써서는 안 된다.

4. 대소문자를 구별한다.

5. 특수문자는 대부분 사용이 불가능하다

변수 선언의 내용은 위와 같습니다.

자.. 그럼 생각을 해보죠... 변수 네이밍을 할 때 a, b, c, d 이런 식으로 짓지는 않죠?

나중에 유지 보수를 하기 위해서 누군가가 파일을 열었을 때 뭐 하는 변수인지 한눈에 알아볼 수 있는 변수 네이밍으로 하는 게 좋겠죠?

점수면 score.. 이름이면 name 이런 식으로 말이죠...

그런데 단어가 한 개인 경우 말고 두 개 이상은 경우는 어떻게 해야 할까요?

그냥 그대로 소문자로 이어 쓰면 알아보기가 힘들 텐데 말이죠...

이런 것을 해결하기 위해 만들어진 것이 표기법이라는 겁니다.

1. 카멜 표기법 (Camel Case)

 

카멜은 영어로 낙타를 뜻합니다.

낙타의 모양이 어떻게 생겼나요? _∩ 이렇게 생겼죠?

변수 네이밍이 낙타 모양을 닮았다고 해서 카멜 표기법이라고 명명하게 되었습니다.

가장 맨 앞에 오는 글자를 소문자로 그 이후에 오는 단어는 대문자로 표기하는 겁니다.

private int totalScore;

 

total + score에서 맨 앞의 단어를 소문자로 표기한 방법입니다.

2. 파스칼 표기법 (Pascal Case)

 

일명 쌍봉낙타 표기법이라고 말합니다.

카멜은 맨 앞에 오는 글자를 소문자로 했지만 파스칼은 맨 앞의 단어도 대문자로 표기합니다.

private int MathScore;

 

3. 스네이크 표기법

 

단어 사이에 _(언더바)를 넣어서 표기하는 방법입니다.

스네이크 -> 뱀이죠 뱀은 어떻게 생겼나요? S자로 생겼죠?

단어_단어_단어 -> 마치 뱀이 기어가는 형태와 비슷하지 않나요?

생긴 게 마치 뱀의 모양 같다고 해서 스네이크 표기법이라고 명명했습니다.

 

private int english_score

 

4. 헝가리안 표기법

 

C언어 진영에서 쓰이다가

현재는 사용하지 않는 표기법입니다.

접두어에 자료형을 알아볼 수 있게끔 표시하는 형태입니다.

 

접두어 리스트

자 그럼 가장 대표적으로 쓰는 표기법에 대해 알아봤는데요

안드로이드 기준으로 좀 대표적인 예시를 알려드리자면...

안드로이드는 일단 기본적으로 파스칼 기법과 스네이크 기법을 사용합니다.

 

클래스명을 네이밍 할 때는 파스칼 기법
resourece 영역의 파일을 만들 때는 스네이크 기법을 사용합니다.

 

클래스 변수 선언 영역은 개인 취향이긴 하지만

 

대부분 이런 형식으로 카멜 방식을 사용합니다.