코딩 스타일

내위키

컴퓨터 프로그램의 코드를 작성할 때, 코드가 일관성이 있고 알아보기 쉽도록 여러 가지 스타일을 정하는 규칙. 블럭 정의, 변수나 함수 또는 유형 이름을 표기하는 방식, 들여쓰기를 비롯한 다양한 규칙들을 정할 수 있다. 이는 코드의 문법과는 다른 것인데, 문법을 위반하면 컴파일 또는 실행 오류가 발생하지만 단지 스타일을 어긴 것만으로는 오류가 일어나지 않는다. 기계의 관점으로 보면 하등 영향을 미치지 않지만 사람이 코드를 알아보기 쉽고, 그에 따라 유지보수를 쉽게 하며 여러 명이 참가하는 프로젝트에서 다른 사람이 작성한 코드를 쉽게 이해하거나, 여러 사람이 한 개의 코드 파일을 만졌을 때에도 알아보기 힘든 코드가 되지 않도록 하는 것이 주요한 목적이다. 단, 파이썬은 코딩 스타일 중 몇 가지 요소를 아예 문법으로 집어넣어 버렸다. 다른 언어에서는 블럭 들여쓰기 규칙을 강제하지 않지만 파이썬은 들여쓰기가 곧 블럭의 정의이기 때문에 들여쓰기를 제대로 안 하면 오류를 일으킨다.

변수∙함수∙유형 표기 방식

변수나 함수, 유형은 띄어쓰기를 허용하지 않는다. 만약 이들의 이름을 여러 단어를 이어서 짓고 싶다면 띄어쓰기 없이도 각 단어를 알아볼 수는 방법이 필요한데, 이를 위해 다양한 방식들이 쓰이고 있다. 한 가지 언어에서 한 가지 표기법만 쓰이는 것은 아니다. 예를 들어 Java는 변수나 함수 이름은 카멜 표기법으로, 클래스 이름은 파스칼 케이스로 하는 게 기본이다.

카멜 표기법

Camel case, camelCase

좀 더 공식화된 용어로는 중간 대문자(medial caps)라는 용어도 있다. '카멜'은 '낙타'를 뜻한다. '카멜백 표기법(camelback case)'이라고도 불렀지만 요즘은 거의 쓰이지 않는다. 낙타의 등에 혹이 불룩하게 나와 있는 것에서 따온 이름으로, 각 단어의 첫 글자를 대문자로 표기하되 첫 단어의 첫 글자는 소문자로 표기하는 방식이다. Java가 변수나 함수 이름에 이를 사용하고 있으며, 자바스크립트, C#, Dart와 같은 많은 언어들이 사용하고 있다.

파스칼 표기법

Pascal case, PascalCase

각 단어의 첫 글자를 대문자로 표기한다. 첫 단어의 첫 글자도 대문자로 표기한다. 그냥 이것도 카멜 표기법이라고 많이 부른다. 구분해서 부를 때는 이쪽은 대문자 카멜 표기법(upper camel case)으로, 첫 단어 첫 글자를 소문자로 쓰는 방식은 소문자 카멜 표기법(lower camel case)이라고 부른다. 파스칼 언어에서 이러한 표기법을 사용했기 때문에 붙은 이름이다. 변수나 함수 이름으로는 카멜백 표기법을 사용하는 언어라고 해도 적어도 클래스 이름은 파스칼 표기법을 사용하는 게 보통이다. 또는 기본 유형은 카멜 표기법 또는 스네이크 표기법을 사용하더라도 사용자 정의 유형은 파스칼 표기법을 사용하기도 한다. 당연히 파스칼은 변수 이름도 파스칼 표기법을 사용한다.

스네이크 표기법

Snake case, snake_case

땅바닥을 기어다니는 뱀의 모양과 비슷하다고 해서 붙은 이름. 모두 소문자(혹은 모두 대문자)로 쓰되, 띄어쓰기를 밑줄(_) 기호로 대체하는 것이다. C, C++과 같은 언어들이 이 방법을 사용한다. 파이썬도 변수나 함수 이름은 스네이크 표기법을, 클래스 이름은 파스칼 표기법을 쓰는 게 보통이다. 띄어쓰기를 하면 안 되는 파일 이름을 적을 때에도 이방법을 사용한다.

케밥 표기법

Kebab case, kebab-case

케밥 꼬치의 모양을 보고 따온 말로, 꼬치에 재료가 듬성듬성 꽂혀 있는 것과 비슷한 모양이라는 의미다. 모두 소문자(혹은 모두 대문자)로 쓰되, 띄어쓰기를 하이픈(-) 기호로 대체하는 것이다. 하이픈은 뺄셈 기호로도 쓰이기 때문에 일반 프로그래밍 언어에서는 잘 안 쓰는 편이며 아예 변수나 함수, 유형 이름에 하이픈을 못 쓰게 하는 언어도 있다, CSS가 이 방식을 사용한다. 띄어쓰기를 하면 안 되는 파일 이름에도 가끔 쓰인다.