"식별자"의 두 판 사이의 차이
잔글 |
leejia1222 (토론 | 기여) |
||
1번째 줄: | 1번째 줄: | ||
'''식별자'''(識別子, identifier)란 어떤 대상을 유일하게 구별할 수 있는 이름을 말한다. 대표적인 식별자에는 회원 [[아이디]](ID), [[키 (데이터베이스)|데이터베이스 키]](Key), [[URI]], [[URL]], [[URN]], [[아이피]](IP), [[ISBN]], [[UCI]] 등이 있다. | '''식별자'''(識別子, identifier)란 어떤 대상을 유일하게 구별할 수 있는 이름을 말한다. 대표적인 식별자에는 회원 [[아이디]](ID), [[키 (데이터베이스)|데이터베이스 키]](Key), [[URI]], [[URL]], [[URN]], [[아이피]](IP), [[ISBN]], [[UCI]] 등이 있다. | ||
+ | |||
+ | {{:인터넷 배너|웹}} | ||
+ | |||
+ | == 상세 == | ||
+ | 식별자는 [[프로그래밍 언어]]에서 [[변수]], [[함수]], [[클래스]], [[모듈]] 등 다양한 프로그래밍 요소를 구분하고 참조하기 위해 사용하는 이름을 의미한다. 식별자는 코드의 가독성과 유지보수성을 높이는 데 중요한 역할을 하며, 각 프로그래밍 요소를 명확하게 정의하고 사용할 수 있도록 한다.<ref>teo.yu, 〈[https://velog.io/@teo/cleancode 게슈탈트 법칙으로 이해하는 클린코드: 가독성의 비밀]〉, 《벨로그》, 2024-07-11</ref> 식별자는 프로그래밍 언어마다 규칙과 특성이 다를 수 있으며, 올바른 식별자 사용은 [[코드]] 품질에 중요한 영향을 미친다.<ref>〈[https://fastercapital.com/ko/content/%EC%BD%94%EB%93%9C-%ED%92%88%EC%A7%88--%EB%86%92%EC%9D%80-%EC%BD%94%EB%93%9C-%ED%92%88%EC%A7%88-%EC%9C%A0%EC%A7%80%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%BD%94%EB%93%9C-%EA%B2%80%ED%86%A0%EC%9D%98-%EC%A4%91%EC%9A%94%EC%84%B1.html 코드 품질: 높은 코드 품질 유지를 위한 코드 검토의 중요성]〉, 《FasterCapital》, 2024-03-26</ref> | ||
+ | |||
+ | 식별자는 정보를 다루는 모든 체계에서 내부적으로 사용되는데, 정보를 처리하기 위해서는 그 정보를 가리킬 방법이 있어야 하기 때문이다. 약어 [[ID]]는 식별(identity), 식별 과정(identification), 식별자를 의미하기도 한다. 식별자는 단어, 숫자, 문자, 기호, 또 이들의 어떠한 결합도 될 수 있다. 대표적인 식별자로 [[URL]], [[ISBN]], [[IP]] [[주소]], [[데이터베이스 키]] 등이 있다. 데이터베이스에서는 테이블에서 특정한 튜플을 식별내기 위해 컬럼 중 하나(또는 그 이상)을 식별자로 지정한다.<ref>〈[https://ko.wikipedia.org/wiki/%EC%8B%9D%EB%B3%84%EC%9E%90 식별자]〉, 《위키백과》</ref> | ||
+ | |||
+ | == 특징 == | ||
+ | * '''고유성''' : 식별자는 동일한 범위(scope) 내에서 고유해야 한다. 같은 범위 내에서는 동일한 이름을 가진 두 개의 변수나 함수가 존재할 수 없다. 예를 들어, 함수 내부에서 선언된 변수는 같은 함수 내에서 다른 변수와 이름이 겹쳐서는 안 된다.<ref>메가구글, 〈[https://siloam72761.tistory.com/entry/DB-%EC%8B%9D%EB%B3%84%EC%9E%90%EC%9D%98-%EA%B0%9C%EB%85%90-%ED%8A%B9%EC%A7%95-%EB%B6%84%EB%A5%98 (DB) 식별자의 개념, 특징, 분류]〉, 《티스토리》, 2022-05-21</ref> | ||
+ | * '''명명 규칙''' : 프로그래밍 언어마다 식별자의 명명 규칙이 다를 수 있다. 그러나 대부분의 언어에서는 다음과 같은 공통적인 규칙을 따른다. | ||
+ | # 알파벳 대소문자(A-Z, a-z), 숫자(0-9), 밑줄(_)을 사용할 수 있다. | ||
+ | # 숫자로 시작할 수 없다. | ||
+ | # 공백이나 특수 문자는 사용할 수 없다(언더스코어(_)는 예외). | ||
+ | * '''대소문자 구분''' : 많은 프로그래밍 언어에서는 식별자의 대소문자를 구분한다. 예를 들어, ''''Variable''''과 ''''variable''''은 서로 다른 식별자로 인식된다.<ref>〈[https://wikidocs.net/215508 4-1-7. 식별자에 대해 설명해 줘]〉, 《위키독스》</ref> | ||
+ | |||
+ | ===좋은 식별자=== | ||
+ | * '''의미 있는 이름''' : 식별자는 해당 변수나 함수의 용도나 의미를 명확히 나타내는 이름이어야 한다. 예를 들어, ''''int age''''는 나이를 나타내는 변수임을 쉽게 알 수 있다. | ||
+ | * '''일관성''' : 코드 전체에서 일관된 명명 규칙을 사용하는 것이 좋다. 예를 들어, 카멜 표기법(camelCase)이나 스네이크 표기법(snake_case) 중 하나를 선택하여 일관되게 사용하는 것이 좋다. | ||
+ | * '''가독성''' : 식별자는 가독성을 높이기 위해 적절한 길이와 명확한 구조를 가져야 한다. 너무 짧거나 너무 긴 이름은 피하는 것이 좋다.<ref>건둔덕, 〈[https://velog.io/@tnstjd120/%EC%8B%9D%EB%B3%84%EC%9E%90-%EB%84%A4%EC%9D%B4%EB%B0%8D-%EA%B7%9C%EC%B9%99 식별자 네이밍 규칙]〉, 《벨로그》, 2022-06-19</ref> | ||
+ | |||
+ | == 용도 == | ||
+ | * '''변수 식별자''' : 변수는 데이터를 저장하는 공간으로, 변수 식별자는 이러한 저장 공간에 접근하기 위해 사용된다. 예를 들어, ''''int age = 25;''''에서 ''''age''''는 변수 식별자다. | ||
+ | * '''함수 식별자''' : 함수는 특정 작업을 수행하는 코드 블록이며, 함수 식별자는 함수를 호출할 때 사용된다. 예를 들어, ''''void printMessage() { ... }''''에서 ''''printMessage''''는 함수 식별자다. | ||
+ | * '''클래스 식별자''' : 클래스는 객체 지향 프로그래밍에서 사용되는 데이터 구조로, 클래스 식별자는 클래스를 정의하고 인스턴스화할 때 사용된다. 예를 들어, ''''class Person { ... }''''에서 ''''Person''''은 클래스 식별자다. | ||
+ | * '''모듈 및 네임스페이스 식별자''' : 모듈은 코드의 재사용성과 관리성을 높이기 위해 사용되는 코드 단위다. 모듈 식별자는 모듈을 임포트(import)하거나 참조할 때 사용된다. 예를 들어, ''''import math''''에서 ''''math''''는 모듈 식별자다.<ref>안국이, 〈[https://post.naver.com/viewer/postView.nhn?volumeNo=27785662&memberNo=21815&navigationType=push 파이썬 네임스페이스: 함수, 클래스 그리고 모듈]〉, 《네이버 포스트》, 2020-03-20</ref> | ||
+ | |||
+ | == 규칙 == | ||
+ | :{|class=wikitable width=800 | ||
+ | |+프로그래밍 언어별 식별자 규칙 | ||
+ | !align=center|프로그래밍 언어 | ||
+ | !align=center|식별자 규칙 | ||
+ | |- | ||
+ | |align=center|[[C]]/[[C++]] | ||
+ | |align=light| | ||
+ | * 변수, 함수, 클래스 등의 식별자는 알파벳, 숫자, 밑줄(_)로 구성될 수 있다. | ||
+ | * 첫 글자는 반드시 알파벳이나 밑줄이어야 한다. | ||
+ | * 대소문자를 구분한다. | ||
+ | |- | ||
+ | |align=center|[[자바]]<br>(Java) | ||
+ | |align=light| | ||
+ | * 변수, 메서드, 클래스 등의 식별자는 알파벳, 숫자, 밑줄(_) 및 달러 기호($)로 구성될 수 있다. | ||
+ | * 첫 글자는 반드시 알파벳, 밑줄, 또는 달러 기호여야 한다. | ||
+ | * 대소문자를 구분한다. | ||
+ | * 클래스 이름은 관례적으로 대문자로 시작하고, 변수 및 메서드 이름은 소문자로 시작한다. | ||
+ | |- | ||
+ | |align=center|[[파이썬]]<br>(Python) | ||
+ | |align=light| | ||
+ | * 변수, 함수, 클래스 등의 식별자는 알파벳, 숫자, 밑줄(_)로 구성될 수 있다. | ||
+ | * 첫 글자는 반드시 알파벳이나 밑줄이어야 한다. | ||
+ | * 대소문자를 구분한다. | ||
+ | * 클래스 이름은 관례적으로 대문자로 시작하고, 변수 및 함수 이름은 소문자로 시작한다. | ||
+ | |- | ||
+ | |align=center|[[자바스크립트]]<br>(JavaScript) | ||
+ | |align=light| | ||
+ | * 변수, 함수, 클래스 등의 식별자는 알파벳, 숫자, 밑줄(_), 달러 기호($)로 구성될 수 있다. | ||
+ | * 첫 글자는 반드시 알파벳, 밑줄, 또는 달러 기호여야 한다. | ||
+ | * 대소문자를 구분한다. | ||
+ | |} | ||
+ | |||
+ | {{각주}} | ||
+ | |||
+ | == 참고자료 == | ||
+ | * 〈[https://ko.wikipedia.org/wiki/%EC%8B%9D%EB%B3%84%EC%9E%90 식별자]〉, 《위키백과》 | ||
+ | * 〈[https://wikidocs.net/215508 4-1-7. 식별자에 대해 설명해 줘]〉, 《위키독스》 | ||
+ | * 안국이, 〈[https://post.naver.com/viewer/postView.nhn?volumeNo=27785662&memberNo=21815&navigationType=push 파이썬 네임스페이스: 함수, 클래스 그리고 모듈]〉, 《네이버 포스트》, 2020-03-20 | ||
+ | * 메가구글, 〈[https://siloam72761.tistory.com/entry/DB-%EC%8B%9D%EB%B3%84%EC%9E%90%EC%9D%98-%EA%B0%9C%EB%85%90-%ED%8A%B9%EC%A7%95-%EB%B6%84%EB%A5%98 (DB) 식별자의 개념, 특징, 분류]〉, 《티스토리》, 2022-05-21 | ||
+ | * 건둔덕, 〈[https://velog.io/@tnstjd120/%EC%8B%9D%EB%B3%84%EC%9E%90-%EB%84%A4%EC%9D%B4%EB%B0%8D-%EA%B7%9C%EC%B9%99 식별자 네이밍 규칙]〉, 《벨로그》, 2022-06-19 | ||
+ | * teo.yu, 〈[https://velog.io/@teo/cleancode 게슈탈트 법칙으로 이해하는 클린코드: 가독성의 비밀]〉, 《벨로그》, 2024-07-11 | ||
+ | * 〈[https://fastercapital.com/ko/content/%EC%BD%94%EB%93%9C-%ED%92%88%EC%A7%88--%EB%86%92%EC%9D%80-%EC%BD%94%EB%93%9C-%ED%92%88%EC%A7%88-%EC%9C%A0%EC%A7%80%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%BD%94%EB%93%9C-%EA%B2%80%ED%86%A0%EC%9D%98-%EC%A4%91%EC%9A%94%EC%84%B1.html 코드 품질: 높은 코드 품질 유지를 위한 코드 검토의 중요성]〉, 《FasterCapital》, 2024-03-26 | ||
== 같이 보기 == | == 같이 보기 == |
2024년 7월 17일 (수) 14:56 판
식별자(識別子, identifier)란 어떤 대상을 유일하게 구별할 수 있는 이름을 말한다. 대표적인 식별자에는 회원 아이디(ID), 데이터베이스 키(Key), URI, URL, URN, 아이피(IP), ISBN, UCI 등이 있다.
[아사달] 스마트 호스팅 |
상세
식별자는 프로그래밍 언어에서 변수, 함수, 클래스, 모듈 등 다양한 프로그래밍 요소를 구분하고 참조하기 위해 사용하는 이름을 의미한다. 식별자는 코드의 가독성과 유지보수성을 높이는 데 중요한 역할을 하며, 각 프로그래밍 요소를 명확하게 정의하고 사용할 수 있도록 한다.[1] 식별자는 프로그래밍 언어마다 규칙과 특성이 다를 수 있으며, 올바른 식별자 사용은 코드 품질에 중요한 영향을 미친다.[2]
식별자는 정보를 다루는 모든 체계에서 내부적으로 사용되는데, 정보를 처리하기 위해서는 그 정보를 가리킬 방법이 있어야 하기 때문이다. 약어 ID는 식별(identity), 식별 과정(identification), 식별자를 의미하기도 한다. 식별자는 단어, 숫자, 문자, 기호, 또 이들의 어떠한 결합도 될 수 있다. 대표적인 식별자로 URL, ISBN, IP 주소, 데이터베이스 키 등이 있다. 데이터베이스에서는 테이블에서 특정한 튜플을 식별내기 위해 컬럼 중 하나(또는 그 이상)을 식별자로 지정한다.[3]
특징
- 고유성 : 식별자는 동일한 범위(scope) 내에서 고유해야 한다. 같은 범위 내에서는 동일한 이름을 가진 두 개의 변수나 함수가 존재할 수 없다. 예를 들어, 함수 내부에서 선언된 변수는 같은 함수 내에서 다른 변수와 이름이 겹쳐서는 안 된다.[4]
- 명명 규칙 : 프로그래밍 언어마다 식별자의 명명 규칙이 다를 수 있다. 그러나 대부분의 언어에서는 다음과 같은 공통적인 규칙을 따른다.
- 알파벳 대소문자(A-Z, a-z), 숫자(0-9), 밑줄(_)을 사용할 수 있다.
- 숫자로 시작할 수 없다.
- 공백이나 특수 문자는 사용할 수 없다(언더스코어(_)는 예외).
- 대소문자 구분 : 많은 프로그래밍 언어에서는 식별자의 대소문자를 구분한다. 예를 들어, 'Variable'과 'variable'은 서로 다른 식별자로 인식된다.[5]
좋은 식별자
- 의미 있는 이름 : 식별자는 해당 변수나 함수의 용도나 의미를 명확히 나타내는 이름이어야 한다. 예를 들어, 'int age'는 나이를 나타내는 변수임을 쉽게 알 수 있다.
- 일관성 : 코드 전체에서 일관된 명명 규칙을 사용하는 것이 좋다. 예를 들어, 카멜 표기법(camelCase)이나 스네이크 표기법(snake_case) 중 하나를 선택하여 일관되게 사용하는 것이 좋다.
- 가독성 : 식별자는 가독성을 높이기 위해 적절한 길이와 명확한 구조를 가져야 한다. 너무 짧거나 너무 긴 이름은 피하는 것이 좋다.[6]
용도
- 변수 식별자 : 변수는 데이터를 저장하는 공간으로, 변수 식별자는 이러한 저장 공간에 접근하기 위해 사용된다. 예를 들어, 'int age = 25;'에서 'age'는 변수 식별자다.
- 함수 식별자 : 함수는 특정 작업을 수행하는 코드 블록이며, 함수 식별자는 함수를 호출할 때 사용된다. 예를 들어, 'void printMessage() { ... }'에서 'printMessage'는 함수 식별자다.
- 클래스 식별자 : 클래스는 객체 지향 프로그래밍에서 사용되는 데이터 구조로, 클래스 식별자는 클래스를 정의하고 인스턴스화할 때 사용된다. 예를 들어, 'class Person { ... }'에서 'Person'은 클래스 식별자다.
- 모듈 및 네임스페이스 식별자 : 모듈은 코드의 재사용성과 관리성을 높이기 위해 사용되는 코드 단위다. 모듈 식별자는 모듈을 임포트(import)하거나 참조할 때 사용된다. 예를 들어, 'import math'에서 'math'는 모듈 식별자다.[7]
규칙
프로그래밍 언어별 식별자 규칙 프로그래밍 언어 식별자 규칙 C/C++ - 변수, 함수, 클래스 등의 식별자는 알파벳, 숫자, 밑줄(_)로 구성될 수 있다.
- 첫 글자는 반드시 알파벳이나 밑줄이어야 한다.
- 대소문자를 구분한다.
자바
(Java)- 변수, 메서드, 클래스 등의 식별자는 알파벳, 숫자, 밑줄(_) 및 달러 기호($)로 구성될 수 있다.
- 첫 글자는 반드시 알파벳, 밑줄, 또는 달러 기호여야 한다.
- 대소문자를 구분한다.
- 클래스 이름은 관례적으로 대문자로 시작하고, 변수 및 메서드 이름은 소문자로 시작한다.
파이썬
(Python)- 변수, 함수, 클래스 등의 식별자는 알파벳, 숫자, 밑줄(_)로 구성될 수 있다.
- 첫 글자는 반드시 알파벳이나 밑줄이어야 한다.
- 대소문자를 구분한다.
- 클래스 이름은 관례적으로 대문자로 시작하고, 변수 및 함수 이름은 소문자로 시작한다.
자바스크립트
(JavaScript)- 변수, 함수, 클래스 등의 식별자는 알파벳, 숫자, 밑줄(_), 달러 기호($)로 구성될 수 있다.
- 첫 글자는 반드시 알파벳, 밑줄, 또는 달러 기호여야 한다.
- 대소문자를 구분한다.
각주
- ↑ teo.yu, 〈게슈탈트 법칙으로 이해하는 클린코드: 가독성의 비밀〉, 《벨로그》, 2024-07-11
- ↑ 〈코드 품질: 높은 코드 품질 유지를 위한 코드 검토의 중요성〉, 《FasterCapital》, 2024-03-26
- ↑ 〈식별자〉, 《위키백과》
- ↑ 메가구글, 〈(DB) 식별자의 개념, 특징, 분류〉, 《티스토리》, 2022-05-21
- ↑ 〈4-1-7. 식별자에 대해 설명해 줘〉, 《위키독스》
- ↑ 건둔덕, 〈식별자 네이밍 규칙〉, 《벨로그》, 2022-06-19
- ↑ 안국이, 〈파이썬 네임스페이스: 함수, 클래스 그리고 모듈〉, 《네이버 포스트》, 2020-03-20
참고자료
- 〈식별자〉, 《위키백과》
- 〈4-1-7. 식별자에 대해 설명해 줘〉, 《위키독스》
- 안국이, 〈파이썬 네임스페이스: 함수, 클래스 그리고 모듈〉, 《네이버 포스트》, 2020-03-20
- 메가구글, 〈(DB) 식별자의 개념, 특징, 분류〉, 《티스토리》, 2022-05-21
- 건둔덕, 〈식별자 네이밍 규칙〉, 《벨로그》, 2022-06-19
- teo.yu, 〈게슈탈트 법칙으로 이해하는 클린코드: 가독성의 비밀〉, 《벨로그》, 2024-07-11
- 〈코드 품질: 높은 코드 품질 유지를 위한 코드 검토의 중요성〉, 《FasterCapital》, 2024-03-26
같이 보기