개발지식 먹는 하마 님의 블로그
구글 Java 스타일 가이드 본문
[ File ]
- 소스 파일은 UTF-8로 인코딩
- 파일명은 최상위 클래스명과 일치해야 한다.
[ Naming ]
더보기
- 패키지 : only 소문자 + 숫자
- 클래스 : UpperCamelCase
- 메서드 : lowerCamelCase
- (불변)상수 : UPPER_SNAKE_CASE
- 상수가 아닌 필드 : lowerCamelCase
- 매개변수 : lowerCamelCase
- 지역 변수 : lowerCamelCase
- 타입 변수 이름 : 단일 대문자 ex(E, T, X -> RequestT, FooBarX)
* CamelCase
- 문구를 일반 ASCII로 변환하고 (')를 제거한다.
- 공백과 구두점(_, - 등)을 기준으로 단어를 나눈다.
- 모든 것을 소문자로 바꾸고, 첫 글자만 대문자로 바꾼다.
UpperCamelCase : 모든 단어의 첫 글자를 대문자로 바꾼다.
LowerCamelCase : 첫 번째 단어를 제외한 모든 단어 - 모든 단어를 하나로 합친다.
(원래 단어의 대소문자 구분은 무시한다.)
산문 형식 | 옳은 예시 | 잘못된 예시 |
"XML HTTP 요청" | XmlHttpRequest | XMLHTTPRequest |
"신규 고객 ID" | newCustomerId | newCustomerID |
"내부 스톱워치" | innerStopwatch | innerStopWatch |
"iOS에서 IPv6를 지원하나요?" | supportsIpv6OnIos | supportsIPv6OnIOS |
"YouTube 임포터" | YouTubeImporter YoutubeImporter* |
|
"2SV 켜기" | turnOn2sv | turnOn2Sv |
[ Format (공백, 변수 선언, Switch, Annotations, 주석) ]
한 줄에 한 개의 문장 (열 제한 100자)
줄바꿈 : 열 제한 내에서 재량껏
들여쓰기 : 공백 +2
중괄호 : K&R 스타일 (여는 중괄호 + 줄바꿈, 줄바꿈 + 닫는 중괄호)
< 공백 >
더보기
- 수직 공백
클래스 멤버나 초기화 사이에는 한 개의 빈줄을 둔다. - 수평 공백
예약어, 괄호 사이, 이항 연산자 주변, 콜론 주변에 단일 공백 사용
메서드 참조(::), 점 구분자(.), 캐스트 뒤의 괄호에는 사용하지 않음
< 변수 선언 >
- 한 번에 하나의 변수만 선언한다.
ex) int a; int b; (O), int a, b(X) - 필요할 때 선언한다. (미리 선언해놓지 않는다.)
< Switch 문 >
- fall-through 주석처리
Swithch 블록 내에서 갑자기 종료되거나 다음 문장 그룹으로 계속 될 수 있는 부분을 주석으로 간단히 표시
< Annotations >
- Type-use annotations
유형 바로 앞에 사용된다.
final @Nullable String name;
public @Nullable Person getPersonByName(String name);
- Class annotations
문서 블록 바로 다음에 위치한다.
각 주석은 별도의 줄에 작성한다.
@Deprecated
@CheckReturnValue
public final class Frozzler { ... }
- Method annotations
Class와 동일하지만, 단일 annotation의 경우 한 줄에 작성할 수 있다. - Field annotations
문서 블록 바로 다음에 위치한다.
여러 annotation이 같은 줄에 나열될 수 있다.
< 주석 >
/*
* This is // And so /* Or you can
* okay. // is this. * even do this. */
*/
[ 프로그래밍 ]
- @Override는 항상 사용한다
- 예외처리
잡힌 예외를 무시하지 않는다.
일반적으로 예외를 로깅하거나 AssertionError로 다시 던진다.
예외를 무시해야 할 경우, 그 이유를 주석으로 설명한다.
테스트에서 expected로 시작하는 예외는 주석없이 무시할 수 있다. - Static 멤버 참조
정적 클래스 멤버를 참조할 때, 클래스 이름으로 한정한다.
객체 참조나 표현식을 통한 정적 멤버 접근을 피한다. - Finalizers 사용 금지
[참고 자료]
https://google.github.io/styleguide/javaguide.html#s5.3-camel-case
Google Java Style Guide
1 Introduction This document serves as the complete definition of Google's coding standards for source code in the Java™ Programming Language. A Java source file is described as being in Google Style if and only if it adheres to the rules herein. Like ot
google.github.io
'Java' 카테고리의 다른 글
Java - 배열과 리스트 (1) | 2025.02.06 |
---|---|
Java - 인터페이스 (0) | 2025.02.05 |
Java - 오버로딩, 오버라이딩 (1) | 2025.02.04 |
Java - 상속 (1) | 2025.02.03 |
Java - 예외 처리 (0) | 2025.01.31 |