따배씨++ (7. 작명)

김동우·2021년 2월 24일
0

안녕하십니까. 김동우입니다.

이번 노트에서는 C++에서의 작명에 대한 얘기를 해볼까 합니다.

변수명과 함수명 클래스명 등을 짓는 것은 생각보다 어려운 일입니다.

후에 갈수록 비슷한 특징을 갖는 상황이 많아지기 때문이죠.

그리고 구분하기 어렵게 작명된 변수를 코드 내에서 다시 이해해야 할 때는 그만큼 고역인 일이 없습니다.

그래서 작명을 해줄 때에는 최대한 자세하게 해주어야 합니다.

이러한 작명법은 언어별로 다르고, 심지어는 프레임워크별로 약간씩 다른 경우도 존재합니다.

해당 강의에서 추천하는 방식은 다음과 같습니다.

  1. 변수명의 공백은 모두 언더바(_)로 작성한다? (Pothole case)

    예를 들어 first_variable 라는 변수를 선언할 때 first와 variable 라는 두 단어로 구분할 수 있습니다.

    자연어에서의 공백은 단어의 구분을 위해 사용하죠? 그러나, 프로그래밍 언어에서는 공백을 허용하지 않는다고 생각하시면 됩니다.

    그 이유는 컴파일 과정에서 발생하는 one line 변환이 존재하기 때문이지 않을까 생각하고 있습니다.

    C++ 컴파일러는 코드를 모두 한 줄로 바꾸고, 이 때 공백과 줄바꿈(Enter)을 모두 무시하게 됩니다. (세미콜론편 참고)

    추후 등장하는 다양한 언어들에서 그러한 컴파일 과정이 존재하지 않더라도, 관습이나 약속에 의한 규정이 존재하는 것이라고 어림잡겠습니다.
    (정확한 근거는 없습니다. 다만 추측한 것이니 깊게 생각은 하지 말아주세요.)

    자, 방금 말씀드린 언더바 작성법의 이름은 팟홀 표기법(Pothole case)이라 부르고, 생각보다 대중적인 방법입니다.

    간혹 Camel case, 혹은 Pascal case로 변수명을 작명하는 것을 권장하는 언어도 있습니다.

    심지어 표기법은 소속된 기업, 혹은 팀마다 다를 수 있으며 사전에 다양한 표기법을 연습해보는 것은 어느 정도 도움이 됩니다.

    그러니 나머지 표기법도 잠깐 말씀드리겠습니다.

  2. 공백은 대문자와 소문자의 구분으로 구현한다.

    Camel case는 소문자-대문자 형태로
    Pascal case는 대문자-대문자 형태로 구분합니다.

Camel case의 경우 getNumber()
Pascal case의 경우 GetNumber() 의 형태로 말이죠.

생각보다 쉽죠? 하지만 이를 통일해서 작성해야 한다는 생각을 꾸준히 하는 것은 생각보다 어려운 일입니다.

더군다나 이제는 더욱 나아가 코드 내 클래스는 Pascal, 변수나 함수는 Camel 등으로 섞어 사용하는 경우가 있습니다.

C++의 멤버변수명이 m_variables 의 형태를 띄는 것도 비슷한 이유입니다.

그리고 그 구분이 언어별로 다른 경우도 존재하고, 말씀드렸듯 팀이나 기업별로 다른 경우가 존재합니다.

다만, 알고 사용하는것과 모르고 사용하는 것에는 큰 차이가 있으니 한 번 쯤은 공부해보는 것도 나쁘지 않다고 생각합니다.

  • CSS, HTML 사용 유저들은 BEM 표기법을 따르다, JS에 와서 Camel, Pascal을 섞어 사용하게 되겠죠?

    그러니 작명법을 많이 알아둘수록 손해는 없을겁니다.

자, 그럼 이번 글은 여기서 마치도록 하겠습니다.

0개의 댓글

관련 채용 정보