Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 데이터베이스 #try #이중
- Props
- 1px border
- 컴포넌튼
- ZOOM
- 0.5px border
- 0.75px border
- 서버리스 #
- Websocket
- jwt
- github
- 타입스크립트
- literal
- 문서번호
- 클론코딩
- 10px
- 으
- font-size
- 당근마켓
- angular
- Strict
- 전역변수
- npm
- entity
- TypeScript
- ES5
- es6
- &연산
- TS
- 0.25px border
Archives
- Today
- Total
복잡한뇌구조마냥
[JAVA] Effective Java - 일반적으로 통용되는 명명 규칙을 따르라 (68) 본문
요약
- 자바 명명 규칙은 **철자 규칙(Spelling)**과 문법 규칙(Grammatical) 두 가지로 나뉜다.
- 특별한 이유가 없다면 반드시 지켜야 하며, 규칙을 어기면 가독성·유지보수성이 떨어지고 버그가 생기기 쉽다.
- 철자 규칙은 강제적, 문법 규칙은 유연하되 널리 쓰이는 전통을 존중해야 한다.
- 가장 중요한 원칙: 일관성 유지.
📌 철자 규칙 (Spelling Conventions)
대상 | 규칙 | 예시 |
패키지 | 전부 소문자, 도메인 이름 역순 | com.example.project |
클래스/인터페이스 | 파스칼케이스, 각 단어 대문자 시작 | ArrayList, HashMap, WordProcessor |
메서드/필드 | 카멜케이스, 첫 글자 소문자 | getName, computeHash, count |
상수(static final) | 대문자 + 언더스코어 | MAX_VALUE, DEFAULT_SIZE |
지역변수/매개변수 | 메서드/필드와 동일 (카멜케이스) | size, index, name |
타입 매개변수 | 한 글자: T, E, K, V, X, R / 여러 개면 T1, T2 | <T>, <E>, <K, V> |
enum 상수 | 상수 필드와 동일 (대문자 + 언더스코어) | RED, BLUE, DARK_GREEN |
약어 | 널리 쓰이는 약어만 대문자 | URL, HTML, XmlParser (X: XMLParser) |
📌 문법 규칙 (Grammatical Conventions)
대상 | 규칙 | 예시 |
클래스 이름 | 인스턴스화 가능 → 단수 명사, 불가 → 복수 | Thread, Timer, Collectors |
인터페이스 이름 | 클래스와 동일하거나 형용사(-able, -ible) | Runnable, Comparable, Readable |
어노테이션 이름 | 제약 적음: 명사/동사/형용사 모두 가능 | @Override, @Inject, @Nullable |
메서드 이름 | 동사/동사구 | append, delete, getName |
boolean 메서드 | is, has, can, should + 형용사/동사 | isEmpty, hasNext, canRead, shouldRetry |
속성 접근자 | getXxx (getter), setXxx (setter) | getSize(), setName() |
변환 메서드 | toType() | toString(), toArray() |
뷰 반환 메서드 | asType() | asList(), asReadOnlyBuffer() |
기본타입 변환 | typeValue() | intValue(), longValue() |
정적 팩터리 | from, of, valueOf, getInstance, newInstance, getType, newType | Integer.valueOf("10"), List.of(1,2,3) |
📌 추가 팁
- boolean 필드 이름: 필드는 보통 empty, visible처럼 단순히 명사/형용사로, getter에서 isEmpty(), isVisible()로 표현.
- 헝가리안 표기법 금지: strName, iCount처럼 타입을 이름에 넣지 말 것.
- 테스트 메서드 이름: methodName_state_expectedBehavior 형태를 쓰면 명확하다. (pop_emptyStack_throwsException)
- 일관성이 최우선: 팀 내에서 합의한 규칙이 있다면 반드시 따를 것.
✅ 결론
자바 명명 규칙은 API 설계에서 가장 기본적이지만 중요한 원칙이다.
- 철자 규칙은 직관적이고 명확하므로 반드시 지켜야 한다.
- 문법 규칙은 더 유연하지만, 널리 쓰이는 전통을 존중하고 일관성 있게 적용해야 한다.
- 무엇보다 중요한 건 코드를 읽는 사람이 혼란 없도록 하는 것이다.
LIST
'BE > JAVA' 카테고리의 다른 글
[JAVA] Effective Java - 프로그램의 동작을 스레드 스케줄러에 기대지 말라 (84) (0) | 2025.09.07 |
---|---|
[JAVA] Effective Java - 표준 예외를 사용하라 (72) (0) | 2025.09.04 |
[JAVA] Effective Java - 지역변수의 범위를 최소화하라 (57) (1) | 2025.08.31 |
[JAVA] Effective Java - 다중정의는 신중히 사용하라 (52) (0) | 2025.08.24 |
[JAVA] Effective Java - 스트림은 주의해서 사용하라 (45) (0) | 2025.08.24 |