Naming Rule
개발자들은 코딩 할 때 클래스 명, 메소드 명, 함수 명, 변수 명, 테이블 명, 컬럼 명 등의 이름을 지을 때 어떤 규칙으로 이름을 명명할지 고민하는 경우가 많습니다. 이러한 개발자들의 고민을 덜어주기 위해 이미 개발자 선배님들께서 만들어 놓은 프로그래밍 명명 규칙(관례)으로 다음과 같은 종류가 있습니다. 낙타 표기법은 단봉 낙타의 혹을 연상한다는 의미로 명명되었습니다. 각 단어의 첫 문자를 대문자로 표기하되, 이름의 첫 문자는 소문자로 작성합니다. 일반적으로 변수명이나 함수명을 Camel Case로 작성합니다. Ex) camelCase, varialbleName, userName 쌍봉 낙타 표기법이라고도 불립니다. 각 단어의 첫 문자를 대문자로 표기하며, 이름의 첫 문자 또한 대문자로 작성합니다. 일반적으로 Class명은 Pascal Case로 작성합니다. Ex) PascalCase, ClassName, UserName 각 단어의 사이를 언더바(_)로 구분해주는 표기법입니다. 일반적으로 데이터베이스(DB) 테이블명이나 컬럼명을 Snake Case로 작성합니다. Ex) snake_case, table_name, user_name 케밥 표기법은 Spinal Case, Train Case, Lisp Case라고도 불립니다. 각 단어의 사이를 하이픈(-)로 구분해주는 표기법입니다. 일반적으로 HTML 태그의 id, class 속성으로 사용됩니다. Ex) kebab-case, spinal-case, train-case
이름 앞에 변수의 타입을 접두어로 넣어주는 표기법입니다. 접두어의 종류에는 ch(char), str(string), i(int), db(double), b(boolean) 등이 있습니다. Ex) strUserAge, iUserAge 안녕하세요. 변수의 이름을 짓는 방법은 개발자마다 본인만의 스타일이 있습니다. 이번 포스팅에서는 소프트웨어 공학 책을 보셨다면 알 수 있는 변수의 대표적인 명명 규칙(Naming Rule)에 대해서 알아보겠습니다. 1. CamelCasing(카멜 케이싱)첫 번째 문자는 소문자로 표기하고, 중간에 새로 시작하는 단어가 있다면 그 단어는 대문자로 표기하는 방식입니다. 변수명이 낙타의 모양과 비슷하여 카멜 케이싱이라고 이름이 붙여졌습니다. Ex) helloWorld 2. PascalCasing(파스칼 케이싱)단어의 첫 번째 문자를 대문자로 표기하는 방식입니다. Ex) HelloWorld 3. SnakeCasing(스네이크 케이싱)모든 단어를 소문자로 작성하고, 단어 사이사이에 "_"(언더바)를 넣어서 표기하는 방식입니다. 언더바가 마치 뱀 같은 모양이라 스네이크 케이싱이라 불립니다. Ex) hello_world 4. KebabCasing(케밥 케이싱)모든 단어를 소문자로 작성하고, 단어 사이사이에 "-"(대시)를 넣어서 표기하는 방식입니다. 케밥이 꼬챙이에 꼳힌 모습과 비슷하여 케밥 케이싱이라 불립니다. 인터넷에 검색하니 그렇게 나오는데 정말 그런지는 저도 모르겠어요... ㅋㅋㅋ Ex) hello-world 이상 프로그래밍에서 사용하는 변수 네이밍 스타일에 대해서 알아봤습니다. 보통 읽기 좋은 코드를 좋은 코드라고 한다. 변수, 메소드, 클래스 등의 이름이 일관성이 없고 그것의 쓰임을 분명히 나타내지 않는다면 어떨까? 좋은 이름을 지으려면 시간이 걸리지만, 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 두 변수는 모두 나이 정보를 나타내는 변수이다. 협업자에 대한 배려가 필요하다.
프레임워크마다 코드 컨벤션이 달라지긴 하지만, 보통 자바는 오라클의 자바 코드 컨벤션을 따른다. 이 글에서는 모든 자바 네이밍 규칙을 다루지는 않고, 변수의 네이밍에 대한 규칙을 간단히 소개해 보려고 한다. 기본적인 변수명 네이밍 컨벤션컴파일러에서 제한하는 변수 명명 규칙
JE22 에서 권장하는 변수 명명 규칙
좋은 변수명 짓기의도를 분명히 밝혀 이름을 짓기
협업을 염두해서 짓기
위 코드에서 2가 의미하는게 뭘까? 다른 사람이 봤을 때
2에 맥락을 고려해서 짓기앞서 보았던 여러 예시에서 나타나듯이, 이름이 지나치게 짧을 경우 변수의 용도를 알기 어렵다.
user를 붙이지 않아도 충분히 정보를 전달할 수 있다. 불린 변수의 네이밍
아래 코드에서 어떤 경우가 더 읽기 쉬운가?
자바에서는 접두어
접두어 메소드가 여러번 호출된 한눈에 보기 힘든 코드
위 코드의 리턴 부분을 보았을 때, 한 줄에 많은 기능이 있어서 코드 읽기가 어렵다.
변수 이름에 자료형이 들어간다면?
List 대신 다른 자료형(Set…)을 써야 하는 경우가 오면 어떻게 해야 할까? 기존 변수명이 적절한 의미를 나타내지 못하게 되므로 결국 변수명을 변경해야 하는 번거로움이 생긴다. 변수 이름에 자료형을 쓰지 않아도 타입을 통해 충분히 어떤 변수인지 파악이 가능하다.
List, Collection 등의 자료형은 복수형으로 표현하는 것이 좋다. 참고 링크
|