개발지식 먹는 하마 님의 블로그

구글 Java 스타일 가이드 본문

Java

구글 Java 스타일 가이드

devhippo 2025. 1. 21. 16:54

[ File ]

  • 소스 파일은 UTF-8로 인코딩
  • 파일명은 최상위 클래스명과 일치해야 한다.

[ Naming ]

더보기
  • 패키지 : only 소문자 + 숫자
  • 클래스 : UpperCamelCase
  • 메서드 : lowerCamelCase
  • (불변)상수 : UPPER_SNAKE_CASE
  • 상수가 아닌 필드 : lowerCamelCase
  • 매개변수 : lowerCamelCase
  • 지역 변수 : lowerCamelCase
  • 타입 변수 이름 : 단일 대문자 ex(E, T, X -> RequestT, FooBarX)

* CamelCase

  1. 문구를 일반 ASCII로 변환하고 (')를 제거한다.
  2. 공백과 구두점(_, - 등)을 기준으로 단어를 나눈다.
  3. 모든 것을 소문자로 바꾸고, 첫 글자만 대문자로 바꾼다.
    UpperCamelCase : 모든 단어의 첫 글자를 대문자로 바꾼다.
    LowerCamelCase : 첫 번째 단어를 제외한 모든 단어
  4. 모든 단어를 하나로 합친다.
    (원래 단어의 대소문자 구분은 무시한다.)
산문 형식 옳은 예시 잘못된 예시
"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. */
 */

[ 프로그래밍 ]

  1. @Override는 항상 사용한다
  2. 예외처리
    잡힌 예외를 무시하지 않는다.
    일반적으로 예외를 로깅하거나 AssertionError로 다시 던진다.
    예외를 무시해야 할 경우, 그 이유를 주석으로 설명한다.
    테스트에서 expected로 시작하는 예외는 주석없이 무시할 수 있다.
  3. Static 멤버 참조
    정적 클래스 멤버를 참조할 때, 클래스 이름으로 한정한다.
    객체 참조나 표현식을 통한 정적 멤버 접근을 피한다.
  4. 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