네이밍 컨벤션(Naming Convention)은 코드에서 변수, 함수, 클래스, 파일 등의 이름을 정하는 규칙과 방법을 의미한다. 이 규칙은 코드의 가독성을 높이고 유지보수를 용이하게 하며, 팀 내에서 코드의 일관성을 유지하도록 돕는다. 네이밍 컨벤션은 여러 가지 프로그래밍 언어와 프레임워크에 따라 다를 수 있지만, 기본적인 목표는 코드의 명확성과 일관성을 보장하는 것이다.
네이밍 컨벤션의 중요성
- 가독성 향상: 일관된 네이밍 규칙을 사용하면 코드를 읽기 쉽고 이해하기 쉬워진다. 변수나 함수의 이름만 보고도 그 역할을 추측할 수 있다.
- 유지보수 용이: 코드의 일관성을 유지하면, 나중에 코드를 수정하거나 다른 사람이 코드를 이해할 때 유리하다.
- 협업 효율성: 팀 내에서 동일한 네이밍 규칙을 따르면, 코드 리뷰나 팀 협업 시 혼동이 줄어들고 커뮤니케이션이 원활해진다.
- 디버깅 용이성: 일관된 네이밍 규칙은 디버깅 과정에서 변수나 함수의 역할을 명확히 하여 문제를 더 쉽게 찾을 수 있도록 돕는다.
일반적인 네이밍 컨벤션 규칙
- 변수 및 상수
- 변수: 카멜 케이스(camelCase) 또는 스네이크 케이스(snake_case)를 사용한다.
- 예: userName, totalAmount
- 상수: 모든 문자를 대문자로 작성하고 단어 사이에 언더스코어(_)를 넣는다.
- 예: MAX_VALUE, DEFAULT_TIMEOUT
- 변수: 카멜 케이스(camelCase) 또는 스네이크 케이스(snake_case)를 사용한다.
- 함수 및 메소드
- 함수/메소드 이름: 카멜 케이스를 사용하고 동사로 시작한다.
- 예: calculateTotal(), getUserInfo()
- 함수/메소드 이름: 카멜 케이스를 사용하고 동사로 시작한다.
- 클래스 및 인터페이스
- 클래스 이름: 파스칼 케이스(PascalCase)를 사용하며 명사로 작성한다.
- 예: UserAccount, OrderService
- 인터페이스 이름: 클래스와 같은 네이밍 규칙을 사용하되, "I" 접두사를 붙이는 경우도 있다.
- 예: IUserRepository, OrderProcessor
- 클래스 이름: 파스칼 케이스(PascalCase)를 사용하며 명사로 작성한다.
- 파일 및 디렉토리
- 파일 이름: 클래스와 일치시켜 파일 이름을 짓는다.
- 예: UserAccount.java, OrderService.java
- 디렉토리 이름: 스네이크 케이스를 사용하는 경우가 많다.
- 예: controllers, services
- 파일 이름: 클래스와 일치시켜 파일 이름을 짓는다.
- 데이터베이스
- 테이블 이름: 스네이크 케이스를 사용하고 복수형으로 작성한다.
- 예: user_accounts, order_items
- 컬럼 이름: 스네이크 케이스를 사용하여 필드의 의미를 명확히 한다.
- 예: first_name, order_date
- 테이블 이름: 스네이크 케이스를 사용하고 복수형으로 작성한다.
예시
변수 네이밍
// 카멜 케이스
int userAge;
double accountBalance;
// 스네이크 케이스
int user_age;
double account_balance;
함수 네이밍
// 카멜 케이스
void calculateTotalAmount();
String getUserName();
클래스 네이밍
// 파스칼 케이스
public class UserAccount {
private String firstName;
private String lastName;
}
인터페이스 네이밍
// 파스칼 케이스, I 접두사 사용
public interface IUserRepository {
User findById(Long id);
}
데이터베이스 네이밍
-- 테이블
CREATE TABLE user_accounts (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50)
);
-- 컬럼
ALTER TABLE user_accounts ADD COLUMN email_address VARCHAR(100);
네이밍 컨벤션은 프로젝트의 규모와 팀의 필요에 따라 다를 수 있지만, 일관된 규칙을 설정하고 이를 준수하는 것이 중요하다. 네이밍 컨벤션을 정하고 문서화하면 팀원들이 쉽게 이해하고 따를 수 있으며, 코드의 품질과 유지보수성을 높일 수 있다.
'ETC' 카테고리의 다른 글
SpringBoot3.x.x Swagger 적용하기 (0) | 2024.11.04 |
---|