## 작명의 중요성 코드를 읽는 시간이 코드를 작성하는 시간보다 훨씬 길기 때문에, 코드를 읽는 시간을 줄이기 위해 작명은 매우 중요하다 따라서 변수, 함수, 클래스 등의 이름을 정할 때는 **의미를 명확히** 하고, **일관성 있게** 작성해야 한다 예를 들어, 나이를 저장하는 변수를 `a`라고 작성하면, 코드를 읽는 사람은 `a`가 무엇을 의미하는지 알기 어렵다. 하지만 `age`라고 작성하면, 코드를 읽는 사람은 `age`가 나이를 의미한다는 것을 쉽게 알 수 있다. `int a = 10;` → `int age = 25;` 한 단어로 표현이 어려운 경우에는 여러 단어를 조합하여 사용한다. 예를 들어, '학생의 나이(Student Age)'를 표현하고 싶다면, `age`라고 작성하는 것보다는 `studentAge`라고 작성하는 것이 더 좋다. `int a = 10;` → `int studentAge = 25;` 위의 경우 'Student Age'를 'studentAge'로 표현하였는데, 이를 **카멜 케이스(Camel Case)**라고 한다. '카멜 케이스'처럼 여러 단어를 조합하여 사용하는 방법은 여러 가지가 있는데, 이를 **네이밍 컨벤션(Naming Convention)**이라고 한다. ## 네이밍 컨벤션(Naming Convention)이란? - 네이밍 컨벤션은 변수, 함수, 클래스 등의 이름을 정하는 규칙이다. - 개발자들끼리 합의된 약속일 뿐 **강제되는 규칙이 아니다** - 목적 - 가독성 향상: 일관된 명명 규칙은 코드를 더 읽기 쉽게 만들며, 코드의 목적과 기능을 직관적으로 이해하는 데 도움을 준다 - 유지 보수 용이: 명확한 네이밍은 코드의 유지 보수를 용이하게 한다 - 협업 효율성: 팀 내에서 같은 규칙을 사용함으로써 협업의 효율성을 높인다 > 네이밍 컨벤션은 언어마다 다르다 ## 네이밍 컨벤션의 종류 - Pascal Case - 각 단어의 첫 문자를 대문자로 표기한다 - ex) `Pascal Case` → `PascalCase` - Camel Case - 각 단어의 첫 문자를 대문자로 표기하되, 맨 처음 문자는 소문자로 표기한다 - ex) `Camel Case` → `camelCase` - Kebab Case - 각 단어를 하이픈(`-`)으로 구분한다 - ex) `Kebab Case` → `kebab-case` - Snake Case - 각 단어를 언더바(`_`)로 구분한다 - ex) `Snake Case` → `snake_case` - Screaming Snake Case - 모든 문자를 대문자로 표기하고, 각 단어를 언더바(`_`)로 구분한다 - ex) `Screaming Snake Case` → `SCREAMING_SNAKE_CASE` ## 자바의 네이밍 컨벤션 - 클래스 이름은 `PascalCase`로 작성한다 - ex) `NamingConvention` - 메소드 이름은 `camelCase`로 작성한다 - ex) `getUserName()` - 변수 이름은 `camelCase`로 작성한다 - ex) `userName` - 상수 이름은 `SNAKE_CASE`로 작성한다 - ex) `MAX_NUMBER` - 패키지 이름은 `소문자`로 작성한다 - ex) `com.example.namingconvention` ### 예시 ```java public class NamingConvention { public static final int MAX_NUMBER = 10; public String userName = "John Doe"; public static void main(String[] args) { int maxNumber = MAX_NUMBER; System.out.println(maxNumber); } public String getUserName() { return userName; } } ```