본문 바로가기
개발/기타

프로그래밍 언어별 명명 규칙 안내 (Naming Convention)

by 레조 2024. 5. 24.

Naming Convention

 

프로그래밍 언어별 명명 규칙 (Naming Convention)

camelCase

snake_case

PascalCase

kebab-case

 

camelCase (낙타 표기법)

첫 번째 단어를 제외하고 각 단어의 첫 글자를 대문자로 시작합니다.

Java, JavaScript 등에서 변수나 함수 이름에 주로 사용합니다.

 

snake_case (스네이크 표기법)

모든 단어를 소문자로 쓰고 단어 사이를 언더스코어('_')로 연결합니다.

Python, Rust에서 주로 사용합니다.

 

PascalCase (파스칼 표기법)

각 단어의 첫 글자를 대문자로 시작합니다.

C#, Java 등에서 클래스 이름에 주로 사용합니다.

 

kebab-case (케밥 표기법)

모든 단어를 소문자로 쓰고 단어 사이를 하이픈('-')으로 연결합니다.

HTML, CSS에서 클래스 ID를 명명할 때 주로 사용합니다.

 


 

언어별 네이밍 컨벤션 구분

 

Java

구성 요소 네이밍 스타일 예시
변수 및 함수 camelCase localVariable, sendMessage
상수 UPPER_CASE MAX_STOCK_COUNT, COLOR_RED
클래스 및 인터페이스 PascalCase StringBuilder, List
메서드 camelCase getFile, readData
패키지 소문자 java.util, org.springframework

 

 

JavaScript

구성 요소 네이밍 스타일 예시
변수 및 함수 camelCase documentReady, fetchUser
상수 UPPER_CASE API_KEY, DEFAULT_TIMEOUT
클래스 PascalCase DateFormatter, User
메서드 camelCase getElement, setData
모듈 파일 kebab-case, camelCase date-utils.js, userProfile.js

 

 

Python

구성 요소 네이밍 스타일 예시
변수 및 함수 snake_case calculate_age, update_profile
상수 UPPER_CASE MAX_SIZE, DEFAULT_COLOR
클래스 및 예외 PascalCase BankAccount, ValueError
모듈 및 패키지 소문자 (가능하면 언더스코어 포함) math, numpy, os
메서드 및 인스턴스 변수 snake_case get_data, set_value
비공개 변수 _ (언더스코어) 시작 _internal_cache, __private_var

 

 

Rust

구성 요소 네이밍 스타일 예시
변수 및 함수 snake_case player_score, update_inventory
상수 SCREAMING_SNAKE_CASE MAX_HEIGHT, DEFAULT_COLOR
타입 (구조체, 열거형, 트레잇) PascalCase User, ThreadState
매크로 snake_case println!, vec!
특성 및 수명 snake_case, PascalCase 'static, Readable

 

 

C#

구성 요소 네이밍 스타일 예시
로컬 변수 camelCase localIndex, itemPrice
필드 (private) _camelCase _value, _count
상수 UPPER_CASE MAX_SIZE, DEFAULT_VALUE
프로퍼티 PascalCase BackColor, MainForm
메서드 PascalCase SaveDocument, FindById
클래스 및 인터페이스 PascalCase StreamReader, IEnumerable
열거형(enum) PascalCase Color, LogLevel
열거형 값 PascalCase Red, Verbose
네임스페이스 PascalCase System.Collections.Generic

 

 

HTML과 CSS에서는 주로 kebab-case를 사용하는 것이 관습적입니다.

그러나 JavaScript와 상호작용이 많은 경우 camelCase를 사용하기도 합니다.

 

HTML

구성요소 네이밍 스타일 예시
태그 (Elements) 소문자 <div>, <table>
속성 (Attributes) 소문자 type="text", href="#"
ID kebab-case, camelCase nav-bar, mainContent
클래스 (Classes) kebab-case, camelCase button-primary, userInfo

 

 

CSS

구성 요소 네이밍 스타일 예시
클래스 (Classes) kebab-case, camelCase .menu-item, .cardContainer
ID kebab-case, camelCase #submitButton, #footerContent
애니메이션 이름 (Keyframes) camelCase @keyframes fadeIn, @keyframes slideIn

 

 

C++

공식적으로 통일된 가이드가 없습니다.

구성 요소 네이밍 스타일 예시
변수 snake_case file_size, user_count
상수 UPPER_CASE MAX_WIDTH, DEFAULT_VALUE
함수 camelCase calculateSpeed, isValid
클래스 및 구조체 PascalCase DocumentEditor, FileReader
메서드 camelCase getDocument, setUser
네임스페이스 snake_case graphics_utils, std
템플릿 매개변수 PascalCase typename T, class Node
열거형(enum) PascalCase Color, ErrorCode
열거형 값 UPPER_CASE or PascalCase BLUE, NotFound
매크로 (전처리 지시자) UPPER_CASE #define PI 3.14159

 

 

 

cf.)

Hungarian notation (헝가리안 표기법)

변수의 이름 앞에 변수의 타입을 나타내는 접두어를 붙입니다.

 

m_HungranNotation

mHungranNotation

strHungranNotation

 

이 표기법은 과거에 마이크로소프트에서 개발자들이 사용했으나

현재는 타입 추론 기능이 강화되면서 사라지고 있습니다.