| 식별자(Identifier)란?
프로그래밍에서 변수, 상수, 함수, 배열 등의 붙여주는 즉, 다른 것들과 식별(구분)할 수 있게 해주는 이름을 말합니다.
| C/C++언어의 식별자 규칙
- 식별자는 영문자와 숫자, 밑줄 문자 _로 이루어진다.
- 식별자의 중간에 공백이 들어가면 안 된다.
- 식별자의 첫 글자는 반드시 영문자 또는 밑줄 기호_이여야 한다.
- 식별자는 숫자로 시작할 수 없다.
- 대문자와 소문자는 구별된다. 따라서 index와 Index, INDEX은 모두 서로 다른 변수이다.
- C나 C++의 키워드(예약어)와 똑같은 식별자는 허용되지 않는다.
- C의 키워드(예약어) 목록
auto | double | int | struct | break | else | long | switch |
case | enum | register | typedef | char | extern | return | union |
const | float | short | unsigned | continue | for | signed | void |
default | goto | sizeof | volatile | do | if | static | while |
- C++로 넘어오면서 추가되거나 의미가 변경된 키워드(예약어) 목록
auto | class | default | delete | export | extern | inline | mutable |
sizeof | struct | using |
| Java언어의 식별자 규칙
- 식별자는 밑줄 기호(_), 달러 표시($)를 제외한 특수문자(%, *, &, @, ^ 등), 공백(탭, space 등)은 사용할 수 없다.
- 식별자로 한글을 사용할 수 있다.
- 식별자의 첫 글자는 반드시 영문자 또는 한글, 밑줄 기호(_), 달러 표시($)이여야 한다.
- 식별자는 숫자로 시작할 수 없다.
- true, false, null은 키워드(예약어)는 아니지만, 식별자로 사용할 수 없다.
- 대문자와 소문자는 구별된다.
- 길이 제한이 없다.
- Java의 키워드(예약어)와 똑같은 식별자는 허용되지 않는다.
- Java의 키워드(예약어) 목록
abstract | assert | boolean | break | byte | case | catch | char |
class | const | continue | default | do | double | else | enum |
extends | final | finally | float | for | goto | if | implements |
import | instanceof | int | interface | long | native | new | package |
private | protected | public | return | short | static | strictfp | super |
switch | synchronized | this | throw | throws | transient | try | void |
volatile | while |
| Python언어의 식별자 규칙
- 식별자는 밑줄 기호(_)를 제외한 특수문자(%, *, &, @, ^ 등), 공백(탭, space 등)은 사용할 수 없다.
- 식별자의 첫 글자는 영문자 또는 밑줄 기호(_)이여 한다.
- 대문자와 소문자는 구별된다.
- Python의 키워드(예약어)와 똑같은 식별자는 허용되지 않는다.
- Python의 키워드(예약어) 목록
False | None | True | and | as | assert | break | class |
continue | def | del | elif | else | except | finally | for |
from | global | if | import | in | is | lambda | nonlocal |
not | or | pass | raise | return | try | while | with |
yield |
| 식별자 이름짓는 법
깃허브의 인기 자바소를 분석해서 클래스, 함수, 변수 이름의 명명 특징을 연구한 블로그
- 자바 네이밍 컨벤션을 철저히 준수한다.
- 클래스는 UpperCamelCase : 첫 글자 대문자
- 함수와 변수는 lowerCamelCase : 첫 글자 소문자
- 상수는 UPPER_DELIMITER_CASE : 모두 대문자
- 네이밍은 보통 16글자, 3단어를 조합한다.
- 클래스 네임: 3.18단어
- 함수 네임: 3.36단어
- 변수 네임: 2.57단어
- 품사는 주로 명사, 동사, 형용사의 조합이다.
- 명사 + 명사 + 명사
- 동사 + 명사 + 명사
- 형용사 + 명사 + 명사 등
코드의 네이밍 컨벤션은 영어 표기법을 상속받았다
| 파스칼 표기법으로 클래스 이름 짓기 > 모든 단어에서 첫 글자를 대문자로 쓰는 방식
interface Menu
class CoffeMenu implements Menu
| 카멜 표기법으로 함수·변수의 이름 짓기 > 첫 단어만 빼고 나머지 단어의 첫 번째 글자를 대문자로 쓰는 방식
int totalCount = 0;
void orderCoffee()
| 상수는 모두 대문자로 쓴다
static final int COFFEE_MAX = 10;
| 패키지와 모듈은 모두 소문자로 쓴다
kr.co.wikibook.android.developerwriting
import developerwriting
| BEM 표기법: Block, Element, Modifier > 대상-요소__상태
대상의 요소나 부분을 의미할 때는 언더스코어 두 개(__)
대상이나 요소의 상태나 속성을 의미할 대는 하이픈 두 개(--)
.form {}
.form__button {}
.form__button--disabled {}
가독성과 소통이 먼저다
그 밖의 표기법
| 헝가리안 표기법(Hungarian notation) > 자료형을 나타내는 단어를 포함시키는 방식
컴퓨터 프로그래밍에서 변수나 함수의 이름에 그 종류, 곧 흔히 데이터 타입 따위를 명시하는 표기법
cname = 'K'; // char을 줄여서 c
inumber = 123; // int를 줄여서 i
| 스네이크(snake) 표기법 > 변수명 중간에 밑줄 기호(_)를 사용하는 방식
people_age
place_name
이상으로 이번 포스팅에서는 식별자(Identifier)를 정리해보았습니다. 도움이 되셨나요?
이렇게 정리하고 나니, 공통점과 차이점을 한눈에 볼 수 있어 코딩하다가, 헷갈릴 때마다 보기 좋을 것 같습니다.
그럼 오늘도 즐거운 코딩하시길 바랍니다. 감사합니다.
| 참고 사이트
1. 자바 예약어
| 참고 도서
1. C 언어 express
2. 게임으로 배우는 C++
3. 명품 자바 에센셜
4. 개발자의 글쓰기
'코딩 | 개념 정리 > Common Concept' 카테고리의 다른 글
프로그래밍 공통 개념 뽀개기 5탄_주석 (0) | 2022.05.08 |
---|---|
프로그래밍 공통 개념 뽀개기 4탄_자료형(Data Type) (0) | 2021.09.21 |
프로그래밍 공통 개념 뽀개기 2탄_포인터(pointer) (0) | 2021.09.19 |
프로그래밍 공통 개념 뽀개기 1탄_함수의 매개변수와 전달인자란? (0) | 2021.09.18 |