나는 성공의 열쇠가 무엇인지는 모르지만, 실패의 열쇠가 무엇인지는 알고 있다. 그것은 모든 사람을 만족시키려고 하는 것이다. - 빌 코즈비 (Bill Cosby), 미국 배우
모든 사람의 욕구에 다 맞추려고 하다보면 단 한사람의 욕구도 충족시키지 못할 수도 있습니다. 여러 가지 일을 동시에 추진하다 보면 한 가지 일에서도 성공하기 힘든 것 역시 같은 이치입니다. 고객, 업무, 사업, 제품 할 것 없이 전략적인 포기와 더불어 선택된 부분에 대해 집중할 줄 아는 지혜가 필요합니다.
만남의 이유가 이별의 이유가 된다. 냉철해 보여서 좋았는데 날카로움에 베일 수도 있고, 열정적이어서 좋았는데 감당하기 벅찰 수도 있다. 결정적으로 이별은 사소한 사건을 계기로 이뤄진다. 사소한 사건이지만 그 조그만 사건에 너와 나의 모든 것이 다 들어 있다.
- 권석천의《사람에 대한 예의》중에서 -
* 좋아서 만나고 싫어져서 헤어집니다. 그 좋음과 싫음의 이유가 같습니다. 같은 하나인데 뜻이 둘로 갈라져 정반대의 것으로 해석되었을 뿐입니다. 그 사이에 '사소한 사건'이 자리잡고 있습니다. 전혀 문제될 것 같지 않은 작은 일이 빌미가 되어 '정말 좋았던 것'이 '정말 싫은 것'으로 바뀌면서 이별의 이유가 됩니다.
0. 공통 명명 규칙
대소문자가 구분되며 길이에 제한이 없다.
예약어를 사용해서는 안 된다.
숫자로 시작해서는 안 된다.
특수문자는 '_' 와 '$'만을 허용한다.
파스칼 표기법 (PascalCase)과 카멜 표기법(camelCase)를 사용한다.
PascalCase : 모든 단어에서 첫 번째 문자는 대문자이며 나머지는 소문자이다.
camelCase : 최초에 사용된 단어를 제외한 첫 번째 문자가 대문자이며 나머지는 소문자이다.
반의어는 반드시 대응하는 개념으로 사용해야 한다.
1. 패키지(Package) 명명 규칙
패키지명은 표준 패턴을 따라야 한다.
Ex) [com].[Company].[Project].[TopPackage].[LowerPackage]
패키지명은 가급적 한 단어의 명사를 사용한다.
Ex) 좋은 예 : com.nexon.sudden.member.object
Ex) 나쁜 예 : sudden.memberObject
2. 클래스(Class) 명명 규칙
클래스명에는 파스칼을 사용한다.
Ex) public class HelloWorld {}
인터페이스에는 특별한 접두사나 접미사를 사용하지 않고 파스칼을 사용한다.
Ex) public interface Animal {}
인터페이스를 구현한 클래스에는 특별한 접두사나 접미사를 사용하지 않고 파스칼을 사용한다.
Ex) public class Tiger implements animal{}
추상 클래스에는 특별한 접두사 접미사를 사용하지 않고 파스칼을 사용한다.
Ex) public abstract class Animal {}
3. 메소드(Method) 명명 규칙
메소드명에는 파스칼 표기법을 사용한다.
Ex) public void SendMessage(String message) {}
속성에 접근하는 메소드명의 접두사는 'get','set'을 사용한다.
Ex) public void setDisplayName
Ex) public void getDisplayName
데이터를 조회하는 메소드명의 접두사는 find를 사용한다.
Ex) public void findData(String data){}
데이터를 입력하는 메소드명의 접두사는 input을 사용한다.
Ex) public void inputData(HashMap data){}
데이터를 변경하는 메소드명의 접두사는 modify를 사용한다.
Ex) public void modifyData(HashMap data){}
데이터를 삭제하는 메소드명의 접두사는 delete를 사용한다.
Ex) public void deleteData(String data){}
데이터를 초기화 하는 메소드명의 접두사는 initialize을 사용한다.
Ex) public void initData(String data){}
반환값의 타입이 boolean인 메소드는 접두사로 is를 사용한다.
Ex) public void isData(String Data){}
데이터를 불러오는 메소드명의 접두사는 load를 사용한다.
Ex) public void loadData(){}
데이터가 있는지 확인하는 메소드명의 접두사는 has를 사용한다.
Ex) public void hasData(){}
보다 지능적인 set이 요구될때 사용하는 메소드명의 접두사는 register를 사용한다.
Ex) public void registerAccount(){}
새로운 객체를 만든뒤 해당 객체를 리턴해주는 메소드명의 접두사는 create를 사용한다.
Ex) public void createAccount(){}
해당 객체를 다른 형태의 객체로 변환해주는 메소드명의 접두사는 to를 사용한다.
Ex) public void toString(){}
해당 객체가 복수인지 단일인지 구분하는 메서드명의 접미사는 s를 사용한다.
Ex) public void getMembers(){}
B를 기준으로 A를 하겠다는 메소드명의 전치사는 By를 사용한다.
Ex) public void getUserByName(String name){}
반환값의 타입이 boolean인 메소드는 접두사로 is를 사용한다.
Ex) public void isData(String Data){}
데이터를 불러오는 메소드명의 접두사는 load를 사용한다.
Ex) public void loadData(){}
데이터가 있는지 확인하는 메소드명의 접두사는 has를 사용한다.
Ex) public void hasData(){}
보다 지능적인 set이 요구될때 사용하는 메소드명의 접두사는 register를 사용한다.
Ex) public void registerAccount(){}
새로운 객체를 만든뒤 해당 객체를 리턴해주는 메소드명의 접두사는 create를 사용한다.
Ex) public void createAccount(){}
해당 객체를 다른 형태의 객체로 변환해주는 메소드명의 접두사는 to를 사용한다.
Ex) public void toString(){}
해당 객체가 복수인지 단일인지 구분하는 메서드명의 접미사는 s를 사용한다.
Ex) public void getMembers(){}
B를 기준으로 A를 하겠다는 메소드명의 전치사는 By를 사용한다.
Ex) public void getUserByName(String name){}
4. 변수(Variable) 명명 규칙
변수와 메소드의 파라미터에는 카멜표기법을 사용한다.
변수에 약어를 사용하지 않고 모든 의미를 충분히 담는다.
한 글자로 된 이름을 사용하지 않는다.
선언된 지점에서 초기화하며, 가능한 사용범위를 최소화 한다. 숫자 0 레퍼런스 null
반복문에서 인덱스로 사용할 변수는 i,j,k 등으로 사용한다.
Ex) for(int i = 0; i < 10; i++){}
지역변수와 멤버변수(전역변수)는 변수명 앞에 밑줄(_)을 사용하여 구별한다.
boolean타입의 변수는 접두사로 is를 사용한다 Ex) isCheck
1. 카멜 표기법(camelCase) "camelCase" "단봉낙타" 표기법[1][2] 각 단어의 첫문자를 대문자로 표기하고 붙여쓰되, 맨처음 문자는 소문자로 표기함 띄어쓰기 대신 대문자로 단어를 구분하는 표기 방식 예시: backgroundColor, typeName, iPhone
2. 파스칼 표기법(PascalCase) "PascalCase" 첫 단어를 대문자로 시작하는 표기법 예시: BackgroundColor, TypeName, PowerPoint
* 각종 네이밍 룰(Naming Rule)
1. 카멜 케이스 (Camel Case)
- 흔히 접하는 표기법. 가장 처음에 오는 문자는 소문자로 표기하고, 각 단어의 첫글자는 대문자로 표기
- 예) deleteNumber, insertNumer
2. 파스칼 케이스 (Pascal Case)
- 쌍봉낙타 표기법. 각 단어의 첫글자를 대문자로 표기
- 가장 처음에 오는 문자도 대문자로 표기하는 점에서 카멜 케이스와 차이점
- 예) DeleteNumber, InsertNumber
3. 스네이크 케이스 (Snake Case)
- 각 단어의 사이에 언더바를 삽입
- 예) delete_number, insert_number
4. 헝가리언 표기법 (Hungarian notation)
- 데이터의 타입을 의미하는 접두어를 붙이는 표기법
- 마이크로소프트의 찰스 시모니가 제안했으나 현재는 MS조차 공식 가이드라인에서 사용하지 말라고 권고하는 비운의 표기법